From 210429d2f8a58834af2fad21c85a8c72db157d38 Mon Sep 17 00:00:00 2001 From: marcins78 Date: Wed, 30 Jan 2013 14:52:21 +0000 Subject: [PATCH] "Ancient Chieftain", "Elder Goblin" --- .../evaluator/CountStackedEvaluator.java | 35 +++++++++++++++++++ .../lotro/cards/set20/moria/Card20_250.java | 30 ++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CountStackedEvaluator.java create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/moria/Card20_250.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CountStackedEvaluator.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CountStackedEvaluator.java new file mode 100644 index 000000000..2ea2f00de --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CountStackedEvaluator.java @@ -0,0 +1,35 @@ +package com.gempukku.lotro.cards.modifiers.evaluator; + +import com.gempukku.lotro.common.Filterable; +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; + +public class CountStackedEvaluator implements Evaluator { + private Filterable _stackedOn; + private Filterable[] _stackedCard; + private Integer _limit; + + public CountStackedEvaluator(Filterable stackedOn, Filterable... stackedCard) { + _stackedOn = stackedOn; + _stackedCard = stackedCard; + } + + public CountStackedEvaluator(int limit, Filterable stackedOn, Filterable... stackedCard) { + this(stackedOn, stackedCard); + _limit = limit; + } + + @Override + public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) { + int count = 0; + for (PhysicalCard card : Filters.filterActive(gameState, modifiersQuerying, _stackedOn)) { + count += Filters.filter(gameState.getStackedCards(card), gameState, modifiersQuerying, _stackedCard).size(); + } + if (_limit != null) + return Math.min(_limit, count); + return count; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/moria/Card20_250.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/moria/Card20_250.java new file mode 100644 index 000000000..7586bdace --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set20/moria/Card20_250.java @@ -0,0 +1,30 @@ +package com.gempukku.lotro.cards.set20.moria; + +import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.modifiers.evaluator.CountStackedEvaluator; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.StrengthModifier; + +/** + * 3 + * •Ancient Chieftan, Elder Goblin + * Moria Minion • Goblin + * 9 3 4 + * Ancient Chieftain is strength +1 for each Goblin stacked on a [Moria] condition. + */ +public class Card20_250 extends AbstractMinion { + public Card20_250() { + super(3, 9, 3, 4, Race.GOBLIN, Culture.MORIA, "Ancient Chieftain", "Elder Goblin", true); + } + + @Override + public Modifier getAlwaysOnModifier(PhysicalCard self) { + return new StrengthModifier(self, self, null, + new CountStackedEvaluator(Filters.and(Culture.MORIA, CardType.CONDITION), Race.GOBLIN)); + } +}