From 364e82b2e66fb263dc8bd1b2c0c42959a37187b8 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 13 Dec 2011 13:15:43 +0000 Subject: [PATCH] "Challenging the Orc-host" --- .../evaluator/CardMatchesEvaluator.java | 13 +++++-- .../lotro/cards/set12/rohan/Card12_109.java | 38 +++++++++++++++++++ 2 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/rohan/Card12_109.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CardMatchesEvaluator.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CardMatchesEvaluator.java index da8973341..4ce0f9cd6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CardMatchesEvaluator.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CardMatchesEvaluator.java @@ -5,21 +5,28 @@ 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.ConstantEvaluator; import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; public class CardMatchesEvaluator implements Evaluator { private Filterable[] _filters; - private int _matches; + private Evaluator _matches; private int _default; - public CardMatchesEvaluator(int defaultValue, int matches, Filterable... filters) { + public CardMatchesEvaluator(int defaultValue, Evaluator matches, Filterable... filters) { _default = defaultValue; _matches = matches; _filters = filters; } + public CardMatchesEvaluator(int defaultValue, int matches, Filterable... filters) { + _default = defaultValue; + _matches = new ConstantEvaluator(matches); + _filters = filters; + } + @Override public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) { - return Filters.and(_filters).accepts(gameState, modifiersQuerying, self) ? _matches : _default; + return Filters.and(_filters).accepts(gameState, modifiersQuerying, self) ? _matches.evaluateExpression(gameState, modifiersQuerying, self) : _default; } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/rohan/Card12_109.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/rohan/Card12_109.java new file mode 100644 index 000000000..8fd1f9931 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/rohan/Card12_109.java @@ -0,0 +1,38 @@ +package com.gempukku.lotro.cards.set12.rohan; + +import com.gempukku.lotro.cards.AbstractEvent; +import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; +import com.gempukku.lotro.cards.modifiers.evaluator.CardMatchesEvaluator; +import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Side; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; + +/** + * Set: Black Rider + * Side: Free + * Culture: Rohan + * Twilight Cost: 1 + * Type: Event • Skirmish + * Game Text: Make a [ROHAN] companion strength +2 (or +1 for each minion you can spot if that companion has resistance + * 5 or more). + */ +public class Card12_109 extends AbstractEvent { + public Card12_109() { + super(Side.FREE_PEOPLE, 1, Culture.ROHAN, "Challenging the Orc-host", Phase.SKIRMISH); + } + + @Override + public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { + PlayEventAction action = new PlayEventAction(self); + action.appendEffect( + new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, + new CardMatchesEvaluator(2, new CountSpottableEvaluator(CardType.MINION), Filters.minResistance(5)), Culture.ROHAN, CardType.COMPANION)); + return action; + } +}