Migrated Wraith cards in set 13 to hjson

This commit is contained in:
MarcinSc
2024-05-23 20:27:50 +07:00
parent 09b141bc75
commit 9d6226d230
8 changed files with 201 additions and 408 deletions

View File

@@ -1,71 +0,0 @@
package com.gempukku.lotro.cards.set13.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.GameUtils;
import com.gempukku.lotro.logic.actions.PlayEventAction;
import com.gempukku.lotro.logic.actions.SubAction;
import com.gempukku.lotro.logic.cardtype.AbstractEvent;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
/**
* Set: Bloodlines
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 3
* Type: Event • Regroup
* Game Text: To play, exert your Nazgul twice and spot an exhausted companion. Heal that companion to add a burden.
* If the fellowship is not in region 1, you may repeat this for each other wound on that companion.
*/
public class Card13_178 extends AbstractEvent {
public Card13_178() {
super(Side.SHADOW, 3, Culture.WRAITH, "Dark Fell About Him", Phase.REGROUP);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canExert(self, game, 2, Filters.owner(self.getOwner()), Race.NAZGUL)
&& PlayConditions.canSpot(game, CardType.COMPANION, Filters.exhausted);
}
@Override
public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, final PhysicalCard self) {
final PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.owner(playerId), Race.NAZGUL));
action.appendCost(
new ChooseActiveCardEffect(self, playerId, "Choose an exhausted companion", CardType.COMPANION, Filters.exhausted) {
@Override
protected void cardSelected(LotroGame game, final PhysicalCard companion) {
action.appendCost(
new HealCharactersEffect(self, self.getOwner(), companion));
action.appendEffect(
new AddBurdenEffect(self.getOwner(), self, 1));
if (!PlayConditions.location(game, Filters.region(1))) {
int wounds = game.getGameState().getWounds(companion) - 1;
for (int i = 0; i < wounds; i++) {
SubAction subAction = new SubAction(action);
subAction.appendCost(
new HealCharactersEffect(self, self.getOwner(), companion));
subAction.appendEffect(
new AddBurdenEffect(self.getOwner(), self, 1));
action.appendEffect(
new OptionalEffect(action, playerId,
new StackActionEffect(subAction) {
@Override
public String getText(LotroGame game) {
return "Heal " + GameUtils.getFullName(companion) + " to add a burden";
}
}));
}
}
}
});
return action;
}
}

View File

@@ -1,52 +0,0 @@
package com.gempukku.lotro.cards.set13.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.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.effects.discount.RemoveCardsFromDiscardDiscountEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
/**
* Set: Bloodlines
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 2
* Type: Event • Skirmish
* Game Text: You may remove from the game 4 [WRAITH] cards in your discard pile instead of paying the twilight cost for
* this card. Make your Nazgul in a fierce skirmish strength +2.
*/
public class Card13_179 extends AbstractEvent {
public Card13_179() {
super(Side.SHADOW, 2, Culture.WRAITH, "From Hideous Eyrie", Phase.SKIRMISH);
}
@Override
public int getPotentialDiscount(LotroGame game, String playerId, PhysicalCard self) {
if (PlayConditions.canRemoveFromDiscard(self, game, playerId, 4, Culture.WRAITH))
return 1000;
return 0;
}
@Override
public void appendPotentialDiscountEffects(LotroGame game, CostToEffectAction action, String playerId, PhysicalCard self) {
action.appendPotentialDiscount(
new RemoveCardsFromDiscardDiscountEffect(self, playerId, 4, 1000, Culture.WRAITH));
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) {
PlayEventAction action = new PlayEventAction(self);
if (game.getGameState().isFierceSkirmishes())
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 2, Filters.owner(playerId), Race.NAZGUL));
return action;
}
}

View File

