Migrated Ringwraith cards in set 6 to hjson

This commit is contained in:
MarcinSc
2024-04-22 22:59:10 +07:00
parent 1cf74b3f6e
commit 9eaa6d0d51
10 changed files with 200 additions and 538 deletions

View File

@@ -1,60 +0,0 @@
package com.gempukku.lotro.cards.set6.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.AbstractAttachable;
import com.gempukku.lotro.logic.modifiers.AbstractExtraPlayCostModifier;
import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.cost.DiscardFromHandExtraPlayCostModifier;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Ents of Fangorn
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 0
* Type: Possession • Mount
* Strength: +2
* Game Text: To play, discard 2 cards from hand. Bearer must be a Nazgul. Bearer is fierce.
*/
public class Card6_083 extends AbstractAttachable {
public Card6_083() {
super(Side.SHADOW, CardType.POSSESSION, 0, Culture.WRAITH, PossessionClass.MOUNT, "Fell Beast");
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canDiscardCardsFromHandToPlay(self, game, self.getOwner(), 2, Filters.any);
}
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Race.NAZGUL;
}
@Override
public List<? extends AbstractExtraPlayCostModifier> getExtraCostToPlay(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new DiscardFromHandExtraPlayCostModifier(self, self, 2, null, Filters.any));
}
@Override
public int getStrength() {
return 2;
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<>();
modifiers.add(
new KeywordModifier(self, Filters.hasAttached(self), Keyword.FIERCE));
return modifiers;
}
}

View File

