From 4c0824bd7973d2433ec53414e9cb552cc2d6e03f Mon Sep 17 00:00:00 2001 From: ArsenalNut Date: Sat, 21 Jan 2012 16:54:27 +0000 Subject: [PATCH] fixed "any" mana bug with choice not getting reset --- .../forge/card/abilityfactory/AbilityFactoryMana.java | 3 +++ src/main/java/forge/card/mana/ManaPool.java | 6 +++--- src/main/java/forge/card/spellability/AbilityMana.java | 10 ++++++++++ .../java/forge/gui/input/InputPayManaCostUtil.java | 3 --- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryMana.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryMana.java index fd30e1f82d4..67141f48b43 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryMana.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryMana.java @@ -354,6 +354,9 @@ public class AbilityFactoryMana { abMana.produceMana(AbilityFactoryMana.generatedMana(abMana, af, sa), player); } + // Only clear express choice after mana has been produced + abMana.clearExpressChoice(); + // convert these to SubAbilities when appropriate if (params.containsKey("Stuck")) { abMana.setUndoable(false); diff --git a/src/main/java/forge/card/mana/ManaPool.java b/src/main/java/forge/card/mana/ManaPool.java index 38ade354da9..7430edb859b 100644 --- a/src/main/java/forge/card/mana/ManaPool.java +++ b/src/main/java/forge/card/mana/ManaPool.java @@ -702,12 +702,12 @@ public class ManaPool { // paying via Mana Abilities for (final AbilityMana mability : mAbilities) { paidAbs.add(mability); // why??? - //TODO: Look at using new getManaProduced() method of Ability_Mana (ArsenalNut) //String[] cost = formatMana(mability); String[] cost = null; if (mability.isAnyMana()) { - cost = new String[1]; - cost[0] = mability.getExpressChoice(); + //TODO: (ArsenalNut) Look at using new getManaProduced() method of Ability_Mana + // for all mana sources not just "any" mana sources + cost = mability.getManaProduced().split(" "); } else { cost = formatMana(mability); diff --git a/src/main/java/forge/card/spellability/AbilityMana.java b/src/main/java/forge/card/spellability/AbilityMana.java index 295b18fddba..3c7c012c81d 100644 --- a/src/main/java/forge/card/spellability/AbilityMana.java +++ b/src/main/java/forge/card/spellability/AbilityMana.java @@ -292,6 +292,16 @@ public abstract class AbilityMana extends AbilityActivated implements java.io.Se return this.lastExpressChoice; } + /** + *

+ * clearExpressChoice. + *

+ * + */ + public void clearExpressChoice() { + this.lastExpressChoice = ""; + } + /** *

* Getter for the field lastProduced. diff --git a/src/main/java/forge/gui/input/InputPayManaCostUtil.java b/src/main/java/forge/gui/input/InputPayManaCostUtil.java index df421dbaf35..d499627df24 100644 --- a/src/main/java/forge/gui/input/InputPayManaCostUtil.java +++ b/src/main/java/forge/gui/input/InputPayManaCostUtil.java @@ -192,9 +192,6 @@ public class InputPayManaCostUtil { manaCost = AllZone.getHumanPlayer().getManaPool().subtractMana(sa, manaCost, chosen); - // reset choice to blank, make sure this done after subtractMana - chosen.setExpressChoice(""); - AllZone.getHumanPlayer().getZone(Zone.Battlefield).updateObservers(); // DO NOT REMOVE THIS, otherwise the cards don't always tap (copied) return manaCost;