diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 9632a05ca9..5f9e18f77b 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -63,6 +63,7 @@ text.mission.complete=Mission complete! text.mission.complete.body=Sector {0},{1} has been conquered. text.mission.wave=Survive[accent] {0}/{1} []waves\nWave in {2} text.mission.wave.enemies=Survive[accent] {0}/{1} []waves\n{2} Enemies +text.mission.wave.enemy=Survive[accent] {0}/{1} []waves\n{2} Enemy text.mission.wave.menu=Survive[accent] {0} []waves text.mission.battle=Destroy the enemy core text.mission.resource.menu=Obtain {0} x{1} @@ -284,7 +285,7 @@ text.settings.clearall=Clear All text.paused=Paused text.yes=Yes text.no=No -text.info.title=[accent]Info +text.info.title=Info text.error.title=[crimson]An error has occured text.error.crashtitle=An error has occured text.blocks.blockinfo=Block Info diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index 642686e1f4..30bb9cece1 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -36,7 +36,7 @@ public class Vars{ //time between waves in frames (on normal mode) public static final float wavespace = 60 * 60 * 1.5f; - public static final float mineTransferRange = 250f; + public static final float mineTransferRange = 220f; //set ridiculously high for now public static final float coreBuildRange = 999999f; //team of the player by default diff --git a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java index cbe63c5118..7aac45600c 100644 --- a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java @@ -121,6 +121,10 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{ this.spawner = tile.packedPosition(); } + public void setIntSpawner(int pos){ + this.spawner = pos; + } + /**Sets this to a 'wave' unit, which means it has slightly different AI and will not run out of ammo.*/ public void setWave(){ isWave = true; diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index 1806ae81e2..d85f94db96 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -206,6 +206,10 @@ public class DesktopInput extends InputHandler{ return; } + if(Inputs.keyTap(section, "deselect")){ + player.setMineTile(null); + } + if(!ui.hasMouse()){ if(Inputs.keyTap(section, "select")){ if(isPlacing()){ diff --git a/core/src/io/anuke/mindustry/maps/Sectors.java b/core/src/io/anuke/mindustry/maps/Sectors.java index 2846297699..153d8681cf 100644 --- a/core/src/io/anuke/mindustry/maps/Sectors.java +++ b/core/src/io/anuke/mindustry/maps/Sectors.java @@ -6,6 +6,7 @@ import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.Items; import io.anuke.mindustry.core.GameState.State; +import io.anuke.mindustry.entities.units.BaseUnit; import io.anuke.mindustry.game.Team; import io.anuke.mindustry.io.SaveIO; import io.anuke.mindustry.maps.generation.WorldGenerator.GenResult; @@ -132,6 +133,13 @@ public class Sectors{ for(EntityGroup group : Entities.getAllGroups()){ for(Entity entity : group.all()){ entity.set(entity.getX() + shiftX * tilesize, entity.getY() + shiftY * tilesize); + + if(entity instanceof BaseUnit){ + Tile spawner = ((BaseUnit) entity).getSpawner(); + if(spawner == null) continue; + int i = spawner.packedPosition(); + ((BaseUnit) entity).setIntSpawner(world.transform(i, world.width(), world.height(), sector.width*sectorSize, shiftX, shiftY)); + } } } diff --git a/core/src/io/anuke/mindustry/maps/TutorialSector.java b/core/src/io/anuke/mindustry/maps/TutorialSector.java index be1e8f6990..9fd4f49d6b 100644 --- a/core/src/io/anuke/mindustry/maps/TutorialSector.java +++ b/core/src/io/anuke/mindustry/maps/TutorialSector.java @@ -5,6 +5,7 @@ import io.anuke.mindustry.content.Items; import io.anuke.mindustry.content.UnitTypes; import io.anuke.mindustry.content.blocks.*; import io.anuke.mindustry.game.EventType.WorldLoadEvent; +import io.anuke.mindustry.maps.generation.Generation; import io.anuke.mindustry.maps.generation.WorldGenerator.GenResult; import io.anuke.mindustry.maps.missions.*; import io.anuke.mindustry.type.Item; @@ -66,7 +67,7 @@ public class TutorialSector{ }); }), - new ItemMission(Items.lead, 90).setMessage("$tutorial.lead"), + new ItemMission(Items.lead, 150).setMessage("$tutorial.lead"), new ItemMission(Items.copper, 250).setMessage("$tutorial.morecopper"), new BlockLocMission(CraftingBlocks.smelter, 58, 69).setMessage("$tutorial.smelter"), @@ -129,7 +130,9 @@ public class TutorialSector{ generateBase(); } }, - new BattleMission().setMessage("$tutorial.battle") + new BattleMission(){ + public void generate(Generation gen){} //no + }.setMessage("$tutorial.battle") ); //find drone marker mission diff --git a/core/src/io/anuke/mindustry/maps/missions/ActionMission.java b/core/src/io/anuke/mindustry/maps/missions/ActionMission.java index 5852bd337c..55710aa1ff 100644 --- a/core/src/io/anuke/mindustry/maps/missions/ActionMission.java +++ b/core/src/io/anuke/mindustry/maps/missions/ActionMission.java @@ -1,7 +1,5 @@ package io.anuke.mindustry.maps.missions; -import io.anuke.mindustry.Vars; -import io.anuke.mindustry.game.GameMode; import io.anuke.ucore.util.Bundles; import static io.anuke.mindustry.Vars.threads; @@ -31,9 +29,4 @@ public class ActionMission extends Mission{ public String displayString(){ return Bundles.get("text.loading"); } - - @Override - public GameMode getMode(){ - return Vars.state.mode; - } } diff --git a/core/src/io/anuke/mindustry/maps/missions/ItemMission.java b/core/src/io/anuke/mindustry/maps/missions/ItemMission.java index 45ba039a3f..a65eb4bc31 100644 --- a/core/src/io/anuke/mindustry/maps/missions/ItemMission.java +++ b/core/src/io/anuke/mindustry/maps/missions/ItemMission.java @@ -2,7 +2,6 @@ package io.anuke.mindustry.maps.missions; import io.anuke.mindustry.Vars; import io.anuke.mindustry.entities.TileEntity; -import io.anuke.mindustry.game.GameMode; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.util.Bundles; @@ -19,11 +18,6 @@ public class ItemMission extends Mission{ this.amount = amount; } - @Override - public GameMode getMode(){ - return GameMode.waves; - } - @Override public boolean isComplete(){ for(Tile tile : state.teams.get(Vars.defaultTeam).cores){ diff --git a/core/src/io/anuke/mindustry/maps/missions/UnitMission.java b/core/src/io/anuke/mindustry/maps/missions/UnitMission.java index 36a10ece7c..efe097a687 100644 --- a/core/src/io/anuke/mindustry/maps/missions/UnitMission.java +++ b/core/src/io/anuke/mindustry/maps/missions/UnitMission.java @@ -3,7 +3,6 @@ package io.anuke.mindustry.maps.missions; import io.anuke.mindustry.Vars; import io.anuke.mindustry.entities.units.BaseUnit; import io.anuke.mindustry.entities.units.UnitType; -import io.anuke.mindustry.game.GameMode; import io.anuke.ucore.util.Bundles; public class UnitMission extends Mission{ @@ -27,9 +26,4 @@ public class UnitMission extends Mission{ public String displayString(){ return Bundles.format("text.mission.unit", type.localizedName()); } - - @Override - public GameMode getMode(){ - return GameMode.noWaves; - } } diff --git a/core/src/io/anuke/mindustry/maps/missions/WaveMission.java b/core/src/io/anuke/mindustry/maps/missions/WaveMission.java index 43c3e24b59..6e65f6c71b 100644 --- a/core/src/io/anuke/mindustry/maps/missions/WaveMission.java +++ b/core/src/io/anuke/mindustry/maps/missions/WaveMission.java @@ -48,7 +48,10 @@ public class WaveMission extends Mission{ @Override public String displayString(){ return state.wave > target ? - Bundles.format("text.mission.wave.enemies", state.wave, target, Vars.unitGroups[Vars.waveTeam.ordinal()].size()) : + Bundles.format( + Vars.unitGroups[Vars.waveTeam.ordinal()].size() > 1 ? + "text.mission.wave.enemies" : + "text.mission.wave.enemy", target, target, Vars.unitGroups[Vars.waveTeam.ordinal()].size()) : Bundles.format("text.mission.wave", state.wave, target, (int)(state.wavetime/60)); } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java index 2ca61d9aeb..fa9559e101 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java @@ -34,7 +34,8 @@ public class MendProjector extends Block{ protected float reload = 250f; protected float range = 50f; protected float healPercent = 6f; - protected float phaseBoost = 10f; + protected float phaseBoost = 12f; + protected float phaseRangeBoost = 40f; protected float useTime = 300f; public MendProjector(String name){ @@ -65,7 +66,7 @@ public class MendProjector extends Block{ } if(entity.charge >= reload){ - float realRange = range + entity.phaseHeat * 20f; + float realRange = range + entity.phaseHeat * phaseRangeBoost; Effects.effect(BlockFx.healWaveMend, Hue.mix(color, phase, entity.phaseHeat), tile.drawx(), tile.drawy(), realRange); entity.charge = 0f;