From 8e38868516b3bd6d7d19ac45fb1bdb68c275bbbc Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Fri, 13 Jan 2012 11:24:50 +0000 Subject: [PATCH] "Assault Denizen" --- .../CountCultureTokensEvaluator.java | 32 +++++++++++++++++++ .../cards/set13/uruk_hai/Card13_159.java | 28 ++++------------ 2 files changed, 38 insertions(+), 22 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CountCultureTokensEvaluator.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CountCultureTokensEvaluator.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CountCultureTokensEvaluator.java new file mode 100644 index 000000000..a22fe0f91 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CountCultureTokensEvaluator.java @@ -0,0 +1,32 @@ +package com.gempukku.lotro.cards.modifiers.evaluator; + +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.common.Token; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.GameState; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; +import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; + +import java.util.Map; + +public class CountCultureTokensEvaluator implements Evaluator { + private Filterable[] _filters; + + public CountCultureTokensEvaluator(Filterable... filters) { + _filters = filters; + } + + @Override + public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) { + int count = 0; + for (PhysicalCard physicalCard : Filters.filterActive(gameState, modifiersQuerying, Filters.and(_filters, Filters.hasAnyCultureTokens(1)))) { + for (Map.Entry tokens : gameState.getTokens(physicalCard).entrySet()) { + if (tokens.getKey().getCulture() != null) + count += tokens.getValue(); + } + } + + return count; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_159.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_159.java index 89e96e880..f46e80327 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_159.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/uruk_hai/Card13_159.java @@ -1,16 +1,14 @@ package com.gempukku.lotro.cards.set13.uruk_hai; import com.gempukku.lotro.cards.AbstractMinion; -import com.gempukku.lotro.common.*; -import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.cards.modifiers.evaluator.CountCultureTokensEvaluator; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.GameState; import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; - -import java.util.Map; /** * Set: Bloodlines @@ -31,20 +29,6 @@ public class Card13_159 extends AbstractMinion { @Override public Modifier getAlwaysOnModifier(PhysicalCard self) { - return new StrengthModifier(self, self, null, - new Evaluator() { - @Override - public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) { - int count = 0; - for (PhysicalCard physicalCard : Filters.filterActive(gameState, modifiersQuerying, Side.FREE_PEOPLE, Filters.hasAnyCultureTokens(1))) { - for (Map.Entry tokens : gameState.getTokens(physicalCard).entrySet()) { - if (tokens.getKey().getCulture() != null) - count += tokens.getValue(); - } - } - - return count; - } - }); + return new StrengthModifier(self, self, null, new CountCultureTokensEvaluator(Side.FREE_PEOPLE)); } }