From b58c9c4aab4cb1fcbd36e959c5dcc31813f071a8 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 2 Nov 2011 11:31:20 +0000 Subject: [PATCH] "Sneaking!" --- .../lotro/cards/set7/gollum/Card7_073.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_073.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_073.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_073.java new file mode 100644 index 000000000..8edeb67f0 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_073.java @@ -0,0 +1,56 @@ +package com.gempukku.lotro.cards.set7.gollum; + +import com.gempukku.lotro.cards.AbstractEvent; +import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.effects.CancelSkirmishEffect; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +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; +import com.gempukku.lotro.logic.effects.HealCharactersEffect; + +/** + * Set: The Return of the King + * Side: Free + * Culture: Gollum + * Twilight Cost: 2 + * Type: Event • Skirmish + * Game Text: Stealth. Heal Smeagol (or cancel Smeagol's skirmish if he has more vitality than the minion or minions + * he is skirmishing). + */ +public class Card7_073 extends AbstractEvent { + public Card7_073() { + super(Side.FREE_PEOPLE, 2, Culture.GOLLUM, "Sneaking!", Phase.SKIRMISH); + addKeyword(Keyword.STEALTH); + } + + @Override + public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { + PlayEventAction action = new PlayEventAction(self); + final PhysicalCard smeagol = Filters.findFirstActive(game.getGameState(), game.getModifiersQuerying(), Filters.smeagol); + if (smeagol != null) { + if (Filters.inSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), smeagol) + && hasMoreVitalityThanMinionsHeIsSkirmishing(game, smeagol)) { + action.appendEffect( + new CancelSkirmishEffect(smeagol)); + } else { + action.appendEffect( + new HealCharactersEffect(self, smeagol)); + } + } + return action; + } + + private boolean hasMoreVitalityThanMinionsHeIsSkirmishing(LotroGame game, PhysicalCard smeagol) { + int smeagolVitality = game.getModifiersQuerying().getVitality(game.getGameState(), smeagol); + for (PhysicalCard minion : Filters.filterActive(game.getGameState(), game.getModifiersQuerying(), Filters.inSkirmishAgainst(smeagol))) { + int minionVitality = game.getModifiersQuerying().getVitality(game.getGameState(), minion); + if (minionVitality >= smeagolVitality) + return false; + } + return true; + } +}