From 27a2d7f642be47819616419d32c41c86e4be2a42 Mon Sep 17 00:00:00 2001 From: Sol Date: Tue, 19 Dec 2017 03:03:35 +0000 Subject: [PATCH] Experimental fix for Attacking/Passing race condition --- .../main/java/forge/match/input/InputAttack.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/forge-gui/src/main/java/forge/match/input/InputAttack.java b/forge-gui/src/main/java/forge/match/input/InputAttack.java index 9e5d70f2cd8..2d6fa9092ff 100644 --- a/forge-gui/src/main/java/forge/match/input/InputAttack.java +++ b/forge-gui/src/main/java/forge/match/input/InputAttack.java @@ -83,12 +83,12 @@ public class InputAttack extends InputSyncronizedBase { } private void updatePrompt() { - if (canCallBackAttackers()) { - getController().getGui().updateButtons(getOwner(), "OK", "Call Back", true, true, true); - } - else { - getController().getGui().updateButtons(getOwner(), "OK", "Alpha Strike", true, true, true); - } + String alphaLabel = canCallBackAttackers() ? "Call Back" : "AlphaStrike"; + getController().getGui().updateButtons(getOwner(), "OK", alphaLabel, true, true, true); + } + + private void disablePrompt() { + getController().getGui().updateButtons(getOwner(), "Disabled", "Disabled", false, false, false); } @Override @@ -154,6 +154,7 @@ public class InputAttack extends InputSyncronizedBase { @Override protected final boolean onCardSelected(final Card card, final List otherCardsToSelect, final ITriggerEvent triggerEvent) { + disablePrompt(); final List att = combat.getAttackers(); if (triggerEvent != null && triggerEvent.getButton() == 3 && att.contains(card)) { undeclareAttacker(card); @@ -209,6 +210,7 @@ public class InputAttack extends InputSyncronizedBase { if (card.getController().isOpponentOf(playerAttacks)) { if (defenders.contains(card)) { // planeswalker? setCurrentDefender(card); + updateMessage(); return true; } } @@ -233,6 +235,7 @@ public class InputAttack extends InputSyncronizedBase { return true; } + updatePrompt(); return false; } @@ -326,6 +329,7 @@ public class InputAttack extends InputSyncronizedBase { showMessage(message); updatePrompt(); + getController().getGui().showCombat(); // redraw sword icons } }