From 261320a365d691d4fe5e3747bf5c6aea168dec84 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 19 Oct 2011 15:15:08 +0000 Subject: [PATCH] "Rare Good Balast" --- .../lotro/cards/set5/shire/Card5_112.java | 4 +- .../lotro/cards/set5/shire/Card5_114.java | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_114.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_112.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_112.java index 1a1451be9..7b5218a7b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_112.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_112.java @@ -29,9 +29,7 @@ public class Card5_112 extends AbstractEvent { public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { return super.checkPlayRequirements(playerId, game, self, twilightModifier) && PlayConditions.canSpot(game, Filters.name("Sam")) - && ( - PlayConditions.canBeDiscarded(self, game, Filters.name("Smeagol")) - || PlayConditions.canBeDiscarded(self, game, Filters.name("Gollum"))); + && PlayConditions.canBeDiscarded(self, game, Filters.or(Filters.name("Smeagol"), Filters.name("Gollum"))); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_114.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_114.java new file mode 100644 index 000000000..260c152a5 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_114.java @@ -0,0 +1,65 @@ +package com.gempukku.lotro.cards.set5.shire; + +import com.gempukku.lotro.cards.AbstractAttachable; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.CancelActivatedEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect; +import com.gempukku.lotro.cards.modifiers.VitalityModifier; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.actions.ActivateCardAction; +import com.gempukku.lotro.logic.effects.ActivateCardEffect; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.timing.Action; +import com.gempukku.lotro.logic.timing.Effect; +import com.gempukku.lotro.logic.timing.EffectResult; + +import java.util.Collections; +import java.util.List; + +/** + * Set: Battle of Helm's Deep + * Side: Free + * Culture: Shire + * Twilight Cost: 1 + * Type: Condition + * Vitality: +1 + * Game Text: Plays on Sam. Response: If a regroup special ability is used, discard Smeagol or Gollum to cancel + * that action. + */ +public class Card5_114 extends AbstractAttachable { + public Card5_114() { + super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.SHIRE, null, "Rare Good Balast", true); + } + + @Override + protected Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { + return Filters.name("Sam"); + } + + @Override + public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { + return Collections.singletonList( + new VitalityModifier(self, Filters.hasAttached(self), 1)); + } + + @Override + public List getOptionalInPlayBeforeActions(String playerId, LotroGame game, Effect effect, PhysicalCard self) { + if (effect.getType() == EffectResult.Type.ACTIVATE) { + ActivateCardEffect activateEffect = (ActivateCardEffect) effect; + if (activateEffect.getActionTimeword() == Phase.REGROUP + && !activateEffect.isCancelled() + && PlayConditions.canBeDiscarded(self, game, Filters.or(Filters.name("Smeagol"), Filters.name("Gollum")))) { + ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.or(Filters.name("Smeagol"), Filters.name("Gollum")))); + action.appendEffect( + new CancelActivatedEffect(self, activateEffect)); + return Collections.singletonList(action); + } + } + return null; + } +}