v1.2.0: added several checks to prevent simultaneous hero actions

This commit is contained in:
Evan Debenham 2022-02-22 14:53:28 -05:00
parent 9225ce1854
commit 7c596ccab7
6 changed files with 28 additions and 19 deletions

View File

@ -368,7 +368,7 @@ public class CellSelector extends ScrollArea {
private int lastCellMoved = 0; private int lastCellMoved = 0;
private boolean moveFromActions(GameAction... actions){ private boolean moveFromActions(GameAction... actions){
if (Dungeon.hero == null){ if (Dungeon.hero == null || !Dungeon.hero.ready){
return false; return false;
} }

View File

@ -98,8 +98,9 @@ public class ActionIndicator extends Tag {
@Override @Override
protected void onClick() { protected void onClick() {
if (action != null && Dungeon.hero.ready) if (action != null && Dungeon.hero.ready) {
action.doAction(); action.doAction();
}
} }
@Override @Override

View File

@ -175,7 +175,7 @@ public class AttackIndicator extends Tag {
@Override @Override
protected void onClick() { protected void onClick() {
if (enabled) { if (enabled && Dungeon.hero.ready) {
if (Dungeon.hero.handle( lastTarget.pos )) { if (Dungeon.hero.handle( lastTarget.pos )) {
Dungeon.hero.next(); Dungeon.hero.next();
} }

View File

@ -49,7 +49,7 @@ public class LootIndicator extends Tag {
slot = new ItemSlot() { slot = new ItemSlot() {
protected void onClick() { protected void onClick() {
if (Dungeon.hero.handle(Dungeon.hero.pos)){ if (Dungeon.hero.ready && Dungeon.hero.handle(Dungeon.hero.pos)){
Dungeon.hero.next(); Dungeon.hero.next();
} }

View File

@ -67,7 +67,9 @@ public class ResumeIndicator extends Tag {
@Override @Override
protected void onClick() { protected void onClick() {
Dungeon.hero.resume(); if (Dungeon.hero.ready) {
Dungeon.hero.resume();
}
} }
@Override @Override

View File

@ -92,7 +92,7 @@ public class Toolbar extends Component {
add(btnWait = new Tool(24, 0, 20, 26) { add(btnWait = new Tool(24, 0, 20, 26) {
@Override @Override
protected void onClick() { protected void onClick() {
if (!GameScene.cancel()) { if (Dungeon.hero.ready && !GameScene.cancel()) {
examining = false; examining = false;
Dungeon.hero.rest(false); Dungeon.hero.rest(false);
} }
@ -109,7 +109,7 @@ public class Toolbar extends Component {
} }
protected boolean onLongClick() { protected boolean onLongClick() {
if (!GameScene.cancel()) { if (Dungeon.hero.ready && !GameScene.cancel()) {
examining = false; examining = false;
Dungeon.hero.rest(true); Dungeon.hero.rest(true);
} }
@ -120,8 +120,10 @@ public class Toolbar extends Component {
add(new Button(){ add(new Button(){
@Override @Override
protected void onClick() { protected void onClick() {
examining = false; if (Dungeon.hero.ready) {
Dungeon.hero.rest(true); examining = false;
Dungeon.hero.rest(true);
}
} }
@Override @Override
@ -134,12 +136,14 @@ public class Toolbar extends Component {
add(btnSearch = new Tool(44, 0, 20, 26) { add(btnSearch = new Tool(44, 0, 20, 26) {
@Override @Override
protected void onClick() { protected void onClick() {
if (!examining) { if (Dungeon.hero.ready) {
GameScene.selectCell(informer); if (!examining) {
examining = true; GameScene.selectCell(informer);
} else { examining = true;
informer.onSelect(null); } else {
Dungeon.hero.search(true); informer.onSelect(null);
Dungeon.hero.search(true);
}
} }
} }
@ -167,10 +171,12 @@ public class Toolbar extends Component {
@Override @Override
protected void onClick() { protected void onClick() {
if (SPDSettings.interfaceSize() == 2){ if (Dungeon.hero.ready || !Dungeon.hero.isAlive()) {
GameScene.toggleInvPane(); if (SPDSettings.interfaceSize() == 2) {
} else { GameScene.toggleInvPane();
GameScene.show(new WndBag(Dungeon.hero.belongings.backpack)); } else {
GameScene.show(new WndBag(Dungeon.hero.belongings.backpack));
}
} }
} }