From 9b48f253ceab9219cbd1e3afa7e8a4269ac6ddcb Mon Sep 17 00:00:00 2001 From: Sloth Date: Mon, 10 Jun 2013 08:43:49 +0000 Subject: [PATCH] - Improved Bounce AI. --- .../forge/card/ability/ai/ChangeZoneAi.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java index fab4b7a3996..bd049cafdcc 100644 --- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java +++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java @@ -765,6 +765,21 @@ public class ChangeZoneAi extends SpellAbilityAi { } } } + + // When bouncing opponents stuff, don't bounce cards with CMC 0 + list = CardLists.filter(list, new Predicate() { + @Override + public boolean apply(final Card c) { + for (Card aura : c.getEnchantedBy()) { + if (aura.getController().isOpponentOf(ai)) { + return true; + } else { + return false; + } + } + return c.getCMC() > 0; + } + }); // TODO: Blink permanents with ETB triggers /*else if (!sa.isTrigger() && SpellAbilityAi.playReusable(ai, sa)) { aiPermanents = CardLists.filter(aiPermanents, new Predicate() { @@ -810,8 +825,7 @@ public class ChangeZoneAi extends SpellAbilityAi { if (origin.equals(ZoneType.Battlefield) && destination.equals(ZoneType.Exile) && (subApi == ApiType.DelayedTrigger || (subApi == ApiType.ChangeZone && subAffected.equals("Remembered"))) - && !(ai.getGame().getPhaseHandler().is(PhaseType.COMBAT_DECLARE_ATTACKERS) || sa - .isAbility())) { + && !(ai.getGame().getPhaseHandler().is(PhaseType.COMBAT_DECLARE_ATTACKERS) || sa.isAbility())) { return false; }