From 7d8a0829bae2567f1cea9eacb58b5347c0705b48 Mon Sep 17 00:00:00 2001 From: Sloth Date: Mon, 20 Oct 2014 18:41:38 +0000 Subject: [PATCH] - Fixed AI moving counters from Spike Soldier onto itself. --- .../java/forge/ai/ability/CountersPutAi.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java index e0c05a77947..512e8904cd0 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java @@ -12,6 +12,8 @@ import forge.game.card.CardLists; import forge.game.card.CounterType; import forge.game.combat.CombatUtil; import forge.game.cost.Cost; +import forge.game.cost.CostPart; +import forge.game.cost.CostRemoveCounter; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; import forge.game.player.Player; @@ -65,8 +67,25 @@ public class CountersPutAi extends SpellAbilityAi { return false; } - if (!ComputerUtilCost.checkRemoveCounterCost(abCost, source)) { - return false; + // disable moving counters + for (final CostPart part : abCost.getCostParts()) { + if (part instanceof CostRemoveCounter) { + final CostRemoveCounter remCounter = (CostRemoveCounter) part; + final CounterType counterType = remCounter.counter; + if (counterType.name().equals(type)) { + return false; + } + if (!part.payCostFromSource()) { + if (counterType.name().equals("P1P1")) { + return false; + } + continue; + } + //don't kill the creature + if (counterType.name().equals("P1P1") && source.getLethalDamage() <= 1) { + return false; + } + } } }