"I'd Make You Squeak"

This commit is contained in:
marcins78@gmail.com
2011-10-19 14:29:21 +00:00
parent 57ff65648e
commit b73cb57ba9
2 changed files with 68 additions and 4 deletions

View File

@@ -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<? extends Modifier> 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);
}
}));
}
}

View File

@@ -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;
}