From ea78324d1539ef891b303212b54e72784d05be1b Mon Sep 17 00:00:00 2001 From: Sloth Date: Sat, 16 Mar 2013 10:25:48 +0000 Subject: [PATCH] - Little improvements in AttachAI. --- res/quest/duels/Elrond 2.dck | 2 +- res/quest/duels/Elrond 3.dck | 2 +- .../java/forge/card/ability/ai/AttachAi.java | 21 ++++++++++++------- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/res/quest/duels/Elrond 2.dck b/res/quest/duels/Elrond 2.dck index bca769dab27..26d325cc061 100644 --- a/res/quest/duels/Elrond 2.dck +++ b/res/quest/duels/Elrond 2.dck @@ -3,7 +3,7 @@ Name=Elrond 2 Title=Elrond Difficulty=medium -Description=RGW Aura deck with Rabid Wombat +Description=RGW Aura deck with Aura Gnarlid and Rabid Wombat Icon=Elrond.jpg Deck Type=constructed [main] diff --git a/res/quest/duels/Elrond 3.dck b/res/quest/duels/Elrond 3.dck index c9910ae12bb..aa87ff35078 100644 --- a/res/quest/duels/Elrond 3.dck +++ b/res/quest/duels/Elrond 3.dck @@ -3,7 +3,7 @@ Name=Elrond 3 Title=Elrond Difficulty=hard -Description=RGW Aura deck with Kor Spiritdancer +Description=RGW Aura deck with Aura Gnarlid, Uril, the Miststalker and Kor Spiritdancer Icon=Elrond.jpg Deck Type=constructed [main] diff --git a/src/main/java/forge/card/ability/ai/AttachAi.java b/src/main/java/forge/card/ability/ai/AttachAi.java index 6d16b2fe99d..19cb2f2f684 100644 --- a/src/main/java/forge/card/ability/ai/AttachAi.java +++ b/src/main/java/forge/card/ability/ai/AttachAi.java @@ -805,18 +805,25 @@ public class AttachAi extends SpellAbilityAi { if (attachSource.isAura() && !attachSource.getName().equals("Daybreak Coronet")) { // TODO For Auras like Rancor, that aren't as likely to lead to // card disadvantage, this check should be skipped - prefList = CardLists.filter(prefList, Predicates.not(Presets.ENCHANTED)); - } - - if (!grantingAbilities && keywords.isEmpty()) { - // Probably prefer to Enchant Creatures that Can Attack - // Filter out creatures that can't Attack or have Defender prefList = CardLists.filter(prefList, new Predicate() { @Override public boolean apply(final Card c) { - return !c.isCreature() || CombatUtil.canAttackNextTurn(c); + return !c.isEnchanted() || c.hasKeyword("Hexproof"); } }); + } + + if (!grantingAbilities) { + // Probably prefer to Enchant Creatures that Can Attack + // Filter out creatures that can't Attack or have Defender + if (keywords.isEmpty()) { + prefList = CardLists.filter(prefList, new Predicate() { + @Override + public boolean apply(final Card c) { + return !c.isCreature() || CombatUtil.canAttackNextTurn(c); + } + }); + } c = ComputerUtilCard.getBestAI(prefList); } else { // If we grant abilities, we may want to put it on something Weak?