@@ -1,51 +0,0 @@
package com.gempukku.lotro.cards.set6.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.AbstractPermanent;
import com.gempukku.lotro.logic.effects.ExhaustCharacterEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndPlayCardFromHandEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Ents of Fangorn
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 1
* Type: Condition
* Game Text: Plays to your support area. Regroup: Exert a Nazgul twice to play a [WRAITH] or [SAURON] minion. That
* minion's twilight cost is -8 and it comes into play exhausted.
*/
public class Card6_084 extends AbstractPermanent {
public Card6_084() {
super(Side.SHADOW, 1, CardType.CONDITION, Culture.WRAITH, "Spied From Above");
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(final String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0)
&& PlayConditions.canExert(self, game, 2, Race.NAZGUL)
&& PlayConditions.canPlayFromHand(playerId, game, -8, CardType.MINION, Filters.or(Culture.WRAITH, Culture.SAURON))) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Race.NAZGUL));
action.appendEffect(
new ChooseAndPlayCardFromHandEffect(playerId, game, -8, CardType.MINION, Filters.or(Culture.WRAITH, Culture.SAURON)) {
@Override
protected void afterCardPlayed(PhysicalCard cardPlayed) {
action.appendEffect(
new ExhaustCharacterEffect(self, action, cardPlayed));
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,53 +0,0 @@
package com.gempukku.lotro.cards.set6.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.RequiredTriggerAction;
import com.gempukku.lotro.logic.cardtype.AbstractAttachable;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
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: Ents of Fangorn
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 2
* Type: Possession • Hand Weapon
* Strength: +2
* Game Text: Bearer must be a Nazgul. While bearer is Úlairë Toldëa, each time he wins a skirmish the Free Peoples
* player must discard a Free Peoples possession or a Free Peoples condition.
*/
public class Card6_085 extends AbstractAttachable {
public Card6_085() {
super(Side.SHADOW, CardType.POSSESSION, 2, Culture.WRAITH, PossessionClass.HAND_WEAPON, "Sword of Dol Guldur", null, true);
}
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Race.NAZGUL;
}
@Override
public int getStrength() {
return 2;
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.winsSkirmish(game, effectResult, self.getAttachedTo())
&& PlayConditions.canSpot(game, Filters.hasAttached(self), Filters.name(Names.toldea))) {
RequiredTriggerAction action = new RequiredTriggerAction(self);
action.appendEffect(
new ChooseAndDiscardCardsFromPlayEffect(action, game.getGameState().getCurrentPlayerId(), 1, 1, Side.FREE_PEOPLE, Filters.or(CardType.POSSESSION, CardType.CONDITION)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,50 +0,0 @@
package com.gempukku.lotro.cards.set6.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.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.SelfExertEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndReturnCardsToHandEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Ents of Fangorn
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 4
* Type: Minion • Nazgul
* Strength: 9
* Vitality: 2
* Site: 3
* Game Text: Regroup: Exert Úlairë Lemenya and discard 3 cards from hand to return a companion (except the Ring-bearer)
* to owner's hand.
*/
public class Card6_086 extends AbstractMinion {
public Card6_086() {
super(4, 9, 2, 3, Race.NAZGUL, Culture.WRAITH, Names.lemenya, "Winged Hunter", true);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0)
&& PlayConditions.canDiscardFromHand(game, playerId, 3, Filters.any)
&& PlayConditions.canSelfExert(self, game)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new SelfExertEffect(action, self));
action.appendCost(
new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 3));
action.appendEffect(
new ChooseAndReturnCardsToHandEffect(action, playerId, 1, 1, CardType.COMPANION, Filters.not(Filters.ringBearer)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,48 +0,0 @@
package com.gempukku.lotro.cards.set6.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.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.modifiers.evaluator.CountCulturesEvaluator;
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.RequiredTriggerAction;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.List;
/**
* Set: Ents of Fangorn
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 4
* Type: Minion • Nazgul
* Strength: 9
* Vitality: 2
* Site: 3
* Game Text: When you play Úlairë Nertëa, spot another Nazgul to make the Free Peoples player exert a Ring-bound
* companion for each Free Peoples culture you can spot over 2.
*/
public class Card6_087 extends AbstractMinion {
public Card6_087() {
super(4, 9, 2, 3, Race.NAZGUL, Culture.WRAITH, Names.nertea, "Winged Hunter", true);
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.played(game, effectResult, self)
&& PlayConditions.canSpot(game, Race.NAZGUL, Filters.not(self))) {
RequiredTriggerAction action = new RequiredTriggerAction(self);
int count = new CountCulturesEvaluator(2, 1, Side.FREE_PEOPLE).evaluateExpression(game, null);
for (int i = 0; i < count; i++)
action.appendEffect(
new ChooseAndExertCharactersEffect(action, game.getGameState().getCurrentPlayerId(), 1, 1, CardType.COMPANION, Keyword.RING_BOUND));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,57 +0,0 @@
package com.gempukku.lotro.cards.set6.wraith;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.effects.AddBurdenEffect;
import com.gempukku.lotro.logic.effects.ChoiceEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
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.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Ents of Fangorn
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 6
* Type: Minion • Nazgul
* Strength: 12
* Vitality: 3
* Site: 3
* Game Text: Fierce. Each time Úlairë Toldëa wins a skirmish, the Free Peoples player must exert a companion or add
* a burden.
*/
public class Card6_088 extends AbstractMinion {
public Card6_088() {
super(6, 12, 3, 3, Race.NAZGUL, Culture.WRAITH, Names.toldea, "Winged Sentry", true);
addKeyword(Keyword.FIERCE);
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (TriggerConditions.winsSkirmish(game, effectResult, self)) {
RequiredTriggerAction action = new RequiredTriggerAction(self);
List<Effect> possibleEffects = new LinkedList<>();
possibleEffects.add(
new ChooseAndExertCharactersEffect(action, game.getGameState().getCurrentPlayerId(), 1, 1, CardType.COMPANION) {
@Override
public String getText(LotroGame game) {
return "Exert a companion";
}
});
possibleEffects.add(
new AddBurdenEffect(game.getGameState().getCurrentPlayerId(), self, 1));
action.appendEffect(
new ChoiceEffect(action, game.getGameState().getCurrentPlayerId(), possibleEffects));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,53 +0,0 @@
package com.gempukku.lotro.cards.set6.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.AbstractPermanent;
import com.gempukku.lotro.logic.effects.AddTokenEffect;
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
import com.gempukku.lotro.logic.effects.RemoveTokenEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Ents of Fangorn
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 1
* Type: Condition
* Game Text: Plays to your support area. Regroup: Exert a Nazgul to place a [WRAITH] token on this card.
* Shadow: Remove 3 [WRAITH] tokens from here to add (2).
*/
public class Card6_089 extends AbstractPermanent {
public Card6_089() {
super(Side.SHADOW, 1, CardType.CONDITION, Culture.WRAITH, "Winged and Ominous");
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
&& PlayConditions.canRemoveTokens(game, self, Token.WRAITH, 3)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new RemoveTokenEffect(self, self, Token.WRAITH, 3));
action.appendEffect(
new AddTwilightEffect(self, 2));
return Collections.singletonList(action);
}
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0)
&& PlayConditions.canExert(self, game, Race.NAZGUL)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.NAZGUL));
action.appendEffect(
new AddTokenEffect(self, self, Token.WRAITH, 1));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,79 +0,0 @@
package com.gempukku.lotro.cards.set6.wraith;
import com.gempukku.lotro.logic.cardtype.AbstractMinion;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.effects.ChoiceEffect;
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.RequiredTriggerAction;
import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect;
import com.gempukku.lotro.logic.effects.WoundCharactersEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* Set: Ents of Fangorn
* Side: Shadow
* Culture: Wraith
* Twilight Cost: 8
* Type: Minion • Nazgul
* Strength: 14
* Vitality: 4
* Site: 3
* Game Text: Fierce. Each time a companion is killed in a skirmish involving a Nazgul, wound an ally twice
* or exert a companion.
*/
public class Card6_122 extends AbstractMinion {
public Card6_122() {
super(8, 14, 4, 3, Race.NAZGUL, Culture.WRAITH, Names.witchKing, "Deathless Lord", true);
addKeyword(Keyword.FIERCE);
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (TriggerConditions.forEachKilledInASkirmish(game, effectResult, Race.NAZGUL, CardType.COMPANION)) {
final RequiredTriggerAction action = new RequiredTriggerAction(self);
List<Effect> possibleEffects = new LinkedList<>();
if (Filters.canSpot(game,
CardType.ALLY, Filters.canTakeWounds(self, 2))) {
possibleEffects.add(
new ChooseAndWoundCharactersEffect(action, self.getOwner(), 1, 1, 2, CardType.ALLY) {
@Override
public String getText(LotroGame game) {
return "Wound an ally twice";
}
});
} else if (!Filters.canSpot(game,
CardType.COMPANION, Filters.canExert(self))) {
possibleEffects.add(
new ChooseAndWoundCharactersEffect(action, self.getOwner(), 1, 1, 1, CardType.ALLY) {
@Override
protected void woundedCardsCallback(Collection<PhysicalCard> cards) {
for (PhysicalCard card : cards)
action.appendEffect(new WoundCharactersEffect(self, card));
}
});
}
possibleEffects.add(
new ChooseAndExertCharactersEffect(action, self.getOwner(), 1, 1, CardType.COMPANION) {
@Override
public String getText(LotroGame game) {
return "Exert a companion";
}
});
action.appendEffect(
new ChoiceEffect(action, self.getOwner(), possibleEffects));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -23,18 +23,25 @@
type: Possession
strength: 2
itemclass: Mount
#target: a Nazgûl
/*requires: {
}
target: nazgul
effects: [
{
}
{
}
]*/
{
type: extraCost
cost: {
type: discardFromHand
forced: false
count: 2
}
}
{
type: modifier
modifier: {
type: addKeyword
filter: bearer
keyword: fierce
}
}
]
gametext: To play, discard 2 cards from hand. Bearer must be a Nazgûl.<br>Bearer is <b>fierce</b>.
lore: And these winged creatures that they ride on now, they can probably see more than any other creature. They are like great carrion birds.'
promotext: ""
@@ -68,17 +75,29 @@
twilight: 1
type: Condition
keywords: Support Area
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: activated
phase: regroup
cost: {
type: exert
filter: choose(nazgul)
times: 2
}
effect: [
{
type: play
filter: choose(or(culture(wraith),culture(sauron)),minion)
cost: -8
memorize: playedMinion
}
{
type: exhaust
filter: memory(playedMinion)
}
]
}
]
gametext: Plays to your support area.<br><b>Regroup:</b> Exert a Nazgûl twice to play a [wraith] or [sauron] minion. That minion's twilight cost is -8 and it comes into play exhausted.
lore: It leaped into all of their minds that the Black Wings had spied them and had sent armed soldiers to seize them....
promotext: ""
@@ -113,18 +132,25 @@
type: Possession
strength: 2
itemclass: Hand weapon
#target: a Nazgûl
/*requires: {
}
target: nazgul
effects: [
{
}
{
}
]*/
{
type: trigger
requires: {
type: canSpot
filter: bearer,name(Úlairë Toldëa)
}
trigger: {
type: winsSkirmish
filter: bearer
}
effect: {
type: discard
player: fp
filter: choose(side(free),or(possession,condition))
}
}
]
gametext: Bearer must be a Nazgûl.<br>While bearer is Úlairë Toldëa, each time he wins a skirmish the Free Peoples player must discard a Free Peoples possession or a Free Peoples condition.
lore: The weapons of the Nine are wrought with sorcery.
promotext: ""
@@ -158,21 +184,31 @@
culture: Wraith
twilight: 4
type: Minion
race: Nazgûl
race: Nazgul
strength: 9
vitality: 2
site: 3
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: activated
phase: regroup
cost: [
{
type: exert
filter: self
}
{
type: discardFromHand
forced: false
count: 3
}
]
effect: {
type: returnToHand
filter: choose(companion,not(ringBearer))
}
}
]
gametext: <b>Regroup:</b> Exert Úlairë Lemenya and discard 3 cards from hand to return a companion (except the Ring-bearer) to owner's hand.
lore: ...the helpless horror that had come with the cry in the wind and the shadow on the moon....
promotext: ""
@@ -206,21 +242,32 @@
culture: Wraith
twilight: 4
type: Minion
race: Nazgûl
race: Nazgul
strength: 9
vitality: 2
site: 3
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: trigger
trigger: {
type: played
filter: self
}
requires: {
type: canSpot
filter: another,nazgul
}
effect: {
type: exert
player: fp
filter: choose(ringBound,companion)
count: {
type: forEachFPCulture
over: 2
}
}
}
]
gametext: When you play Úlairë Nertëa, spot another Nazgûl to make the Free Peoples player exert a Ring-bound companion for each Free Peoples culture you can spot over 2.
lore: A vast winged shape passed over the moon like a black cloud... The stars fainted before it....
promotext: ""
@@ -254,22 +301,39 @@
culture: Wraith
twilight: 6
type: Minion
race: Nazgûl
race: Nazgul
strength: 12
vitality: 3
site: 3
keywords: Fierce
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: trigger
trigger: {
type: winsSkirmish
filter: self
}
effect: {
type: choice
player: fp
texts: [
Exert a companion
Add a burden
]
effects: [
{
type: exert
player: fp
filter: choose(companion)
}
{
type: addBurdens
player: fp
}
]
}
}
]
gametext: <b>Fierce</b>.<br>Each time Úlairë Toldëa wins a skirmish, the Free Peoples player must exert a companion or add a burden.
lore: They are calling for it. Calling for the precious.'
promotext: ""
@@ -303,17 +367,35 @@
twilight: 1
type: Condition
keywords: Support Area
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: activated
phase: regroup
cost: {
type: exert
filter: choose(nazgul)
}
effect: {
type: addTokens
culture: wraith
filter: self
}
}
{
type: activated
phase: shadow
cost: {
type: removeTokens
culture: wraith
count: 3
filter: self
}
effect: {
type: addTwilight
amount: 2
}
}
]
gametext: Plays to your support area.<br><b>Regroup:</b> Exert a Nazgûl to place a [wraith] token on this card.<br><b>Shadow:</b> Remove 3 [wraith] tokens from here to add (2).
lore: It scudded across the moon... outrunning the wind in its fell speed.
promotext: ""
@@ -347,22 +429,48 @@
culture: Wraith
twilight: 8
type: Minion
race: Nazgûl
race: Nazgul
strength: 14
vitality: 4
site: 3
keywords: Fierce
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: trigger
trigger: {
type: killed
filter: companion
}
requires: [
{
type: phase
phase: skirmish
}
{
type: canSpot
filter: nazgul,inSkirmish
}
]
effect: {
type: choice
texts: [
Wound an ally twice
Exert a companion
]
effects: [
{
type: wound
filter: choose(ally)
times: 2
}
{
type: exert
filter: choose(companion)
}
]
}
}
]
gametext: <b>Fierce</b>.<br>Each time a companion is killed in a skirmish involving a Nazgûl, wound an ally twice or exert a companion.
lore: Dead? No, you cannot kill them.'
promotext: ""

View File

@@ -69,7 +69,11 @@ public class FieldUtils {
if (value == null)
return null;
final String string = getString(value, key);
return Enum.valueOf(enumClass, string.toUpperCase().replace(' ', '_').replace('-', '_'));
try {
return Enum.valueOf(enumClass, string.toUpperCase().replace(' ', '_').replace('-', '_'));
} catch (IllegalArgumentException exp) {
throw new InvalidCardDefinitionException("Unknown enum value - " + string + ", in " + key + " field");
}
}
public static Side getSide(Object value, String key) throws InvalidCardDefinitionException {
@@ -114,6 +118,7 @@ public class FieldUtils {
}
private static final JSONParser parser = new JSONParser();
public static JSONObject parseSubObject(String jsonString) throws ParseException {
String json = JsonValue.readHjson(jsonString).toString();
var subObject = (JSONObject) parser.parse(json);