diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_021.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_021.java deleted file mode 100644 index d6c2cbf94..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_021.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.gempukku.lotro.cards.set5.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.GameUtils; -import com.gempukku.lotro.logic.actions.CostToEffectAction; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.PreventableEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Battle of Helm's Deep - * Side: Free - * Culture: Gollum - * Twilight Cost: 1 - * Type: Event - * Game Text: Maneuver: Discard Smeagol to discard a minion. An opponent may exert a minion twice to prevent this. - */ -public class Card5_021 extends AbstractEvent { - public Card5_021() { - super(Side.FREE_PEOPLE, 1, Culture.GOLLUM, "Be Back Soon", Phase.MANEUVER); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canDiscardFromPlay(self, game, Filters.smeagol); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendCost( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.smeagol)); - action.appendEffect( - new PreventableEffect(action, - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.MINION) { - @Override - public String getText(LotroGame game) { - return "Discard a minion"; - } - }, GameUtils.getShadowPlayers(game), - new PreventableEffect.PreventionCost() { - @Override - public Effect createPreventionCostForPlayer(CostToEffectAction subAction, String playerId) { - return new ChooseAndExertCharactersEffect(subAction, playerId, 1, 1, 2, CardType.MINION) { - @Override - public String getText(LotroGame game) { - return "Exert a minion twice"; - } - }; - } - } - )); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_022.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_022.java deleted file mode 100644 index 17f80bc25..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_022.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gempukku.lotro.cards.set5.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.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 1 - * Type: Condition - * Game Text: Plays to your support area. Each site on the adventure path is a marsh. Shadow: Exert Gollum twice - * and discard this condition to play a minion from your discard pile. - */ -public class Card5_022 extends AbstractPermanent { - public Card5_022() { - super(Side.SHADOW, 1, CardType.CONDITION, Culture.GOLLUM, "Evil-smelling Fens"); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new KeywordModifier(self, - Filters.and( - CardType.SITE, - Zone.ADVENTURE_PATH - ), Keyword.MARSH)); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0) - && PlayConditions.canExert(self, game, 2, Filters.gollum) - && PlayConditions.canPlayFromDiscard(playerId, game, CardType.MINION)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.gollum)); - action.appendCost( - new SelfDiscardEffect(self)); - action.appendEffect( - new ChooseAndPlayCardFromDiscardEffect(playerId, game, CardType.MINION)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_023.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_023.java deleted file mode 100644 index b110ca504..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_023.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gempukku.lotro.cards.set5.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.Filter; -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.AbstractAttachable; -import com.gempukku.lotro.logic.effects.PlayNextSiteEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Side: Free - * Culture: Gollum - * Twilight Cost: 1 - * Type: Condition - * Game Text: Plays on Smeagol. Regroup: Exert Smeagol or Gollum to play the fellowship's next site (replacing - * opponent's site if necessary). - */ -public class Card5_023 extends AbstractAttachable { - public Card5_023() { - super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.GOLLUM, null, "Follow Sméagol"); - } - - @Override - public Filter getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Filters.smeagol; - } - - @Override - public List getPhaseActionsInPlay(final String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.REGROUP, self) - && PlayConditions.canExert(self, game, Filters.gollumOrSmeagol)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.gollumOrSmeagol)); - action.appendEffect(new PlayNextSiteEffect(action, playerId)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_024.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_024.java deleted file mode 100644 index 853e08785..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_024.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gempukku.lotro.cards.set5.gollum; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -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.AbstractMinion; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 2 - * Type: Minion - * Strength: 5 - * Vitality: 4 - * Site: 3 - * Game Text: Regroup: Discard Gollum to exert a companion or ally. - */ -public class Card5_024 extends AbstractMinion { - public Card5_024() { - super(2, 5, 4, 3, null, Culture.GOLLUM, "Gollum", "Nasty Treacherous Creature", true); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0) - && PlayConditions.canDiscardFromPlay(self, game, self)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfDiscardEffect(self)); - action.appendEffect( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.or(CardType.COMPANION, CardType.ALLY))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_025.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_025.java deleted file mode 100644 index 9eb6389d0..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_025.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gempukku.lotro.cards.set5.gollum; - -import com.gempukku.lotro.common.Culture; -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.AddBurdenEffect; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 2 - * Type: Minion - * Strength: 5 - * Vitality: 4 - * Site: 3 - * Game Text: Gollum is strength +1 for each burden. Each times Gollum wins a skirmish, you may add a burden. - */ -public class Card5_025 extends AbstractMinion { - public Card5_025() { - super(2, 5, 4, 3, null, Culture.GOLLUM, "Gollum", "Stinker", true); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new StrengthModifier(self, self, null, - new Evaluator() { - @Override - public int evaluateExpression(LotroGame game, PhysicalCard self) { - return game.getGameState().getBurdens(); - } - })); - } - - @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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_026.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_026.java deleted file mode 100644 index e113f9f8e..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_026.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gempukku.lotro.cards.set5.gollum; - -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.AddTwilightEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Battle of Helm's Deep - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 0 - * Type: Event - * Game Text: Shadow: Spot Smeagol or Gollum to add (1) for each burden. - */ -public class Card5_026 extends AbstractEvent { - public Card5_026() { - super(Side.SHADOW, 0, Culture.GOLLUM, "Look at Him", 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 AddTwilightEffect(self, game.getGameState().getBurdens())); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_027.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_027.java deleted file mode 100644 index 5c7fde395..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_027.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.gempukku.lotro.cards.set5.gollum; - -import com.gempukku.lotro.common.*; -import com.gempukku.lotro.filters.Filter; -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.AbstractAttachable; -import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Side: Free - * Culture: Gollum - * Twilight Cost: 1 - * Type: Condition - * Strength: +1 - * Game Text: Plays on Smeagol. Skirmish: Discard this condition to make Smeagol damage +1. - */ -public class Card5_027 extends AbstractAttachable { - public Card5_027() { - super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.GOLLUM, null, "Poor Wretch"); - } - - @Override - public Filter getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Filters.smeagol; - } - - @Override - public int getStrength() { - return 1; - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self) - && PlayConditions.canDiscardFromPlay(self, game, self)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfDiscardEffect(self)); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose Smeagol", Filters.smeagol) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - action.insertEffect( - new AddUntilEndOfPhaseModifierEffect( - new KeywordModifier(self, Filters.sameCard(card), Keyword.DAMAGE))); - } - }); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_028.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_028.java deleted file mode 100644 index 7f903bc4e..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_028.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.gempukku.lotro.cards.set5.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.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; -import com.gempukku.lotro.logic.effects.PutCardsFromDeckBeneathDrawDeckEffect; -import com.gempukku.lotro.logic.effects.RevealTopCardsOfDrawDeckEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.modifiers.AbstractExtraPlayCostModifier; -import com.gempukku.lotro.logic.modifiers.cost.AddBurdenExtraPlayCostModifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Side: Free - * Culture: Gollum - * Twilight Cost: 0 - * Type: Companion - * Strength: 3 - * Vitality: 4 - * Resistance: 6 - * Signet: Frodo - * Game Text: Ring-bound. To play add a burden. Regroup: Exert Smeagol (or Gollum) twice to reveal the top 4 cards - * of your draw deck. Wound a minion for each Shadow card revealed. Place those 4 cards beneath your draw deck in any order. - */ -public class Card5_028 extends AbstractCompanion { - public Card5_028() { - super(0, 3, 4, 6, Culture.GOLLUM, null, Signet.FRODO, "Sméagol", "Old Noser", true); - addKeyword(Keyword.RING_BOUND); - } - - @Override - public List getExtraCostToPlay(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new AddBurdenExtraPlayCostModifier(self, 1, null, self)); - } - - @Override - public List getPhaseActionsInPlay(final String playerId, final LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.REGROUP, self) - && PlayConditions.canExert(self, game, 2, Filters.gollumOrSmeagol)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.gollumOrSmeagol)); - action.appendEffect( - new RevealTopCardsOfDrawDeckEffect(self, playerId, 4) { - @Override - protected void cardsRevealed(List revealedCards) { - int shadowCards = Filters.filter(revealedCards, game, Side.SHADOW).size(); - action.appendEffect( - new PutCardsFromDeckBeneathDrawDeckEffect(action, self, playerId, revealedCards, true)); - for (int i = 0; i < shadowCards; i++) - action.appendEffect( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, CardType.MINION)); - } - }); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_029.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_029.java deleted file mode 100644 index 85b620c8f..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_029.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gempukku.lotro.cards.set5.gollum; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Signet; -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.AbstractCompanion; -import com.gempukku.lotro.logic.effects.AddBurdenEffect; -import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.modifiers.AbstractExtraPlayCostModifier; -import com.gempukku.lotro.logic.modifiers.CantTakeWoundsModifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.modifiers.cost.AddBurdenExtraPlayCostModifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Side: Free - * Culture: Gollum - * Twilight Cost: 0 - * Type: Companion - * Strength: 3 - * Vitality: 4 - * Resistance: 6 - * Signet: Frodo - * Game Text: Ring-bound. To play, add a burden. Skirmish: Add a burden to make Smeagol strength +2 and takes no wound. - */ -public class Card5_029 extends AbstractCompanion { - public Card5_029() { - super(0, 3, 4, 6, Culture.GOLLUM, null, Signet.FRODO, "Sméagol", "Slinker", true); - addKeyword(Keyword.RING_BOUND); - } - - @Override - public List getExtraCostToPlay(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new AddBurdenExtraPlayCostModifier(self, 1, null, self)); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new AddBurdenEffect(self.getOwner(), self, 1)); - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new StrengthModifier(self, self, 2))); - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new CantTakeWoundsModifier(self, self))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_030.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_030.java deleted file mode 100644 index 95df8ebdc..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/gollum/Card5_030.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.gempukku.lotro.cards.set5.gollum; - -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.ChoiceEffect; -import com.gempukku.lotro.logic.effects.DiscardCardAtRandomFromHandEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDeckEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromDiscardEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Battle of Helm's Deep - * Side: Shadow - * Culture: Gollum - * Twilight Cost: 0 - * Type: Event - * Game Text: Shadow: Play Gollum from your draw deck or your discard pile. Skirmish: Discard a card at random from hand - * to make Gollum strength +3. - */ -public class Card5_030 extends AbstractEvent { - public Card5_030() { - super(Side.SHADOW, 0, Culture.GOLLUM, "We Must Have It", Phase.SHADOW, Phase.SKIRMISH); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return ( - game.getGameState().getCurrentPhase() != Phase.SKIRMISH - || Filters.filter(game.getGameState().getHand(self.getOwner()), game, Filters.not(self)).size() >= 1); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - if (game.getGameState().getCurrentPhase() == Phase.SHADOW) { - 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)); - } else { - action.appendCost( - new DiscardCardAtRandomFromHandEffect(self, playerId, false)); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 3, Filters.gollum)); - } - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set05-Gollum.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Gollum.hjson similarity index 59% rename from gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set05-Gollum.hjson rename to gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Gollum.hjson index c2105022a..cdf5fe21c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set05-Gollum.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set05/set05-Gollum.hjson @@ -22,20 +22,30 @@ twilight: 1 type: Event keywords: Maneuver - /*requires: { - - } effects: { type: event cost: { - + type: discard + filter: choose(name(Sméagol)) }, effect: [ { - + type: preventable + player: shadow + text: Would you like to exert a minion twice to prevent discarding a minion? + cost: { + type: exert + player: shadow + filter: choose(minion) + times: 2 + } + effect: { + type: discard + filter: choose(minion) + } } ] - }*/ + } gametext: Maneuver: Discard Sméagol to discard a minion. An opponent may exert a minion twice to prevent this. lore: Now I wonder where he's got to?' promotext: "" @@ -69,17 +79,35 @@ twilight: 1 type: Condition keywords: Support Area - /*requires: { - - } effects: [ - { - - } - { - - } - ]*/ + { + type: modifier + modifier: { + type: addKeyword + filter: site,zone(adventure path) + keyword: marsh + } + } + { + type: activated + phase: shadow + cost: [ + { + type: exert + filter: choose(name(Gollum)) + times: 2 + } + { + type: discard + filter: self + } + ] + effect: { + type: playCardFromDiscard + filter: choose(minion) + } + } + ] gametext: Plays to your support area.
Each site on the adventure path is a marsh.
Shadow: Exert Gollum twice and discard this condition to play a minion from your discard pile. lore: No birds here. There are snakeses, wormses, things in the pools. Lots of things, lots of nasty things.' promotext: "" @@ -112,17 +140,20 @@ culture: Gollum twilight: 1 type: Condition - /*requires: { - - } + target: name(Sméagol) effects: [ - { - - } - { - - } - ]*/ + { + type: activated + phase: regroup + cost: { + type: exert + filter: choose(or(name(Sméagol),name(Gollum))) + } + effect: { + type: playNextSite + } + } + ] gametext: Plays on Sméagol.
Regroup: Exert Sméagol or Gollum to play the fellowship's next site (replacing opponent's site if necessary). lore: Follow Sméagol very carefully, and you may go a long way, quite a long way, before He catches you, yes perhaps.' promotext: "" @@ -156,21 +187,23 @@ culture: Gollum twilight: 2 type: Minion - race: strength: 5 vitality: 4 site: 3 - /*requires: { - - } effects: [ - { - - } - { - - } - ]*/ + { + type: activated + phase: regroup + cost: { + type: discard + filter: self + } + effect: { + type: exert + filter: choose(or(companion,ally)) + } + } + ] gametext: Regroup: Discard Gollum to exert a companion or ally. lore: ...we won't let you go, either. You're full of wickedness and mischief, Gollum.' promotext: "" @@ -204,21 +237,32 @@ culture: Gollum twilight: 2 type: Minion - race: strength: 5 vitality: 4 site: 3 - /*requires: { - - } effects: [ - { - - } - { - - } - ]*/ + { + type: modifier + modifier: { + type: modifyStrength + filter: self + amount: { + type: forEachBurden + } + } + } + { + type: trigger + optional: true + trigger: { + type: winsSkirmish + filter: self + } + effect: { + type: addBurdens + } + } + ] gametext: Gollum is strength +1 for each burden.
Each time Gollum wins a skirmish, you may add a burden. lore: Still he's a Baggins, my precious, yes, a Baggins. A Baggins stole it. He found it and he said nothing. We hates Bagginses.' promotext: "" @@ -252,20 +296,21 @@ twilight: 0 type: Event keywords: Shadow - /*requires: { - - } effects: { type: event - cost: { - - }, + requires: { + type: canSpot + filter: or(name(Sméagol),name(Gollum)) + } effect: [ { - + type: addTwilight + amount: { + type: forEachBurden + } } ] - }*/ + } gametext: Shadow: Spot Sméagol or Gollum to add (1) for each burden. lore: That's what it is. It's that Gollum! Snakes and adders! And to think I thought that we'd puzzle him with our bit of a climb!' promotext: "" @@ -299,17 +344,23 @@ twilight: 1 type: Condition strength: 1 - /*requires: { - - } + target: name(Sméagol) effects: [ - { - - } - { - - } - ]*/ + { + type: activated + phase: skirmish + cost: { + type: discard + filter: self + } + effect: { + type: addKeyword + filter: choose(name(Sméagol)) + keyword: damage + amount: 1 + } + } + ] gametext: Plays on Sméagol.
Skirmish: Discard this condition to make Sméagol damage +1. lore: Throttle us in our sleep, that's his plan.' promotext: "" @@ -343,23 +394,51 @@ culture: Gollum twilight: 0 type: Companion - race: strength: 3 vitality: 4 signet: Frodo resistance: 6 keywords: Ring-bound - /*requires: { - - } effects: [ - { - - } - { - - } - ]*/ + { + type: extraCost + cost: { + type: addBurdens + } + } + { + type: activated + phase: regroup + cost: { + type: exert + filter: choose(or(name(Sméagol),name(Gollum))) + times: 2 + } + effect: [ + { + type: revealTopCardsOfDrawDeck + count: 4 + memorize: revealedCards + } + { + type: repeat + amount: { + type: forEachMatchingInMemory + filter: side(shadow) + memory: revealedCards + } + effect: { + type: wound + filter: choose(minion) + } + } + { + type: putCardsFromDeckOnBottomOfDeck + filter: memory(revealedCards) + } + ] + } + ] gametext: Ring-bound. To play, add a burden.
Regroup: Exert Sméagol (or Gollum) twice to reveal the top 4 cards of your draw deck. Wound a minion for each Shadow card revealed. Place those 4 cards beneath your draw deck in any order. lore: Could you find anything fit for a hungry hobbit?' promotext: "" @@ -393,23 +472,40 @@ culture: Gollum twilight: 0 type: Companion - race: strength: 3 vitality: 4 signet: Frodo resistance: 6 keywords: Ring-bound - /*requires: { - - } effects: [ - { - - } - { - - } - ]*/ + { + type: extraCost + cost: { + type: addBurdens + } + } + { + type: activated + phase: skirmish + cost: { + type: addBurdens + } + effect: [ + { + type: modifyStrength + filter: self + amount: 2 + } + { + type: addModifier + modifier: { + type: cantTakeWounds + filter: self + } + } + ] + } + ] gametext: Ring-bound. To play, add a burden.
Skirmish: Add a burden to make Sméagol strength +2 and take no wounds. lore: ...that it is my fate to receive help from you, where I least looked for it, and your fate to help me whom you long pursued with evil purpose.' promotext: "" @@ -446,20 +542,48 @@ Shadow Skirmish ] - /*requires: { - - } effects: { type: event cost: { - - }, - effect: [ - { - - } - ] - }*/ + type: if + condition: { + type: phase + phase: shadow + } + true: { + type: costToEffect + effect: { + type: choice + texts: [ + Play Gollum from your draw deck + Play Gollum from your discard pile + ] + effects: [ + { + type: playCardFromDrawDeck + filter: choose(name(Gollum)) + } + { + type: playCardFromDiscard + filter: choose(name(Gollum)) + } + ] + } + } + false: { + type: costToEffect + cost: { + type: discardCardAtRandomFromHand + forced: false + } + effect: { + type: modifyStrength + filter: choose(name(Gollum)) + amount: 3 + } + } + } + } gametext: Shadow: Play Gollum from your draw deck or discard pile.
Skirmish: Discard a card at random from hand to make Gollum strength +3. lore: No, sweet one. See, my precious: if we has it, then we can escape, even from Him, eh?' promotext: "" diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java index 1f560f93e..62bf05153 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java @@ -462,6 +462,9 @@ public class FilterFactory { }); parameterFilters.put("zone", (parameter, environment) -> { + // Fix for faulty "Sanitize" method, which removes spaces and underscores, therefore making it + // impossible to match ADVENTURE_PATH Zone + if (parameter.equals("adventurepath")) parameter = "adventure path"; final Zone zone = FieldUtils.getEnum(Zone.class, parameter, "parameter"); return actionContext -> zone; });