diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_213.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_213.java new file mode 100644 index 000000000..1fe0f0dd7 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_213.java @@ -0,0 +1,89 @@ +package com.gempukku.lotro.cards.set40.sauron; + +import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.effects.AddUntilEndOfTurnModifierEffect; +import com.gempukku.lotro.cards.effects.SelfExertEffect; +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.actions.RequiredTriggerAction; +import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision; +import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; +import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; +import com.gempukku.lotro.logic.modifiers.KeywordModifier; +import com.gempukku.lotro.logic.modifiers.SpotCondition; +import com.gempukku.lotro.logic.timing.Action; +import com.gempukku.lotro.logic.timing.EffectResult; + +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + +/** + * Title: *Barad-dur Captain + * Set: Second Edition + * Side: Shadow + * Culture: Sauron + * Twilight Cost: 5 + * Type: Minion - Orc + * Strength: 11 + * Vitality: 3 + * Home: 6 + * Card Number: 1R213 + * Game Text: When you play this minion, name a Free Peoples culture. + * While skirmishing a character of the named culture, this minion is damage +1. + * Skirmish: Exert Barad-dur Captain to wound a character it is skirmishing. + */ +public class Card40_213 extends AbstractMinion { + public Card40_213() { + super(5, 11, 3, 6, Race.ORC, Culture.SAURON, "Barad-dur Captain", null, true); + } + + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) { + if (TriggerConditions.played(game, effectResult, self)) { + final RequiredTriggerAction action = new RequiredTriggerAction(self); + List possibleCultures = new LinkedList(); + for (Culture value : Culture.values()) { + if (value.isFP()) + possibleCultures.add(value.getHumanReadable()); + } + final String[] cultures = possibleCultures.toArray(new String[0]); + + action.appendEffect( + new PlayoutDecisionEffect(self.getOwner(), + new MultipleChoiceAwaitingDecision(1, "Choose a Free Peoples Culture", cultures) { + @Override + protected void validDecisionMade(int index, String result) { + final Culture culture = Culture.findCultureByHumanReadable(result); + action.appendEffect( + new AddUntilEndOfTurnModifierEffect( + new KeywordModifier(self, self, new SpotCondition(self, Filters.inSkirmishAgainst(Filters.character, culture)), Keyword.DAMAGE, 1))); + } + })); + return Collections.singletonList(action); + } + return null; + } + + @Override + protected List getExtraPhaseActions(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 ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.character, Filters.inSkirmishAgainst(self))); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_214.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_214.java new file mode 100644 index 000000000..e7962a824 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_214.java @@ -0,0 +1,79 @@ +package com.gempukku.lotro.cards.set40.sauron; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.effects.AddUntilEndOfTurnModifierEffect; +import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; +import com.gempukku.lotro.cards.effects.PreventableEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.GameUtils; +import com.gempukku.lotro.logic.actions.OptionalTriggerAction; +import com.gempukku.lotro.logic.actions.SubAction; +import com.gempukku.lotro.logic.modifiers.KeywordModifier; +import com.gempukku.lotro.logic.timing.Effect; +import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.results.CharacterWonSkirmishResult; + +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + +/** + * Title: *Bound to This Fate + * Set: Second Edition + * Side: Shadow + * Culture: Sauron + * Twilight Cost: 2 + * Type: Condition - Support Area + * Card Number: 1U214 + * Game Text: Each time a [SAURON] minion wins a skirmish, you may make that minion fierce until the regroup phase. + * The Free Peoples player may exert a character of a different culture than the losing companion to prevent this. + */ +public class Card40_214 extends AbstractPermanent { + public Card40_214() { + super(Side.SHADOW, 2, CardType.CONDITION, Culture.SAURON, Zone.SUPPORT, "Bound to This Fate", null, true); + } + + @Override + public List getOptionalAfterTriggers(String playerId, final LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.winsSkirmish(game, effectResult, Culture.SAURON, CardType.MINION)) { + final CharacterWonSkirmishResult winResult = (CharacterWonSkirmishResult) effectResult; + final PhysicalCard winner = winResult.getWinner(); + final OptionalTriggerAction action = new OptionalTriggerAction(self); + action.setText("Make " + GameUtils.getFullName(winner) + " fierce"); + action.appendEffect( + new PreventableEffect( + action, new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, winner, Keyword.FIERCE), Phase.REGROUP) { + @Override + public String getText(LotroGame game) { + return "Make " + GameUtils.getFullName(winner) + " fierce"; + } + }, GameUtils.getFreePeoplePlayer(game), + new PreventableEffect.PreventionCost() { + @Override + public Effect createPreventionCostForPlayer(SubAction subAction, String playerId) { + final Collection losers = Filters.filter(winResult.getInvolving(), game.getGameState(), game.getModifiersQuerying(), Side.FREE_PEOPLE, CardType.COMPANION); + List loserCultures = new LinkedList(); + for (PhysicalCard loser : losers) { + loserCultures.add(loser.getBlueprint().getCulture()); + } + + return new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.character, Filters.not(Filters.or(loserCultures.toArray(new Culture[0])))) { + @Override + public String getText(LotroGame game) { + return "Exert character of a different culture than the losing companion"; + } + }; + } + })); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_216.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_216.java new file mode 100644 index 000000000..57e0867a0 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_216.java @@ -0,0 +1,75 @@ +package com.gempukku.lotro.cards.set40.sauron; + +import com.gempukku.lotro.cards.AbstractAttachable; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.actions.AttachPermanentAction; +import com.gempukku.lotro.cards.effects.ChoiceEffect; +import com.gempukku.lotro.cards.effects.ExertCharactersEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.filters.Filter; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.GameUtils; +import com.gempukku.lotro.logic.actions.RequiredTriggerAction; +import com.gempukku.lotro.logic.effects.AddTwilightEffect; +import com.gempukku.lotro.logic.timing.Effect; +import com.gempukku.lotro.logic.timing.EffectResult; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Title: Ever Watchful + * Set: Second Edition + * Side: Shadow + * Culture: Sauron + * Twilight Cost: 0 + * Type: Condition - Companion + * Card Number: 1C216 + * Game Text: To play, exert a [SAURON] tracker. Limit 1 per companion. + * Each time the fellowship moves, the Free Peoples player must add (1) or exert this companion. + */ +public class Card40_216 extends AbstractAttachable { + public Card40_216() { + super(Side.SHADOW, CardType.CONDITION, 0, Culture.SAURON, null, "Ever Watchful"); + } + + @Override + protected Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { + return Filters.and(CardType.COMPANION, Filters.not(Filters.hasAttached(Filters.name("Ever Watchful")))); + } + + @Override + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int withTwilightRemoved, Filter additionalAttachmentFilter, int twilightModifier) { + return super.checkPlayRequirements(playerId, game, self, withTwilightRemoved, additionalAttachmentFilter, twilightModifier) + && PlayConditions.canExert(self, game, Culture.SAURON, Keyword.TRACKER); + } + + @Override + public AttachPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, Filterable additionalAttachmentFilter, int twilightModifier) { + final AttachPermanentAction action = super.getPlayCardAction(playerId, game, self, additionalAttachmentFilter, twilightModifier); + action.appendCost( + new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Culture.SAURON, Keyword.TRACKER)); + return action; + } + + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.moves(game, effectResult)) { + RequiredTriggerAction action = new RequiredTriggerAction(self); + List possibleEffects = new ArrayList(2); + possibleEffects.add( + new AddTwilightEffect(self, 1)); + possibleEffects.add( + new ExertCharactersEffect(action, self, self.getAttachedTo())); + action.appendEffect( + new ChoiceEffect(action, GameUtils.getFreePeoplePlayer(game), possibleEffects)); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_217.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_217.java new file mode 100644 index 000000000..8a774c4f3 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_217.java @@ -0,0 +1,43 @@ +package com.gempukku.lotro.cards.set40.sauron; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.modifiers.MinionSiteNumberModifier; +import com.gempukku.lotro.cards.modifiers.conditions.MinThreatCondition; +import com.gempukku.lotro.cards.modifiers.evaluator.ForEachThreatEvaluator; +import com.gempukku.lotro.cards.modifiers.evaluator.NegativeEvaluator; +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.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.StrengthModifier; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * Title: Fires Raged Unchecked + * Set: Second Edition + * Side: Shadow + * Culture: Sauron + * Twilight Cost: 1 + * Type: Condition - Support Area + * Card Number: 1R217 + * Game Text: The site number of each [SAURON] Orc is -1 for each threat. + * While you can spot 3 threats, each [SAURON] Orc that is not roaming is strength +1. + */ +public class Card40_217 extends AbstractPermanent { + public Card40_217() { + super(Side.SHADOW, 1, CardType.CONDITION, Culture.SAURON, Zone.SUPPORT, "Fires Raged Unchecked"); + } + + @Override + public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { + MinionSiteNumberModifier siteNumber = new MinionSiteNumberModifier(self, Filters.and(Culture.SAURON, Race.ORC), null, + new NegativeEvaluator(new ForEachThreatEvaluator())); + StrengthModifier strength = new StrengthModifier(self, Filters.and(Culture.SAURON, Race.ORC, Filters.not(Filters.roamingMinion)), + new MinThreatCondition(3), 1); + return Arrays.asList(siteNumber, strength); + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_218.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_218.java new file mode 100644 index 000000000..29342c40b --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_218.java @@ -0,0 +1,54 @@ +package com.gempukku.lotro.cards.set40.sauron; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.effects.ChoiceEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDeckEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect; +import com.gempukku.lotro.common.*; +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.timing.Effect; +import com.gempukku.lotro.logic.timing.EffectResult; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Title: *Gathering Evil + * Set: Second Edition + * Side: Shadow + * Culture: Sauron + * Twilight Cost: 2 + * Type: Condition - Support Area + * Card Number: 1U218 + * Game Text: At the beginning of each Shadow phase, if you cannot spot more than 2 Free Peoples cultures, + * you may play a [SAURON] minion from your draw deck or discard pile. + */ +public class Card40_218 extends AbstractPermanent { + public Card40_218() { + super(Side.SHADOW, 2, CardType.CONDITION, Culture.SAURON, Zone.SUPPORT, "Gathering Evil"); + } + + @Override + public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.startOfPhase(game, effectResult, Phase.SHADOW) + && !PlayConditions.canSpotFPCultures(game, 3, playerId) + && (PlayConditions.canPlayFromDeck(playerId, game, Culture.SAURON, CardType.MINION) + || PlayConditions.canPlayFromDiscard(playerId, game, Culture.SAURON, CardType.MINION))) { + OptionalTriggerAction action = new OptionalTriggerAction(self); + List possibleEffects = new ArrayList(2); + possibleEffects.add( + new ChooseAndPlayCardFromDeckEffect(playerId, Culture.SAURON, CardType.MINION)); + possibleEffects.add( + new ChooseAndPlayCardFromDiscardEffect(playerId, game, Culture.SAURON, CardType.MINION)); + action.appendEffect( + new ChoiceEffect(action, playerId, possibleEffects)); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_219.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_219.java new file mode 100644 index 000000000..18ac20615 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_219.java @@ -0,0 +1,88 @@ +package com.gempukku.lotro.cards.set40.sauron; + +import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.effects.AddBurdenEffect; +import com.gempukku.lotro.cards.effects.RevealCardsFromYourHandEffect; +import com.gempukku.lotro.cards.effects.SelfExertEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; +import com.gempukku.lotro.cards.modifiers.evaluator.CountSpottableEvaluator; +import com.gempukku.lotro.cards.modifiers.evaluator.MinEvaluator; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Phase; +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.actions.OptionalTriggerAction; +import com.gempukku.lotro.logic.actions.RequiredTriggerAction; +import com.gempukku.lotro.logic.effects.AddThreatsEffect; +import com.gempukku.lotro.logic.timing.Action; +import com.gempukku.lotro.logic.timing.EffectResult; + +import java.util.Collections; +import java.util.List; + +/** + * Title: *The Great Eye, Wreathed in Flame + * Set: Second Edition + * Side: Shadow + * Culture: Sauron + * Twilight Cost: 3 + * Type: Minion + * Strength: 6 + * Vitality: 4 + * Home: 6 + * Card Number: 1R219 + * Game Text: Cunning. + * When you play The Great Eye, add a threat for each companion over 4. + * Each time the Ring-bearer puts on The One Ring, you may reveal this card from hand to add a burden. + * Skirmish: Exert The Great Eye to make a [SAURON] minion strength +2. + */ +public class Card40_219 extends AbstractMinion { + public Card40_219() { + super(3, 6, 4, 6, null, Culture.SAURON, "The Great Eye", "Wreathed in Flame", true); + addKeyword(Keyword.CUNNING); + } + + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.played(game, effectResult, self)) { + RequiredTriggerAction action = new RequiredTriggerAction(self); + action.appendEffect( + new AddThreatsEffect(self.getOwner(), self, + new MinEvaluator(new CountSpottableEvaluator(4, (Integer) null, CardType.COMPANION), 0))); + return Collections.singletonList(action); + } + return null; + } + + @Override + public List getOptionalAfterTriggersFromHand(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (effectResult.getType() == EffectResult.Type.PUT_ON_THE_ONE_RING) { + OptionalTriggerAction action = new OptionalTriggerAction(self); + action.appendCost( + new RevealCardsFromYourHandEffect(self, playerId, self)); + action.appendEffect( + new AddBurdenEffect(playerId, self, 1)); + return Collections.singletonList(action); + } + return null; + } + + @Override + protected List getExtraPhaseActions(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, 2, Culture.SAURON, CardType.MINION)); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_221.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_221.java new file mode 100644 index 000000000..535a08464 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set40/sauron/Card40_221.java @@ -0,0 +1,83 @@ +package com.gempukku.lotro.cards.set40.sauron; + +import com.gempukku.lotro.cards.AbstractAttachable; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.actions.AttachPermanentAction; +import com.gempukku.lotro.cards.effects.AddBurdenEffect; +import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; +import com.gempukku.lotro.cards.effects.ChoiceEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.filters.Filter; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.GameUtils; +import com.gempukku.lotro.logic.actions.RequiredTriggerAction; +import com.gempukku.lotro.logic.modifiers.StrengthModifier; +import com.gempukku.lotro.logic.timing.Effect; +import com.gempukku.lotro.logic.timing.EffectResult; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Title: It Will Destroy Them All + * Set: Second Edition + * Side: Shadow + * Culture: Sauron + * Twilight Cost: 1 + * Type: Condition - Companion + * Card Number: 1R221 + * Game Text: To play, exert a [SAURON] Orc. Limit 1 per companion. + * Each time bearer is assigned to a skirmish, the Free Peoples player must add a burden or make bearer strength -2 until the regroup phase. + */ +public class Card40_221 extends AbstractAttachable { + public Card40_221() { + super(Side.SHADOW, CardType.CONDITION, 1, Culture.SAURON, null, "It Will Destroy Them All"); + } + + @Override + protected Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { + return Filters.and(CardType.COMPANION, Filters.not(Filters.hasAttached(Filters.name("It Will Destroy Them All")))); + } + + @Override + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int withTwilightRemoved, Filter additionalAttachmentFilter, int twilightModifier) { + return super.checkPlayRequirements(playerId, game, self, withTwilightRemoved, additionalAttachmentFilter, twilightModifier) + && PlayConditions.canExert(self, game, Culture.SAURON, Race.ORC); + } + + @Override + public AttachPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, Filterable additionalAttachmentFilter, int twilightModifier) { + final AttachPermanentAction action = super.getPlayCardAction(playerId, game, self, additionalAttachmentFilter, twilightModifier); + action.appendCost( + new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Culture.SAURON, Race.ORC)); + return action; + } + + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.assignedToSkirmish(game, effectResult, null, Filters.hasAttached(self))) { + final String freePeoplePlayer = GameUtils.getFreePeoplePlayer(game); + RequiredTriggerAction action = new RequiredTriggerAction(self); + List possibleEffects = new ArrayList(2); + possibleEffects.add( + new AddBurdenEffect(freePeoplePlayer, self, 1)); + possibleEffects.add( + new AddUntilStartOfPhaseModifierEffect( + new StrengthModifier(self, Filters.hasAttached(self), -2), Phase.REGROUP) { + @Override + public String getText(LotroGame game) { + return "Make bearer strength -2 until the regroun phase"; + } + }); + action.appendEffect( + new ChoiceEffect(action, freePeoplePlayer, possibleEffects)); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt index 51ed85e0e..7e26f1580 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt @@ -252,4 +252,6 @@ gl_theOneRing,1_2 40_190,1_216 40_191,1_217 40_192,1_218 -40_200,2_80 \ No newline at end of file +40_200,2_80 +40_215,1_246 +40_220,1_250 \ No newline at end of file