diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_098.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_098.java deleted file mode 100644 index c45aa521b..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_098.java +++ /dev/null @@ -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 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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_099.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_099.java deleted file mode 100644 index 10c0debee..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_099.java +++ /dev/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 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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_100.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_100.java deleted file mode 100644 index a710260bb..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_100.java +++ /dev/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 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 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)); - } - }); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_101.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_101.java deleted file mode 100644 index 324d490cf..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_101.java +++ /dev/null @@ -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 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 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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_102.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_102.java deleted file mode 100644 index 6734ef91b..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_102.java +++ /dev/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 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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_103.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_103.java deleted file mode 100644 index 9cab40519..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_103.java +++ /dev/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 getInPlayModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new StrengthModifier(self, self, null, new CountActiveEvaluator(Culture.SAURON, CardType.MINION, Filters.not(self)))); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_104.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_104.java deleted file mode 100644 index 1ac414c6a..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_104.java +++ /dev/null @@ -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 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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_105.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_105.java deleted file mode 100644 index b26c96eab..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_105.java +++ /dev/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 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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_106.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_106.java deleted file mode 100644 index 7c451a621..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_106.java +++ /dev/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 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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_107.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_107.java deleted file mode 100644 index cc261d2c6..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_107.java +++ /dev/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 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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_108.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_108.java deleted file mode 100644 index 20b61ce53..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set6/sauron/Card6_108.java +++ /dev/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 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; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set06-Sauron.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Sauron.hjson similarity index 61% rename from gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set06-Sauron.hjson rename to gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Sauron.hjson index 1a14ee1b4..a78b7eccd 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set06-Sauron.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set06/set06-Sauron.hjson @@ -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.
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: Twilight.
Skirmish: 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: Twilight. Damage +1.
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: Maneuver: 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: Maneuver: 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: 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. 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: Shadow: 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.
Regroup: 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: 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. 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.
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: Twilight.
Regroup: 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: 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. lore: ...what the plague did you bring us here for?' promotext: "" diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseActiveCards.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseActiveCards.java index c45909883..8831ca61d 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseActiveCards.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseActiveCards.java @@ -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); } }