Migrated Wraith cards in set 3 to hjson

This commit is contained in:
MarcinSc
2024-04-11 14:28:15 +07:00
parent 14ff21a614
commit 9323056518
8 changed files with 194 additions and 351 deletions

View File

@@ -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<RequiredTriggerAction> 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;
}
}

View File

@@ -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;
}
}

View File

@@ -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<RequiredTriggerAction> 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<Effect> 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;
}
}

View File

@@ -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<PhysicalCard> 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;
}
}

View File

@@ -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;
}
}

View File

@@ -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<OptionalTriggerAction> 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;
}
}

View File

@@ -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)
}
}
}
}