From c79b3d0cd24cc1a4abb6f484b5c16bcaf92fda1b Mon Sep 17 00:00:00 2001 From: Sloth Date: Sat, 2 Mar 2013 19:24:14 +0000 Subject: [PATCH] - The AI can now use Gruul Charm. --- res/cardsfolder/g/gruul_charm.txt | 2 +- src/main/java/forge/card/ability/ai/ControlGainAi.java | 7 +++++++ src/main/java/forge/card/ability/ai/DamageAllAi.java | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/res/cardsfolder/g/gruul_charm.txt b/res/cardsfolder/g/gruul_charm.txt index 32df38a81eb..817734e9974 100644 --- a/res/cardsfolder/g/gruul_charm.txt +++ b/res/cardsfolder/g/gruul_charm.txt @@ -4,7 +4,7 @@ Types:Instant A:SP$ Charm | Cost$ R G | Choices$ CantBlockEffect,DBGainCtrl,DmgAll | CharmNum$ 1 | SpellDescription$ Choose one - Creatures without flying can't block this turn; or gain control of all permanents you own; or Gruul Charm deals 3 damage to each creature with flying. SVar:CantBlockEffect:DB$ Effect | Name$ Gruul Charm Effect | StaticAbilities$ KWPump | AILogic$ Evasion | SpellDescription$ Creatures without flying can't block this turn. SVar:KWPump:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.withoutFlying | AddHiddenKeyword$ CARDNAME can't block. | Description$ Creatures without flying can't block this turn. -SVar:DBGainCtrl:DB$ GainControl | Cost$ R | AllValid$ Permanent.YouOwn | SpellDescription$ Gain control of all permanents you own. +SVar:DBGainCtrl:DB$ GainControl | AllValid$ Permanent.YouOwn | SpellDescription$ Gain control of all permanents you own. SVar:DmgAll:DB$ DamageAll | NumDmg$ 3 | ValidCards$ Creature.withFlying | ValidDescription$ each creature with flying. | SpellDescription$ CARDNAME deals 3 damage to each creature with flying. SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/gruul_charm.jpg diff --git a/src/main/java/forge/card/ability/ai/ControlGainAi.java b/src/main/java/forge/card/ability/ai/ControlGainAi.java index 2d11c84248d..8515e0f8ff4 100644 --- a/src/main/java/forge/card/ability/ai/ControlGainAi.java +++ b/src/main/java/forge/card/ability/ai/ControlGainAi.java @@ -77,6 +77,13 @@ public class ControlGainAi extends SpellAbilityAi { // if Defined, then don't worry about targeting if (tgt == null) { + if (sa.hasParam("AllValid")) { + List tgtCards = ai.getOpponent().getCardsIn(ZoneType.Battlefield); + tgtCards = AbilityUtils.filterListByType(tgtCards, sa.getParam("AllValid"), sa); + if (tgtCards.isEmpty()) { + return false; + } + } return true; } else { tgt.resetTargets(); diff --git a/src/main/java/forge/card/ability/ai/DamageAllAi.java b/src/main/java/forge/card/ability/ai/DamageAllAi.java index 27477bb4c06..6a8ea75c1ef 100644 --- a/src/main/java/forge/card/ability/ai/DamageAllAi.java +++ b/src/main/java/forge/card/ability/ai/DamageAllAi.java @@ -91,7 +91,7 @@ public class DamageAllAi extends SpellAbilityAi { } int minGain = 200; // The minimum gain in destroyed creatures - if (sa.getPayCosts().isReusuableResource()) { + if (sa.getPayCosts() != null && sa.getPayCosts().isReusuableResource()) { minGain = 100; }