From 4a05bf5edec30f68fa0a2a86ca6a4fdbb396314b Mon Sep 17 00:00:00 2001 From: Sloth Date: Fri, 21 Sep 2012 17:53:42 +0000 Subject: [PATCH] - Fixed tapXType costs not canceling properly. --- src/main/java/forge/GameActionUtil.java | 26 +++++++++++-------- .../java/forge/card/cost/CostTapType.java | 6 ++--- .../java/forge/card/spellability/Spell.java | 1 - 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/main/java/forge/GameActionUtil.java b/src/main/java/forge/GameActionUtil.java index 2136821f5f8..10c6edd99b9 100644 --- a/src/main/java/forge/GameActionUtil.java +++ b/src/main/java/forge/GameActionUtil.java @@ -1791,16 +1791,18 @@ public final class GameActionUtil { for (String keyword : source.getKeyword()) { if (keyword.startsWith("Buyback")) { for (SpellAbility sa : abilities) { - final SpellAbility newSA = sa.copy(); - newSA.setBasicSpell(false); - newSA.setPayCosts(GameActionUtil.combineCosts(newSA, keyword.substring(8))); - newSA.setManaCost(""); - newSA.setDescription(sa.getDescription() + " (with Buyback)"); - ArrayList newoacs = new ArrayList(); - newoacs.addAll(sa.getOptionalAdditionalCosts()); - newSA.setOptionalAdditionalCosts(newoacs); - newSA.addOptionalAdditionalCosts("Buyback"); - newAbilities.add(newAbilities.size(), newSA); + final SpellAbility newSA = sa.copy(); + newSA.setBasicSpell(false); + newSA.setPayCosts(GameActionUtil.combineCosts(newSA, keyword.substring(8))); + newSA.setManaCost(""); + newSA.setDescription(sa.getDescription() + " (with Buyback)"); + ArrayList newoacs = new ArrayList(); + newoacs.addAll(sa.getOptionalAdditionalCosts()); + newSA.setOptionalAdditionalCosts(newoacs); + newSA.addOptionalAdditionalCosts("Buyback"); + if (newSA.canPlay()) { + newAbilities.add(newAbilities.size(), newSA); + } } abilities.addAll(0, newAbilities); newAbilities.clear(); @@ -1816,7 +1818,9 @@ public final class GameActionUtil { newoacs.addAll(sa.getOptionalAdditionalCosts()); newSA.setOptionalAdditionalCosts(newoacs); newSA.addOptionalAdditionalCosts(keyword); - newAbilities.add(newAbilities.size(), newSA); + if (newSA.canPlay()) { + newAbilities.add(newAbilities.size(), newSA); + } } abilities.addAll(0, newAbilities); newAbilities.clear(); diff --git a/src/main/java/forge/card/cost/CostTapType.java b/src/main/java/forge/card/cost/CostTapType.java index 4265cbc9e8b..f7c16b5f54a 100644 --- a/src/main/java/forge/card/cost/CostTapType.java +++ b/src/main/java/forge/card/cost/CostTapType.java @@ -237,9 +237,9 @@ public class CostTapType extends CostPartWithList { this.done(); } - if (cardList.size() == 0) { - this.stop(); - } + /*if (cardList.size() == 0) { + this.cancel(); + }*/ final int left = nCards - this.nTapped; CMatchUI.SINGLETON_INSTANCE diff --git a/src/main/java/forge/card/spellability/Spell.java b/src/main/java/forge/card/spellability/Spell.java index b129ffa57a8..1d88c4489d3 100644 --- a/src/main/java/forge/card/spellability/Spell.java +++ b/src/main/java/forge/card/spellability/Spell.java @@ -163,7 +163,6 @@ public abstract class Spell extends SpellAbility implements java.io.Serializable } catch (final NumberFormatException e) { y = CardFactoryUtil.xCount(card, card.getSVar(compareTo)); } - System.out.println("NeedsToPlayVar: " + sVar + "(" + x + ")" + comparator + "(" + y + ")"); if (!AllZoneUtil.compare(x, comparator, y)) { return false; }