diff --git a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java index 0182dd19af..013df1b973 100644 --- a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java @@ -329,6 +329,10 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{ if(!Net.client()){ avoidOthers(8f); + + if(spawner != -1 && (world.tile(spawner) == null || world.tile(spawner).entity == null)){ + damage(health); + } } if(squad != null){ diff --git a/core/src/io/anuke/mindustry/maps/generation/FortressGenerator.java b/core/src/io/anuke/mindustry/maps/generation/FortressGenerator.java index 5d7d432346..1751821a26 100644 --- a/core/src/io/anuke/mindustry/maps/generation/FortressGenerator.java +++ b/core/src/io/anuke/mindustry/maps/generation/FortressGenerator.java @@ -17,7 +17,7 @@ public class FortressGenerator{ private final Block[] turretBlocks = {TurretBlocks.duo, TurretBlocks.hail, TurretBlocks.wave}; private final Block[] drillBlocks = {ProductionBlocks.tungstenDrill, ProductionBlocks.carbideDrill}; private final Block[] armorBlocks = {DefenseBlocks.tungstenWall, DefenseBlocks.carbideWall, DefenseBlocks.thoriumWall}; - private final int minCoreDst = 30; + private final int minCoreDst = 50; private int enemyX, enemyY, coreX, coreY; private Team team; @@ -42,7 +42,7 @@ public class FortressGenerator{ for(int x = 2; x < gen.width - 2; x++){ for(int y = 2; y < gen.height - 2; y++){ if(Vector2.dst(x, y, coreX, coreY) > minCoreDst && - gen.tiles[x][y].floor().dropsItem(ore) && gen.random.chance(0.03)){ + gen.tiles[x][y].floor().dropsItem(ore) && gen.random.chance(0.02)){ int elevation = gen.tiles[x][y].getElevation(); gen.tiles[x][y].setBlock(drill, team); diff --git a/core/src/io/anuke/mindustry/maps/missions/Mission.java b/core/src/io/anuke/mindustry/maps/missions/Mission.java index 3abd9319c8..9a6347d49f 100644 --- a/core/src/io/anuke/mindustry/maps/missions/Mission.java +++ b/core/src/io/anuke/mindustry/maps/missions/Mission.java @@ -26,12 +26,14 @@ public interface Mission{ int lerpDst = 20; for(int x = -lerpDst; x <= lerpDst; x++){ for(int y = -lerpDst; y <= lerpDst; y++){ - int wx = gen.width/2 + x, wy = gen.height/2 + y; + int wx = gen.width / 2 + x, wy = gen.height / 2 + y; float dst = Vector2.dst(wx, wy, coreX, coreY); float elevation = gen.tiles[wx][wy].getElevation(); - if(dst < lerpDst){ + if(dst < 4){ + elevation = targetElevation; + }else if(dst < lerpDst){ elevation = Mathf.lerp(elevation, targetElevation, Mathf.clamp(2*(1f-(dst / lerpDst))) + Noise.nnoise(wx, wy, 8f, 1f)); }