diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set22/gollum/Card22_19.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set22/gollum/Card22_19.java new file mode 100644 index 000000000..da4c126a2 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set22/gollum/Card22_19.java @@ -0,0 +1,61 @@ +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.ChoiceEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect; +import com.gempukku.lotro.common.Culture; +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.AddThreatsEffect; +import com.gempukku.lotro.logic.timing.Effect; + +import java.util.LinkedList; +import java.util.List; + +/** + * Set: The Short Rest + * Side: Shadow + * Culture: Gollum + * Twilight Cost: 0 + * Type: Event • Shadow + * Game Text: Discard an orc to play Gollum from your draw deck or discard pile. + */ +public class Card7_053 extends AbstractEvent { + public Card7_053() { + super(Side.SHADOW, 0, Culture.GOLLUM, "Better Than Nothing", Phase.SHADOW); + } + + @Override + public PlayEventAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { + PlayEventAction action = new PlayEventAction(self); + if (Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Race.ORC)) { + action.appendCost( + new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Race.ORC)); + List possibleEffects = new LinkedList(); + possibleEffects.add( + new ChooseAndPlayCardFromDeckEffect(playerId, Filters.gollum) { + @Override + public String getText(LotroGame game) { + return "Play Gollum from your draw deck"; + } + }); + if (PlayConditions.canPlayFromDiscard(playerId, game, Filters.gollum)) { + possibleEffects.add( + new ChooseAndPlayCardFromDiscardEffect(playerId, game, Filters.gollum) { + @Override + public String getText(LotroGame game) { + return "Play Gollum from your discard pile"; + } + }); + } + action.appendEffect( + new ChoiceEffect(action, playerId, possibleEffects)); + return action; + } + } +} \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set22/gollum/Card22_20.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set22/gollum/Card22_20.java new file mode 100644 index 000000000..7d901c5b7 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set22/gollum/Card22_20.java @@ -0,0 +1,75 @@ +package com.gempukku.lotro.cards.set22.gollum; + +import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.effects.AddBurdenEffect; +import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect; +import com.gempukku.lotro.cards.effects.SelfExertEffect; +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.actions.ActivateCardAction; +import com.gempukku.lotro.logic.actions.OptionalTriggerAction; +import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; +import com.gempukku.lotro.logic.modifiers.StrengthModifier; +import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; +import com.gempukku.lotro.logic.timing.EffectResult; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Short Rest + * Side: Shadow + * Culture: Gollum + * Twilight Cost: 2 + * Type: Minion + * Strength: 5 + * Vitality: 4 + * Site: 4 + * Game Text: Each times Gollum wins a skirmish, you may add a doubt. Assignment: If Gollum is not roaming, + * exert Gollum and assign him to Bilbo to make Gollum strength +1 (or +3 if at an underground site) until + * the regroup phase. + */ +public class Card22_20 extends AbstractMinion { + public Card22_20() { + super(2, 5, 4, 4, null, Culture.GOLLUM, "Gollum", "Small Slimy Creature", true); + } + + @Override + public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.winsSkirmish(game, effectResult, self)) { + OptionalTriggerAction action = new OptionalTriggerAction(self); + action.appendEffect( + new AddBurdenEffect(self.getOwner(), self, 1)); + return Collections.singletonList(action); + } + return null; + } + + @Override + protected List getExtraPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) { + if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.ASSIGNMENT, self, 0) + && PlayConditions.canExert(self, game, self) + && !PlayConditions.canSpot(game, self, Keyword.ROAMING)) { + final ActivateCardAction action = new ActivateCardAction(self); + action.appendCost(new SelfExertEffect(action, self)); + action.appendCost( + new ChooseAndAssignCharacterToMinionEffect(action, playerId, self, Filters.name("Bilbo"))); + action.appendEffect( + new ChooseActiveCardEffect(self, playerId, "Gollum", Filters.name("Gollum")) { + @Override + protected void cardSelected(LotroGame game, PhysicalCard card) { + int bonus = game.getModifiersQuerying().hasKeyword(game.getGameState(), game.getGameState().getCurrentSite(), Keyword.UNDERGROUND) ? 3 : 1; + action.insertEffect( + new AddUntilEndOfPhaseModifierEffect( + new StrengthModifier(self, Filters.sameCard(card), bonus))); + } +}); +} \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set22/gollum/Card22_22.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set22/gollum/Card22_22.java new file mode 100644 index 000000000..2ac9c5719 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set22/gollum/Card22_22.java @@ -0,0 +1,85 @@ +package com.gempukku.lotro.cards.set22.gollum; + +OptionalTriggerAction +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.actions.PlayPermanentAction; +import com.gempukku.lotro.cards.effects.PreventableEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect; +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.OptionalTriggerAction; +import com.gempukku.lotro.logic.actions.RequiredTriggerAction; +import com.gempukku.lotro.logic.actions.SubAction; +import com.gempukku.lotro.logic.effects.AddTwilightEffect; +import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; +import com.gempukku.lotro.logic.timing.Effect; +import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.UnrespondableEffect; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Short Rest + * Side: Shadow + * Culture: Gollum + * Twilight Cost: 2 + * Type: Condition + * Game Text: Each time the fellowship moves, add (2). Response: If Bilbo exerts or takes a wound, exert + * a minion and discard a card from hand to discard a [SHIRE] card (except Bilbo). The Free Peoples player + * may discard 2 cards from hand to prevent this. + */ +public class Card22_22 extends AbstractPermanent { + public Card22_22() { + super(Side.SHADOW, 2, CardType.CONDITION, Culture.GOLLUM, Zone.SUPPORT, "Riddles in the Dark", null, true); + } + + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.moves(game, effectResult)) { + RequiredTriggerAction action = new RequiredTriggerAction(self); + action.appendEffect( + new AddTwilightEffect(self, 2)); + return Collections.singletonList(action); + } + return null; + } + + @Override + public List getOptionalInPlayAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.forEachExerted(game, effectResult, Filters.name("Bilbo")) || TriggerConditions.forEachWounded(game, effectResult, Filters.name("Bilbo"))) { + OptionalTriggerAction action = new OptionalTriggerAction(self); + action.appendCost( + new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.MINION)); + action.appendCost( + new ChooseAndDiscardCardsFromHandEffect(subAction, playerId, true, 1, 1)); + action.appendEffect( + new PreventableEffect(action, + new UnrespondableEffect() { + @Override + public String getText(LotroGame game) { + return "Choose a SHIRE card"; + } + + @Override + protected void doPlayEffect(LotroGame game) { + action.appendEffect( + new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Culture.SHIRE)); + } + }, Collections.singletonList(game.getGameState().getCurrentPlayerId()), + new PreventableEffect.PreventionCost() { + @Override + public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { + return new ChooseAndDiscardCardsFromHandEffect(subAction, playerId, true, 2, 2); + } + } + )); + } + return action; + } +} \ No newline at end of file