From a80dd40f64aeba0d7ecb51b72e5c6d21d2cb3030 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 25 Jan 2012 17:26:39 +0000 Subject: [PATCH] "Connected by Fate" --- .../lotro/cards/set15/gollum/Card15_039.java | 3 +- .../lotro/cards/set15/gollum/Card15_040.java | 60 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gollum/Card15_040.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gollum/Card15_039.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gollum/Card15_039.java index a5a65512d..8f427ac76 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gollum/Card15_039.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gollum/Card15_039.java @@ -36,7 +36,8 @@ public class Card15_039 extends AbstractAttachable { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.activated(game, effectResult, Filters.not(Filters.owner(playerId))) + if (PlayConditions.canSpot(game, 2, Race.HOBBIT, Keyword.RING_BOUND) + && TriggerConditions.activated(game, effectResult, Filters.not(Filters.owner(playerId))) && ((ActivateCardResult) effectResult).getActionTimeword() == Phase.SKIRMISH && PlayConditions.canSpot(game, Filters.inSkirmish, Filters.gollumOrSmeagol)) { OptionalTriggerAction action = new OptionalTriggerAction(self); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gollum/Card15_040.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gollum/Card15_040.java new file mode 100644 index 000000000..400e2c4fc --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set15/gollum/Card15_040.java @@ -0,0 +1,60 @@ +package com.gempukku.lotro.cards.set15.gollum; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; +import com.gempukku.lotro.cards.effects.SelfDiscardEffect; +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.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.SpotCondition; +import com.gempukku.lotro.logic.modifiers.StrengthModifier; +import com.gempukku.lotro.logic.modifiers.TwilightCostModifier; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Hunters + * Side: Free + * Culture: Gollum + * Twilight Cost: 2 + * Type: Condition • Support Area + * Game Text: To play, spot Smeagol. While you can spot 2 Ring-bound Hobbits, each Shadow event is twilight cost +1. + * Skirmish: Discard this condition to make each Ring-bound companion strength +1 until the regroup phase. + */ +public class Card15_040 extends AbstractPermanent { + public Card15_040() { + super(Side.FREE_PEOPLE, 2, CardType.CONDITION, Culture.GOLLUM, Zone.SUPPORT, "Connected by Fate", true); + } + + @Override + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int withTwilightRemoved, int twilightModifier, boolean ignoreRoamingPenalty, boolean ignoreCheckingDeadPile) { + return super.checkPlayRequirements(playerId, game, self, withTwilightRemoved, twilightModifier, ignoreRoamingPenalty, ignoreCheckingDeadPile) + && PlayConditions.canSpot(game, Filters.smeagol); + } + + @Override + public Modifier getAlwaysOnModifier(PhysicalCard self) { + return new TwilightCostModifier(self, Filters.and(Side.SHADOW, CardType.EVENT), new SpotCondition(2, Race.HOBBIT, Keyword.RING_BOUND), 1); + } + + @Override + protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self) + && PlayConditions.canSelfDiscard(self, game)) { + ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new SelfDiscardEffect(self)); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new StrengthModifier(self, Filters.and(CardType.COMPANION, Keyword.RING_BOUND), 1), Phase.REGROUP)); + return Collections.singletonList(action); + } + return null; + } +}