diff --git a/forge-gui/src/main/java/forge/gui/input/InputPayMana.java b/forge-gui/src/main/java/forge/gui/input/InputPayMana.java index bab7c997454..e7c7a8322d9 100644 --- a/forge-gui/src/main/java/forge/gui/input/InputPayMana.java +++ b/forge-gui/src/main/java/forge/gui/input/InputPayMana.java @@ -40,7 +40,8 @@ public abstract class InputPayMana extends InputSyncronizedBase { protected ManaCostBeingPaid manaCost; protected final SpellAbility saPaidFor; - boolean bPaid = false; + private boolean bPaid = false; + private Boolean canPayManaCost = null; protected InputPayMana(SpellAbility saToPayFor) { this.player = saToPayFor.getActivatingPlayer(); @@ -302,15 +303,18 @@ public abstract class InputPayMana extends InputSyncronizedBase { protected final void updateMessage() { if (supportAutoPay()) { - //use AI utility to determine if mana cost can be paid - Evaluator proc = new Evaluator() { - @Override - public Boolean evaluate() { - return ComputerUtilMana.canPayManaCost(manaCost, saPaidFor, player); - } - }; - player.getController().runAsAi(proc); - if (proc.getResult()) { + if (canPayManaCost == null) { + //use AI utility to determine if mana cost can be paid if that hasn't been determined yet + Evaluator proc = new Evaluator() { + @Override + public Boolean evaluate() { + return ComputerUtilMana.canPayManaCost(manaCost, saPaidFor, player); + } + }; + player.getController().runAsAi(proc); + canPayManaCost = proc.getResult(); + } + if (canPayManaCost) { ButtonUtil.enableAllFocusOk(); //enabled Auto button if mana cost can be paid } }