From 9cfdd66b4273cd67eee5f9e48a6da982c041e3f7 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 09:13:00 +0000 Subject: [PATCH] - Cleanup in the code of Sovereigns of Lost Alara. --- src/forge/CardList.java | 9 +++++++++ src/forge/CombatUtil.java | 14 ++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/forge/CardList.java b/src/forge/CardList.java index 53486afb82f..14ffaab5050 100644 --- a/src/forge/CardList.java +++ b/src/forge/CardList.java @@ -253,6 +253,15 @@ public class CardList implements Iterable { }); } + //get all cards that don't have this string in their keywords + public CardList getKeywordsDontContain(final String keyword) { + return this.filter(new CardListFilter() { + public boolean addCard(Card c) { + return !c.KeywordsContain(keyword); + } + }); + } + public CardList getTokens() { return this.filter(new CardListFilter() { public boolean addCard(Card c) { diff --git a/src/forge/CombatUtil.java b/src/forge/CombatUtil.java index 9ea04a11de4..e3775024431 100644 --- a/src/forge/CombatUtil.java +++ b/src/forge/CombatUtil.java @@ -2744,10 +2744,14 @@ public class CombatUtil { PlayerZone play = AllZone.getZone(Constant.Zone.Play, attacker.getController()); CardList enchantments = new CardList(library.getCards()); - final String turn = attacker.getController(); + //final String turn = attacker.getController(); enchantments = enchantments.filter(new CardListFilter() { public boolean addCard(Card c) { if(attacker.hasKeyword("Protection from enchantments") || (attacker.hasKeyword("Protection from everything"))) return false; + return(c.isEnchantment() && c.getKeyword().contains("Enchant creature") + && !CardFactoryUtil.hasProtectionFrom(c,attacker)); + + /* What a mess ??? ArrayList keywords = c.getKeyword(); for(String keyword:keywords) { if(keyword.startsWith("Enchant creature")) { @@ -2765,7 +2769,7 @@ public class CombatUtil { } } return true; } - if(turn == "Human") { + if(turn == "Human") { if(keyword.startsWith("Enchant Creature")) { if(keyword.endsWith("Curse")) { String [] colors = new String[6]; @@ -2783,7 +2787,7 @@ public class CombatUtil { } } } - return false; + return false; */ } }); String player = attacker.getController(); @@ -2799,7 +2803,9 @@ public class CombatUtil { Enchantment = ((Card) check); } } else { - Enchantment = CardFactoryUtil.AI_getBestEnchantment(enchantments,attacker, false); + //enchantments = enchantments.getKeywordsContain("enPump"); Doesn't seem to work + //enchantments = enchantments.getKeywordsDontContain("enPumpCurse"); + Enchantment = CardFactoryUtil.AI_getBestEnchantment(enchantments,attacker, false); } if(Enchantment != null && AllZone.GameAction.isCardInPlay(attacker)){ library.remove(Enchantment);