@@ -1,51 +0,0 @@
package com.gempukku.lotro.cards.set13.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.DrawCardsEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
/**
* Set: Bloodlines
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 4
* Type: Event • Shadow
* Game Text: Toil 1. (For each [WRAITH] character you exert when playing this, it is twilight cost -1.) To play, spot
* a [WRAITH] card in your support area. Spot a companion to draw a card for each wound on that companion (and draw
* an additional card if you can spot a Nazgul).
*/
public class Card13_180 extends AbstractEvent {
public Card13_180() {
super(Side.SHADOW, 4, Culture.WRAITH, "Shadow in the East", Phase.SHADOW);
addKeyword(Keyword.TOIL, 1);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, Filters.owner(self.getOwner()), Culture.WRAITH, Zone.SUPPORT)
&& PlayConditions.canSpot(game, CardType.COMPANION);
}
@Override
public PlayEventAction getPlayEventCardAction(final String playerId, LotroGame game, PhysicalCard self) {
final PlayEventAction action = new PlayEventAction(self);
action.appendCost(
new ChooseActiveCardEffect(self, playerId, "Choose a companion", CardType.COMPANION) {
@Override
protected void cardSelected(LotroGame game, PhysicalCard card) {
int count = game.getGameState().getWounds(card);
if (PlayConditions.canSpot(game, Race.NAZGUL))
count++;
action.appendEffect(
new DrawCardsEffect(action, playerId, count));
}
});
return action;
}
}

View File

@@ -1,81 +0,0 @@
package com.gempukku.lotro.cards.set13.wraith;
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.PlayUtils;
import com.gempukku.lotro.logic.actions.ActivateCardAction;
import com.gempukku.lotro.logic.actions.OptionalTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractPermanent;
import com.gempukku.lotro.logic.effects.*;
import com.gempukku.lotro.logic.modifiers.ModifierFlag;
import com.gempukku.lotro.logic.timing.*;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Bloodlines
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 0
* Type: Condition • Support Area
* Game Text: When you play this, you may add a [WRAITH] token here for each [WRAITH] card in your support area.
* Shadow: Discard this from play or remove 2 tokens from here to play a [WRAITH] mount from your draw deck on your
* [WRAITH] minion.
*/
public class Card13_181 extends AbstractPermanent {
public Card13_181() {
super(Side.SHADOW, 0, CardType.CONDITION, Culture.WRAITH, "They Came From Mordor");
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, self)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
int count = Filters.countActive(game, Filters.owner(playerId), Culture.WRAITH, Zone.SUPPORT);
if (count > 0)
action.appendEffect(
new AddTokenEffect(self, self, Token.WRAITH, count));
return Collections.singletonList(action);
}
return null;
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(final String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)) {
ActivateCardAction action = new ActivateCardAction(self);
List<Effect> possibleCosts = new LinkedList<>();
possibleCosts.add(
new RemoveTokenEffect(self, self, Token.WRAITH, 2));
possibleCosts.add(
new SelfDiscardEffect(self));
action.appendCost(
new ChoiceEffect(action, playerId, possibleCosts));
if (!game.getModifiersQuerying().hasFlagActive(game, ModifierFlag.CANT_PLAY_FROM_DISCARD_OR_DECK)) {
final Filter additionalAttachmentFilter = Filters.and(Filters.owner(self.getOwner()), Culture.WRAITH, CardType.MINION);
action.appendEffect(
new ChooseArbitraryCardsEffect(playerId, "Choose card to play", game.getGameState().getDeck(playerId),
Filters.and(
Culture.WRAITH, PossessionClass.MOUNT,
ExtraFilters.attachableTo(game, additionalAttachmentFilter)), 0, 1) {
@Override
protected void cardsSelected(LotroGame game, Collection<PhysicalCard> selectedCards) {
if (selectedCards.size() > 0) {
PhysicalCard selectedCard = selectedCards.iterator().next();
game.getActionsEnvironment().addActionToStack(PlayUtils.getPlayCardAction(game, selectedCard, 0, additionalAttachmentFilter, false));
}
}
});
}
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,52 +0,0 @@
package com.gempukku.lotro.cards.set13.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.ExertCharactersEffect;
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: Bloodlines
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 6
* Type: Minion • Nazgul
* Strength: 11
* Vitality: 4
* Site: 3
* Game Text: Fierce. When you play Ulaire Enquea, if you can spot 2 other Nazgul, you may exert 2 unbound companions
* (or exert each companion if you can spot 6 companions).
*/
public class Card13_182 extends AbstractMinion {
public Card13_182() {
super(6, 11, 4, 3, Race.NAZGUL, Culture.WRAITH, Names.enquea, "Sixth of the Nine Riders", true);
addKeyword(Keyword.FIERCE);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, self)
&& PlayConditions.canSpot(game, 2, Filters.not(self), Race.NAZGUL)) {
OptionalTriggerAction action = new OptionalTriggerAction(self);
if (PlayConditions.canSpot(game, 6, CardType.COMPANION)) {
action.appendEffect(
new ExertCharactersEffect(action, self, CardType.COMPANION));
} else {
action.appendEffect(
new ChooseAndExertCharactersEffect(action, playerId, 2, 2, Filters.unboundCompanion));
}
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,49 +0,0 @@
package com.gempukku.lotro.cards.set13.wraith;
import com.gempukku.lotro.common.*;
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.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.SelfExertEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Bloodlines
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 4
* Type: Minion • Nazgul
* Strength: 9
* Vitality: 2
* Site: 3
* Game Text: Fierce. Shadow: Exert Ulaire Lemenya and discard a Nazgul from your hand to discard a condition from play.
*/
public class Card13_183 extends AbstractMinion {
public Card13_183() {
super(4, 9, 2, 3, Race.NAZGUL, Culture.WRAITH, Names.lemenya, "Servant of the Shadow", true);
addKeyword(Keyword.FIERCE);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
&& PlayConditions.canSelfExert(self, game)
&& PlayConditions.canDiscardFromHand(game, playerId, 1, Race.NAZGUL)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new SelfExertEffect(action, self));
action.appendCost(
new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1, Race.NAZGUL));
action.appendEffect(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.CONDITION));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,32 +0,0 @@
package com.gempukku.lotro.cards.set13.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.cardtype.AbstractMinion;
/**
* Set: Bloodlines
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 4
* Type: Minion • Nazgul
* Strength: 9
* Vitality: 2
* Site: 3
* Game Text: Fierce. While you can spot a companion who has resistance 3 or less, Ulaire Nertea is twilight cost -2.
*/
public class Card13_184 extends AbstractMinion {
public Card13_184() {
super(4, 9, 2, 3, Race.NAZGUL, Culture.WRAITH, Names.nertea, "Servant of the Shadow", true);
addKeyword(Keyword.FIERCE);
}
@Override
public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) {
if (Filters.canSpot(game, CardType.COMPANION, Filters.maxResistance(3)))
return -2;
return 0;
}
}

