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
|
||||
strength: 1
|
||||
itemclass: Hand weapon
|
||||
#target: a [sauron] Orc
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
target: culture(sauron),orc
|
||||
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.
|
||||
lore: Stony-faced they were, with dark window-holes staring north and east and west, and each window was full of sleepless eyes.
|
||||
promotext: ""
|
||||
@@ -72,17 +78,24 @@
|
||||
vitality: 2
|
||||
site: 4
|
||||
keywords: Twilight
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: I tried once; but you cannot reach them. Only shapes to see, perhaps, not to touch.'
|
||||
promotext: ""
|
||||
@@ -123,17 +136,27 @@
|
||||
Twilight
|
||||
Damage+1
|
||||
]
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: The Dead can't really be there! Is it some devilry hatched in the Dark Land?'
|
||||
promotext: ""
|
||||
@@ -170,17 +193,31 @@
|
||||
strength: 11
|
||||
vitality: 3
|
||||
site: 6
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: Now the watch-towers, which had fallen into decay, were repaired, and filled with arms, and garrisoned with ceaseless vigilance.
|
||||
promotext: ""
|
||||
@@ -217,17 +254,25 @@
|
||||
strength: 9
|
||||
vitality: 3
|
||||
site: 6
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: In it there was a single gate of iron, and upon its battlement sentinels paced unceasingly.
|
||||
promotext: ""
|
||||
@@ -265,17 +310,27 @@
|
||||
vitality: 4
|
||||
site: 6
|
||||
keywords: Fierce
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: This was Cirith Gorgor, the Haunted Pass, the entrance to the land of the Enemy.
|
||||
promotext: ""
|
||||
@@ -312,17 +367,36 @@
|
||||
strength: 11
|
||||
vitality: 3
|
||||
site: 6
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: You've spoken more than enough, Uglúk,' sneered the evil voice. 'I wonder how they would like it in Lugbúrz.'
|
||||
promotext: ""
|
||||
@@ -356,17 +430,28 @@
|
||||
twilight: 1
|
||||
type: Condition
|
||||
keywords: Support Area
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: A winged Nazgûl awaits us northward on the east-bank.'
|
||||
promotext: ""
|
||||
@@ -404,17 +489,30 @@
|
||||
vitality: 5
|
||||
site: 6
|
||||
keywords: Fierce
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: ...Trolls are only counterfeits, made by the Enemy in the Great Darkness, in mockery of Ents....'
|
||||
promotext: ""
|
||||
@@ -449,18 +547,20 @@
|
||||
type: Possession
|
||||
strength: 2
|
||||
itemclass: Hand weapon
|
||||
#target: a [sauron] Troll
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
target: culture(sauron),troll
|
||||
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.
|
||||
lore: Trolls they were, but filled with the evil will of their master.
|
||||
promotext: ""
|
||||
@@ -498,17 +598,23 @@
|
||||
vitality: 2
|
||||
site: 4
|
||||
keywords: Twilight
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: They do not see what lies ahead / When Sun has failed and Moon is dead.'
|
||||
promotext: ""
|
||||
@@ -546,17 +652,27 @@
|
||||
vitality: 4
|
||||
site: 6
|
||||
keywords: Fierce
|
||||
/*requires: {
|
||||
|
||||
}
|
||||
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.
|
||||
lore: ...what the plague did you bring us here for?'
|
||||
promotext: ""
|
||||
@@ -13,9 +13,10 @@ import org.json.simple.JSONObject;
|
||||
public class ChooseActiveCards implements EffectAppenderProducer {
|
||||
@Override
|
||||
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 String player = FieldUtils.getString(effectObject.get("player"), "player", "you");
|
||||
final String filter = FieldUtils.getString(effectObject.get("filter"), "filter", "choose(any)");
|
||||
final String memorize = FieldUtils.getString(effectObject.get("memorize"), "memorize");
|
||||
if (memorize == null)
|
||||
@@ -24,6 +25,6 @@ public class ChooseActiveCards implements EffectAppenderProducer {
|
||||
if (text == null)
|
||||
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