From bd37966e4f61bd981c1a681eae259d659cdf5589 Mon Sep 17 00:00:00 2001 From: MarcinSc Date: Mon, 20 May 2024 18:52:22 +0700 Subject: [PATCH] Migrated Gandalf cards in set 13 to hjson --- .../lotro/cards/set13/gandalf/Card13_028.java | 65 --- .../lotro/cards/set13/gandalf/Card13_029.java | 47 -- .../lotro/cards/set13/gandalf/Card13_030.java | 69 --- .../lotro/cards/set13/gandalf/Card13_031.java | 38 -- .../lotro/cards/set13/gandalf/Card13_032.java | 34 -- .../lotro/cards/set13/gandalf/Card13_033.java | 65 --- .../lotro/cards/set13/gandalf/Card13_034.java | 62 --- .../lotro/cards/set13/gandalf/Card13_035.java | 45 -- .../lotro/cards/set13/gandalf/Card13_036.java | 87 ---- .../lotro/cards/set13/gandalf/Card13_037.java | 70 --- .../lotro/cards/set13/gandalf/Card13_038.java | 51 --- .../lotro/cards/set13/gandalf/Card13_039.java | 42 -- .../lotro/cards/set13/gandalf/Card13_040.java | 66 --- .../lotro/cards/set13/gandalf/Card13_041.java | 41 -- .../lotro/cards/set13/gandalf/Card13_042.java | 71 --- .../lotro/cards/set13/gandalf/Card13_043.java | 51 --- .../cards/official/set01/set1-isengard.hjson | 5 +- .../cards/official/set02/set2-gondor.hjson | 2 +- .../cards/official/set02/set2-shire.hjson | 2 +- .../cards/official/set03/set3-isengard.hjson | 2 +- .../cards/official/set04/set04-Dunland.hjson | 2 +- .../official/set08/set08-Ringwraith.hjson | 2 +- .../official/set10/set10-Ringwraith.hjson | 4 +- .../cards/official/set11/set11-Men.hjson | 4 +- .../cards/official/set12/set12-Men.hjson | 2 +- .../cards/official/set12/set12-Uruk-hai.hjson | 2 +- .../official/set13}/set13-Gandalf.hjson | 417 +++++++++++++++++- .../hobbit/set33/set33-shadow.hjson | 2 +- .../unofficial/pc/setV01/V1_ringwraith.hjson | 5 +- ...BonusFrom.java => CancelKeywordBonus.java} | 2 +- ...hBonusTo.java => CancelStrengthBonus.java} | 2 +- .../modifier/CancelStrengthBonusFrom.java | 29 -- .../modifier/ModifierSourceFactory.java | 5 +- 33 files changed, 417 insertions(+), 976 deletions(-) delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_028.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_029.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_030.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_031.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_032.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_033.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_034.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_035.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_036.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_037.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_038.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_039.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_040.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_041.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_042.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_043.java rename gemp-lotr/gemp-lotr-cards/src/main/resources/{card-stubs => cards/official/set13}/set13-Gandalf.hjson (56%) rename gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/{CancelKeywordBonusFrom.java => CancelKeywordBonus.java} (96%) rename gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/{CancelStrengthBonusTo.java => CancelStrengthBonus.java} (95%) delete mode 100644 gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonusFrom.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_028.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_028.java deleted file mode 100644 index 289e9728a..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_028.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.common.Token; -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.CostToEffectAction; -import com.gempukku.lotro.logic.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractFollower; -import com.gempukku.lotro.logic.effects.AddTwilightEffect; -import com.gempukku.lotro.logic.effects.ReinforceTokenEffect; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.SpotCondition; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 2 - * Type: Follower - * Game Text: Aid - (2). (At the start of the maneuver phase, you may add (2) to transfer this to a companion.) Each - * time you transfer this to a companion, you may reinforce a [GANDALF] token. While you can spot a [GANDALF] companion, - * each minion skirmishing bearer is strength -1. - */ -public class Card13_028 extends AbstractFollower { - public Card13_028() { - super(Side.FREE_PEOPLE, 2, 0, 0, 0, Culture.GANDALF, "Alatar", "Final Envoy", true); - } - - @Override - public boolean canPayAidCost(LotroGame game, PhysicalCard self) { - return true; - } - - @Override - public void appendAidCosts(LotroGame game, CostToEffectAction action, PhysicalCard self) { - action.appendCost(new AddTwilightEffect(self, 2)); - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.transferredCard(game, effectResult, self, null, CardType.COMPANION)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendEffect( - new ReinforceTokenEffect(self, playerId, Token.GANDALF)); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new StrengthModifier(self, Filters.and(CardType.MINION, Filters.inSkirmishAgainst(Filters.hasAttached(self))), new SpotCondition(Culture.GANDALF, CardType.COMPANION), -1)); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_029.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_029.java deleted file mode 100644 index 3636cc82a..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_029.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPutCardFromDiscardIntoHandEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndRemoveCultureTokensFromCardEffect; -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.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 2 - * Type: Companion • Man - * Strength: 6 - * Vitality: 3 - * Resistance: 6 - * Game Text: At the start of the fellowship phase, you may remove 2 Free Peoples culture tokens to take a [GANDALF] - * event into hand from your discard pile. - */ -public class Card13_029 extends AbstractCompanion { - public Card13_029() { - super(2, 6, 3, 6, Culture.GANDALF, Race.MAN, null, "Dasron", "Merchant From Dorwinion", true); - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.startOfPhase(game, effectResult, Phase.FELLOWSHIP) - && PlayConditions.canRemoveAnyCultureTokens(game, 2, Side.FREE_PEOPLE)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendCost( - new ChooseAndRemoveCultureTokensFromCardEffect(self, playerId, null, 2, Side.FREE_PEOPLE)); - action.appendEffect( - new ChooseAndPutCardFromDiscardIntoHandEffect(action, playerId, 1, 1, Culture.GANDALF, CardType.EVENT)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_030.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_030.java deleted file mode 100644 index f250a8ea3..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_030.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.*; -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.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.*; -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.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 1 - * Type: Condition • Support Area - * Game Text: When you play this, add a [GANDALF] token here. Maneuver: Discard this from play or remove a token from - * here to spot a [GANDALF] companion. That companion gains muster until end of turn. - */ -public class Card13_030 extends AbstractPermanent { - public Card13_030() { - super(Side.FREE_PEOPLE, 1, CardType.CONDITION, Culture.GANDALF, "Fear and Great Wonder", null, true); - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, self)) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - action.appendEffect( - new AddTokenEffect(self, self, Token.GANDALF)); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)) { - final ActivateCardAction action = new ActivateCardAction(self); - List possibleCosts = new LinkedList<>(); - possibleCosts.add( - new RemoveTokenEffect(self, self, Token.GANDALF)); - possibleCosts.add( - new SelfDiscardEffect(self)); - action.appendCost( - new ChoiceEffect(action, playerId, possibleCosts)); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose a GANDALF companion", Culture.GANDALF, CardType.COMPANION) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - action.appendEffect( - new AddUntilEndOfTurnModifierEffect( - new KeywordModifier(self, card, Keyword.MUSTER))); - } - }); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_031.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_031.java deleted file mode 100644 index e03b73c0d..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_031.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.*; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 1 - * Type: Event • Skirmish - * Game Text: Spell. Spot 3 [GANDALF] companions to make a minion skirmishing a companion strength -3. - */ -public class Card13_031 extends AbstractEvent { - public Card13_031() { - super(Side.FREE_PEOPLE, 1, Culture.GANDALF, "The Flame of Anor", Phase.SKIRMISH); - addKeyword(Keyword.SPELL); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, 3, Culture.GANDALF, CardType.COMPANION); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, -3, CardType.MINION, Filters.inSkirmishAgainst(CardType.COMPANION))); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_032.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_032.java deleted file mode 100644 index b90bd8bc5..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_032.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.*; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.modifiers.evaluator.CardMatchesEvaluator; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 2 - * Type: Event • Skirmish - * Game Text: Spell. Make a [GANDALF] companion strength +2 (or +4 if that companion bears a follower). - */ -public class Card13_032 extends AbstractEvent { - public Card13_032() { - super(Side.FREE_PEOPLE, 2, Culture.GANDALF, "For a While Less Dark", Phase.SKIRMISH); - addKeyword(Keyword.SPELL); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, - new CardMatchesEvaluator(2, 4, Filters.hasAttached(CardType.FOLLOWER)), Culture.GANDALF, CardType.COMPANION)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_033.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_033.java deleted file mode 100644 index 418a985ba..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_033.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.AddBurdenEffect; -import com.gempukku.lotro.logic.effects.ChoiceEffect; -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.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 4 - * Type: Companion • Wizard - * Strength: 7 - * Vitality: 4 - * Resistance: 5 - * Game Text: While Gandalf is the Ring-bearer, each time the fellowship moves, add 3 burdens unless you spot 2 other - * companions and discard 2 [GANDALF] cards from hand. - */ -public class Card13_033 extends AbstractCompanion { - public Card13_033() { - super(4, 7, 4, 5, Culture.GANDALF, Race.WIZARD, null, "Gandalf", "Bearer of Obligation", true); - addKeyword(Keyword.CAN_START_WITH_RING); - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.moves(game, effectResult) - && game.getGameState().getRingBearer(game.getGameState().getCurrentPlayerId()) == self) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - List possibleEffects = new LinkedList<>(); - possibleEffects.add( - new AddBurdenEffect(self.getOwner(), self, 3)); - if (PlayConditions.canSpot(game, 2, Filters.not(self), CardType.COMPANION)) - possibleEffects.add( - new ChooseAndDiscardCardsFromHandEffect(action, game.getGameState().getCurrentPlayerId(), false, 2, Culture.GANDALF) { - @Override - public String getText(LotroGame game) { - return "Discard 2 GANDALF cards from hand"; - } - }); - - action.appendEffect( - new ChoiceEffect(action, game.getGameState().getCurrentPlayerId(), possibleEffects)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_034.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_034.java deleted file mode 100644 index d8a0ee936..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_034.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.RemovePlayedEventFromGameEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndRemoveFromTheGameCardsInDiscardEffect; -import com.gempukku.lotro.logic.timing.Action; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 2 - * Type: Event • Skirmish - * Game Text: You may remove from the game 4 other [GANDALF] cards in your discard pile to play this event from your - * discard pile. Then remove this event from the game. Spot Gandalf to make your [GANDALF] companion strength +3. - */ -public class Card13_034 extends AbstractEvent { - public Card13_034() { - super(Side.FREE_PEOPLE, 2, Culture.GANDALF, "Look to My Coming", Phase.SKIRMISH); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, Filters.gandalf); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 3, Filters.owner(playerId), Culture.GANDALF, CardType.COMPANION)); - return action; - } - - @Override - public List getPhaseActionsFromDiscard(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.isPhase(game, Phase.SKIRMISH) - && PlayConditions.canPlayFromDiscard(playerId, game, self) - && PlayConditions.canRemoveFromDiscardToPlay(self, game, playerId, 4, Culture.GANDALF)) { - final PlayEventAction action = getPlayEventCardAction(playerId, game, self); - action.appendCost( - new ChooseAndRemoveFromTheGameCardsInDiscardEffect(action, self, playerId, 4, 4, Culture.GANDALF)); - action.appendEffect( - new RemovePlayedEventFromGameEffect(action)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_035.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_035.java deleted file mode 100644 index 03acb27c2..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_035.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.DrawCardsEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 2 - * Type: Event • Maneuver - * Game Text: Discard your [GANDALF] condition from play to discard a condition from play and draw a card. - */ -public class Card13_035 extends AbstractEvent { - public Card13_035() { - super(Side.FREE_PEOPLE, 2, Culture.GANDALF, "No Colour Now", Phase.MANEUVER); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canDiscardFromPlay(self, game, Filters.owner(self.getOwner()), Culture.GANDALF, CardType.CONDITION); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendCost( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Filters.owner(playerId), Culture.GANDALF, CardType.CONDITION)); - action.appendEffect( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.CONDITION)); - action.appendEffect( - new DrawCardsEffect(action, playerId, 1)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_036.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_036.java deleted file mode 100644 index 3f4b2f9da..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_036.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.*; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.ExtraPlayCost; -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.AbstractAttachableFPPossession; -import com.gempukku.lotro.logic.effects.AddBurdenEffect; -import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; -import com.gempukku.lotro.logic.effects.RevealHandEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseOpponentEffect; -import com.gempukku.lotro.logic.modifiers.cost.DiscardFromPlayExtraPlayCostModifier; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 0 - * Type: Artifact • Palantir - * Resistance: -2 - * Game Text: Bearer must be Gandalf. To play this, if you can spot The Palantir of Orthanc, discard it. At the start of - * the fellowship phase, you may add a burden to reveal a Shadow player's hand. He or she must choose a revealed minion - * and discard it from hand. - */ -public class Card13_036 extends AbstractAttachableFPPossession { - public Card13_036() { - super(0, 0, 0, Culture.GANDALF, CardType.ARTIFACT, PossessionClass.PALANTIR, "The Palantír of Orthanc", "Recovered Seeing Stone", true); - } - - @Override - public int getResistance() { - return -2; - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Filters.gandalf; - } - - @Override - public boolean skipUniquenessCheck() { - return true; - } - - @Override - public List getExtraCostToPlay(LotroGame game, PhysicalCard self) { - if (PlayConditions.canSpot(game, Filters.name(getTitle()))) { - return Collections.singletonList( - new DiscardFromPlayExtraPlayCostModifier(self, self, 1, null, Filters.name(getTitle()))); - } - return super.getExtraCostToPlay(game, self); - } - - @Override - public List getOptionalAfterTriggers(final String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) { - if (TriggerConditions.startOfPhase(game, effectResult, Phase.FELLOWSHIP)) { - final OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendCost( - new AddBurdenEffect(self.getOwner(), self, 1)); - action.appendEffect( - new ChooseOpponentEffect(playerId) { - @Override - protected void opponentChosen(final String opponentId) { - action.appendEffect( - new RevealHandEffect(self, playerId, opponentId) { - @Override - protected void cardsRevealed(Collection cards) { - action.appendEffect( - new ChooseAndDiscardCardsFromHandEffect(action, opponentId, true, 1, CardType.MINION)); - } - }); - } - }); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_037.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_037.java deleted file mode 100644 index 65afc04ad..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_037.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Side; -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.CostToEffectAction; -import com.gempukku.lotro.logic.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractFollower; -import com.gempukku.lotro.logic.effects.AddTwilightEffect; -import com.gempukku.lotro.logic.effects.ExertCharactersEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 2 - * Type: Follower - * Strength: +1 - * Game Text: Aid - (2). Each time you transfer this to a companion, except a [GANDALF] companion, exert bearer twice. - * Each time bearer wins a skirmish, you may discard a condition from play. - */ -public class Card13_037 extends AbstractFollower { - public Card13_037() { - super(Side.FREE_PEOPLE, 2, 1, 0, 0, Culture.GANDALF, "Pallando", "Far-travelling One", true); - } - - @Override - public boolean canPayAidCost(LotroGame game, PhysicalCard self) { - return true; - } - - @Override - public void appendAidCosts(LotroGame game, CostToEffectAction action, PhysicalCard self) { - action.appendCost(new AddTwilightEffect(self, 2)); - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.transferredCard(game, effectResult, self, null, Filters.and(CardType.COMPANION, Filters.not(Culture.GANDALF)))) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - action.appendEffect( - new ExertCharactersEffect(action, self, self.getAttachedTo())); - action.appendEffect( - new ExertCharactersEffect(action, self, self.getAttachedTo())); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.winsSkirmish(game, effectResult, Filters.hasAttached(self))) { - OptionalTriggerAction action = new OptionalTriggerAction(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/set13/gandalf/Card13_038.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_038.java deleted file mode 100644 index 09214aeab..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_038.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Side; -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.CostToEffectAction; -import com.gempukku.lotro.logic.cardtype.AbstractFollower; -import com.gempukku.lotro.logic.effects.AddTwilightEffect; -import com.gempukku.lotro.logic.modifiers.CancelStrengthBonusTargetModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.SpotCondition; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 2 - * Type: Follower - * Resistance: +2 - * Game Text: Aid - (2). (At the start of the maneuver phase, you may add (2) to transfer this to a companion.) While - * you can spot 2 [GANDALF] companions, minions skirmishing bearer do not gain strength bonuses from possessions. - */ -public class Card13_038 extends AbstractFollower { - public Card13_038() { - super(Side.FREE_PEOPLE, 2, 0, 0, 2, Culture.GANDALF, "Radagast", "Tender of Beasts", true); - } - - @Override - public boolean canPayAidCost(LotroGame game, PhysicalCard self) { - return true; - } - - @Override - public void appendAidCosts(LotroGame game, CostToEffectAction action, PhysicalCard self) { - action.appendCost(new AddTwilightEffect(self, 2)); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new CancelStrengthBonusTargetModifier(self, new SpotCondition(2, Culture.GANDALF, CardType.COMPANION), - Filters.and(CardType.MINION, Filters.inSkirmishAgainst(Filters.hasAttached(self))), - CardType.POSSESSION)); - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_039.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_039.java deleted file mode 100644 index 947d2aa7b..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_039.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -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.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.ChooseAndDiscardCardsFromHandEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndPutCardFromDiscardIntoHandEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 1 - * Type: Event • Fellowship - * Game Text: Discard 2 Shadow cards from hand to take a [GANDALF] event into hand from your discard pile. - */ -public class Card13_039 extends AbstractEvent { - public Card13_039() { - super(Side.FREE_PEOPLE, 1, Culture.GANDALF, "Return to Us", Phase.FELLOWSHIP); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canDiscardCardsFromHandToPlay(self, game, self.getOwner(), 2, Side.SHADOW); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendCost( - new ChooseAndDiscardCardsFromHandEffect(action, playerId, false, 2, Side.SHADOW)); - action.appendEffect( - new ChooseAndPutCardFromDiscardIntoHandEffect(action, playerId, 1, 1, Culture.GANDALF, CardType.EVENT)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_040.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_040.java deleted file mode 100644 index 14e526962..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_040.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -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.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractAttachableFPPossession; -import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; -import com.gempukku.lotro.logic.effects.ReinforceTokenEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndRemoveCultureTokensFromCardEffect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 2 - * Type: Possession • Mount - * Strength: +1 - * Game Text: Bearer must be a Wizard. When you play Shadowfax, you may reinforce a [GANDALF] token. Skirmish: Remove - * 2 [GANDALF] tokens to wound a minion skirmishing bearer. - */ -public class Card13_040 extends AbstractAttachableFPPossession { - public Card13_040() { - super(2, 1, 0, Culture.GANDALF, PossessionClass.MOUNT, "Shadowfax", "Roaring Wind", true); - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Race.WIZARD; - } - - @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 ReinforceTokenEffect(self, playerId, Token.GANDALF)); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self) - && PlayConditions.canRemoveTokensFromAnything(game, Token.GANDALF, 2)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndRemoveCultureTokensFromCardEffect(self, playerId, Token.GANDALF, 1, Filters.any)); - action.appendCost( - new ChooseAndRemoveCultureTokensFromCardEffect(self, playerId, Token.GANDALF, 1, Filters.any)); - action.appendEffect( - new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, CardType.MINION, Filters.inSkirmishAgainst(self.getAttachedTo()))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_041.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_041.java deleted file mode 100644 index 0a0274913..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_041.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Side; -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.AbstractPermanent; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; - -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 1 - * Type: Condition • Support Area - * Game Text: Each companion bearing a follower gains muster (and is strength +1 if that companion is a [GANDALF] - * companion). - */ -public class Card13_041 extends AbstractPermanent { - public Card13_041() { - super(Side.FREE_PEOPLE, 1, CardType.CONDITION, Culture.GANDALF, "Strange Meeting"); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { - List modifiers = new LinkedList<>(); - modifiers.add( - new KeywordModifier(self, Filters.and(CardType.COMPANION, Filters.hasAttached(CardType.FOLLOWER)), Keyword.MUSTER)); - modifiers.add( - new StrengthModifier(self, Filters.and(CardType.COMPANION, Culture.GANDALF, Filters.hasAttached(CardType.FOLLOWER)), 1)); - return modifiers; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_042.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_042.java deleted file mode 100644 index a4554e7ec..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_042.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -import com.gempukku.lotro.common.*; -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.ActivateCardAction; -import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.cardtype.AbstractPermanent; -import com.gempukku.lotro.logic.effects.AddTokenEffect; -import com.gempukku.lotro.logic.effects.ChoiceEffect; -import com.gempukku.lotro.logic.effects.RemoveTokenEffect; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.PlayConditions; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 3 - * Type: Condition • Support Area - * Game Text: To play, spot a Wizard. When you play this, add X [GANDALF] tokens here, where X is the current region - * number. Maneuver: Discard this from play or remove 2 tokens from here to discard a Shadow condition from play. - */ -public class Card13_042 extends AbstractPermanent { - public Card13_042() { - super(Side.FREE_PEOPLE, 3, CardType.CONDITION, Culture.GANDALF, "Traveler's Homestead", null, true); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, Race.WIZARD); - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.played(game, effectResult, self)) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - action.appendEffect( - new AddTokenEffect(self, self, Token.GANDALF, GameUtils.getRegion(game))); - return Collections.singletonList(action); - } - return null; - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self)) { - ActivateCardAction action = new ActivateCardAction(self); - List possibleCosts = new LinkedList<>(); - possibleCosts.add( - new RemoveTokenEffect(self, self, Token.GANDALF, 2)); - possibleCosts.add( - new SelfDiscardEffect(self)); - action.appendCost( - new ChoiceEffect(action, playerId, possibleCosts)); - action.appendEffect( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, CardType.CONDITION, Side.SHADOW)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_043.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_043.java deleted file mode 100644 index c6356ce78..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/gandalf/Card13_043.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gempukku.lotro.cards.set13.gandalf; - -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.AddBurdenEffect; -import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Bloodlines - * Side: Free - * Culture: Gandalf - * Twilight Cost: 1 - * Type: Condition • Support Area - * Game Text: Skirmish: Exert your [GANDALF] companion and add a burden to make that companion damage +1. - */ -public class Card13_043 extends AbstractPermanent { - public Card13_043() { - super(Side.FREE_PEOPLE, 1, CardType.CONDITION, Culture.GANDALF, "Vapour and Steam"); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self) - && PlayConditions.canExert(self, game, Filters.owner(playerId), Culture.GANDALF, CardType.COMPANION)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Filters.owner(playerId), Culture.GANDALF, CardType.COMPANION) { - @Override - protected void forEachCardExertedCallback(PhysicalCard character) { - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new KeywordModifier(self, character, Keyword.DAMAGE, 1))); - } - }); - action.appendCost( - new AddBurdenEffect(self.getOwner(), self, 1)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set01/set1-isengard.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set01/set1-isengard.hjson index 95d16e90b..20b7d08f4 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set01/set1-isengard.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set01/set1-isengard.hjson @@ -338,7 +338,8 @@ { type: addModifier modifier: { - type: cancelStrengthBonusFrom + type: cancelStrengthBonus + filter: any from: memory(chosenPossession) } until: start(regroup) @@ -735,7 +736,7 @@ effects: { type: modifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus filter: character,inSkirmishAgainst(self) from: weapon } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-gondor.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-gondor.hjson index 32e240c41..6d97b0e2e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-gondor.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-gondor.hjson @@ -240,7 +240,7 @@ { type: modifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus filter: minion,inSkirmishAgainst(bearer,name(Boromir)) from: weapon } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-shire.hjson index cfdfac1c9..9c5dc5f59 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set02/set2-shire.hjson @@ -309,7 +309,7 @@ { type: modifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus filter: minion,inSkirmishAgainst(bearer) from: weapon } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-isengard.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-isengard.hjson index 68d794032..18f714558 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-isengard.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set03/set3-isengard.hjson @@ -758,7 +758,7 @@ effects: { type: modifier modifier: { - type: cancelKeywordBonusFrom + type: cancelKeywordBonus filter: character,inSkirmishAgainst(culture(isengard),orc) keyword: damage from: weapon diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set04/set04-Dunland.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set04/set04-Dunland.hjson index 40a2a9fa0..511f9414c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set04/set04-Dunland.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set04/set04-Dunland.hjson @@ -1337,7 +1337,7 @@ { type: addModifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus filter: inSkirmishAgainst(memory(chosenMan)) from: possession } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set08/set08-Ringwraith.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set08/set08-Ringwraith.hjson index 8c9cfb0bc..d04c5dd4f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set08/set08-Ringwraith.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set08/set08-Ringwraith.hjson @@ -1031,7 +1031,7 @@ { type: modifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus filter: man,inSkirmishAgainst(self) from: weapon } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set10/set10-Ringwraith.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set10/set10-Ringwraith.hjson index ea70f2372..95539be29 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set10/set10-Ringwraith.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set10/set10-Ringwraith.hjson @@ -248,7 +248,7 @@ { type: modifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus filter: companion,inSkirmishAgainst(self) from: possession } @@ -256,7 +256,7 @@ { type: modifier modifier: { - type: cancelKeywordBonusFrom + type: cancelKeywordBonus filter: companion,inSkirmishAgainst(self) from: possession } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Men.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Men.hjson index d0ca69adf..592376863 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Men.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Men.hjson @@ -1119,7 +1119,7 @@ { type: modifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus requires: { type: canSpot filter: bearer,inSkirmishAgainst(culture(men),minion) @@ -1131,7 +1131,7 @@ { type: modifier modifier: { - type: cancelKeywordBonusFrom + type: cancelKeywordBonus requires: { type: canSpot filter: bearer,inSkirmishAgainst(culture(men),minion) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Men.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Men.hjson index d420a7cd9..d9906a1af 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Men.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Men.hjson @@ -826,7 +826,7 @@ { type: modifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus requires: { type: canSpot filter: companion diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Uruk-hai.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Uruk-hai.hjson index 0de4f6e0f..1a2926434 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Uruk-hai.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set12/set12-Uruk-hai.hjson @@ -1377,7 +1377,7 @@ { type: modifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus filter: character,inSkirmishAgainst(self) from: weapon } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set13-Gandalf.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Gandalf.hjson similarity index 56% rename from gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set13-Gandalf.hjson rename to gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Gandalf.hjson index 27f148bcc..0f0ee0128 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set13-Gandalf.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set13/set13-Gandalf.hjson @@ -23,6 +23,38 @@ twilight: 2 type: Follower effects: [ + { + type: aidCost + cost: { + type: addTwilight + amount: 2 + } + } + { + type: trigger + optional: true + trigger: { + type: transferred + filter: self + to: companion + } + effect: { + type: reinforceTokens + culture: gandalf + } + } + { + type: modifier + modifier: { + type: modifyStrength + requires: { + type: canSpot + filter: culture(gandalf),companion + } + filter: minion,inSkirmishAgainst(bearer) + amount: -1 + } + } ] gametext: Aid – (2). (At the start of the maneuver phase, you may add (2) to transfer this to a companion.)
Each time you transfer this to a companion, you may reinforce a [gandalf] token.
While you can spot a [gandalf] companion, each minion skirmishing bearer is strength -1. lore: Third of the Istari to be named, he was clad in sea-blue. @@ -62,6 +94,23 @@ vitality: 3 resistance: 6 effects: [ + { + type: trigger + optional: true + trigger: { + type: startOfPhase + phase: fellowship + } + cost: { + type: removeTokensCumulative + filter: side(free people) + count: 2 + } + effect: { + type: putCardsFromDiscardIntoHand + filter: choose(culture(gandalf),event) + } + } ] gametext: At the start of the fellowship phase, you may remove 2 Free Peoples culture tokens to take a [gandalf] event into hand from your discard pile. lore: ...its inhabitants, traditional trading partners of Esgaroth and Dale, now look to their northern allies for protection against the wild Easterlings.... @@ -97,6 +146,46 @@ type: Condition keywords: Support Area effects: [ + { + type: trigger + trigger: { + type: played + filter: self + } + effect: { + type: addTokens + culture: gandalf + filter: self + } + } + { + type: activated + phase: maneuver + cost: { + type: choice + texts: [ + Discard this from play + Remove a token from here + ] + effects: [ + { + type: discard + filter: self + } + { + type: removeTokens + culture: gandalf + filter: self + } + ] + } + effect: { + type: addKeyword + filter: choose(culture(gandalf),companion) + keyword: muster + until: endOfTurn + } + } ] gametext: When you play this, add a [gandalf] token here.
Maneuver: Discard this from play or remove a token from here to spot a [gandalf] companion. That companion gains muster until end of turn. lore: The Hosts of Isengard roared, swaying this way and that, turning from fear to fear. @@ -134,13 +223,18 @@ Spell Skirmish ] - effects: { type: event - cost: { - }, + requires: { + type: canSpot + filter: culture(gandalf),companion + count: 3 + } effect: [ { + type: modifyStrength + filter: choose(minion,inSkirmishAgainst(companion)) + amount: -3 } ] } @@ -180,13 +274,23 @@ Spell Skirmish ] - effects: { type: event - cost: { - }, effect: [ { + type: modifyStrength + filter: choose(culture(gandalf),companion) + memorize: chosenCompanion + amount: { + type: condition + condition: { + type: memoryMatches + memory: chosenCompanion + filter: hasAttached(follower) + } + true: 4 + false: 2 + } } ] } @@ -229,6 +333,43 @@ resistance: 5 keywords: CAN_START_WITH_RING effects: [ + { + type: trigger + trigger: { + type: moves + } + requires: { + type: canSpot + filter: self,ringBearer + } + effect: { + type: choice + texts: [ + Add 3 burdens + Discard 2 {gandalf} cards from hand + ] + effects: [ + { + type: addBurdens + amount: 3 + } + { + type: conditional + requires: { + type: canSpot + filter: other,companion + count: 2 + } + effect: { + type: discardFromHand + forced: false + filter: choose(culture(gandalf)) + count: 2 + } + } + ] + } + } ] gametext: While Gandalf is the Ring-bearer, each time the fellowship moves, add 3 burdens unless you spot 2 other companions and discard 2 [gandalf] cards from hand. lore: But all worthy things that are in peril as the world now stands, those are my care.' @@ -263,16 +404,39 @@ twilight: 2 type: Event keywords: Skirmish - - effects: { - type: event - cost: { - }, - effect: [ - { - } - ] - } + effects: [ + { + type: activatedInDiscard + phase: skirmish + cost: { + type: removeCardsInDiscardFromGame + filter: choose(other,culture(gandalf)) + count: 4 + } + effect: { + type: playCardFromDiscard + filter: self + extraEffects: { + type: removeFromTheGame + filter: self + } + } + } + { + type: event + requires: { + type: canSpot + filter: name(Gandalf) + } + effect: [ + { + type: modifyStrength + filter: choose(your,culture(gandalf),companion) + amount: 3 + } + ] + } + ] gametext: You may remove from the game 4 other [gandalf] cards in your discard pile to play this event from your discard pile. Then remove this event from the game.
Spot Gandalf to make your [gandalf] companion strength +3. lore: ...at dawn on the fifth day.' promotext: "" @@ -306,13 +470,19 @@ twilight: 2 type: Event keywords: Maneuver - effects: { type: event cost: { - }, + type: discard + filter: choose(your,culture(gandalf),condition) + } effect: [ { + type: discard + filter: choose(condition) + } + { + type: drawCards } ] } @@ -350,8 +520,44 @@ twilight: 0 type: Artifact resistance: -2 - #target: title(Gandalf) + target: title(Gandalf) effects: [ + { + type: extraCost + requires: { + type: canSpot + filter: name(The Palantír of Orthanc) + } + cost: { + type: discard + filter: choose(name(The Palantír of Orthanc)) + } + } + { + type: trigger + optional: true + trigger: { + type: startOfPhase + phase: fellowship + } + cost: { + type: addBurdens + } + effect: [ + { + type: revealHand + hand: shadow + memorize: revealedCards + } + { + type: discardFromHand + forced: true + hand: shadow + player: shadow + filter: choose(memory(revealedCards),minion) + } + ] + } ] gametext: Bearer must be Gandalf. To play this, if you can spot The Palantír of Orthanc, discard it.
At the start of the fellowship phase, you may add a burden to reveal a Shadow player's hand. He or she must choose a revealed minion and discard it from hand. lore: ...a heavy shining thing came hurtling down from above. @@ -388,6 +594,38 @@ type: Follower strength: 1 effects: [ + { + type: aidCost + cost: { + type: addTwilight + amount: 2 + } + } + { + type: trigger + trigger: { + type: transferred + filter: self + to: companion,not(culture(gandalf)) + } + effect: { + type: exert + filter: bearer + times: 2 + } + } + { + type: trigger + optional: true + trigger: { + type: winsSkirmish + filter: bearer + } + effect: { + type: discard + filter: choose(condition) + } + } ] gametext: Aid – (2).
Each time you transfer this to a companion, except a [gandalf] companion, exert bearer twice.
Each time bearer wins a skirmish, you may discard a condition from play. lore: Brought as a companion by Alatar, he traveled the South and East to aid the Free Peoples. @@ -424,6 +662,26 @@ type: Follower resistance: 2 effects: [ + { + type: aidCost + cost: { + type: addTwilight + amount: 2 + } + } + { + type: modifier + modifier: { + type: cancelStrengthBonus + requires: { + type: canSpot + filter: culture(gandalf),companion + count: 2 + } + filter: minion,inSkirmishAgainst(bearer) + from: possession + } + } ] gametext: Aid – (2). (At the start of the maneuver phase, you may add (2) to transfer this to a companion.)
While you can spot 2 [gandalf] companions, minions skirmishing bearer do not gain strength bonuses from possessions. lore: It would have been useless in any case to try and win over the honest Radagast to treachery.' @@ -458,13 +716,18 @@ twilight: 1 type: Event keywords: Fellowship - effects: { type: event cost: { - }, + type: discardFromHand + forced: false + filter: choose(side(shadow)) + count: 2 + } effect: [ { + type: putCardsFromDiscardIntoHand + filter: choose(culture(gandalf),event) } ] } @@ -503,8 +766,33 @@ type: Possession strength: 1 itemclass: Mount - #target: a Wizard + target: wizard effects: [ + { + type: trigger + optional: true + trigger: { + type: played + filter: self + } + effect: { + type: reinforceTokens + culture: gandalf + } + } + { + type: activated + phase: skirmish + cost: { + type: removeTokensCumulative + culture: gandalf + count: 2 + } + effect: { + type: wound + filter: choose(minion,inSkirmishAgainst(bearer)) + } + } ] gametext: Bearer must be a Wizard.
When you play Shadowfax, you may reinforce a [gandalf] token.
Skirmish: Remove 2 [gandalf] tokens to wound a minion skirmishing bearer. lore: Then Shadowfax gathered himself together and sprang away, and the night flowed over him.... @@ -540,6 +828,22 @@ type: Condition keywords: Support Area effects: [ + { + type: modifier + modifier: { + type: addKeyword + filter: companion,hasAttached(follower) + keyword: muster + } + } + { + type: modifier + modifier: { + type: modifyStrength + filter: companion,hasAttached(follower),culture(gandalf) + amount: 1 + } + } ] gametext: Each companion bearing a follower gains muster (and is strength +1 if that companion is a [gandalf] companion). lore: Gandalf obviously expected to find Treebeard here; and Treebeard might almost have been loitering about near the gates on purpose to meet him.' @@ -575,6 +879,55 @@ type: Condition keywords: Support Area effects: [ + { + type: toPlay + requires: { + type: canSpot + filter: wizard + } + } + { + type: trigger + trigger: { + type: played + filter: self + } + effect: { + type: addTokens + culture: gandalf + filter: self + count: { + type: regionNumber + } + } + } + { + type: activated + phase: maneuver + cost: { + type: choice + texts: [ + Discard this from play + Remove 2 tokens from here + ] + effects: [ + { + type: discard + filter: self + } + { + type: removeTokens + culture: gandalf + filter: self + count: 2 + } + ] + } + effect: { + type: discard + filter: choose(side(shadow),condition) + } + } ] gametext: To play, spot a Wizard.
When you play this, add X [gandalf] tokens here, where X is the current region number.
Maneuver: Discard this from play or remove 2 tokens from here to discard a Shadow condition from play. lore: Of the Wizards, it was Gandalf that chose no home. @@ -610,6 +963,26 @@ type: Condition keywords: Support Area effects: [ + { + type: activated + phase: skirmish + cost: [ + { + type: exert + filter: choose(your,culture(gandalf),companion) + memorize: exertedCompanion + } + { + type: addBurdens + } + ] + effect: { + type: addKeyword + filter: memory(exertedCompanion) + keyword: damage + amount: 1 + } + } ] gametext: Skirmish: Exert your [gandalf] companion and add a burden to make that companion damage +1. lore: There was none to see, or perhaps in after ages songs would still be sung of the Battle of the Peak.' diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/hobbit/set33/set33-shadow.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/hobbit/set33/set33-shadow.hjson index 83a7ba4f8..92eeac409 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/hobbit/set33/set33-shadow.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/hobbit/set33/set33-shadow.hjson @@ -222,7 +222,7 @@ { type: modifier modifier: { - type: cancelStrengthBonusTo + type: cancelStrengthBonus filter: companion,culture(dwarven) from: weapon } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV01/V1_ringwraith.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV01/V1_ringwraith.hjson index c39446707..65929a4fb 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV01/V1_ringwraith.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/unofficial/pc/setV01/V1_ringwraith.hjson @@ -80,7 +80,7 @@ { type: modifier modifier: { - type: cancelkeywordbonusfrom + type: cancelKeywordBonus filter: inSkirmishAgainst(bearer) from: attachedTo(inSkirmishAgainst(bearer)) keyword: damage @@ -93,7 +93,8 @@ { type: modifier modifier: { - type: cancelstrengthbonusfrom + type: cancelStrengthBonus + filter: any from: attachedTo(inSkirmishAgainst(bearer)) requires: { type: canSpot diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonusFrom.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonus.java similarity index 96% rename from gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonusFrom.java rename to gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonus.java index 2eb78f30b..172fcbb8f 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonusFrom.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelKeywordBonus.java @@ -7,7 +7,7 @@ import com.gempukku.lotro.logic.modifiers.CancelKeywordBonusTargetModifier; import com.gempukku.lotro.logic.modifiers.Modifier; import org.json.simple.JSONObject; -public class CancelKeywordBonusFrom implements ModifierSourceProducer { +public class CancelKeywordBonus implements ModifierSourceProducer { @Override public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { FieldUtils.validateAllowedFields(object, "filter", "from", "requires", "keyword"); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonusTo.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonus.java similarity index 95% rename from gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonusTo.java rename to gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonus.java index c7363ac0e..ce2b82b56 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonusTo.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonus.java @@ -6,7 +6,7 @@ import com.gempukku.lotro.logic.modifiers.CancelStrengthBonusTargetModifier; import com.gempukku.lotro.logic.modifiers.Modifier; import org.json.simple.JSONObject; -public class CancelStrengthBonusTo implements ModifierSourceProducer { +public class CancelStrengthBonus implements ModifierSourceProducer { @Override public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { FieldUtils.validateAllowedFields(object, "filter", "requires", "from"); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonusFrom.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonusFrom.java deleted file mode 100644 index 2e245a14d..000000000 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/CancelStrengthBonusFrom.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.gempukku.lotro.cards.build.field.effect.modifier; - -import com.gempukku.lotro.cards.build.*; -import com.gempukku.lotro.cards.build.field.FieldUtils; -import com.gempukku.lotro.logic.modifiers.CancelStrengthBonusSourceModifier; -import com.gempukku.lotro.logic.modifiers.Modifier; -import org.json.simple.JSONObject; - -public class CancelStrengthBonusFrom implements ModifierSourceProducer { - @Override - public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(object, "from", "requires"); - - final String filter = FieldUtils.getString(object.get("from"), "from"); - final JSONObject[] conditionArray = FieldUtils.getObjectArray(object.get("requires"), "requires"); - - final FilterableSource filterableSource = environment.getFilterFactory().generateFilter(filter, environment); - final Requirement[] requirements = environment.getRequirementFactory().getRequirements(conditionArray, environment); - - return new ModifierSource() { - @Override - public Modifier getModifier(ActionContext actionContext) { - return new CancelStrengthBonusSourceModifier(actionContext.getSource(), - new RequirementCondition(requirements, actionContext), - filterableSource.getFilterable(actionContext)); - } - }; - } -} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifierSourceFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifierSourceFactory.java index 55caad769..b49e409a6 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifierSourceFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifierSourceFactory.java @@ -24,9 +24,8 @@ public class ModifierSourceFactory { modifierProducers.put("allycanparticipateinskirmishes", new AllyCanParticipateInSkirmishes()); modifierProducers.put("allymaynotparticipateinarcheryfireorskirmishes", new AllyMayNotParticipateInArcheryFireOrSkirmishes()); modifierProducers.put("archerytotal", new ArcheryTotal()); - modifierProducers.put("cancelkeywordbonusfrom", new CancelKeywordBonusFrom()); - modifierProducers.put("cancelstrengthbonusfrom", new CancelStrengthBonusFrom()); - modifierProducers.put("cancelstrengthbonusto", new CancelStrengthBonusTo()); + modifierProducers.put("cancelkeywordbonus", new CancelKeywordBonus()); + modifierProducers.put("cancelstrengthbonus", new CancelStrengthBonus()); modifierProducers.put("canplaystackedcards", new CanPlayStackedCards()); modifierProducers.put("cantbear", new CantBear()); modifierProducers.put("cantbeassignedtoskirmish", new CantBeAssignedToSkirmish());