View File

@@ -22,14 +22,59 @@
twilight: 3
type: Event
keywords: Regroup
effects: {
type: event
cost: {
},
cost: [
{
type: exert
filter: choose(your,nazgul)
times: 2
}
{
type: spot
filter: choose(exhausted,companion)
memorize: exhaustedCompanion
}
]
effect: [
{
}
{
type: if
condition: {
type: location
filter: regionNumber(1)
}
true: {
type: costToEffect
cost: {
type: heal
filter: memory(exhaustedCompanion)
}
effect: {
type: addBurdens
}
}
false: {
type: repeat
times: {
type: forEachWound
filter: memory(exhaustedCompanion)
}
effect: {
type: optional
text: Would you like to heal {exhaustedCompanion} to add a burden?
effect: {
type: costToEffect
cost: {
type: heal
filter: memory(exhaustedCompanion)
}
effect: {
type: addBurdens
}
}
}
}
}
]
}
gametext: To play, exert your Nazgûl twice and spot an exhausted companion.<br>Heal that companion to add a burden. If the fellowship is not in region 1, you may repeat this for each other wound on that companion.
@@ -65,16 +110,26 @@
twilight: 2
type: Event
keywords: Skirmish
effects: {
type: event
cost: {
},
effect: [
{
}
]
}
effects: [
{
type: discount
discount: {
type: ifRemoveFromDiscard
filter: culture(wraith)
count: 4
}
}
{
type: event
effect: [
{
type: modifyStrength
filter: choose(nazgul,inFierceSkirmish)
amount: 2
}
]
}
]
gametext: You may remove from the game 4 [wraith] cards in your discard pile instead of paying the twilight cost for this card.<br>Make your Nazgûl in a fierce skirmish strength +2.
lore: Down, down it came, and then, folding its fingered webs, it gave a croaking cry....
promotext: ""
@@ -111,13 +166,38 @@
Toil 1
Shadow
]
effects: {
type: event
requires: {
type: canSpot
filter: culture(wraith),your,zone(support)
}
cost: {
},
type: spot
filter: choose(companion)
memorize: spottedCompanion
}
effect: [
{
type: drawCards
count: {
type: sum
source: [
{
type: forEachWound
filter: memory(spottedCompanion)
}
{
type: condition
condition: {
type: canSpot
filter: nazgul
}
true: 1
false: 0
}
]
}
}
]
}
@@ -155,6 +235,50 @@
type: Condition
keywords: Support Area
effects: [
{
type: trigger
optional: true
trigger: {
type: played
filter: self
}
effect: {
type: addTokens
culture: wraith
filter: self
count: {
type: forEachYouCanSpot
filter: culture(wraith),your,zone(support)
}
}
}
{
type: activated
phase: shadow
cost: {
type: choice
texts: [
Discard this from play
Remove 2 tokens from here
]
effects: [
{
type: discard
filter: self
}
{
type: removeTokens
filter: self
count: 2
}
]
}
effect: {
type: playCardFromDrawDeck
filter: choose(culture(wraith),mount)
on: your,culture(wraith),minion
}
}
]
gametext: When you play this, you may add a [wraith] token here for each [wraith] card in your support area.<br><b>Shadow:</b> Discard this from play or remove 2 tokens from here to play a [wraith] mount from your draw deck on your [wraith] minion.
lore: That is the worst news that has come to Bree....'
@@ -189,12 +313,42 @@
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: played
filter: self
}
requires: {
type: canSpot
filter: other,nazgul
count: 2
}
effect: {
type: if
condition: {
type: canSpot
filter: companion
count: 6
}
true: {
type: exert
filter: all(companion)
}
false: {
type: exert
filter: choose(unbound,companion)
count: 2
}
}
}
]
gametext: <b>Fierce</b>.<br>When you play Úlairë Enquëa, if you can spot 2 other Nazgûl, you may exert 2 unbound companions (or exert each companion if you can spot 6 companions).
lore: It is many a year since the Nine walked abroad.'
@@ -229,12 +383,31 @@
culture: Wraith
twilight: 4
type: Minion
race: Nazgûl
race: Nazgul
strength: 9
vitality: 2
site: 3
keywords: Fierce
effects: [
{
type: activated
phase: shadow
cost: [
{
type: exert
filter: self
}
{
type: discardFromHand
forced: false
filter: choose(nazgul)
}
]
effect: {
type: discard
filter: choose(condition)
}
}
]
gametext: <b>Fierce</b>.<br><b>Shadow:</b> Exert Úlairë Lemenya and discard a Nazgûl from your hand to discard a condition from play.
lore: As the Shadow grows once more, they too may walk again.'
@@ -269,12 +442,20 @@
culture: Wraith
twilight: 4
type: Minion
race: Nazgûl
race: Nazgul
strength: 9
vitality: 2
site: 3
keywords: Fierce
effects: [
{
type: modifyOwnCost
requires: {
type: canSpot
filter: companion,maxResistance(3)
}
amount: -2
}
]
gametext: <b>Fierce</b>.<br>While you can spot a companion who has resistance 3 or less, Úlairë Nertëa is twilight cost -2.
lore: From inside the hood came a noise as of someone sniffling to catch an elusive scent....