From b73cb57ba98d2211b952ed5b353721dc2203b549 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 19 Oct 2011 14:29:21 +0000 Subject: [PATCH] "I'd Make You Squeak" --- .../lotro/cards/set5/rohan/Card5_101.java | 64 +++++++++++++++++++ .../logic/modifiers/TwilightCostModifier.java | 8 +-- 2 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/rohan/Card5_101.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/rohan/Card5_101.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/rohan/Card5_101.java new file mode 100644 index 000000000..90b8be23b --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/rohan/Card5_101.java @@ -0,0 +1,64 @@ +package com.gempukku.lotro.cards.set5.rohan; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.actions.PlayPermanentAction; +import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.GameState; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; +import com.gempukku.lotro.logic.modifiers.TwilightCostModifier; +import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; + +import java.util.Collections; +import java.util.List; + +/** + * Set: Battle of Helm's Deep + * Side: Shadow + * Culture: Sauron + * Twilight Cost: 0 + * Type: Condition + * Game Text: To play, exert 2 [SAURON] Orcs. Plays to your support area. The Shadow number of each site is +1 for each + * wound on a Hobbit (limit +3). + */ +public class Card5_101 extends AbstractPermanent { + public Card5_101() { + super(Side.SHADOW, 0, CardType.CONDITION, Culture.SAURON, Zone.SUPPORT, "I'd Make You Squeak"); + } + + @Override + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + return super.checkPlayRequirements(playerId, game, self, twilightModifier) + && PlayConditions.canExertMultiple(self, game, 1, 2, Culture.SAURON, Race.ORC); + } + + @Override + public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + final PlayPermanentAction playCardAction = super.getPlayCardAction(playerId, game, self, twilightModifier); + playCardAction.appendCost( + new ChooseAndExertCharactersEffect(playCardAction, playerId, 2, 2, Culture.SAURON, Race.ORC)); + return playCardAction; + } + + @Override + public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { + return Collections.singletonList( + new TwilightCostModifier(self, CardType.SITE, null, + new Evaluator() { + @Override + public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) { + int wounds = 0; + for (PhysicalCard hobbit : Filters.filterActive(gameState, modifiersQuerying, Race.HOBBIT, Filters.wounded)) { + wounds += gameState.getWounds(hobbit); + } + + return Math.min(3, wounds); + } + })); + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/TwilightCostModifier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/TwilightCostModifier.java index 9baff3c1e..99255ef78 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/TwilightCostModifier.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/TwilightCostModifier.java @@ -1,6 +1,6 @@ package com.gempukku.lotro.logic.modifiers; -import com.gempukku.lotro.filters.Filter; +import com.gempukku.lotro.common.Filterable; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator; @@ -9,15 +9,15 @@ import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; public class TwilightCostModifier extends AbstractModifier { private Evaluator _evaluator; - public TwilightCostModifier(PhysicalCard source, Filter affectFilter, int twilightCostModifier) { + public TwilightCostModifier(PhysicalCard source, Filterable affectFilter, int twilightCostModifier) { this(source, affectFilter, null, twilightCostModifier); } - public TwilightCostModifier(PhysicalCard source, Filter affectFilter, Condition condition, int twilightCostModifier) { + public TwilightCostModifier(PhysicalCard source, Filterable affectFilter, Condition condition, int twilightCostModifier) { this(source, affectFilter, condition, new ConstantEvaluator(twilightCostModifier)); } - public TwilightCostModifier(PhysicalCard source, Filter affectFilter, Condition condition, Evaluator evaluator) { + public TwilightCostModifier(PhysicalCard source, Filterable affectFilter, Condition condition, Evaluator evaluator) { super(source, null, affectFilter, condition, new ModifierEffect[]{ModifierEffect.TWILIGHT_COST_MODIFIER}); _evaluator = evaluator; }