From 7c596ccab7020352a1f9ff8c705ee5b76d690d95 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 22 Feb 2022 14:53:28 -0500 Subject: [PATCH] v1.2.0: added several checks to prevent simultaneous hero actions --- .../scenes/CellSelector.java | 2 +- .../ui/ActionIndicator.java | 3 +- .../ui/AttackIndicator.java | 2 +- .../ui/LootIndicator.java | 2 +- .../ui/ResumeIndicator.java | 4 ++- .../shatteredpixeldungeon/ui/Toolbar.java | 34 +++++++++++-------- 6 files changed, 28 insertions(+), 19 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/CellSelector.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/CellSelector.java index 5b6d2267d..817c2a105 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/CellSelector.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/CellSelector.java @@ -368,7 +368,7 @@ public class CellSelector extends ScrollArea { private int lastCellMoved = 0; private boolean moveFromActions(GameAction... actions){ - if (Dungeon.hero == null){ + if (Dungeon.hero == null || !Dungeon.hero.ready){ return false; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ActionIndicator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ActionIndicator.java index 8cfd72abf..b15cde1e9 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ActionIndicator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ActionIndicator.java @@ -98,8 +98,9 @@ public class ActionIndicator extends Tag { @Override protected void onClick() { - if (action != null && Dungeon.hero.ready) + if (action != null && Dungeon.hero.ready) { action.doAction(); + } } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/AttackIndicator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/AttackIndicator.java index 98de4112b..90aac864c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/AttackIndicator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/AttackIndicator.java @@ -175,7 +175,7 @@ public class AttackIndicator extends Tag { @Override protected void onClick() { - if (enabled) { + if (enabled && Dungeon.hero.ready) { if (Dungeon.hero.handle( lastTarget.pos )) { Dungeon.hero.next(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/LootIndicator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/LootIndicator.java index d1167baed..69770789b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/LootIndicator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/LootIndicator.java @@ -49,7 +49,7 @@ public class LootIndicator extends Tag { slot = new ItemSlot() { protected void onClick() { - if (Dungeon.hero.handle(Dungeon.hero.pos)){ + if (Dungeon.hero.ready && Dungeon.hero.handle(Dungeon.hero.pos)){ Dungeon.hero.next(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ResumeIndicator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ResumeIndicator.java index 90a331b5f..cd7235c55 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ResumeIndicator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ResumeIndicator.java @@ -67,7 +67,9 @@ public class ResumeIndicator extends Tag { @Override protected void onClick() { - Dungeon.hero.resume(); + if (Dungeon.hero.ready) { + Dungeon.hero.resume(); + } } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java index 4082e435f..60b79c1cc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/Toolbar.java @@ -92,7 +92,7 @@ public class Toolbar extends Component { add(btnWait = new Tool(24, 0, 20, 26) { @Override protected void onClick() { - if (!GameScene.cancel()) { + if (Dungeon.hero.ready && !GameScene.cancel()) { examining = false; Dungeon.hero.rest(false); } @@ -109,7 +109,7 @@ public class Toolbar extends Component { } protected boolean onLongClick() { - if (!GameScene.cancel()) { + if (Dungeon.hero.ready && !GameScene.cancel()) { examining = false; Dungeon.hero.rest(true); } @@ -120,8 +120,10 @@ public class Toolbar extends Component { add(new Button(){ @Override protected void onClick() { - examining = false; - Dungeon.hero.rest(true); + if (Dungeon.hero.ready) { + examining = false; + Dungeon.hero.rest(true); + } } @Override @@ -134,12 +136,14 @@ public class Toolbar extends Component { add(btnSearch = new Tool(44, 0, 20, 26) { @Override protected void onClick() { - if (!examining) { - GameScene.selectCell(informer); - examining = true; - } else { - informer.onSelect(null); - Dungeon.hero.search(true); + if (Dungeon.hero.ready) { + if (!examining) { + GameScene.selectCell(informer); + examining = true; + } else { + informer.onSelect(null); + Dungeon.hero.search(true); + } } } @@ -167,10 +171,12 @@ public class Toolbar extends Component { @Override protected void onClick() { - if (SPDSettings.interfaceSize() == 2){ - GameScene.toggleInvPane(); - } else { - GameScene.show(new WndBag(Dungeon.hero.belongings.backpack)); + if (Dungeon.hero.ready || !Dungeon.hero.isAlive()) { + if (SPDSettings.interfaceSize() == 2) { + GameScene.toggleInvPane(); + } else { + GameScene.show(new WndBag(Dungeon.hero.belongings.backpack)); + } } }