From d8bde04f98adda015ecf25485fff588c0e948710 Mon Sep 17 00:00:00 2001 From: Sol Date: Mon, 5 Sep 2011 22:46:13 +0000 Subject: [PATCH] - Fix for new Cost object not using CostChange information properly --- src/main/java/forge/card/cost/Cost.java | 4 ++-- src/main/java/forge/card/cost/CostMana.java | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/forge/card/cost/Cost.java b/src/main/java/forge/card/cost/Cost.java index d7f9f0ffc0a..c89b126c90f 100644 --- a/src/main/java/forge/card/cost/Cost.java +++ b/src/main/java/forge/card/cost/Cost.java @@ -300,8 +300,8 @@ public class Cost { if (part instanceof CostMana){ CostMana costMana = (CostMana)part; - if (getTotalMana() != "0") { // 11/15/10 use getTotalMana() to account for X reduction - String mana = getTotalMana(); + String mana = getTotalMana(); + if (mana != "0") { // 11/15/10 use getTotalMana() to account for X reduction costMana.setAdjustedMana(AllZone.getGameAction().getSpellCostChange(sa, new ManaCost(mana)).toString()); } } diff --git a/src/main/java/forge/card/cost/CostMana.java b/src/main/java/forge/card/cost/CostMana.java index 5062ea45025..07ad5ee74af 100644 --- a/src/main/java/forge/card/cost/CostMana.java +++ b/src/main/java/forge/card/cost/CostMana.java @@ -50,6 +50,14 @@ public class CostMana extends CostPart { this.adjustedMana = adjustedMana; } + public String getManaToPay() { + // Only used for Human to pay for non-X cost first + if (!adjustedMana.equals("")) + return adjustedMana; + + return mana; + } + public CostMana(String mana, int amount){ this.mana = mana.trim(); this.amountX = amount; @@ -95,7 +103,7 @@ public class CostMana extends CostPart { manaToAdd = AbilityFactory.calculateAmount(source, "X", ability) * getXMana(); } } - if (!getMana().equals("0") || manaToAdd > 0) + if (!getManaToPay().equals("0") || manaToAdd > 0) CostUtil.setInput(CostMana.input_payMana(ability, payment, this, manaToAdd)); else if (getXMana() > 0) CostUtil.setInput(CostMana.input_payXMana(ability, payment, this, getXMana())); @@ -188,7 +196,7 @@ public class CostMana extends CostPart { if (sa.getSourceCard().isCopiedSpell() && sa.isSpell()) { manaCost = new ManaCost("0"); } else { - String mana = costMana.getMana(); + String mana = costMana.getManaToPay(); manaCost = new ManaCost(mana); manaCost.increaseColorlessMana(manaToAdd); }