diff --git a/src/main/java/forge/card/ability/AbilityUtils.java b/src/main/java/forge/card/ability/AbilityUtils.java index 664d515e3c6..f29697ac049 100644 --- a/src/main/java/forge/card/ability/AbilityUtils.java +++ b/src/main/java/forge/card/ability/AbilityUtils.java @@ -1111,7 +1111,7 @@ public class AbilityUtils { } } else { // if it's paid by the AI already the human can pay, but it won't change anything - paid |= HumanPlay.payCostDuringAbilityResolve(payer, source, cost, sa); + paid |= HumanPlay.payCostDuringAbilityResolve(payer, source, cost, sa, null); } } diff --git a/src/main/java/forge/game/player/HumanPlay.java b/src/main/java/forge/game/player/HumanPlay.java index 56ab45a126a..c2cf4fd274c 100644 --- a/src/main/java/forge/game/player/HumanPlay.java +++ b/src/main/java/forge/game/player/HumanPlay.java @@ -283,7 +283,8 @@ public class HumanPlay { * a {@link forge.Command} object. * @param sourceAbility TODO */ - public static boolean payCostDuringAbilityResolve(final Player p, final Card source, final Cost cost, SpellAbility sourceAbility) { + public static boolean payCostDuringAbilityResolve(final Player p, final Card source, final Cost cost, SpellAbility sourceAbility + , String prompt) { // Only human player pays this way Card current = null; // Used in spells with RepeatEach effect to distinguish cards, Cut the Tethers @@ -296,8 +297,6 @@ public class HumanPlay { current = source.getImprinted().get(0); } - String promptCurrent = current == null ? "" : "Current Card: " + current + "\r\n"; - final List parts = cost.getCostParts(); ArrayList remainingParts = new ArrayList(cost.getCostParts()); CostPart costPart = null; @@ -451,8 +450,8 @@ public class HumanPlay { } } if (typeChoices.size() > 1) { - String prompt = "Select type counters to remove"; - counterType = GuiChoose.one(prompt, typeChoices); + String cprompt = "Select type counters to remove"; + counterType = GuiChoose.one(cprompt, typeChoices); } else { counterType = typeChoices.get(0); } @@ -603,7 +602,10 @@ public class HumanPlay { if (!(costPart instanceof CostPartMana )) throw new RuntimeException("GameActionUtil.payCostDuringAbilityResolve - The remaining payment type is not Mana."); - String prompt = source + "\r\n" + promptCurrent; + if (prompt == null) { + String promptCurrent = current == null ? "" : "Current Card: " + current + "\r\n"; + prompt = source + "\r\n" + promptCurrent; + } InputPayMana toSet = new InputPayManaExecuteCommands(p, prompt, cost.getCostMana().getManaToPay()); Singletons.getControl().getInputQueue().setInputAndWait(toSet); return toSet.isPaid(); diff --git a/src/main/java/forge/game/player/PlayerControllerHuman.java b/src/main/java/forge/game/player/PlayerControllerHuman.java index 6561616402c..98f8cc52838 100644 --- a/src/main/java/forge/game/player/PlayerControllerHuman.java +++ b/src/main/java/forge/game/player/PlayerControllerHuman.java @@ -585,8 +585,8 @@ public class PlayerControllerHuman extends PlayerController { * @see forge.game.player.PlayerController#payManaOptional(forge.Card, forge.card.cost.Cost) */ @Override - public boolean payManaOptional(Card c, Cost attackCost, String prompt, ManaPaymentPurpose purpose) { - return HumanPlay.payCostDuringAbilityResolve(player, c, attackCost, null); + public boolean payManaOptional(Card c, Cost cost, String prompt, ManaPaymentPurpose purpose) { + return HumanPlay.payCostDuringAbilityResolve(player, c, cost, null, prompt); } diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index 136235e0b4e..0ac7b3cfd07 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -353,7 +353,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable