From 3b18277218ed9c06a7c50ac841102bd5c0993455 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 29 Feb 2012 14:15:49 +0000 Subject: [PATCH] "Gil-galad" --- .../lotro/cards/set18/elven/Card18_006.java | 23 +++++++ .../lotro/cards/set18/elven/Card18_012.java | 64 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/elven/Card18_012.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/elven/Card18_006.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/elven/Card18_006.java index 0c18bc3e3..513209b83 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/elven/Card18_006.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/elven/Card18_006.java @@ -3,8 +3,11 @@ package com.gempukku.lotro.cards.set18.elven; import com.gempukku.lotro.cards.AbstractEvent; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.effects.ChoiceEffect; import com.gempukku.lotro.cards.effects.PutCardsFromDeckOnTopOfDrawDeckEffect; import com.gempukku.lotro.cards.effects.ShuffleDeckEffect; +import com.gempukku.lotro.cards.effects.SpotEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Phase; @@ -13,10 +16,12 @@ 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.ChooseArbitraryCardsEffect; +import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.UnrespondableEffect; import java.util.ArrayList; import java.util.Collection; +import java.util.LinkedList; import java.util.List; /** @@ -43,6 +48,24 @@ public class Card18_006 extends AbstractEvent { @Override public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, final PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { final PlayEventAction action = new PlayEventAction(self); + List possibleCosts = new LinkedList(); + possibleCosts.add( + new SpotEffect(1, Filters.arwen) { + @Override + public String getText(LotroGame game) { + return "Spot Arwen"; + } + }); + possibleCosts.add( + new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Culture.ELVEN, CardType.COMPANION) { + @Override + public String getText(LotroGame game) { + return "Exert ELVEN companion"; + } + }); + action.appendCost( + new ChoiceEffect(action, playerId, possibleCosts)); + action.appendEffect( new UnrespondableEffect() { @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/elven/Card18_012.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/elven/Card18_012.java new file mode 100644 index 000000000..8e3e3f60d --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/elven/Card18_012.java @@ -0,0 +1,64 @@ +package com.gempukku.lotro.cards.set18.elven; + +import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndPutCardFromDiscardIntoHandEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndRemoveCultureTokensFromCardEffect; +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.AddThreatsEffect; + +import java.util.Collections; +import java.util.List; + +/** + * Set: Treachery & Deceit + * Side: Free + * Culture: Elven + * Twilight Cost: 5 + * Type: Companion • Elf + * Strength: 9 + * Vitality: 4 + * Resistance: 7 + * Game Text: To play, spot 2 [ELVEN] companions. Maneuver: Add a threat to take an [ELVEN] skirmish event into hand + * from your discard pile. Regroup: Remove an [ELVEN] token to play an [ELVEN] condition from your discard pile. + */ +public class Card18_012 extends AbstractCompanion { + public Card18_012() { + super(5, 9, 4, 7, Culture.ELVEN, Race.ELF, null, "Gil-galad", 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, 2, Culture.ELVEN, CardType.COMPANION); + } + + @Override + protected List getExtraInPlayPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self) + && PlayConditions.canAddThreat(game, self, 1)) { + ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new AddThreatsEffect(playerId, self, 1)); + action.appendEffect( + new ChooseAndPutCardFromDiscardIntoHandEffect(action, playerId, 1, 1, Culture.ELVEN, CardType.EVENT, Keyword.SKIRMISH)); + return Collections.singletonList(action); + } + if (PlayConditions.canUseFPCardDuringPhase(game, Phase.REGROUP, self) + && PlayConditions.canRemoveTokens(game, Token.ELVEN, 1, Filters.any) + && PlayConditions.canPlayFromDiscard(playerId, game, Culture.ELVEN, CardType.CONDITION)) { + ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new ChooseAndRemoveCultureTokensFromCardEffect(self, playerId, Token.ELVEN, 1, Filters.any)); + action.appendEffect( + new ChooseAndPlayCardFromDiscardEffect(playerId, game, Culture.ELVEN, CardType.CONDITION)); + return Collections.singletonList(action); + } + return null; + } +}