From 3464f40da3c2de89f1e8eae2582d688ecbc7c23a Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 18 May 2019 10:02:36 -0400 Subject: [PATCH] Fixed unit pads, rule selection, gameover state --- core/src/io/anuke/mindustry/core/Logic.java | 2 +- core/src/io/anuke/mindustry/entities/type/Player.java | 1 + core/src/io/anuke/mindustry/input/InputHandler.java | 7 +++++++ core/src/io/anuke/mindustry/ui/dialogs/MapPlayDialog.java | 2 +- .../src/io/anuke/mindustry/world/blocks/units/MechPad.java | 7 +++++-- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/Logic.java b/core/src/io/anuke/mindustry/core/Logic.java index 7f8eca5219..191abb61b3 100644 --- a/core/src/io/anuke/mindustry/core/Logic.java +++ b/core/src/io/anuke/mindustry/core/Logic.java @@ -86,7 +86,7 @@ public class Logic implements ApplicationListener{ } private void checkGameOver(){ - if(state.rules.waves && state.teams.get(defaultTeam).cores.size == 0 && !state.gameOver){ + if(!state.rules.attackMode && state.teams.get(defaultTeam).cores.size == 0 && !state.gameOver){ state.gameOver = true; Events.fire(new GameOverEvent(waveTeam)); }else if(state.rules.attackMode){ diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index ceb10abcae..61f4a07ccd 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -819,6 +819,7 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{ this.lastSpawner = spawner; this.dead = true; setNet(spawner.getX(), spawner.getY()); + spawner.updateSpawning(this); } //endregion diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index 70f21df24a..f69c9331a6 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -195,6 +195,13 @@ public abstract class InputHandler implements InputProcessor{ } } + //clear when the player taps on something else + if(!consumed && !mobile && player.isBuilding() && block == null){ + player.clearBuilding(); + block = null; + return true; + } + if(!showedInventory){ frag.inv.hide(); } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/MapPlayDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/MapPlayDialog.java index 26868d9b51..8d53b876ff 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/MapPlayDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/MapPlayDialog.java @@ -44,7 +44,7 @@ public class MapPlayDialog extends FloatingDialog{ modes.addButton(mode.toString(), "toggle", () -> { selectedGamemode = selectedGamemode == mode ? null : mode; - rules = mode.apply(map.rules()); + rules = selectedGamemode == null ? map.rules() : mode.apply(map.rules()); }).update(b -> b.setChecked(selectedGamemode == mode)).size(140f, 54f); if(i++ % 2 == 1) modes.row(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java b/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java index 448d9725f0..b298f11773 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java @@ -59,6 +59,7 @@ public class MechPad extends Block{ if(!entity.cons.valid()) return; player.beginRespawning(entity); + entity.sameMech = false; } @Remote(called = Loc.server) @@ -71,7 +72,7 @@ public class MechPad extends Block{ if(entity.player == null) return; Mech mech = ((MechPad)tile.block()).mech; - entity.player.mech = entity.player.mech == mech ? Mechs.starter : mech; + entity.player.mech = !entity.sameMech && entity.player.mech == mech ? Mechs.starter : mech; entity.progress = 0; entity.player.onRespawn(tile); @@ -113,7 +114,7 @@ public class MechPad extends Block{ Draw.rect(Core.atlas.find(name), tile.drawx(), tile.drawy()); if(entity.player != null){ - TextureRegion region = (entity.player.mech == mech ? Mechs.starter.iconRegion : mech.iconRegion); + TextureRegion region = (!entity.sameMech && entity.player.mech == mech ? Mechs.starter.iconRegion : mech.iconRegion); Shaders.build.region = region; Shaders.build.progress = entity.progress; @@ -162,6 +163,7 @@ public class MechPad extends Block{ public class MechFactoryEntity extends TileEntity implements SpawnerTrait{ Player player; + boolean sameMech; float progress; float time; float heat; @@ -171,6 +173,7 @@ public class MechPad extends Block{ if(player == null){ progress = 0f; player = unit; + sameMech = true; player.beginRespawning(this); }