From 78468572d0b2b3d53217735ff1541c630132c3f5 Mon Sep 17 00:00:00 2001 From: ArsenalNut Date: Sun, 4 Sep 2011 14:51:24 +0000 Subject: [PATCH] fixed calculateAmount so Remembered and Imprint work when ability != null --- .../card/abilityFactory/AbilityFactory.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/main/java/forge/card/abilityFactory/AbilityFactory.java b/src/main/java/forge/card/abilityFactory/AbilityFactory.java index 674f19044d2..cad504de18f 100644 --- a/src/main/java/forge/card/abilityFactory/AbilityFactory.java +++ b/src/main/java/forge/card/abilityFactory/AbilityFactory.java @@ -1183,7 +1183,27 @@ public class AbilityFactory { if (calcX[0].startsWith("Number")) { return CardFactoryUtil.xCount(card, card.getSVar(amount)) * multiplier; } + else if (calcX[0].startsWith("Remembered")) { + // Add whole Remembered list to handlePaid + CardList list = new CardList(); + for (Object o : card.getRemembered()) { + if (o instanceof Card) { + list.add(AllZoneUtil.getCardState((Card) o)); + } + } + return CardFactoryUtil.handlePaid(list, calcX[1], card) * multiplier; + + } + else if (calcX[0].startsWith("Imprinted")) { + // Add whole Imprinted list to handlePaid + CardList list = new CardList(); + for (Card c : card.getImprinted()) { + list.add(AllZoneUtil.getCardState(c)); + } + + return CardFactoryUtil.handlePaid(list, calcX[1], card) * multiplier; + } else if (ability != null) { //Player attribute counting if (calcX[0].startsWith("TargetedPlayer")) { @@ -1275,26 +1295,6 @@ public class AbilityFactory { return CardFactoryUtil.handlePaid(list, calcX[1], card) * multiplier; - } else if (calcX[0].startsWith("Remembered")) { - // Add whole Remembered list to handlePaid - CardList list = new CardList(); - for (Object o : card.getRemembered()) { - if (o instanceof Card) { - list.add(AllZoneUtil.getCardState((Card) o)); - } - } - - return CardFactoryUtil.handlePaid(list, calcX[1], card) * multiplier; - - } else if (calcX[0].startsWith("Imprinted")) { - // Add whole Imprinted list to handlePaid - CardList list = new CardList(); - for (Card c : card.getImprinted()) { - list.add(AllZoneUtil.getCardState(c)); - } - - return CardFactoryUtil.handlePaid(list, calcX[1], card) * multiplier; - } else { return 0; }