diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_081.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_081.java deleted file mode 100644 index 06d17da15..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_081.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gempukku.lotro.cards.set3.wraith; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Race; -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.RequiredTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Realms of Elf-lords - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 1 - * Type: Condition - * Game Text: To play, spot a Nazgul. Plays to your support area. Each time a [WRAITH] card adds a burden, - * the Free Peoples player must exert a companion. - */ -public class Card3_081 extends AbstractPermanent { - public Card3_081() { - super(Side.SHADOW, 1, CardType.CONDITION, Culture.WRAITH, "Gates of the Dead City"); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return Filters.canSpot(game, Race.NAZGUL); - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.addedBurden(game, effectResult, Culture.WRAITH)) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - action.appendEffect( - new ChooseAndExertCharactersEffect(action, game.getGameState().getCurrentPlayerId(), 1, 1, CardType.COMPANION)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_082.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_082.java deleted file mode 100644 index 61a212829..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_082.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gempukku.lotro.cards.set3.wraith; - -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.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; - -/** - * Set: Realms of Elf-lords - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 1 - * Type: Event - * Game Text: Skirmish: Spot an [ISENGARD] minion to make a Nazgul damage +1. - */ -public class Card3_082 extends AbstractEvent { - public Card3_082() { - super(Side.SHADOW, 1, Culture.WRAITH, "News of Mordor", Phase.SKIRMISH); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return Filters.canSpot(game, Culture.ISENGARD, CardType.MINION); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, final PhysicalCard self) { - final PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose Nazgul", Race.NAZGUL) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - action.insertEffect( - new AddUntilEndOfPhaseModifierEffect( - new KeywordModifier(self, Filters.sameCard(card), Keyword.DAMAGE))); - } - }); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_083.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_083.java deleted file mode 100644 index a8f144f81..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_083.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gempukku.lotro.cards.set3.wraith; - -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.ChoiceEffect; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.modifiers.evaluator.ForEachBurdenEvaluator; -import com.gempukku.lotro.common.*; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.effects.AddTwilightEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Realms of Elf-lords - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 2 - * Type: Condition - * Game Text: Plays to your support area. Each time the fellowship moves, add (1) for each burden you can spot. At - * the end of each of your Shadow phases, exert a Nazgul or discard this condition. - */ -public class Card3_083 extends AbstractPermanent { - public Card3_083() { - super(Side.SHADOW, 2, CardType.CONDITION, Culture.WRAITH, "The Ring Draws Them", 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, new ForEachBurdenEvaluator())); - return Collections.singletonList(action); - } - if (TriggerConditions.endOfPhase(game, effectResult, Phase.SHADOW)) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - List possibleEffects = new LinkedList<>(); - possibleEffects.add( - new ChooseAndExertCharactersEffect(action, self.getOwner(), 1, 1, Race.NAZGUL) { - @Override - public String getText(LotroGame game) { - return "Exert a Nazgul"; - } - }); - possibleEffects.add( - new SelfDiscardEffect(self) { - @Override - public String getText(LotroGame game) { - return "Discard this condition"; - } - }); - action.appendEffect( - new ChoiceEffect(action, self.getOwner(), possibleEffects)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_084.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_084.java deleted file mode 100644 index 0272284a4..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_084.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gempukku.lotro.cards.set3.wraith; - -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.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.ExertCharactersEffect; -import com.gempukku.lotro.logic.effects.RevealRandomCardsFromHandEffect; - -import java.util.List; - -/** - * Set: Realms of Elf-lords - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 2 - * Type: Event - * Game Text: Maneuver: Spot a Nazgul to reveal a card at random from the Free Peoples player's hand. Exert a companion - * bearing a ranged weapon X times, where X is the twilight cost of the card revealed. - */ -public class Card3_084 extends AbstractEvent { - public Card3_084() { - super(Side.SHADOW, 2, Culture.WRAITH, "They Will Never Stop Hunting You", Phase.MANEUVER); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return Filters.canSpot(game, Race.NAZGUL); - } - - @Override - public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, final PhysicalCard self) { - final PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new RevealRandomCardsFromHandEffect(playerId, game.getGameState().getCurrentPlayerId(), self, 1) { - @Override - protected void cardsRevealed(List revealedCards) { - if (revealedCards.size() > 0) { - PhysicalCard revealedCard = revealedCards.get(0); - final int twilightCost = revealedCard.getBlueprint().getTwilightCost(); - if (twilightCost > 0) { - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose companion", CardType.COMPANION, Filters.hasAttached(PossessionClass.RANGED_WEAPON)) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - for (int i = 0; i < twilightCost; i++) - action.appendEffect( - new ExertCharactersEffect(action, self, card)); - } - }); - } - } - } - }); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_085.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_085.java deleted file mode 100644 index 36aad1d11..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_085.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.gempukku.lotro.cards.set3.wraith; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Race; -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.CostToEffectAction; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; -import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; -import com.gempukku.lotro.logic.effects.PreventableEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.UnrespondableEffect; - -import java.util.Collections; - -/** - * Set: Realms of Elf-lords - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 0 - * Type: Event - * Game Text: Maneuver: Spot a Nazgul to wound Gandalf twice. The Free Peoples player may discard 2 [GANDALF] cards - * from hand to prevent this. - */ -public class Card3_085 extends AbstractEvent { - public Card3_085() { - super(Side.SHADOW, 0, Culture.WRAITH, "Too Great and Terrible", Phase.MANEUVER); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return Filters.canSpot(game, Race.NAZGUL); - } - - @Override - public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, PhysicalCard self) { - final PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new PreventableEffect(action, - new UnrespondableEffect() { - @Override - public String getText(LotroGame game) { - return "Wound Gandalf twice"; - } - - @Override - protected void doPlayEffect(LotroGame game) { - action.appendEffect( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.gandalf)); - action.appendEffect( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.gandalf)); - } - }, Collections.singletonList(game.getGameState().getCurrentPlayerId()), - new PreventableEffect.PreventionCost() { - @Override - public Effect createPreventionCostForPlayer(CostToEffectAction subAction, String playerId) { - return new ChooseAndDiscardCardsFromHandEffect(subAction, playerId, false, 2, 2, Culture.GANDALF) { - @Override - public String getText(LotroGame game) { - return "Discard 2 [GANDALF] cards from hand"; - } - }; - } - } - )); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_086.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_086.java deleted file mode 100644 index 69a8ba394..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/wraith/Card3_086.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gempukku.lotro.cards.set3.wraith; - -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.effects.TransferPermanentEffect; -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.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Realms of Elf-lords - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 4 - * Type: Minion • Nazgul - * Strength: 9 - * Vitality: 3 - * Site: 3 - * Game Text: Twilight. Each time Úlairë Otsëa wins a skirmish, you may exert him to transfer Blade Tip from your - * support area to the Ring-bearer. - */ -public class Card3_086 extends AbstractMinion { - public Card3_086() { - super(4, 9, 3, 3, Race.NAZGUL, Culture.WRAITH, Names.otsea, "Ringwraith in Twilight", true); - addKeyword(Keyword.TWILIGHT); - } - - @Override - public List getOptionalAfterTriggers(String playerId, final LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.winsSkirmish(game, effectResult, self) - && PlayConditions.canExert(self, game, self)) { - final OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose Blade Tip", Filters.name("Blade Tip"), Zone.SUPPORT, Filters.owner(playerId)) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - final PhysicalCard ringBearer = Filters.findFirstActive(game, Filters.ringBearer, Filters.not(Filters.hasAttached(Filters.name("Blade Tip")))); - if (ringBearer != null) - action.insertEffect( - new TransferPermanentEffect(card, ringBearer)); - } - }); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-moria.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-moria.hjson index ae7799596..dfcd35544 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-moria.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-moria.hjson @@ -27,7 +27,6 @@ } } ] - } } 3_77: { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-wraith.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-wraith.hjson new file mode 100644 index 000000000..b022fdf96 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-wraith.hjson @@ -0,0 +1,194 @@ +{ + 3_81: { + title: Gates of the Dead City + side: shadow + culture: Wraith + twilight: 1 + type: condition + keyword: Support Area + effects: [ + { + type: toPlay + requires: { + type: canSpot + filter: nazgul + } + } + { + type: trigger + trigger: { + type: addsBurden + filter: culture(wraith) + } + effect: { + type: exert + player: fp + filter: choose(companion) + } + } + ] + } + 3_82: { + title: News of Mordor + side: shadow + culture: Wraith + twilight: 1 + type: event + keyword: Skirmish + effects: { + type: event + requires: { + type: canSpot + filter: culture(isengard),minion + } + effect: { + type: addKeyword + filter: choose(nazgul) + keyword: damage + amount: 1 + } + } + } + 3_83: { + title: The Ring Draws Them + unique: true + side: shadow + culture: Wraith + twilight: 2 + type: condition + keyword: Support Area + effects: [ + { + type: trigger + trigger: { + type: moves + } + effect: { + type: addTwilight + amount: { + type: forEachBurden + } + } + } + { + type: trigger + trigger: { + type: endOfPhase + phase: shadow + } + effect: { + type: choice + texts: [ + Exert a Nazgul + Discard The Ring Draws Them + ] + effects: [ + { + type: exert + filter: choose(nazgul) + } + { + type: discard + filter: self + } + ] + } + } + ] + } + 3_84: { + title: They Will Never Stop Hunting You + side: shadow + culture: Wraith + twilight: 2 + type: event + keyword: Maneuver + effects: { + type: event + requires: { + type: canSpot + filter: nazgul + } + effect: [ + { + type: revealRandomCardsFromHand + forced: true + hand: fp + memorize: revealedCard + } + { + type: exert + filter: choose(companion,hasAttached(ranged weapon)) + times: { + type: twilightCostInMemory + memory: revealedCard + } + } + ] + } + } + 3_85: { + title: Too Great and Terrible + side: shadow + culture: Wraith + twilight: 0 + type: event + keyword: Maneuver + effects: { + type: event + requires: { + type: canSpot + filter: nazgul + } + effect: { + type: preventable + text: Would you like to discard 2 GANDALF cards from hand to prevent wounding Gandalf twice? + player: fp + cost: { + type: discardFromHand + forced: false + hand: fp + player: fp + filter: choose(culture(gandalf)) + count: 2 + } + effect: { + type: wound + filter: choose(name(Gandalf)) + times: 2 + } + } + } + } + 3_86: { + title: Úlairë Otsëa + subtitle: Ringwraith in Twilight + unique: true + side: shadow + culture: Wraith + twilight: 4 + type: minion + race: Nazgul + strength: 9 + vitality: 3 + site: 3 + keyword: Twilight + effects: { + type: trigger + optional: true + trigger: { + type: winsSkirmish + filter: self + } + cost: { + type: exert + filter: self + } + effect: { + type: transfer + filter: choose(name(Blade Tip),zone(support)) + where: choose(ringBearer) + } + } + } +}