From 31eb1dca223e5740c7e6518bdc4ada098aff78d6 Mon Sep 17 00:00:00 2001 From: slapshot5 Date: Sun, 30 Oct 2011 16:50:19 +0000 Subject: [PATCH] AF_MoveCounter now accepts Card targeting for a destination --- .../AbilityFactory_Counters.java | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/main/java/forge/card/abilityFactory/AbilityFactory_Counters.java b/src/main/java/forge/card/abilityFactory/AbilityFactory_Counters.java index a1cfc705770..0f8e64dbc88 100644 --- a/src/main/java/forge/card/abilityFactory/AbilityFactory_Counters.java +++ b/src/main/java/forge/card/abilityFactory/AbilityFactory_Counters.java @@ -2102,10 +2102,12 @@ public class AbilityFactory_Counters { source = srcCards.get(0); } - ArrayList destCards = AbilityFactory.getDefinedCards(host, params.get("Defined"), sa); - Card dest = null; - if (destCards.size() > 0) { - dest = destCards.get(0); + ArrayList tgtCards; + Target tgt = af.getAbTgt(); + if (tgt != null) { + tgtCards = tgt.getTargetCards(); + } else { + tgtCards = AbilityFactory.getDefinedCards(host, params.get("Defined"), sa); } Counters cType = Counters.valueOf(params.get("CounterType")); @@ -2116,7 +2118,7 @@ public class AbilityFactory_Counters { sb.append("s"); } sb.append(" from "); - sb.append(source).append(" to ").append(dest); + sb.append(source).append(" to ").append(tgtCards.get(0)); sb.append("."); @@ -2258,20 +2260,24 @@ public class AbilityFactory_Counters { if (srcCards.size() > 0) { source = srcCards.get(0); } - - ArrayList destCards = AbilityFactory.getDefinedCards(host, params.get("Defined"), sa); - Card dest = null; - if (destCards.size() > 0) { - dest = destCards.get(0); + + ArrayList tgtCards; + Target tgt = af.getAbTgt(); + if (tgt != null) { + tgtCards = tgt.getTargetCards(); + } else { + tgtCards = AbilityFactory.getDefinedCards(host, params.get("Defined"), sa); } - if (null != source && null != dest) { - if (source.getCounters(cType) >= amount) { - if (!dest.hasKeyword("CARDNAME can't have counters placed on it.") - && !(dest.hasKeyword("CARDNAME can't have -1/-1 counters placed on it.") && cType - .equals("M1M1"))) { - dest.addCounter(cType, amount); - source.subtractCounter(cType, amount); + for (Card dest : tgtCards) { + if (null != source && null != dest) { + if (source.getCounters(cType) >= amount) { + if (!dest.hasKeyword("CARDNAME can't have counters placed on it.") + && !(dest.hasKeyword("CARDNAME can't have -1/-1 counters placed on it.") && cType + .equals("M1M1"))) { + dest.addCounter(cType, amount); + source.subtractCounter(cType, amount); + } } } }