diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_028.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_028.java deleted file mode 100644 index 0fbfa9c10..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_028.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -import com.gempukku.lotro.common.CardType; -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.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.modifiers.evaluator.ForEachThreatEvaluator; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Treachery & Deceit - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 2 - * Type: Event • Skirmish - * Game Text: Spot Shelob to make a minion strength +1 for each threat you can spot. - */ -public class Card18_028 extends AbstractEvent { - public Card18_028() { - super(Side.SHADOW, 2, Culture.GOLLUM, "Countless Cords", Phase.SKIRMISH); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, Filters.name("Shelob")); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, new ForEachThreatEvaluator(), CardType.MINION)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_029.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_029.java deleted file mode 100644 index 6c0840c03..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_029.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -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.actions.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.PreventableCardEffect; -import com.gempukku.lotro.logic.effects.RemoveTwilightEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPreventCardEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Treachery & Deceit - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 1 - * Type: Condition • Support Area - * Game Text: Response: If a Free Peoples player's card is about to discard your other [GOLLUM] condition, remove (1) - * to prevent that. - */ -public class Card18_029 extends AbstractPermanent { - public Card18_029() { - super(Side.SHADOW, 1, CardType.CONDITION, Culture.GOLLUM, "Deceit"); - } - - @Override - public List getOptionalInPlayBeforeActions(String playerId, LotroGame game, Effect effect, PhysicalCard self) { - if (TriggerConditions.isGettingDiscardedBy(effect, game, Side.FREE_PEOPLE, Filters.not(self), Filters.owner(self.getOwner()), Culture.GOLLUM, CardType.CONDITION) - && game.getGameState().getTwilightPool() >= 1) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new RemoveTwilightEffect(1)); - action.appendEffect( - new ChooseAndPreventCardEffect(self, (PreventableCardEffect) effect, playerId, "Choose condition to prevent discarding", Filters.not(self), Culture.GOLLUM, CardType.CONDITION)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_030.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_030.java deleted file mode 100644 index c00e7603f..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_030.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -import com.gempukku.lotro.common.*; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect; -import com.gempukku.lotro.logic.effects.ReinforceTokenEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Treachery & Deceit - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 0 - * Type: Event • Shadow - * Game Text: Heal a Ring-bound companion to reinforce a [GOLLUM] token. - */ -public class Card18_030 extends AbstractEvent { - public Card18_030() { - super(Side.SHADOW, 0, Culture.GOLLUM, "Enemy in Your Midst", Phase.SHADOW); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canHeal(self, game, CardType.COMPANION, Keyword.RING_BOUND); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendCost( - new ChooseAndHealCharactersEffect(action, playerId, CardType.COMPANION, Keyword.RING_BOUND)); - action.appendEffect( - new ReinforceTokenEffect(self, playerId, Token.GOLLUM)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_031.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_031.java deleted file mode 100644 index 1cbb48e98..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_031.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -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.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.ChoiceEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromHandEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Treachery & Deceit - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 0 - * Type: Event • Shadow - * Game Text: Spot a [GOLLUM] card to play a minion. Its twilight cost is -1 (or -3 if it is roaming). - */ -public class Card18_031 extends AbstractEvent { - public Card18_031() { - super(Side.SHADOW, 0, Culture.GOLLUM, "It Draws Him", Phase.SHADOW); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, Culture.GOLLUM) - && (PlayConditions.canPlayFromHand(self.getOwner(), game, -1, CardType.MINION, Filters.not(Keyword.ROAMING)) - || PlayConditions.canPlayFromHand(self.getOwner(), game, -3, CardType.MINION, Keyword.ROAMING)); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - List possibleEffects = new LinkedList<>(); - possibleEffects.add( - new ChooseAndPlayCardFromHandEffect(playerId, game, -1, CardType.MINION, Filters.not(Keyword.ROAMING)) { - @Override - public String getText(LotroGame game) { - return "Play not roaming minion"; - } - }); - possibleEffects.add( - new ChooseAndPlayCardFromHandEffect(playerId, game, -3, CardType.MINION, Keyword.ROAMING) { - @Override - public String getText(LotroGame game) { - return "Play roaming minion"; - } - }); - action.appendEffect( - new ChoiceEffect(action, playerId, possibleEffects)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_032.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_032.java deleted file mode 100644 index d80e68918..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_032.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Side; -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.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; -import com.gempukku.lotro.logic.effects.DiscardCardAtRandomFromHandEffect; -import com.gempukku.lotro.logic.effects.RemoveTwilightEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPutCardFromDeckIntoHandEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Treachery & Deceit - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 3 - * Type: Condition • Support Area - * Game Text: Shadow: Remove (3) to take a [GOLLUM] card into hand from your draw deck, then randomly discard a card - * from your hand. Skirmish: Discard a [GOLLUM] card from hand to make a [GOLLUM] minion strength +2. - */ -public class Card18_032 extends AbstractPermanent { - public Card18_032() { - super(Side.SHADOW, 3, CardType.CONDITION, Culture.GOLLUM, "Not Easily Avoided"); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 3)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new RemoveTwilightEffect(3)); - action.appendEffect( - new ChooseAndPutCardFromDeckIntoHandEffect(action, playerId, 1, 1, Culture.GOLLUM)); - action.appendEffect( - new DiscardCardAtRandomFromHandEffect(self, playerId, false)); - return Collections.singletonList(action); - } - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0) - && PlayConditions.canDiscardFromHand(game, playerId, 1, Culture.GOLLUM)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1, Culture.GOLLUM)); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 2, Culture.GOLLUM, CardType.MINION)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_033.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_033.java deleted file mode 100644 index a04773d04..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_033.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -import com.gempukku.lotro.common.CardType; -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.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.choose.ChooseAndReturnCardsToHandEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Treachery & Deceit - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 2 - * Type: Event • Shadow - * Game Text: Spot Gollum or Smeagol to return a follower to its owner's hand. - */ -public class Card18_033 extends AbstractEvent { - public Card18_033() { - super(Side.SHADOW, 2, Culture.GOLLUM, "Set Up", Phase.SHADOW); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, Filters.gollumOrSmeagol); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseAndReturnCardsToHandEffect(action, playerId, 1, 1, CardType.FOLLOWER)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_034.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_034.java deleted file mode 100644 index 781d2278e..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_034.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Race; -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.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.effects.AddThreatsEffect; -import com.gempukku.lotro.logic.effects.AddUntilEndOfTurnModifierEffect; -import com.gempukku.lotro.logic.effects.ForEachBurdenYouSpotEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect; -import com.gempukku.lotro.logic.modifiers.AddKeywordModifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Treachery & Deceit - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 6 - * Type: Minion • Spider - * Strength: 8 - * Vitality: 8 - * Site: 8 - * Game Text: Fierce. Each time Shelob wins a skirmish, you may add threats up to the number of burdens you can spot. - * Each time Shelob wins a skirmish, you may play Gollum from your discard pile; he is strength +3 and fierce until the end of turn. - */ -public class Card18_034 extends AbstractMinion { - public Card18_034() { - super(6, 8, 8, 8, Race.SPIDER, Culture.GOLLUM, "Shelob", "Menace", true); - addKeyword(Keyword.FIERCE); - } - - @Override - public List getOptionalAfterTriggers(final String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) { - if (TriggerConditions.winsSkirmish(game, effectResult, self)) { - List actions = new LinkedList<>(); - - final OptionalTriggerAction action1 = new OptionalTriggerAction(self.getCardId() + "-1", self); - action1.setText("Add threats"); - action1.appendEffect( - new ForEachBurdenYouSpotEffect(playerId) { - @Override - protected void burdensSpotted(int burdensSpotted) { - action1.appendEffect( - new AddThreatsEffect(playerId, self, burdensSpotted)); - } - }); - actions.add(action1); - - if (PlayConditions.canPlayFromDiscard(playerId, game, Filters.gollum)) { - final OptionalTriggerAction action2 = new OptionalTriggerAction(self.getCardId() + "-2", self); - action2.setText("Play Gollum from discard"); - action2.appendEffect( - new ChooseAndPlayCardFromDiscardEffect(playerId, game, Filters.gollum) { - @Override - protected void afterCardPlayed(PhysicalCard cardPlayed) { - action2.appendEffect( - new AddUntilEndOfTurnModifierEffect( - new StrengthModifier(self, cardPlayed, 3))); - action2.appendEffect( - new AddUntilEndOfTurnModifierEffect( - new AddKeywordModifier(self, cardPlayed, Keyword.FIERCE))); - } - }); - actions.add(action2); - } - - return actions; - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_035.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_035.java deleted file mode 100644 index 5bf8a9948..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_035.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -import com.gempukku.lotro.common.CardType; -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.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.KillEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndReturnCardsToHandEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Treachery & Deceit - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 10 - * Type: Event • Regroup - * Game Text: To play, spot Shelob. The Free Peoples player chooses two companions in play (except the Ring-bearer). - * He or she then chooses to place one of those companions in the dead pile and return the other to his or her hand. - */ -public class Card18_035 extends AbstractEvent { - public Card18_035() { - super(Side.SHADOW, 10, Culture.GOLLUM, "Sting of Shelob", Phase.REGROUP); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, Filters.name("Shelob")); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, final PhysicalCard self) { - final PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseActiveCardEffect(self, game.getGameState().getCurrentPlayerId(), "Choose companion to kill", CardType.COMPANION, Filters.not(Filters.ringBearer)) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - action.insertEffect( - new KillEffect(card, self, KillEffect.Cause.CARD_EFFECT)); - } - }); - action.appendEffect( - new ChooseAndReturnCardsToHandEffect(action, game.getGameState().getCurrentPlayerId(), 1, 1, CardType.COMPANION, Filters.not(Filters.ringBearer))); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_036.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_036.java deleted file mode 100644 index a1b67e564..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_036.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -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.PlayUtils; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractResponseEvent; -import com.gempukku.lotro.logic.effects.CancelEventEffect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Treachery & Deceit - * Side: Free - * Culture: Gollum - * Twilight Cost: 0 - * Type: Event • Response - * Game Text: If a skirmish event is played, spot Smeagol to cancel that event. - */ -public class Card18_036 extends AbstractResponseEvent { - public Card18_036() { - super(Side.FREE_PEOPLE, 0, Culture.GOLLUM, "Time for Food"); - } - - @Override - public List getPlayResponseEventAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, CardType.EVENT, Keyword.SKIRMISH) - && PlayConditions.canSpot(game, Filters.smeagol) - && PlayUtils.checkPlayRequirements(game, self, Filters.any, 0, 0, false, false)) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new CancelEventEffect(self, (PlayEventResult) effectResult)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_037.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_037.java deleted file mode 100644 index b469ba8ba..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/gollum/Card18_037.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gempukku.lotro.cards.set18.gollum; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.common.Token; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.GameUtils; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.DrawCardsEffect; -import com.gempukku.lotro.logic.effects.OptionalEffect; -import com.gempukku.lotro.logic.effects.ReinforceTokenEffect; - -/** - * Set: Treachery & Deceit - * Side: Free - * Culture: Gollum - * Twilight Cost: 0 - * Type: Event • Skirmish - * Game Text: Reinforce a [GOLLUM] token. Each Shadow player may draw a card. - */ -public class Card18_037 extends AbstractEvent { - public Card18_037() { - super(Side.FREE_PEOPLE, 0, Culture.GOLLUM, "Trusted Promise", Phase.SKIRMISH); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ReinforceTokenEffect(self, playerId, Token.GOLLUM)); - for (String shadowPlayer : GameUtils.getShadowPlayers(game)) { - action.appendEffect( - new OptionalEffect(action, shadowPlayer, - new DrawCardsEffect(action, shadowPlayer, 1))); - - } - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set18-Gollum.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set18/set18-Gollum.hjson similarity index 64% rename from gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set18-Gollum.hjson rename to gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set18/set18-Gollum.hjson index 8fbeed798..2c1b992f1 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set18-Gollum.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set18/set18-Gollum.hjson @@ -22,13 +22,19 @@ twilight: 2 type: Event keywords: Skirmish - effects: { type: event - cost: { - }, + requires: { + type: canSpot + filter: name(Shelob) + } effect: [ { + type: modifyStrength + filter: choose(minion) + amount: { + type: forEachThreat + } } ] } @@ -66,6 +72,21 @@ type: Condition keywords: Support Area effects: [ + { + type: activatedTrigger + trigger: { + type: aboutToDiscard + opponent: true + filter: your,other,culture(gollum),condition + } + cost: { + type: removeTwilight + } + effect: { + type: preventDiscard + filter: choose(your,other,culture(gollum),condition) + } + } ] gametext: Response: If a Free Peoples player's card is about to discard your other [gollum] condition, remove (1) to prevent that. lore: Presently they were under the shadow, and there in the midst of it they saw the opening of a cave. 'This is the way in,' said Gollum softly. @@ -100,13 +121,16 @@ twilight: 0 type: Event keywords: Shadow - effects: { type: event cost: { - }, + type: heal + filter: choose(ringBound,companion) + } effect: [ { + type: reinforceTokens + culture: gollum } ] } @@ -143,13 +167,31 @@ twilight: 0 type: Event keywords: Shadow - effects: { type: event - cost: { - }, + requires: { + type: canSpot + filter: culture(gollum) + } effect: [ { + type: choice + texts: [ + Play a non-roaming minion + Play a roaming minion + ] + effects: [ + { + type: play + filter: choose(not(roaming),minion) + cost: -1 + } + { + type: play + filter: choose(roaming,minion) + cost: -3 + } + ] } ] } @@ -187,6 +229,41 @@ type: Condition keywords: Support Area effects: [ + { + type: activated + phase: shadow + cost: { + type: removeTwilight + amount: 3 + } + effect: [ + { + type: putCardsFromDeckIntoHand + filter: choose(culture(gollum)) + reveal: true + shuffle: true + } + { + type: discardFromHand + forced: false + filter: random(1) + } + ] + } + { + type: activated + phase: skirmish + cost: { + type: discardFromHand + forced: false + filter: choose(culture(gollum)) + } + effect: { + type: modifyStrength + filter: choose(culture(gollum),minion) + amount: 2 + } + } ] gametext: Shadow: Remove (3) to take a [gollum] card into hand from your draw deck, then randomly discard a card from your hand.
Skirmish: Discard a [gollum] card from hand to make a [gollum] minion strength +2. lore: But I still feel that they are looking at me, or thinking about me: making some other plan, perhaps.' @@ -224,10 +301,14 @@ effects: { type: event - cost: { - }, + requires: { + type: canSpot + filter: or(name(Gollum),name(Sméagol)) + } effect: [ { + type: returnToHand + filter: choose(follower) } ] } @@ -270,6 +351,49 @@ site: 8 keywords: Fierce effects: [ + { + type: trigger + text: Add threats up to the number of burdens + optional: true + trigger: { + type: winsSkirmish + filter: self + } + effect: { + type: addThreats + amount: { + type: forEachBurden + } + } + } + { + type: trigger + text: Play Gollum from your discard pile + optional: true + trigger: { + type: winsSkirmish + filter: self + } + effect: [ + { + type: playCardFromDiscard + filter: choose(name(Gollum)) + memorize: playedGollum + } + { + type: modifyStrength + filter: memory(playedGollum) + amount: 3 + until: endOfTurn + } + { + type: addKeyword + filter: memory(playedGollum) + keyword: fierce + until: endOfTurn + } + ] + } ] gametext: Fierce.
Each time Shelob wins a skirmish, you may add threats up to the number of burdens you can spot.
Each time Shelob wins a skirmish, you may play Gollum from your discard pile; he is strength +3 and fierce until the end of turn. lore: "" @@ -304,13 +428,22 @@ twilight: 10 type: Event keywords: Regroup - effects: { type: event - cost: { - }, + requires: { + type: canSpot + filter: name(Shelob) + } effect: [ { + type: kill + player: free people + filter: choose(companion,not(ringBearer)) + } + { + type: returnToHand + player: free people + filter: choose(companion,not(ringBearer)) } ] } @@ -347,19 +480,22 @@ twilight: 0 type: Event keywords: Response - effects: { type: responseEvent trigger: { - + type: played + filter: skirmish,event } - cost: { + requires: { + type: canSpot + filter: name(Sméagol) } effect: [ { + type: cancelEvent } ] - ] + } gametext: If a skirmish event is played, spot Sméagol to cancel that event. lore: Oh yes we could! Spoil nice fish. Give it to usss rrraw... and wrrriggling! You keep nasty chips. promotext: "" @@ -393,13 +529,21 @@ twilight: 0 type: Event keywords: Skirmish - effects: { type: event - cost: { - }, effect: [ { + type: reinforceTokens + culture: gollum + } + { + type: optional + player: shadow + text: Would you like to draw a card? + effect: { + type: drawCards + player: shadow + } } ] } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/TriggerEffectProcessor.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/TriggerEffectProcessor.java index 534907183..ac9f39298 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/TriggerEffectProcessor.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/TriggerEffectProcessor.java @@ -17,7 +17,7 @@ import org.json.simple.JSONObject; public class TriggerEffectProcessor implements EffectProcessor { @Override public void processEffect(JSONObject value, BuiltLotroCardBlueprint blueprint, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(value, "trigger", "optional", "requires", "cost", "effect", "text", "player", "limitPerTurn", "limitPerPhase", "phase"); + FieldUtils.validateAllowedFields(value, "trigger", "optional", "requires", "cost", "effect", "text", "player", "limitPerTurn", "limitPerPhase", "phase", "identifierSuffix"); final String text = FieldUtils.getString(value.get("text"), "text"); final JSONObject[] triggerArray = FieldUtils.getObjectArray(value.get("trigger"), "trigger"); @@ -30,6 +30,7 @@ public class TriggerEffectProcessor implements EffectProcessor { final String player = FieldUtils.getString(value.get("player"), "player"); PlayerSource playerSource = (player != null) ? PlayerResolver.resolvePlayer(player, environment) : null; + final String identifierSuffix = FieldUtils.getString(value.get("identifierSuffix"), "identifierSuffix"); for (JSONObject trigger : triggerArray) { final TriggerChecker triggerChecker = environment.getTriggerCheckerFactory().getTriggerChecker(trigger, environment); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/PutCardsFromDeckIntoHand.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/PutCardsFromDeckIntoHand.java index 5da84f9bf..f91dc031c 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/PutCardsFromDeckIntoHand.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/PutCardsFromDeckIntoHand.java @@ -27,8 +27,10 @@ public class PutCardsFromDeckIntoHand implements EffectAppenderProducer { final ValueSource valueSource = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment); final String filter = FieldUtils.getString(effectObject.get("filter"), "filter", "choose(any)"); - final boolean shuffle = FieldUtils.getBoolean(effectObject.get("shuffle"), "shuffle", true); - final boolean reveal = FieldUtils.getBoolean(effectObject.get("reveal"), "reveal", true); + // TODO - changed the default - have to go through all cards to check which should be revealed + final boolean shuffle = FieldUtils.getBoolean(effectObject.get("shuffle"), "shuffle", false); + // TODO - changed the default - have to go through all cards to check which should be revealed + final boolean reveal = FieldUtils.getBoolean(effectObject.get("reveal"), "reveal", false); MultiEffectAppender result = new MultiEffectAppender();