diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_139.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_139.java deleted file mode 100644 index 6ca3ffce9..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_139.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gempukku.lotro.cards.set17.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.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ResistanceModifier; -import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Rise of Saruman - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 5 - * Type: Minion • Nazgul - * Strength: 10 - * Vitality: 3 - * Site: 3 - * Game Text: Fierce. Each unbound companion is resistance -1 for each card he or she bears. - * Skirmish: Exert Ulaire Cantea to exert a companion with resistance 2 or less. - */ -public class Card17_139 extends AbstractMinion { - public Card17_139() { - super(5, 10, 3, 3, Race.NAZGUL, Culture.WRAITH, Names.cantea, "Duplicitous Assassin", true); - addKeyword(Keyword.FIERCE); - } - - @Override - public java.util.List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return java.util.Collections.singletonList(new ResistanceModifier(self, Filters.unboundCompanion, null, - new Evaluator() { - @Override - public int evaluateExpression(LotroGame game, PhysicalCard cardAffected) { - return -Filters.countActive(game, Filters.attachedTo(cardAffected)); - } - })); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0) - && PlayConditions.canSelfExert(self, game)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendEffect( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.COMPANION, Filters.maxResistance(2))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_141.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_141.java deleted file mode 100644 index eaaa26f20..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_141.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.gempukku.lotro.cards.set17.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.ActivateCardAction; -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.effects.ChooseAndDiscardCardsFromHandEffect; -import com.gempukku.lotro.logic.effects.DrawCardsEffect; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Rise of Saruman - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 4 - * Type: Minion • Nazgul - * Strength: 9 - * Vitality: 2 - * Site: 3 - * Game Text: Fierce. When you play Ulaire Otsea, you may spot another Nazgul to draw a card for each wounded companion - * you can spot. Regroup: Exert Ulaire Otsea and discard a [WRAITH] card from hand to add a burden. - */ -public class Card17_141 extends AbstractMinion { - public Card17_141() { - super(4, 9, 2, 3, Race.NAZGUL, Culture.WRAITH, Names.otsea, "Duplicitous Specter", true); - addKeyword(Keyword.FIERCE); - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, self) - && PlayConditions.canSpot(game, Filters.not(self), Race.NAZGUL)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendEffect( - new DrawCardsEffect(action, playerId, Filters.countActive(game, CardType.COMPANION, Filters.wounded))); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0) - && PlayConditions.canSelfExert(self, game) - && PlayConditions.canDiscardFromHand(game, playerId, 1, Culture.WRAITH)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendCost( - new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1, Culture.WRAITH)); - 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/set17/wraith/Card17_142.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_142.java deleted file mode 100644 index 4bfae53c9..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_142.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.gempukku.lotro.cards.set17.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.ActivateCardAction; -import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractAttachable; -import com.gempukku.lotro.logic.effects.AddBurdenEffect; -import com.gempukku.lotro.logic.effects.ChoiceEffect; -import com.gempukku.lotro.logic.effects.ReturnCardsToHandEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Rise of Saruman - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 0 - * Type: Artifact • Ring - * Strength: +1 - * Game Text: Bearer must be a Nazgul. Each time bearer wins a skirmish, the Free Peoples player must either add - * a burden or exert a companion. Response: If a player reconciles, return bearer to his owner's hand. - */ -public class Card17_142 extends AbstractAttachable { - public Card17_142() { - super(Side.SHADOW, CardType.ARTIFACT, 0, Culture.WRAITH, PossessionClass.RING, "Ring of Savagery", null, true); - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Race.NAZGUL; - } - - @Override - public int getStrength() { - return 1; - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.winsSkirmish(game, effectResult, Filters.hasAttached(self))) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - List possibleEffects = new LinkedList<>(); - possibleEffects.add( - new AddBurdenEffect(game.getGameState().getCurrentPlayerId(), self, 1)); - possibleEffects.add( - new ChooseAndExertCharactersEffect(action, game.getGameState().getCurrentPlayerId(), 1, 1, CardType.COMPANION) { - @Override - public String getText(LotroGame game) { - return "Exert a companion"; - } - }); - action.appendEffect( - new ChoiceEffect(action, game.getGameState().getCurrentPlayerId(), possibleEffects)); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getOptionalInPlayAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.reconciles(game, effectResult, null)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendEffect( - new ReturnCardsToHandEffect(self, self.getAttachedTo())); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_143.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_143.java deleted file mode 100644 index ea67f0abf..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_143.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gempukku.lotro.cards.set17.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.ActivateCardAction; -import com.gempukku.lotro.logic.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractAttachable; -import com.gempukku.lotro.logic.effects.RemoveThreatsEffect; -import com.gempukku.lotro.logic.effects.ReturnCardsToHandEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPutCardFromDiscardIntoHandEffect; -import com.gempukku.lotro.logic.modifiers.AddKeywordModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Rise of Saruman - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 0 - * Type: Artifact • Ring - * Game Text: Bearer must be a Nazgul. Bearer is damage +1. When you play this artifact, you may remove two threats - * to take a [WRAITH] card into hand from your discard pile. Response: If a player reconciles, return bearer to his - * owner's hand. - */ -public class Card17_143 extends AbstractAttachable { - public Card17_143() { - super(Side.SHADOW, CardType.ARTIFACT, 0, Culture.WRAITH, PossessionClass.RING, "Ring of Terror", null, true); - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Race.NAZGUL; - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList(new AddKeywordModifier(self, Filters.hasAttached(self), Keyword.DAMAGE, 1)); -} - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, self) - && PlayConditions.canRemoveThreat(game, self, 2)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendCost( - new RemoveThreatsEffect(self, 2)); - action.appendEffect( - new ChooseAndPutCardFromDiscardIntoHandEffect(action, playerId, 1, 1, Culture.WRAITH)); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getOptionalInPlayAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.reconciles(game, effectResult, null)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendEffect( - new ReturnCardsToHandEffect(self, self.getAttachedTo())); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_144.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_144.java deleted file mode 100644 index 859e53517..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set17/wraith/Card17_144.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gempukku.lotro.cards.set17.wraith; - -import com.gempukku.lotro.logic.cardtype.AbstractMinion; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.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.LotroGame; -import com.gempukku.lotro.logic.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Rise of Saruman - * Side: Shadow - * Culture: Wraith - * Twilight Cost: 8 - * Type: Minion • Nazgul - * Strength: 14 - * Vitality: 4 - * Site: 3 - * Game Text: Fierce. Each time the Witch-king wins a fierce skirmish, you may exert a companion for each companion you - * can spot over 4. - */ -public class Card17_144 extends AbstractMinion { - public Card17_144() { - super(8, 14, 4, 3, Race.NAZGUL, Culture.WRAITH, Names.witchKing, "Conqueror of Arthedain", true); - addKeyword(Keyword.FIERCE); - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.winsSkirmish(game, effectResult, self) - && game.getGameState().isFierceSkirmishes()) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - int count = Filters.countActive(game, CardType.COMPANION) - 4; - for (int i = 0; i < count; i++) - action.appendEffect( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, CardType.COMPANION)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set17-Ringwraith.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-Ringwraith.hjson similarity index 53% rename from gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set17-Ringwraith.hjson rename to gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-Ringwraith.hjson index 8d47ff089..9b67ca494 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set17-Ringwraith.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-Ringwraith.hjson @@ -22,12 +22,36 @@ culture: Wraith twilight: 5 type: Minion - race: Nazgûl + race: Nazgul strength: 10 vitality: 3 site: 3 keywords: Fierce effects: [ + { + type: modifier + modifier: { + type: modifyResistance + filter: unbound,companion + amount: { + type: forEachHasAttached + filter: any + multiplier: -1 + } + } + } + { + type: activated + phase: skirmish + cost: { + type: exert + filter: self + } + effect: { + type: exert + filter: choose(companion,maxResistance(2)) + } + } ] gametext: Fierce.
Each unbound companion is resistance -1 for each card he or she bears.
Skirmish: Exert Úlairë Cantëa to exert a companion with resistance 2 or less. lore: Drawn to the power of the one. They will never stop hunting you. @@ -62,12 +86,48 @@ culture: Wraith twilight: 6 type: Minion - race: Nazgûl + race: Nazgul strength: 11 vitality: 4 site: 3 keywords: Fierce effects: [ + { + type: trigger + optional: true + trigger: { + type: heals + filter: companion + player: free peoples + } + effect: { + type: addBurdens + amount: 1 + } + } + { + type: activated + phase: maneuver + cost: { + type: exert + filter: self + times: 2 + } + effect: { + type: discard + filter: choose(condition) + count: { + type: condition + condition: { + type: canSpot + filter: condition,side(free people) + count: 5 + } + true: 2 + false: 1 + } + } + } ] gametext: Fierce.
Each time the Free Peoples player heals a companion, you may add a burden.
Maneuver: Exert Úlairë Enquëa twice to discard a condition (or two conditions if you can spot 5 Free Peoples player's conditions). lore: At all times they feel the presence of the ring. @@ -102,12 +162,50 @@ culture: Wraith twilight: 4 type: Minion - race: Nazgûl + race: Nazgul strength: 9 vitality: 2 site: 3 keywords: Fierce effects: [ + { + type: trigger + optional: true + trigger: { + type: played + player: you + filter: self + } + requires: { + type: canSpot + filter: another,nazgul + } + effect: { + type: drawCards + count: { + type: forEachYouCanSpot + filter: wounded,companion + } + } + } + { + type: activated + phase: regroup + cost: [ + { + type: exert + filter: self + } + { + type: discardFromHand + forced: false + filter: choose(culture(wraith)) + } + ] + effect: { + type: addBurdens + } + } ] gametext: Fierce.
When you play Úlairë Otsëa, you may spot another Nazgûl to draw a card for each wounded companion you can spot.
Regroup: Exert Úlairë Otsëa and discard a [wraith] card from hand to add a burden. lore: Blinded by their greed, they took them without question. @@ -143,8 +241,44 @@ type: Artifact strength: 1 itemclass: Ring - #target: a Nazgûl + target: nazgul effects: [ + { + type: trigger + trigger: { + type: winsSkirmish + filter: bearer + } + effect: { + type: choice + player: free people + texts: [ + Add a burden + Exert a companion + ] + effects: [ + { + type: addBurdens + player: free people + } + { + type: exert + player: free people + filter: choose(companion) + } + ] + } + } + { + type: activatedTrigger + trigger: { + type: reconciles + } + effect: { + type: returnToHand + filter: bearer + } + } ] gametext: Bearer must be a Nazgûl.
Each time bearer wins a skirmish, the Free Peoples player must either add a burden or exert a companion.
Response: If a player reconciles, return bearer to his owner's hand. lore: "" @@ -179,8 +313,44 @@ twilight: 0 type: Artifact itemclass: Ring - #target: a Nazgûl + target: nazgul effects: [ + { + type: modifier + modifier: { + type: addKeyword + filter: bearer + keyword: damage + amount: 1 + } + } + { + type: trigger + optional: true + trigger: { + type: played + player: you + filter: self + } + cost: { + type: removeThreats + amount: 2 + } + effect: { + type: putCardsFromDiscardIntoHand + filter: choose(culture(wraith)) + } + } + { + type: activatedTrigger + trigger: { + type: reconciles + } + effect: { + type: returnToHand + filter: bearer + } + } ] gametext: Bearer must be a Nazgûl. Bearer is damage +1.
When you play this artifact, you may remove two threats to take a [wraith] card into hand from your discard pile.
Response: If a player reconciles, return bearer to his owner's hand. lore: "" @@ -215,12 +385,32 @@ culture: Wraith twilight: 8 type: Minion - race: Nazgûl + race: Nazgul strength: 14 vitality: 4 site: 3 keywords: Fierce effects: [ + { + type: trigger + optional: true + trigger: { + type: winsSkirmish + filter: self + } + effect: { + type: repeat + times: { + type: forEachYouCanSpot + filter: companion + over: 4 + } + effect: { + type: exert + filter: choose(companion) + } + } + } ] gametext: Fierce.
Each time the Witch-king wins a fierce skirmish, you may exert a companion for each companion you can spot over 4. lore: "" diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-wraith.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-wraith.hjson deleted file mode 100644 index 3f8b61fd5..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set17/set17-wraith.hjson +++ /dev/null @@ -1,54 +0,0 @@ -{ - 17_140: { - title: Úlairë Enquëa - subtitle: Duplicitous Lieutenant - unique: true - side: shadow - culture: Wraith - type: minion - race: Nazgul - twilight: 6 - strength: 11 - vitality: 4 - site: 3 - keyword: Fierce - effects: [ - { - type: trigger - optional: true - trigger: { - type: heals - filter: companion - player: free peoples - } - effect: { - type: addburdens - amount: 1 - } - } - { - type: activated - phase: maneuver - cost: { - type: exert - times: 2 - filter: self - } - effect: { - type: discard - filter: choose(condition,side(free people)) - count: { - type: requires - requires: { - type: canSpot - filter: condition,side(free people) - count: 5 - } - true: 2 - false: 1 - } - } - } - ] - } -} \ No newline at end of file