Migrated Elven cards in set 10 to hjson

This commit is contained in:
MarcinSc
2024-05-16 17:55:37 +07:00
parent 9614d993a7
commit 5379d4ea36
13 changed files with 253 additions and 665 deletions

View File

@@ -1,54 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
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.AbstractCompanion;
import com.gempukku.lotro.logic.effects.ForEachYouSpotEffect;
import com.gempukku.lotro.logic.effects.SelfExertEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 2
* Type: Companion • Elf
* Strength: 6
* Vitality: 3
* Resistance: 6
* Game Text: Skirmish: Exert Aegnor to make a minion skirmishing an unbound [ELVEN] companion strength -1 for each
* archer you spot.
*/
public class Card10_004 extends AbstractCompanion {
public Card10_004() {
super(2, 6, 3, 6, Culture.ELVEN, Race.ELF, null, "Aegnor", "Elven Escort", true);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(final String playerId, final LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
&& PlayConditions.canSelfExert(self, game)) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new SelfExertEffect(action, self));
action.appendEffect(
new ForEachYouSpotEffect(playerId, Keyword.ARCHER) {
@Override
protected void spottedCards(int spotCount) {
action.insertEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, -spotCount, CardType.MINION, Filters.inSkirmishAgainst(Culture.ELVEN, Filters.unboundCompanion)));
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,59 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
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.AbstractCompanion;
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.DiscardBottomCardFromDeckEffect;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 2
* Type: Companion • Elf
* Strength: 6
* Vitality: 3
* Resistance: 6
* Signet: Aragorn
* Game Text: Skirmish: Discard a card from hand to discard the bottom card of your draw deck. If the bottom card was
* an [ELVEN] card, each minion skirmishing Arwen is strength -3.
*/
public class Card10_005 extends AbstractCompanion {
public Card10_005() {
super(2, 6, 3, 6, Culture.ELVEN, Race.ELF, Signet.ARAGORN, "Arwen", "Echo of Lúthien", true);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
&& PlayConditions.canDiscardFromHand(game, playerId, 1, Filters.any)) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1));
action.appendEffect(
new DiscardBottomCardFromDeckEffect(self, playerId, 1, false) {
@Override
protected void cardsDiscardedCallback(Collection<PhysicalCard> cards) {
for (final PhysicalCard card : cards)
if (card.getBlueprint().getCulture() == Culture.ELVEN) {
action.appendEffect(
new AddUntilEndOfPhaseModifierEffect(new StrengthModifier(self, Filters.and(CardType.MINION, Filters.inSkirmishAgainst(self)), -3)));
}
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,43 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.common.Signet;
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.AbstractCompanion;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator;
import com.gempukku.lotro.logic.modifiers.evaluator.MultiplyEvaluator;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 2
* Type: Companion • Elf
* Strength: 6
* Vitality: 3
* Resistance: 6
* Signet: Frodo
* Game Text: Each minion skirmishing Arwen is strength -2 for each wounded minion you can spot.
*/
public class Card10_006 extends AbstractCompanion {
public Card10_006() {
super(2, 6, 3, 6, Culture.ELVEN, Race.ELF, Signet.FRODO, "Arwen", "Queen of Elves and Men", true);
}
@Override
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new StrengthModifier(self,
Filters.and(CardType.MINION, Filters.inSkirmishAgainst(self)), null,
new MultiplyEvaluator(-2, new CountActiveEvaluator(CardType.MINION, Filters.wounded))));
}
}

View File

@@ -1,75 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
import com.gempukku.lotro.logic.cardtype.AbstractCompanion;
import com.gempukku.lotro.logic.timing.TriggerConditions;
import com.gempukku.lotro.logic.effects.DiscardCardFromDeckEffect;
import com.gempukku.lotro.logic.effects.OptionalEffect;
import com.gempukku.lotro.logic.effects.RevealTopCardsOfDrawDeckEffect;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race;
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.WoundCharactersEffect;
import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.timing.UnrespondableEffect;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 2
* Type: Companion • Elf
* Strength: 6
* Vitality: 3
* Resistance: 6
* Game Text: At the start of each skirmish involving Celeborn, you may reveal the top card of your draw deck. If it is
* an [ELVEN] card, you may discard it to wound each minion in that skirmish.
*/
public class Card10_007 extends AbstractCompanion {
public Card10_007() {
super(2, 6, 3, 6, Culture.ELVEN, Race.ELF, null, "Celeborn", "Lord of the Galadhrim", true);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(final String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (TriggerConditions.startOfPhase(game, effectResult, Phase.SKIRMISH)
&& Filters.inSkirmish.accepts(game, self)) {
final OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendCost(
new RevealTopCardsOfDrawDeckEffect(self, playerId, 1) {
@Override
protected void cardsRevealed(List<PhysicalCard> revealedCards) {
for (final PhysicalCard card : revealedCards) {
if (card.getBlueprint().getCulture() == Culture.ELVEN) {
action.insertCost(
new OptionalEffect(action, playerId,
new UnrespondableEffect() {
@Override
public String getText(LotroGame game) {
return "Discard revealed card";
}
@Override
protected void doPlayEffect(LotroGame game) {
action.insertCost(
new DiscardCardFromDeckEffect(card));
action.appendEffect(
new WoundCharactersEffect(self, CardType.MINION, Filters.inSkirmish));
}
}));
}
}
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,61 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race;
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.AbstractCompanion;
import com.gempukku.lotro.logic.effects.SelfExertEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 4
* Type: Companion • Elf
* Strength: 7
* Vitality: 4
* Resistance: 6
* Game Text: To play, spot 2 Elves. Skirmish: Exert Cirdan to make a minion he is skirmishing strength -1 for each
* [ELVEN] event in your discard pile.
*/
public class Card10_008 extends AbstractCompanion {
public Card10_008() {
super(4, 7, 4, 6, Culture.ELVEN, Race.ELF, null, "Círdan", "The Shipwright", true);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, 2, Race.ELF);
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(final String playerId, final LotroGame game, PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)
&& PlayConditions.canSelfExert(self, game)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new SelfExertEffect(action, self));
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
new Evaluator() {
@Override
public int evaluateExpression(LotroGame game, PhysicalCard cardAffected) {
return -Filters.filter(game.getGameState().getDiscard(playerId), game, CardType.EVENT, Culture.ELVEN).size();
}
}, CardType.MINION, Filters.inSkirmishAgainst(self)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,70 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Race;
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.cardtype.AbstractCompanion;
import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect;
import com.gempukku.lotro.logic.effects.OptionalEffect;
import com.gempukku.lotro.logic.effects.RevealTopCardsOfDrawDeckEffect;
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: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 4
* Type: Companion • Elf
* Strength: 8
* Vitality: 4
* Resistance: 6
* Game Text: To play, spot an Elf. At the start of each skirmish involving Elrond, you may reveal the top card of your
* draw deck. If it is an [ELVEN] card, you may heal another Elf.
*/
public class Card10_009 extends AbstractCompanion {
public Card10_009() {
super(4, 8, 4, 6, Culture.ELVEN, Race.ELF, null, "Elrond", "Venerable Lord", true);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, Race.ELF);
}
@Override
public List<OptionalTriggerAction> getOptionalAfterTriggers(final String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (TriggerConditions.startOfPhase(game, effectResult, Phase.SKIRMISH)
&& Filters.inSkirmish.accepts(game, self)) {
final OptionalTriggerAction action = new OptionalTriggerAction(self);
action.appendEffect(
new RevealTopCardsOfDrawDeckEffect(self, playerId, 1) {
@Override
protected void cardsRevealed(List<PhysicalCard> revealedCards) {
for (PhysicalCard card : revealedCards) {
if (card.getBlueprint().getCulture() == Culture.ELVEN) {
action.appendEffect(
new OptionalEffect(action, playerId,
new ChooseAndHealCharactersEffect(action, playerId, 1, 1, Filters.not(self), Race.ELF) {
@Override
public String getText(LotroGame game) {
return "Heal another Elf";
}
}));
}
}
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,38 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
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.OptionalEffect;
import com.gempukku.lotro.logic.effects.PutPlayedEventOnTopOfDeckEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect;
/**
* Set: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 1
* Type: Event • Skirmish
* Game Text: Make a minion skirmishing an Elf strength -2. Spot a site in a support area to place this event on top
* of your draw deck.
*/
public class Card10_010 extends AbstractEvent {
public Card10_010() {
super(Side.FREE_PEOPLE, 1, Culture.ELVEN, "Fleet-footed", Phase.SKIRMISH);
}
@Override
public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, final PhysicalCard self) {
final PlayEventAction action = new PlayEventAction(self);
action.appendEffect(
new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, -2, CardType.MINION, Filters.inSkirmishAgainst(Race.ELF)));
if (Filters.canSpot(game, CardType.SITE, Zone.SUPPORT))
action.appendEffect(
new OptionalEffect(action, playerId,
new PutPlayedEventOnTopOfDeckEffect(self)));
return action;
}
}

View File

@@ -1,53 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
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.AbstractCompanion;
import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect;
import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 3
* Type: Companion • Elf
* Strength: 3
* Vitality: 3
* Resistance: 6
* Game Text: When Galadriel is in your starting fellowship, her twilight cost is -3. Fellowship or Regroup: Discard
* an [ELVEN] event from hand to discard a Shadow condition or Shadow possession.
*/
public class Card10_011 extends AbstractCompanion {
public Card10_011() {
super(3, 3, 3, 6, Culture.ELVEN, Race.ELF, null, "Galadriel", "Lady Redeemed", true);
}
@Override
public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) {
if (game.getGameState().getCurrentPhase() == Phase.PLAY_STARTING_FELLOWSHIP)
return -3;
return 0;
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
if ((PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self) || PlayConditions.canUseFPCardDuringPhase(game, Phase.REGROUP, self))
&& PlayConditions.canDiscardFromHand(game, playerId, 1, Culture.ELVEN, CardType.EVENT)) {
ActivateCardAction action = new ActivateCardAction(self);
action.appendCost(
new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1, Culture.ELVEN, CardType.EVENT));
action.appendEffect(
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Side.SHADOW, Filters.or(CardType.CONDITION, CardType.POSSESSION)));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,53 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
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.cardtype.AbstractPermanent;
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
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: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 0
* Type: Condition • Support Area
* Game Text: To play, spot 2 Elves. Each time you lose initiative, make a minion strength -4 until the regroup phase.
*/
public class Card10_012 extends AbstractPermanent {
public Card10_012() {
super(Side.FREE_PEOPLE, 0, CardType.CONDITION, Culture.ELVEN, "Glimpse of Fate", null, true);
}
@Override
public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) {
return PlayConditions.canSpot(game, 2, Race.ELF);
}
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) {
if (TriggerConditions.losesInitiative(effectResult, Side.FREE_PEOPLE)) {
final RequiredTriggerAction action = new RequiredTriggerAction(self);
action.appendEffect(
new ChooseActiveCardEffect(self, self.getOwner(), "Choose a minion", CardType.MINION) {
@Override
protected void cardSelected(LotroGame game, PhysicalCard card) {
action.insertEffect(
new AddUntilStartOfPhaseModifierEffect(
new StrengthModifier(self, card, -4), Phase.REGROUP));
}
});
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -1,56 +0,0 @@
package com.gempukku.lotro.cards.set10.elven;
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.AbstractAttachableFPPossession;
import com.gempukku.lotro.logic.effects.AddUntilStartOfPhaseModifierEffect;
import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect;
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
import com.gempukku.lotro.logic.modifiers.RemoveGameTextModifier;
import com.gempukku.lotro.logic.timing.PlayConditions;
import java.util.Collections;
import java.util.List;
/**
* Set: Mount Doom
* Side: Free
* Culture: Elven
* Twilight Cost: 0
* Type: Artifact
* Game Text: Bearer must be a Hobbit. Skirmish: Until the regroup phase, remove the game text (except card type
* and race) from a minion skirmishing bearer and make it unable to gain game text. Discard this artifact.
*/
public class Card10_013 extends AbstractAttachableFPPossession {
public Card10_013() {
super(0, 0, 0, Culture.ELVEN, CardType.ARTIFACT, null, "Phial of Galadriel", "Star-glass", true);
}
@Override
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Race.HOBBIT;
}
@Override
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self)) {
final ActivateCardAction action = new ActivateCardAction(self);
action.appendEffect(
new ChooseActiveCardEffect(self, playerId, "Choose a minion", CardType.MINION, Filters.inSkirmishAgainst(self.getAttachedTo())) {
@Override
protected void cardSelected(LotroGame game, PhysicalCard card) {
action.appendEffect(
new AddUntilStartOfPhaseModifierEffect(
new RemoveGameTextModifier(self, card), Phase.REGROUP));
}
});
action.appendEffect(
new SelfDiscardEffect(self));
return Collections.singletonList(action);
}
return null;
}
}

View File

@@ -26,17 +26,32 @@
strength: 6
vitality: 3
resistance: 6
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: activated
phase: skirmish
cost: {
type: exert
filter: self
}
effect: [
{
type: chooseHowManyToSpot
filter: archer
memorize: spotCount
}
{
type: modifyStrength
filter: choose(minion,inSkirmishAgainst(culture(elven),companion))
amount: {
type: fromMemory
memory: spotCount
multiplier: -1
}
}
]
}
]
gametext: <b>Skirmish:</b> Exert Aegnor to make a minion skirmishing an unbound [elven] companion strength -1 for each archer you spot.
lore: Affectionately referred to as 'Figwit' by his contemporaries in Rivendell.
promotext: ""
@@ -75,17 +90,36 @@
vitality: 3
signet: Aragorn
resistance: 6
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: activated
phase: skirmish
cost: {
type: discardFromHand
forced: false
}
effect: [
{
type: discardBottomCardsFromDeck
memorize: discardedCard
forced: false
}
{
type: conditional
requires: {
type: memoryMatches
memory: discardedCard
filter: culture(elven)
}
effect: {
type: modifyStrength
filter: all(minion,inSkirmishAgainst(self))
amount: -3
}
}
]
}
]
gametext: <b>Skirmish:</b> Discard a card from hand to discard the bottom card of your draw deck. If the bottom card was an [elven] card, each minion skirmishing Arwen is strength -3.
lore: ...mine is the choice of Lúthien, and as she so have I chosen, both the sweet and the bitter.'
promotext: ""
@@ -124,17 +158,20 @@
vitality: 3
signet: Frodo
resistance: 6
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: modifier
modifier: {
type: modifyStrength
filter: minion,inSkirmishAgainst(self)
amount: {
type: forEachYouCanSpot
filter: wounded,minion
multiplier: -2
}
}
}
]
gametext: Each minion skirmishing Arwen is strength -2 for each wounded minion you can spot.
lore: Often is it seen," said Aragorn, "that in dangerous days men hide their chief treasure."'"
promotext: ""
@@ -172,17 +209,49 @@
strength: 6
vitality: 3
resistance: 6
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: trigger
optional: true
trigger: {
type: startOfPhase
phase: skirmish
}
requires: {
type: canSpot
filter: self,inSkirmish
}
effect: [
{
type: revealTopCardsOfDrawDeck
memorize: revealedCard
}
{
type: conditional
requires: {
type: memoryMatches
memory: revealedCard
filter: culture(elven)
}
effect: {
type: optional
text: Discard the card?
effect: {
type: costToEffect
cost: {
type: discardCardsFromDrawDeck
filter: memory(revealedCard)
}
effect: {
type: wound
filter: all(minion,inSkirmish)
}
}
}
}
]
}
]
gametext: At the start of each skirmish involving Celeborn, you may reveal the top card of your draw deck. If it is an [elven] card, you may discard it to wound each minion in that skirmish.
lore: ...with him went the last living memory of the Elder Days in Middle-earth.
promotext: ""
@@ -220,17 +289,33 @@
strength: 7
vitality: 4
resistance: 6
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: toPlay
requires: {
type: canSpot
filter: elf
count: 2
}
}
{
type: activated
phase: skirmish
cost: {
type: exert
filter: self
}
effect: {
type: modifyStrength
filter: choose(minion,inSkirmishAgainst(self))
amount: {
type: forEachInDiscard
filter: your,culture(elven),event
multiplier: -1
}
}
}
]
gametext: To play, spot 2 Elves.<br><b>Skirmish:</b> Exert Círdan to make a minion he is skirmishing strength -1 for each [elven] event in your discard pile.
lore: ...he was grey and old, save that his eyes were keen as stars....
promotext: ""
@@ -268,17 +353,46 @@
strength: 8
vitality: 4
resistance: 6
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: toPlay
requires: {
type: canSpot
filter: elf
}
}
{
type: trigger
optional: true
trigger: {
type: startOfPhase
phase: skirmish
}
requires: {
type: canSpot
filter: self,inSkirmish
}
effect: [
{
type: revealTopCardsOfDrawDeck
memorize: revealedCard
}
{
type: conditional
requires: {
type: memoryMatches
memory: revealedCard
filter: culture(elven)
}
effect: {
type: heal
filter: choose(another,elf)
count: 0-1
}
}
]
}
]
gametext: To play, spot an Elf.<br>At the start of each skirmish involving Elrond, you may reveal the top card of your draw deck. If it is an [elven] card, you may heal another Elf.
lore: To me then even our victory can bring only sorrow and parting but to you hope of joy for a while.'
promotext: ""
@@ -312,20 +426,23 @@
twilight: 1
type: Event
keywords: Skirmish
/*requires: {
}
*/
effects: {
type: event
cost: {
type: SendMessage
text: Placeholder effect for development.
},
effect: [
{
type: SendMessage
text: Placeholder effect for development.
type: modifyStrength
filter: choose(minion,inSkirmishAgainst(elf))
amount: -2
}
{
type: conditional
requires: {
type: canSpot
filter: site,zone(support)
}
effect: {
type: putPlayedEventOnTopOfDrawDeck
}
}
]
}
@@ -366,17 +483,32 @@
strength: 3
vitality: 3
resistance: 6
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: modifyOwnCost
requires: {
type: phase
phase: play starting fellowship
}
amount: -3
}
{
type: activated
phase: [
fellowship
regroup
]
cost: {
type: discardFromHand
forced: false
filter: choose(culture(elven),event)
}
effect: {
type: discard
filter: choose(side(shadow),or(condition,possession))
}
}
]
gametext: When Galadriel is in your starting fellowship, her twilight cost is -3.<br><b>Fellowship</b> <i>or</i> <b>Regroup:</b> Discard an [elven] event from hand to discard a Shadow condition or Shadow possession.
lore: I pass the test,' she said. 'I will diminish, and go into the West, and remain Galadriel.'
promotext: ""
@@ -410,17 +542,29 @@
twilight: 0
type: Condition
keywords: Support Area
/*requires: {
}
effects: [
{
}
{
}
]*/
{
type: toPlay
requires: {
type: canSpot
filter: elf
count: 2
}
}
{
type: trigger
trigger: {
type: losesInitiative
side: free people
}
effect: {
type: modifyStrength
filter: choose(minion)
amount: -4
until: regroup
}
}
]
gametext: To play, spot 2 Elves.<br>Each time you lose initiative, make a minion strength -4 until the regroup phase.
lore: The uttermost choice is before you: to repent and go to the Havens... or else to abide the Doom of Men.'
promotext: ""
@@ -454,18 +598,24 @@
culture: Elven
twilight: 0
type: Artifact
#target: a Hobbit
/*requires: {
}
target: hobbit
effects: [
{
}
{
}
]*/
{
type: activated
phase: skirmish
effect: [
{
type: removeText
filter: choose(minion,inSkirmishAgainst(bearer))
until: regroup
}
{
type: discard
filter: self
}
]
}
]
gametext: Bearer must be a Hobbit.<br><b>Skirmish:</b> Until the regroup phase, remove the game text (except card type and race) from a minion skirmishing bearer and make it unable to gain game text. Discard this artifact.
lore: ...the hand that held it sparkled with white fire.
promotext: ""

View File

@@ -57,7 +57,7 @@ public class EffectAppenderFactory {
effectAppenderProducers.put("disablewoundsover", new DisableWoundsOver());
effectAppenderProducers.put("disablewounds", new DisableWounds());
effectAppenderProducers.put("discard", new DiscardFromPlay());
effectAppenderProducers.put("discardbottomcardsfromdeck", new DiscardBottomCardFromDeck());
effectAppenderProducers.put("discardbottomcardsfromdeck", new DiscardBottomCardsFromDeck());
effectAppenderProducers.put("discardcardatrandomfromhand", new DiscardCardAtRandomFromHand());
effectAppenderProducers.put("discardcardsfromdrawdeck", new DiscardCardsFromDrawDeck());
effectAppenderProducers.put("discardfromhand", new DiscardFromHand());

View File

@@ -15,7 +15,7 @@ import org.json.simple.JSONObject;
import java.util.Collection;
public class DiscardBottomCardFromDeck implements EffectAppenderProducer {
public class DiscardBottomCardsFromDeck implements EffectAppenderProducer {
@Override
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
FieldUtils.validateAllowedFields(effectObject, "deck", "count", "forced", "memorize");