Migrated Sauron cards in set 6 to hjson
This commit is contained in:
@@ -1,52 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
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.cardtype.AbstractAttachable;
|
|
||||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
|
||||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
|
||||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set: Ents of Fangorn
|
|
||||||
* Side: Shadow
|
|
||||||
* Culture: Sauron
|
|
||||||
* Twilight Cost: 0
|
|
||||||
* Type: Possession • Hand Weapon
|
|
||||||
* Strength: +1
|
|
||||||
* Game Text: Bearer must be an [SAURON] Orc. Each time bearer wins a skirmish, you may add (1) for each site
|
|
||||||
* you control.
|
|
||||||
*/
|
|
||||||
public class Card6_098 extends AbstractAttachable {
|
|
||||||
public Card6_098() {
|
|
||||||
super(Side.SHADOW, CardType.POSSESSION, 0, Culture.SAURON, PossessionClass.HAND_WEAPON, "Banner of the Eye");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
|
|
||||||
return Filters.and(Culture.SAURON, Race.ORC);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getStrength() {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
|
||||||
if (TriggerConditions.winsSkirmish(game, effectResult, self.getAttachedTo())) {
|
|
||||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
|
||||||
int count = Filters.countActive(game, Filters.siteControlled(playerId));
|
|
||||||
action.appendEffect(
|
|
||||||
new AddTwilightEffect(self, count));
|
|
||||||
return Collections.singletonList(action);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
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.ChooseAndAddUntilEOPStrengthBonusEffect;
|
|
||||||
import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator;
|
|
||||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set: Ents of Fangorn
|
|
||||||
* Side: Shadow
|
|
||||||
* Culture: Sauron
|
|
||||||
* Twilight Cost: 3
|
|
||||||
* Type: Minion • Wraith
|
|
||||||
* Strength: 7
|
|
||||||
* Vitality: 2
|
|
||||||
* Site: 4
|
|
||||||
* Game Text: Twilight. Skirmish: Exert this minion to make a [SAURON] or twilight minion strength +1 for each twilight
|
|
||||||
* minion you can spot.
|
|
||||||
*/
|
|
||||||
public class Card6_099 extends AbstractMinion {
|
|
||||||
public Card6_099() {
|
|
||||||
super(3, 7, 2, 4, Race.WRAITH, Culture.SAURON, "Corpse Lights");
|
|
||||||
addKeyword(Keyword.TWILIGHT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<? extends ActivateCardAction> 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 ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId,
|
|
||||||
new CountActiveEvaluator(CardType.MINION, Keyword.TWILIGHT),
|
|
||||||
CardType.MINION, Filters.or(Culture.SAURON, Keyword.TWILIGHT)));
|
|
||||||
return Collections.singletonList(action);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
import com.gempukku.lotro.common.CardType;
|
|
||||||
import com.gempukku.lotro.common.Culture;
|
|
||||||
import com.gempukku.lotro.common.Keyword;
|
|
||||||
import com.gempukku.lotro.common.Race;
|
|
||||||
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.cardtype.AbstractMinion;
|
|
||||||
import com.gempukku.lotro.logic.effects.ChoiceEffect;
|
|
||||||
import com.gempukku.lotro.logic.effects.RemoveBurdenEffect;
|
|
||||||
import com.gempukku.lotro.logic.effects.SpotEffect;
|
|
||||||
import com.gempukku.lotro.logic.modifiers.AbstractExtraPlayCostModifier;
|
|
||||||
import com.gempukku.lotro.logic.timing.Effect;
|
|
||||||
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: Sauron
|
|
||||||
* Twilight Cost: 1
|
|
||||||
* Type: Minion • Wraith
|
|
||||||
* Strength: 5
|
|
||||||
* Vitality: 1
|
|
||||||
* Site: 4
|
|
||||||
* Game Text: Twilight. Damage +1. To play this minion, remove a burden or spot a twilight minion.
|
|
||||||
*/
|
|
||||||
public class Card6_100 extends AbstractMinion {
|
|
||||||
public Card6_100() {
|
|
||||||
super(1, 5, 1, 4, Race.WRAITH, Culture.SAURON, "Dead Ones");
|
|
||||||
addKeyword(Keyword.TWILIGHT);
|
|
||||||
addKeyword(Keyword.DAMAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<? extends AbstractExtraPlayCostModifier> getExtraCostToPlay(LotroGame game, final PhysicalCard self) {
|
|
||||||
return Collections.singletonList(
|
|
||||||
new AbstractExtraPlayCostModifier(self, "Extra cost to play", self) {
|
|
||||||
@Override
|
|
||||||
public void appendExtraCosts(LotroGame game, CostToEffectAction action, PhysicalCard card) {
|
|
||||||
List<Effect> possibleCosts = new LinkedList<>();
|
|
||||||
possibleCosts.add(
|
|
||||||
new RemoveBurdenEffect(self.getOwner(), self));
|
|
||||||
possibleCosts.add(
|
|
||||||
new SpotEffect(1, CardType.MINION, Keyword.TWILIGHT) {
|
|
||||||
@Override
|
|
||||||
public String getText(LotroGame game) {
|
|
||||||
return "Spot a twilight minion";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
action.appendCost(
|
|
||||||
new ChoiceEffect(action, self.getOwner(), possibleCosts));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canPayExtraCostsToPlay(LotroGame game, PhysicalCard card) {
|
|
||||||
return (game.getGameState().getBurdens() >= 1
|
|
||||||
|| PlayConditions.canSpot(game, CardType.MINION, Keyword.TWILIGHT));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
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.AbstractMinion;
|
|
||||||
import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision;
|
|
||||||
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
|
|
||||||
import com.gempukku.lotro.logic.effects.SelfExertEffect;
|
|
||||||
import com.gempukku.lotro.logic.effects.WoundCharactersEffect;
|
|
||||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set: Ents of Fangorn
|
|
||||||
* Side: Shadow
|
|
||||||
* Culture: Sauron
|
|
||||||
* Twilight Cost: 4
|
|
||||||
* Type: Minion • Orc
|
|
||||||
* Strength: 11
|
|
||||||
* Vitality: 3
|
|
||||||
* Site: 6
|
|
||||||
* Game Text: Maneuver: Exert this minion twice to make the Free Peoples player name 3 cultures. Wound each companion
|
|
||||||
* and ally not of a named culture.
|
|
||||||
*/
|
|
||||||
public class Card6_101 extends AbstractMinion {
|
|
||||||
public Card6_101() {
|
|
||||||
super(4, 11, 3, 6, Race.ORC, Culture.SAURON, "Gate Picket", null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, final LotroGame game, final PhysicalCard self) {
|
|
||||||
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.MANEUVER, self, 0)
|
|
||||||
&& PlayConditions.canSelfExert(self, 2, game)) {
|
|
||||||
final ActivateCardAction action = new ActivateCardAction(self);
|
|
||||||
action.appendCost(
|
|
||||||
new SelfExertEffect(action, self));
|
|
||||||
action.appendCost(
|
|
||||||
new SelfExertEffect(action, self));
|
|
||||||
final Set<String> possibleCultures = new LinkedHashSet<>();
|
|
||||||
for (Culture culture : Culture.values())
|
|
||||||
if (culture.isOfficial())
|
|
||||||
possibleCultures.add(culture.getHumanReadable());
|
|
||||||
|
|
||||||
action.appendEffect(
|
|
||||||
new PlayoutDecisionEffect(game.getGameState().getCurrentPlayerId(),
|
|
||||||
new MultipleChoiceAwaitingDecision(1, "Name first spared culture", possibleCultures.toArray(new String[possibleCultures.size()])) {
|
|
||||||
@Override
|
|
||||||
protected void validDecisionMade(int index, String result) {
|
|
||||||
possibleCultures.add(result);
|
|
||||||
final Culture firstCulture = Culture.findCultureByHumanReadable(result);
|
|
||||||
action.insertEffect(
|
|
||||||
new PlayoutDecisionEffect(game.getGameState().getCurrentPlayerId(),
|
|
||||||
new MultipleChoiceAwaitingDecision(1, "Name second spared culture", possibleCultures.toArray(new String[possibleCultures.size()])) {
|
|
||||||
@Override
|
|
||||||
protected void validDecisionMade(int index, String result) {
|
|
||||||
possibleCultures.add(result);
|
|
||||||
final Culture secondCulture = Culture.findCultureByHumanReadable(result);
|
|
||||||
action.insertEffect(
|
|
||||||
new PlayoutDecisionEffect(game.getGameState().getCurrentPlayerId(),
|
|
||||||
new MultipleChoiceAwaitingDecision(1, "Name third spared culture", possibleCultures.toArray(new String[possibleCultures.size()])) {
|
|
||||||
@Override
|
|
||||||
protected void validDecisionMade(int index, String result) {
|
|
||||||
Culture thirdCulture = Culture.findCultureByHumanReadable(result);
|
|
||||||
|
|
||||||
action.insertEffect(
|
|
||||||
new WoundCharactersEffect(self,
|
|
||||||
Filters.and(
|
|
||||||
Filters.or(CardType.COMPANION, CardType.ALLY),
|
|
||||||
Filters.not(Filters.or(firstCulture, secondCulture, thirdCulture))
|
|
||||||
)));
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
return Collections.singletonList(action);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
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.AbstractMinion;
|
|
||||||
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: Ents of Fangorn
|
|
||||||
* Side: Shadow
|
|
||||||
* Culture: Sauron
|
|
||||||
* Twilight Cost: 3
|
|
||||||
* Type: Minion • Orc
|
|
||||||
* Strength: 9
|
|
||||||
* Vitality: 3
|
|
||||||
* Site: 6
|
|
||||||
* Game Text: Maneuver: Exert this minion twice and spot another [SAURON] minion to discard a condition.
|
|
||||||
*/
|
|
||||||
public class Card6_102 extends AbstractMinion {
|
|
||||||
public Card6_102() {
|
|
||||||
super(3, 9, 3, 6, Race.ORC, Culture.SAURON, "Gate Sentry");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
|
||||||
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.MANEUVER, self, 0)
|
|
||||||
&& PlayConditions.canSelfExert(self, 2, game)
|
|
||||||
&& PlayConditions.canSpot(game, Culture.SAURON, CardType.MINION, Filters.not(self))) {
|
|
||||||
ActivateCardAction action = new ActivateCardAction(self);
|
|
||||||
action.appendCost(
|
|
||||||
new SelfExertEffect(action, self));
|
|
||||||
action.appendCost(
|
|
||||||
new SelfExertEffect(action, self));
|
|
||||||
action.appendEffect(
|
|
||||||
new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.CONDITION));
|
|
||||||
return Collections.singletonList(action);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
import com.gempukku.lotro.common.CardType;
|
|
||||||
import com.gempukku.lotro.common.Culture;
|
|
||||||
import com.gempukku.lotro.common.Keyword;
|
|
||||||
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.cardtype.AbstractMinion;
|
|
||||||
import com.gempukku.lotro.logic.modifiers.Modifier;
|
|
||||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
|
||||||
import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set: Ents of Fangorn
|
|
||||||
* Side: Shadow
|
|
||||||
* Culture: Sauron
|
|
||||||
* Twilight Cost: 8
|
|
||||||
* Type: Minion • Troll
|
|
||||||
* Strength: 13
|
|
||||||
* Vitality: 4
|
|
||||||
* Site: 6
|
|
||||||
* Game Text: Fierce. While you can spot a Troll, Gate Troll's twilight cost is -4. For each other [SAURON] minion
|
|
||||||
* you can spot, this minion is strength +1.
|
|
||||||
*/
|
|
||||||
public class Card6_103 extends AbstractMinion {
|
|
||||||
public Card6_103() {
|
|
||||||
super(8, 13, 4, 6, Race.TROLL, Culture.SAURON, "Gate Troll", null, true);
|
|
||||||
addKeyword(Keyword.FIERCE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) {
|
|
||||||
if (Filters.canSpot(game, Race.TROLL))
|
|
||||||
return -4;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<? extends Modifier> getInPlayModifiers(LotroGame game, PhysicalCard self) {
|
|
||||||
return Collections.singletonList(
|
|
||||||
new StrengthModifier(self, self, null, new CountActiveEvaluator(Culture.SAURON, CardType.MINION, Filters.not(self))));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
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.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.decisions.DecisionResultInvalidException;
|
|
||||||
import com.gempukku.lotro.logic.decisions.IntegerAwaitingDecision;
|
|
||||||
import com.gempukku.lotro.logic.effects.AddTwilightEffect;
|
|
||||||
import com.gempukku.lotro.logic.effects.DrawCardsEffect;
|
|
||||||
import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect;
|
|
||||||
import com.gempukku.lotro.logic.effects.SelfExertEffect;
|
|
||||||
import com.gempukku.lotro.logic.modifiers.evaluator.CountCulturesEvaluator;
|
|
||||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
|
||||||
import com.gempukku.lotro.logic.timing.UnrespondableEffect;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set: Ents of Fangorn
|
|
||||||
* Side: Shadow
|
|
||||||
* Culture: Sauron
|
|
||||||
* Twilight Cost: 4
|
|
||||||
* Type: Minion • Orc
|
|
||||||
* Strength: 11
|
|
||||||
* Vitality: 3
|
|
||||||
* Site: 6
|
|
||||||
* Game Text: Shadow: Exert this minion to draw X cards and add (X), where X is the number of Free Peoples cultures
|
|
||||||
* you spot over 2.
|
|
||||||
*/
|
|
||||||
public class Card6_104 extends AbstractMinion {
|
|
||||||
public Card6_104() {
|
|
||||||
super(4, 11, 3, 6, Race.ORC, Culture.SAURON, "Orc Insurgent", null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(final String playerId, LotroGame game, final PhysicalCard self) {
|
|
||||||
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SHADOW, self, 0)
|
|
||||||
&& PlayConditions.canSelfExert(self, game)) {
|
|
||||||
final ActivateCardAction action = new ActivateCardAction(self);
|
|
||||||
action.appendCost(
|
|
||||||
new SelfExertEffect(action, self));
|
|
||||||
action.appendEffect(
|
|
||||||
new UnrespondableEffect() {
|
|
||||||
@Override
|
|
||||||
protected void doPlayEffect(LotroGame game) {
|
|
||||||
int x = new CountCulturesEvaluator(2, 1, Side.FREE_PEOPLE).evaluateExpression(game, null);
|
|
||||||
if (x > 0)
|
|
||||||
action.appendEffect(
|
|
||||||
new PlayoutDecisionEffect(playerId,
|
|
||||||
new IntegerAwaitingDecision(1, "Choose number of FP cultures you wish to spot, over 2", 0, x, x) {
|
|
||||||
@Override
|
|
||||||
public void decisionMade(String result) throws DecisionResultInvalidException {
|
|
||||||
int spotCount = getValidatedResult(result);
|
|
||||||
action.appendEffect(
|
|
||||||
new DrawCardsEffect(action, playerId, spotCount));
|
|
||||||
action.appendEffect(
|
|
||||||
new AddTwilightEffect(self, spotCount));
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return Collections.singletonList(action);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
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: Sauron
|
|
||||||
* Twilight Cost: 1
|
|
||||||
* Type: Condition
|
|
||||||
* Game Text: Plays to your support area. Regroup: Exert a [SAURON] Orc to play a Nazgul or [SAURON] minion.
|
|
||||||
* Its twilight cost is -4 and it comes into play exhausted.
|
|
||||||
*/
|
|
||||||
public class Card6_105 extends AbstractPermanent {
|
|
||||||
public Card6_105() {
|
|
||||||
super(Side.SHADOW, 1, CardType.CONDITION, Culture.SAURON, "Peril");
|
|
||||||
}
|
|
||||||
|
|
||||||
@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, Culture.SAURON, Race.ORC)
|
|
||||||
&& PlayConditions.canPlayFromHand(playerId, game, -4, CardType.MINION, Filters.or(Race.NAZGUL, Culture.SAURON))) {
|
|
||||||
final ActivateCardAction action = new ActivateCardAction(self);
|
|
||||||
action.appendCost(
|
|
||||||
new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Culture.SAURON, Race.ORC));
|
|
||||||
action.appendEffect(
|
|
||||||
new ChooseAndPlayCardFromHandEffect(playerId, game, -4, CardType.MINION, Filters.or(Race.NAZGUL, Culture.SAURON)) {
|
|
||||||
@Override
|
|
||||||
protected void afterCardPlayed(PhysicalCard cardPlayed) {
|
|
||||||
action.appendEffect(
|
|
||||||
new ExhaustCharacterEffect(self, action, cardPlayed));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return Collections.singletonList(action);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
import com.gempukku.lotro.common.Culture;
|
|
||||||
import com.gempukku.lotro.common.Keyword;
|
|
||||||
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.AbstractMinion;
|
|
||||||
import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect;
|
|
||||||
import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect;
|
|
||||||
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
|
|
||||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set: Ents of Fangorn
|
|
||||||
* Side: Shadow
|
|
||||||
* Culture: Sauron
|
|
||||||
* Twilight Cost: 10
|
|
||||||
* Type: Minion • Troll
|
|
||||||
* Strength: 14
|
|
||||||
* Vitality: 5
|
|
||||||
* Site: 6
|
|
||||||
* Game Text: Fierce. While you can spot a Troll, this minion's twilight cost is -4. Skirmish: Discard a [SAURON] card
|
|
||||||
* from hand to make this minion strength +1.
|
|
||||||
*/
|
|
||||||
public class Card6_106 extends AbstractMinion {
|
|
||||||
public Card6_106() {
|
|
||||||
super(10, 14, 5, 6, Race.TROLL, Culture.SAURON, "Troll of Udûn");
|
|
||||||
addKeyword(Keyword.FIERCE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getTwilightCostModifier(LotroGame game, PhysicalCard self, PhysicalCard target) {
|
|
||||||
if (Filters.canSpot(game, Race.TROLL))
|
|
||||||
return -4;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
|
||||||
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.SKIRMISH, self, 0)
|
|
||||||
&& PlayConditions.canDiscardFromHand(game, playerId, 1, Culture.SAURON)) {
|
|
||||||
ActivateCardAction action = new ActivateCardAction(self);
|
|
||||||
action.appendCost(
|
|
||||||
new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 1, Culture.SAURON));
|
|
||||||
action.appendEffect(
|
|
||||||
new AddUntilEndOfPhaseModifierEffect(
|
|
||||||
new StrengthModifier(self, self, 1)));
|
|
||||||
return Collections.singletonList(action);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
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.cardtype.AbstractAttachable;
|
|
||||||
import com.gempukku.lotro.logic.effects.DrawCardsEffect;
|
|
||||||
import com.gempukku.lotro.logic.timing.EffectResult;
|
|
||||||
import com.gempukku.lotro.logic.timing.TriggerConditions;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set: Ents of Fangorn
|
|
||||||
* Side: Shadow
|
|
||||||
* Culture: Sauron
|
|
||||||
* Twilight Cost: 1
|
|
||||||
* Type: Possession • Hand Weapon
|
|
||||||
* Strength: +2
|
|
||||||
* Game Text: Bearer must be a [SAURON] Troll. When you play this possession, you may draw a card.
|
|
||||||
*/
|
|
||||||
public class Card6_107 extends AbstractAttachable {
|
|
||||||
public Card6_107() {
|
|
||||||
super(Side.SHADOW, CardType.POSSESSION, 1, Culture.SAURON, PossessionClass.HAND_WEAPON, "Troll's Chain");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
|
|
||||||
return Filters.and(Culture.SAURON, Race.TROLL);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getStrength() {
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<OptionalTriggerAction> getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
|
|
||||||
if (TriggerConditions.played(game, effectResult, self)) {
|
|
||||||
OptionalTriggerAction action = new OptionalTriggerAction(self);
|
|
||||||
action.appendEffect(
|
|
||||||
new DrawCardsEffect(action, playerId, 1));
|
|
||||||
return Collections.singletonList(action);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
package com.gempukku.lotro.cards.set6.sauron;
|
|
||||||
|
|
||||||
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.AddBurdenEffect;
|
|
||||||
import com.gempukku.lotro.logic.effects.SelfDiscardEffect;
|
|
||||||
import com.gempukku.lotro.logic.timing.PlayConditions;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set: Ents of Fangorn
|
|
||||||
* Side: Shadow
|
|
||||||
* Culture: Sauron
|
|
||||||
* Twilight Cost: 3
|
|
||||||
* Type: Minion • Wraith
|
|
||||||
* Strength: 8
|
|
||||||
* Vitality: 2
|
|
||||||
* Site: 4
|
|
||||||
* Game Text: Twilight. Regroup: Spot another [SAURON] or twilight minion and discard this minion to add a burden.
|
|
||||||
*/
|
|
||||||
public class Card6_108 extends AbstractMinion {
|
|
||||||
public Card6_108() {
|
|
||||||
super(3, 8, 2, 4, Race.WRAITH, Culture.SAURON, "Wisp of Pale Sheen");
|
|
||||||
addKeyword(Keyword.TWILIGHT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<? extends ActivateCardAction> getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) {
|
|
||||||
if (PlayConditions.canUseShadowCardDuringPhase(game, Phase.REGROUP, self, 0)
|
|
||||||
&& PlayConditions.canSpot(game, Filters.not(self), CardType.MINION, Filters.or(Culture.SAURON, Keyword.TWILIGHT))
|
|
||||||
&& PlayConditions.canSelfDiscard(self, game)) {
|
|
||||||
ActivateCardAction action = new ActivateCardAction(self);
|
|
||||||
action.appendCost(
|
|
||||||
new SelfDiscardEffect(self));
|
|
||||||
action.appendEffect(
|
|
||||||
new AddBurdenEffect(self.getOwner(), self, 1));
|
|
||||||
return Collections.singletonList(action);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -23,18 +23,24 @@
|
|||||||
type: Possession
|
type: Possession
|
||||||
strength: 1
|
strength: 1
|
||||||
itemclass: Hand weapon
|
itemclass: Hand weapon
|
||||||
#target: a [sauron] Orc
|
target: culture(sauron),orc
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: trigger
|
||||||
}
|
optional: true
|
||||||
{
|
trigger: {
|
||||||
|
type: winsSkirmish
|
||||||
}
|
filter: bearer
|
||||||
]*/
|
}
|
||||||
|
effect: {
|
||||||
|
type: addTwilight
|
||||||
|
amount: {
|
||||||
|
type: forEachYouCanSpot
|
||||||
|
filter: controlledSite
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: Bearer must be a [sauron] Orc.<br>Each time bearer wins a skirmish, you may add (1) for each site you control.
|
gametext: Bearer must be a [sauron] Orc.<br>Each time bearer wins a skirmish, you may add (1) for each site you control.
|
||||||
lore: Stony-faced they were, with dark window-holes staring north and east and west, and each window was full of sleepless eyes.
|
lore: Stony-faced they were, with dark window-holes staring north and east and west, and each window was full of sleepless eyes.
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -72,17 +78,24 @@
|
|||||||
vitality: 2
|
vitality: 2
|
||||||
site: 4
|
site: 4
|
||||||
keywords: Twilight
|
keywords: Twilight
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: activated
|
||||||
}
|
phase: skirmish
|
||||||
{
|
cost: {
|
||||||
|
type: exert
|
||||||
}
|
filter: self
|
||||||
]*/
|
}
|
||||||
|
effect: {
|
||||||
|
type: modifyStrength
|
||||||
|
filter: choose(or(culture(sauron),twilight),minion)
|
||||||
|
amount: {
|
||||||
|
type: forEachYouCanSpot
|
||||||
|
filter: twilight,minion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: <b>Twilight</b>.<br><b>Skirmish:</b> Exert this minion to make a [sauron] or twilight minion strength +1 for each twilight minion you can spot.
|
gametext: <b>Twilight</b>.<br><b>Skirmish:</b> Exert this minion to make a [sauron] or twilight minion strength +1 for each twilight minion you can spot.
|
||||||
lore: I tried once; but you cannot reach them. Only shapes to see, perhaps, not to touch.'
|
lore: I tried once; but you cannot reach them. Only shapes to see, perhaps, not to touch.'
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -123,17 +136,27 @@
|
|||||||
Twilight
|
Twilight
|
||||||
Damage+1
|
Damage+1
|
||||||
]
|
]
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: extraCost
|
||||||
}
|
cost: {
|
||||||
{
|
type: choice
|
||||||
|
texts: [
|
||||||
}
|
Remove a burden
|
||||||
]*/
|
Spot a twilight minion
|
||||||
|
]
|
||||||
|
effects: [
|
||||||
|
{
|
||||||
|
type: removeBurdens
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type: spot
|
||||||
|
filter: choose(twilight,minion)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: <b>Twilight</b>. <b>Damage +1</b>.<br>To play this minion, remove a burden or spot a twilight minion.
|
gametext: <b>Twilight</b>. <b>Damage +1</b>.<br>To play this minion, remove a burden or spot a twilight minion.
|
||||||
lore: The Dead can't really be there! Is it some devilry hatched in the Dark Land?'
|
lore: The Dead can't really be there! Is it some devilry hatched in the Dark Land?'
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -170,17 +193,31 @@
|
|||||||
strength: 11
|
strength: 11
|
||||||
vitality: 3
|
vitality: 3
|
||||||
site: 6
|
site: 6
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: activated
|
||||||
}
|
phase: maneuver
|
||||||
{
|
cost: {
|
||||||
|
type: exert
|
||||||
}
|
filter: self
|
||||||
]*/
|
times: 2
|
||||||
|
}
|
||||||
|
effect: [
|
||||||
|
{
|
||||||
|
type: chooseActiveCards
|
||||||
|
player: fp
|
||||||
|
filter: choose(or(companion,ally))
|
||||||
|
count: 0-3
|
||||||
|
text: Choose up to 3 characters of cultures you want to spare, characters of not chosen cultures will get wounded
|
||||||
|
memorize: chosenCharacters
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type: wound
|
||||||
|
filter: all(or(companion,ally),not(cultureFromMemory(chosenCharacters)))
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: <b>Maneuver:</b> Exert this minion twice to make the Free Peoples player name 3 cultures. Wound each companion and ally not of a named culture.
|
gametext: <b>Maneuver:</b> Exert this minion twice to make the Free Peoples player name 3 cultures. Wound each companion and ally not of a named culture.
|
||||||
lore: Now the watch-towers, which had fallen into decay, were repaired, and filled with arms, and garrisoned with ceaseless vigilance.
|
lore: Now the watch-towers, which had fallen into decay, were repaired, and filled with arms, and garrisoned with ceaseless vigilance.
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -217,17 +254,25 @@
|
|||||||
strength: 9
|
strength: 9
|
||||||
vitality: 3
|
vitality: 3
|
||||||
site: 6
|
site: 6
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: activated
|
||||||
}
|
phase: maneuver
|
||||||
{
|
cost: {
|
||||||
|
type: exert
|
||||||
}
|
filter: self
|
||||||
]*/
|
times: 2
|
||||||
|
}
|
||||||
|
requires: {
|
||||||
|
type: canSpot
|
||||||
|
filter: another,culture(sauron),minion
|
||||||
|
}
|
||||||
|
effect: {
|
||||||
|
type: discard
|
||||||
|
filter: choose(condition)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: <b>Maneuver:</b> Exert this minion twice and spot another [sauron] minion to discard a condition.
|
gametext: <b>Maneuver:</b> Exert this minion twice and spot another [sauron] minion to discard a condition.
|
||||||
lore: In it there was a single gate of iron, and upon its battlement sentinels paced unceasingly.
|
lore: In it there was a single gate of iron, and upon its battlement sentinels paced unceasingly.
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -265,17 +310,27 @@
|
|||||||
vitality: 4
|
vitality: 4
|
||||||
site: 6
|
site: 6
|
||||||
keywords: Fierce
|
keywords: Fierce
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: modifyOwnCost
|
||||||
}
|
requires: {
|
||||||
{
|
type: canSpot
|
||||||
|
filter: troll
|
||||||
}
|
}
|
||||||
]*/
|
amount: -4
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type: modifier
|
||||||
|
modifier: {
|
||||||
|
type: modifyStrength
|
||||||
|
filter: self
|
||||||
|
amount: {
|
||||||
|
type: forEachYouCanSpot
|
||||||
|
filter: another,culture(sauron),minion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: <b>Fierce</b>.<br>While you can spot a Troll, Gate Troll's twilight cost is -4.<br>For each other [sauron] minion you can spot, this minion is strength +1.
|
gametext: <b>Fierce</b>.<br>While you can spot a Troll, Gate Troll's twilight cost is -4.<br>For each other [sauron] minion you can spot, this minion is strength +1.
|
||||||
lore: This was Cirith Gorgor, the Haunted Pass, the entrance to the land of the Enemy.
|
lore: This was Cirith Gorgor, the Haunted Pass, the entrance to the land of the Enemy.
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -312,17 +367,36 @@
|
|||||||
strength: 11
|
strength: 11
|
||||||
vitality: 3
|
vitality: 3
|
||||||
site: 6
|
site: 6
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: activated
|
||||||
}
|
phase: shadow
|
||||||
{
|
cost: {
|
||||||
|
type: exert
|
||||||
}
|
filter: self
|
||||||
]*/
|
}
|
||||||
|
effect: [
|
||||||
|
{
|
||||||
|
type: chooseANumber
|
||||||
|
text: Choose value for X
|
||||||
|
from: 0
|
||||||
|
to: {
|
||||||
|
type: forEachFPCulture
|
||||||
|
over: 2
|
||||||
|
}
|
||||||
|
memorize: chosenNumber
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type: drawCards
|
||||||
|
count: memory(chosenNumber)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type: addtwilight
|
||||||
|
amount: memory(chosenNumber)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: <b>Shadow:</b> Exert this minion to draw X cards and add (X), where X is the number of Free Peoples cultures you spot over 2.
|
gametext: <b>Shadow:</b> Exert this minion to draw X cards and add (X), where X is the number of Free Peoples cultures you spot over 2.
|
||||||
lore: You've spoken more than enough, Uglúk,' sneered the evil voice. 'I wonder how they would like it in Lugbúrz.'
|
lore: You've spoken more than enough, Uglúk,' sneered the evil voice. 'I wonder how they would like it in Lugbúrz.'
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -356,17 +430,28 @@
|
|||||||
twilight: 1
|
twilight: 1
|
||||||
type: Condition
|
type: Condition
|
||||||
keywords: Support Area
|
keywords: Support Area
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: activated
|
||||||
}
|
phase: regroup
|
||||||
{
|
cost: {
|
||||||
|
type: exert
|
||||||
}
|
filter: choose(culture(sauron),orc)
|
||||||
]*/
|
}
|
||||||
|
effect: [
|
||||||
|
{
|
||||||
|
type: play
|
||||||
|
filter: choose(or(nazgul,culture(sauron)),minion)
|
||||||
|
cost: -4
|
||||||
|
memorize: playedMinion
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type: exhaust
|
||||||
|
filter: memory(playedMinion)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: Plays to your support area.<br><b>Regroup:</b> Exert a [sauron] Orc to play a Nazgûl or [sauron] minion. Its twilight cost is -4 and it comes into play exhausted.
|
gametext: Plays to your support area.<br><b>Regroup:</b> Exert a [sauron] Orc to play a Nazgûl or [sauron] minion. Its twilight cost is -4 and it comes into play exhausted.
|
||||||
lore: A winged Nazgûl awaits us northward on the east-bank.'
|
lore: A winged Nazgûl awaits us northward on the east-bank.'
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -404,17 +489,30 @@
|
|||||||
vitality: 5
|
vitality: 5
|
||||||
site: 6
|
site: 6
|
||||||
keywords: Fierce
|
keywords: Fierce
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: modifyOwnCost
|
||||||
}
|
requires: {
|
||||||
{
|
type: canSpot
|
||||||
|
filter: troll
|
||||||
}
|
}
|
||||||
]*/
|
amount: -4
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type: activated
|
||||||
|
phase: skirmish
|
||||||
|
cost: {
|
||||||
|
type: discardFromHand
|
||||||
|
forced: false
|
||||||
|
filter: choose(culture(sauron))
|
||||||
|
}
|
||||||
|
effect: {
|
||||||
|
type: modifyStrength
|
||||||
|
filter: self
|
||||||
|
amount: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: <b>Fierce</b>.<br>While you can spot a Troll, this minion's twilight cost is -4.<br><b>Skirmish:</b> Discard a [sauron] card from hand to make this minion strength +1.
|
gametext: <b>Fierce</b>.<br>While you can spot a Troll, this minion's twilight cost is -4.<br><b>Skirmish:</b> Discard a [sauron] card from hand to make this minion strength +1.
|
||||||
lore: ...Trolls are only counterfeits, made by the Enemy in the Great Darkness, in mockery of Ents....'
|
lore: ...Trolls are only counterfeits, made by the Enemy in the Great Darkness, in mockery of Ents....'
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -449,18 +547,20 @@
|
|||||||
type: Possession
|
type: Possession
|
||||||
strength: 2
|
strength: 2
|
||||||
itemclass: Hand weapon
|
itemclass: Hand weapon
|
||||||
#target: a [sauron] Troll
|
target: culture(sauron),troll
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: trigger
|
||||||
}
|
optional: true
|
||||||
{
|
trigger: {
|
||||||
|
type: played
|
||||||
}
|
filter: self
|
||||||
]*/
|
}
|
||||||
|
effect: {
|
||||||
|
type: drawCards
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: Bearer must be a [sauron] Troll.<br>When you play this possession, you may draw a card.
|
gametext: Bearer must be a [sauron] Troll.<br>When you play this possession, you may draw a card.
|
||||||
lore: Trolls they were, but filled with the evil will of their master.
|
lore: Trolls they were, but filled with the evil will of their master.
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -498,17 +598,23 @@
|
|||||||
vitality: 2
|
vitality: 2
|
||||||
site: 4
|
site: 4
|
||||||
keywords: Twilight
|
keywords: Twilight
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: activated
|
||||||
}
|
phase: regroup
|
||||||
{
|
requires: {
|
||||||
|
type: canSpot
|
||||||
}
|
filter: another,or(culture(sauron),twilight),minion
|
||||||
]*/
|
}
|
||||||
|
cost: {
|
||||||
|
type: discard
|
||||||
|
filter: self
|
||||||
|
}
|
||||||
|
effect: {
|
||||||
|
type: addBurdens
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: <b>Twilight</b>.<br><b>Regroup:</b> Spot another [sauron] or twilight minion and discard this minion to add a burden.
|
gametext: <b>Twilight</b>.<br><b>Regroup:</b> Spot another [sauron] or twilight minion and discard this minion to add a burden.
|
||||||
lore: They do not see what lies ahead / When Sun has failed and Moon is dead.'
|
lore: They do not see what lies ahead / When Sun has failed and Moon is dead.'
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -546,17 +652,27 @@
|
|||||||
vitality: 4
|
vitality: 4
|
||||||
site: 6
|
site: 6
|
||||||
keywords: Fierce
|
keywords: Fierce
|
||||||
/*requires: {
|
|
||||||
|
|
||||||
}
|
|
||||||
effects: [
|
effects: [
|
||||||
{
|
{
|
||||||
|
type: modifyOwnCost
|
||||||
}
|
requires: {
|
||||||
{
|
type: canSpot
|
||||||
|
filter: troll
|
||||||
}
|
}
|
||||||
]*/
|
amount: -4
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type: modifier
|
||||||
|
modifier: {
|
||||||
|
type: modifyStrength
|
||||||
|
filter: self
|
||||||
|
amount: {
|
||||||
|
type: forEachYouCanSpot
|
||||||
|
filter: another,culture(sauron),minion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
gametext: <b>Fierce</b>.<br>While you can spot a Troll, Gate Troll's twilight cost is -4.<br>For each other [sauron] minion you can spot, this minion is strength +1.
|
gametext: <b>Fierce</b>.<br>While you can spot a Troll, Gate Troll's twilight cost is -4.<br>For each other [sauron] minion you can spot, this minion is strength +1.
|
||||||
lore: ...what the plague did you bring us here for?'
|
lore: ...what the plague did you bring us here for?'
|
||||||
promotext: ""
|
promotext: ""
|
||||||
@@ -13,9 +13,10 @@ import org.json.simple.JSONObject;
|
|||||||
public class ChooseActiveCards implements EffectAppenderProducer {
|
public class ChooseActiveCards implements EffectAppenderProducer {
|
||||||
@Override
|
@Override
|
||||||
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException {
|
||||||
FieldUtils.validateAllowedFields(effectObject, "count", "filter", "memorize", "text");
|
FieldUtils.validateAllowedFields(effectObject, "count", "player", "filter", "memorize", "text");
|
||||||
|
|
||||||
final ValueSource valueSource = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment);
|
final ValueSource valueSource = ValueResolver.resolveEvaluator(effectObject.get("count"), 1, environment);
|
||||||
|
final String player = FieldUtils.getString(effectObject.get("player"), "player", "you");
|
||||||
final String filter = FieldUtils.getString(effectObject.get("filter"), "filter", "choose(any)");
|
final String filter = FieldUtils.getString(effectObject.get("filter"), "filter", "choose(any)");
|
||||||
final String memorize = FieldUtils.getString(effectObject.get("memorize"), "memorize");
|
final String memorize = FieldUtils.getString(effectObject.get("memorize"), "memorize");
|
||||||
if (memorize == null)
|
if (memorize == null)
|
||||||
@@ -24,6 +25,6 @@ public class ChooseActiveCards implements EffectAppenderProducer {
|
|||||||
if (text == null)
|
if (text == null)
|
||||||
throw new InvalidCardDefinitionException("You need to define text to show");
|
throw new InvalidCardDefinitionException("You need to define text to show");
|
||||||
|
|
||||||
return CardResolver.resolveCards(filter, valueSource, memorize, "you", text, environment);
|
return CardResolver.resolveCards(filter, valueSource, memorize, player, text, environment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user