Experimental fix for Attacking/Passing race condition

This commit is contained in:
Sol
2017-12-19 03:03:35 +00:00
parent fc29cec8c8
commit 27a2d7f642

View File

@@ -83,12 +83,12 @@ public class InputAttack extends InputSyncronizedBase {
} }
private void updatePrompt() { private void updatePrompt() {
if (canCallBackAttackers()) { String alphaLabel = canCallBackAttackers() ? "Call Back" : "AlphaStrike";
getController().getGui().updateButtons(getOwner(), "OK", "Call Back", true, true, true); getController().getGui().updateButtons(getOwner(), "OK", alphaLabel, true, true, true);
} }
else {
getController().getGui().updateButtons(getOwner(), "OK", "Alpha Strike", true, true, true); private void disablePrompt() {
} getController().getGui().updateButtons(getOwner(), "Disabled", "Disabled", false, false, false);
} }
@Override @Override
@@ -154,6 +154,7 @@ public class InputAttack extends InputSyncronizedBase {
@Override @Override
protected final boolean onCardSelected(final Card card, final List<Card> otherCardsToSelect, final ITriggerEvent triggerEvent) { protected final boolean onCardSelected(final Card card, final List<Card> otherCardsToSelect, final ITriggerEvent triggerEvent) {
disablePrompt();
final List<Card> att = combat.getAttackers(); final List<Card> att = combat.getAttackers();
if (triggerEvent != null && triggerEvent.getButton() == 3 && att.contains(card)) { if (triggerEvent != null && triggerEvent.getButton() == 3 && att.contains(card)) {
undeclareAttacker(card); undeclareAttacker(card);
@@ -209,6 +210,7 @@ public class InputAttack extends InputSyncronizedBase {
if (card.getController().isOpponentOf(playerAttacks)) { if (card.getController().isOpponentOf(playerAttacks)) {
if (defenders.contains(card)) { // planeswalker? if (defenders.contains(card)) { // planeswalker?
setCurrentDefender(card); setCurrentDefender(card);
updateMessage();
return true; return true;
} }
} }
@@ -233,6 +235,7 @@ public class InputAttack extends InputSyncronizedBase {
return true; return true;
} }
updatePrompt();
return false; return false;
} }
@@ -326,6 +329,7 @@ public class InputAttack extends InputSyncronizedBase {
showMessage(message); showMessage(message);
updatePrompt(); updatePrompt();
getController().getGui().showCombat(); // redraw sword icons getController().getGui().showCombat(); // redraw sword icons
} }
} }