From 8a85533374b1180072b48c6bf868f07c5ffa1a72 Mon Sep 17 00:00:00 2001 From: MarcinSc Date: Fri, 17 May 2024 20:38:22 +0700 Subject: [PATCH] Migrated Shire cards in set 11 to hjson --- .../lotro/cards/set11/shire/Card11_161.java | 33 --- .../lotro/cards/set11/shire/Card11_162.java | 41 --- .../lotro/cards/set11/shire/Card11_163.java | 37 --- .../lotro/cards/set11/shire/Card11_164.java | 55 ---- .../lotro/cards/set11/shire/Card11_165.java | 46 ---- .../lotro/cards/set11/shire/Card11_167.java | 46 ---- .../lotro/cards/set11/shire/Card11_168.java | 39 --- .../lotro/cards/set11/shire/Card11_169.java | 38 --- .../lotro/cards/set11/shire/Card11_170.java | 48 ---- .../lotro/cards/set11/shire/Card11_171.java | 68 ----- .../lotro/cards/set11/shire/Card11_172.java | 38 --- .../lotro/cards/set11/shire/Card11_173.java | 75 ------ .../lotro/cards/set11/shire/Card11_174.java | 32 --- .../lotro/cards/set11/shire/Card11_175.java | 50 ---- .../lotro/cards/set11/shire/Card11_176.java | 33 --- .../official/set11}/set11-Shire.hjson | 243 +++++++++++++++--- .../cards/build/BuiltLotroCardBlueprint.java | 2 +- .../field/effect/filter/FilterFactory.java | 15 ++ 18 files changed, 230 insertions(+), 709 deletions(-) delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_161.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_162.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_163.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_164.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_165.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_167.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_168.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_169.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_170.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_171.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_172.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_173.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_174.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_175.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_176.java rename gemp-lotr/gemp-lotr-cards/src/main/resources/{card-stubs => cards/official/set11}/set11-Shire.hjson (70%) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_161.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_161.java deleted file mode 100644 index 7de847ae1..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_161.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -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.CountActiveEvaluator; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 0 - * Type: Event • Skirmish - * Game Text: For each dwelling and forest site on the adventure path, make a Hobbit strength +1. - */ -public class Card11_161 extends AbstractEvent { - public Card11_161() { - super(Side.FREE_PEOPLE, 0, Culture.SHIRE, "Concerning Hobbits", Phase.SKIRMISH); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, - new CountActiveEvaluator(CardType.SITE, Zone.ADVENTURE_PATH, Filters.or(Keyword.DWELLING, Keyword.FOREST)), Race.HOBBIT)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_162.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_162.java deleted file mode 100644 index 89176a863..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_162.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -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.actions.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractEvent; -import com.gempukku.lotro.logic.effects.CancelSkirmishEffect; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 2 - * Type: Event • Skirmish - * Game Text: Stealth. Cancel a skirmish involving a Hobbit and a minion whose strength is lower than that Hobbit's - * resistance. - */ -public class Card11_162 extends AbstractEvent { - public Card11_162() { - super(Side.FREE_PEOPLE, 2, Culture.SHIRE, "Crouched Down", Phase.SKIRMISH); - addKeyword(Keyword.STEALTH); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new CancelSkirmishEffect(Race.HOBBIT, - new Filter() { - @Override - public boolean accepts(LotroGame game, PhysicalCard physicalCard) { - int resistance = game.getModifiersQuerying().getResistance(game, physicalCard); - return Filters.inSkirmishAgainst(CardType.MINION, Filters.lessStrengthThan(resistance)).accepts(game, physicalCard); - } - })); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_163.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_163.java deleted file mode 100644 index d88c2e9e1..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_163.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.modifiers.condition.LocationCondition; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Companion • Hobbit - * Strength: 3 - * Vitality: 3 - * Resistance: 8 - * Game Text: While Farmer Maggot is at a dwelling or forest site, he is strength +4. - */ -public class Card11_163 extends AbstractCompanion { - public Card11_163() { - super(1, 3, 3, 8, Culture.SHIRE, Race.HOBBIT, null, "Farmer Maggot", "Hobbit of the Marish", true); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { -return Collections.singletonList(new StrengthModifier(self, self, new LocationCondition(Filters.or(Keyword.DWELLING, Keyword.FOREST)), 4)); -} -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_164.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_164.java deleted file mode 100644 index b0212336d..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_164.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -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.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.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.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.OptionalTriggerAction; -import com.gempukku.lotro.logic.modifiers.KeywordModifier; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 0 - * Type: Companion • Hobbit - * Strength: 3 - * Vitality: 4 - * Resistance: 10 - * Game Text: Ring-bearer. Ring-bound. At the start of the regroup phase, you may exert Frodo to make him gain muster - * until the end of the regroup phase. (At the start of the regroup phase, you may discard a card from hand to draw - * a card.) - */ -public class Card11_164 extends AbstractCompanion { - public Card11_164() { - super(0, 3, 4, 10, Culture.SHIRE, Race.HOBBIT, null, "Frodo", "Protected by Many", true); - addKeyword(Keyword.CAN_START_WITH_RING); - addKeyword(Keyword.RING_BOUND); - } - - @Override - public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.startOfPhase(game, effectResult, Phase.REGROUP) - && PlayConditions.canSelfExert(self, game)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new KeywordModifier(self, self, Keyword.MUSTER))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_165.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_165.java deleted file mode 100644 index 2e05e1f13..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_165.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -import com.gempukku.lotro.logic.cardtype.AbstractAttachable; -import com.gempukku.lotro.logic.timing.TriggerConditions; -import com.gempukku.lotro.logic.effects.RemoveTwilightEffect; -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.RequiredTriggerAction; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 4 - * Type: Condition - * Game Text: Toil 2. (For each [SHIRE] character you exert when playing this, its twilight cost is -2.) Bearer must be - * a Hobbit. Limit 1 per bearer. Each time the fellowship moves from a dwelling or forest site, remove (1). - */ -public class Card11_165 extends AbstractAttachable { - public Card11_165() { - super(Side.FREE_PEOPLE, CardType.CONDITION, 4, Culture.SHIRE, null, "Habits of Home"); - addKeyword(Keyword.TOIL, 2); - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Filters.and(Race.HOBBIT, Filters.not(Filters.hasAttached(Filters.name(getTitle())))); - } - - @Override - public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.movesFrom(game, effectResult, Filters.or(Keyword.DWELLING, Keyword.FOREST))) { - RequiredTriggerAction action = new RequiredTriggerAction(self); - action.appendEffect( - new RemoveTwilightEffect(1)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_167.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_167.java deleted file mode 100644 index 7b6f71f0c..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_167.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -import com.gempukku.lotro.common.*; -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.CancelSkirmishEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Event • Skirmish - * Game Text: Stealth. If the fellowship is at a dwelling site, exert 2 Hobbits to cancel a skirmish involving a Hobbit. - * At any other site, exert 2 Hobbits to make a Hobbit strength +3. - */ -public class Card11_167 extends AbstractEvent { - public Card11_167() { - super(Side.FREE_PEOPLE, 1, Culture.SHIRE, "Incognito", Phase.SKIRMISH); - addKeyword(Keyword.STEALTH); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canExert(self, game, 1, 2, Race.HOBBIT); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendCost( - new ChooseAndExertCharactersEffect(action, playerId, 2, 2, Race.HOBBIT)); - if (PlayConditions.location(game, Keyword.DWELLING)) - action.appendEffect( - new CancelSkirmishEffect(Race.HOBBIT)); - else - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, 3, Race.HOBBIT)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_168.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_168.java deleted file mode 100644 index cc2efdcbd..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_168.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.StrengthModifier; -import com.gempukku.lotro.logic.modifiers.evaluator.CountActiveEvaluator; -import com.gempukku.lotro.logic.modifiers.evaluator.MultiplyEvaluator; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Companion • Hobbit - * Strength: 3 - * Vitality: 4 - * Resistance: 9 - * Game Text: For each other unbound companion assigned to a skirmish, Merry is strength +2. - */ -public class Card11_168 extends AbstractCompanion { - public Card11_168() { - super(1, 3, 4, 9, Culture.SHIRE, Race.HOBBIT, null, "Merry", "Loyal Companion", true); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { -return Collections.singletonList(new StrengthModifier(self, self, null, -new MultiplyEvaluator(2, -new CountActiveEvaluator(Filters.not(self), Filters.unboundCompanion, Filters.assignedToSkirmish)))); -} -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_169.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_169.java deleted file mode 100644 index ad0bfb306..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_169.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -import com.gempukku.lotro.common.*; -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.RemoveBurdenEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 6 - * Type: Event • Fellowship - * Game Text: Toil 2. (For each [SHIRE] character you exert when playing this, its twilight cost is -2.) Spot 2 [SHIRE] - * companions to remove 2 burdens. - */ -public class Card11_169 extends AbstractEvent { - public Card11_169() { - super(Side.FREE_PEOPLE, 6, Culture.SHIRE, "The More, The Merrier", Phase.FELLOWSHIP); - addKeyword(Keyword.TOIL, 2); - } - - @Override - public boolean checkPlayRequirements(LotroGame game, PhysicalCard self) { - return PlayConditions.canSpot(game, 2, Culture.SHIRE, CardType.COMPANION); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new RemoveBurdenEffect(playerId, self, 2)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_170.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_170.java deleted file mode 100644 index 08fc0897f..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_170.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.actions.ActivateCardAction; -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.effects.ReplaceInSkirmishEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Companion • Hobbit - * Strength: 3 - * Vitality: 4 - * Resistance: 9 - * Game Text: Skirmish: If Pippin is not assigned to a skirmish, spot an unbound companion who has less resistance than - * Pippin to have Pippin replace him or her in a skirmish. - */ -public class Card11_170 extends AbstractCompanion { - public Card11_170() { - super(1, 3, 4, 9, Culture.SHIRE, Race.HOBBIT, null, "Pippin", "Brave Decoy", true); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self) - && Filters.notAssignedToSkirmish.accepts(game, self)) { - final int pippinResistance = game.getModifiersQuerying().getResistance(game, self); - if (PlayConditions.canSpot(game, Filters.unboundCompanion, Filters.maxResistance(pippinResistance - 1), Filters.inSkirmish)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendEffect( - new ReplaceInSkirmishEffect(self, Filters.unboundCompanion, Filters.maxResistance(pippinResistance - 1))); - return Collections.singletonList(action); - } - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_171.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_171.java deleted file mode 100644 index 575604ae2..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_171.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -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.AbstractAttachableFPPossession; -import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.RemoveBurdenEffect; -import com.gempukku.lotro.logic.effects.SelfDiscardEffect; -import com.gempukku.lotro.logic.modifiers.OverwhelmedByMultiplierModifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Possession • Box - * Resistance: +2 - * Game Text: Bearer must be a Hobbit. Fellowship: Discard this possession to remove a burden. Skirmish: If bearer is - * an unbound Hobbit, discard this possession to prevent him or her from being overwhelmed unless his or her strength - * is tripled. - */ -public class Card11_171 extends AbstractAttachableFPPossession { - public Card11_171() { - super(1, 0, 0, Culture.SHIRE, PossessionClass.BOX, "Salt from the Shire"); - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Race.HOBBIT; - } - - @Override - public int getResistance() { - return 2; - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self) - && PlayConditions.canSelfDiscard(self, game)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfDiscardEffect(self)); - action.appendEffect( - new RemoveBurdenEffect(playerId, self, 1)); - return Collections.singletonList(action); - } - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self) - && PlayConditions.canSelfDiscard(self, game) - && PlayConditions.canSpot(game, Filters.hasAttached(self), Filters.unboundCompanion)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfDiscardEffect(self)); - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new OverwhelmedByMultiplierModifier(self, self.getAttachedTo(), 3))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_172.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_172.java deleted file mode 100644 index fe91458a1..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_172.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -import com.gempukku.lotro.common.CardType; -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Keyword; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filters; -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ResistanceModifier; - -import java.util.Collections; -import java.util.List; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 2 - * Type: Companion • Hobbit - * Strength: 3 - * Vitality: 4 - * Resistance: 10 - * Game Text: Ring-bound. Each other companion is resistance +1. - */ -public class Card11_172 extends AbstractCompanion { - public Card11_172() { - super(2, 3, 4, 10, Culture.SHIRE, Race.HOBBIT, null, "Sam", "Steadfast Friend", true); - addKeyword(Keyword.RING_BOUND); - } - - @Override - public List getInPlayModifiers(LotroGame game, PhysicalCard self) { -return Collections.singletonList(new ResistanceModifier(self, Filters.and(CardType.COMPANION, Filters.not(self)), 1)); -} -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_173.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_173.java deleted file mode 100644 index 2b63d4034..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_173.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -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.AddUntilStartOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.ExertCharactersEffect; -import com.gempukku.lotro.logic.effects.RemoveBurdenEffect; -import com.gempukku.lotro.logic.modifiers.ResistanceModifier; -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: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Possession • Hand Weapon - * Strength: +2 - * Game Text: Bearer must be Bilbo, Frodo, or Sam. Maneuver: If bearer is Bilbo or Frodo, exert him to make another - * companion resistance +2 until the regroup phase. If bearer is Sam, each time he wins a skirmish, you may remove - * a burden. - */ -public class Card11_173 extends AbstractAttachableFPPossession { - public Card11_173() { - super(1, 2, 0, Culture.SHIRE, PossessionClass.HAND_WEAPON, "Sting", "Weapon of Heritage", true); - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Filters.or(Filters.name("Bilbo"), Filters.frodo, Filters.sam); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.MANEUVER, self) - && Filters.or(Filters.name("Bilbo"), Filters.frodo).accepts(game, self.getAttachedTo()) - && PlayConditions.canExert(self, game, self.getAttachedTo())) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ExertCharactersEffect(action, self, self.getAttachedTo())); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose a companion", CardType.COMPANION, Filters.not(self.getAttachedTo())) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - action.appendEffect( - new AddUntilStartOfPhaseModifierEffect( - new ResistanceModifier(self, card, 2), Phase.REGROUP)); - } - }); - 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), Filters.sam)) { - OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendEffect( - new RemoveBurdenEffect(playerId, self, 1)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_174.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_174.java deleted file mode 100644 index 8182b1a3f..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_174.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -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.CountActiveEvaluator; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Event • Skirmish - * Game Text: Make a Hobbit strength +1 for each companion who has resistance 7 or more. - */ -public class Card11_174 extends AbstractEvent { - public Card11_174() { - super(Side.FREE_PEOPLE, 1, Culture.SHIRE, "Sworn Companion", Phase.SKIRMISH); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ChooseAndAddUntilEOPStrengthBonusEffect(action, self, playerId, new CountActiveEvaluator(CardType.COMPANION, Filters.minResistance(7)), Race.HOBBIT)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_175.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_175.java deleted file mode 100644 index ce833f38b..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_175.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.common.Side; -import com.gempukku.lotro.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.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.ForEachYouSpotEffect; -import com.gempukku.lotro.logic.modifiers.ResistanceModifier; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 0 - * Type: Event • Skirmish - * Game Text: Spot X Hobbits to make an unbound Hobbit resistance +X. - */ -public class Card11_175 extends AbstractEvent { - public Card11_175() { - super(Side.FREE_PEOPLE, 0, Culture.SHIRE, "A Task Now to Be Done", Phase.SKIRMISH); - } - - @Override - public PlayEventAction getPlayEventCardAction(final String playerId, final LotroGame game, final PhysicalCard self) { - final PlayEventAction action = new PlayEventAction(self); - action.appendEffect( - new ForEachYouSpotEffect(playerId, Race.HOBBIT) { - @Override - protected void spottedCards(final int spotCount) { - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose an unbound Hobbit", Filters.unboundCompanion, Race.HOBBIT) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard card) { - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new ResistanceModifier(self, card, spotCount))); - } - }); - } - }); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_176.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_176.java deleted file mode 100644 index da3c898ff..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/shire/Card11_176.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.gempukku.lotro.cards.set11.shire; - -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.ChooseAndHealCharactersEffect; - -/** - * Set: Shadows - * Side: Free - * Culture: Shire - * Twilight Cost: 0 - * Type: Event • Regroup - * Game Text: Heal a Hobbit for each minion you spot. - */ -public class Card11_176 extends AbstractEvent { - public Card11_176() { - super(Side.FREE_PEOPLE, 0, Culture.SHIRE, "Unharmed", Phase.REGROUP); - } - - @Override - public PlayEventAction getPlayEventCardAction(String playerId, LotroGame game, PhysicalCard self) { - PlayEventAction action = new PlayEventAction(self); - int count = Filters.countActive(game, CardType.MINION); - for (int i = 0; i < count; i++) - action.appendEffect( - new ChooseAndHealCharactersEffect(action, playerId, 0, 1, Race.HOBBIT)); - return action; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set11-Shire.hjson b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Shire.hjson similarity index 70% rename from gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set11-Shire.hjson rename to gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Shire.hjson index 463f0d143..3feabfc96 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/card-stubs/set11-Shire.hjson +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/cards/official/set11/set11-Shire.hjson @@ -22,13 +22,16 @@ twilight: 0 type: Event keywords: Skirmish - effects: { type: event - cost: { - }, effect: [ { + type: modifyStrength + filter: choose(hobbit) + amount: { + type: forEachYouCanSpot + filter: or(dwelling,forest),zone(adventure path) + } } ] } @@ -68,13 +71,20 @@ Stealth Skirmish ] - effects: { type: event - cost: { - }, effect: [ + { + type: memorizeNumber + memory: hobbitResistance + amount: { + type: forEachResistance + filter: hobbit,inSkirmish + } + } { + type: cancelSkirmish + filter: hobbit,inSkirmishAgainst(minion,strengthLessThan(memory(hobbitResistance))) } ] } @@ -116,6 +126,18 @@ vitality: 3 resistance: 8 effects: [ + { + type: modifier + modifier: { + type: modifyStrength + requires: { + type: location + filter: or(dwelling,forest) + } + filter: self + amount: 4 + } + } ] gametext: While Farmer Maggot is at a dwelling or forest site, he is strength +4. lore: I didn't like the looks of him; and when Grip came out, he took one sniff and let out a yelp as if he had been stung....' @@ -155,11 +177,27 @@ vitality: 4 resistance: 10 keywords: [ - Ring-bearer - Ring-bound - CAN_START_WITH_RING + Ring-Bound + Can Start With Ring ] effects: [ + { + type: trigger + optional: true + trigger: { + type: startOfPhase + phase: regroup + } + cost: { + type: exert + filter: self + } + effect: { + type: addKeyword + filter: self + keyword: muster + } + } ] gametext: Ring-bearer. Ring-bound.
At the start of the regroup phase, you may exert Frodo to make him gain muster until the end of the regroup phase. (At the start of the regroup phase, you may discard a card from hand to draw a card.) lore: I will take the Ring... though I do not know the way.' @@ -193,9 +231,20 @@ culture: Shire twilight: 4 type: Condition - #target: a Hobbit + target: hobbit,not(hasAttached(title(Habits of Home))) keywords: Toil 2 effects: [ + { + type: trigger + trigger: { + type: movesFrom + filter: or(dwelling,forest) + } + effect: { + type: removeTwilight + amount: 1 + } + } ] gametext: Toil 2. (For each [shire] character you exert when playing this, its twilight cost is -2.)
Bearer must be a Hobbit. Limit 1 per bearer.
Each time the fellowship moves from a dwelling or forest site, remove (1). lore: What about second breakfast?' @@ -231,9 +280,7 @@ type: Possession strength: 2 itemclass: Hand weapon - #target: a Hobbit - effects: [ - ] + target: hobbit gametext: Bearer must be a Hobbit. lore: Strap these on....' promotext: "" @@ -270,13 +317,29 @@ Stealth Skirmish ] - effects: { type: event cost: { - }, + type: exert + filter: choose(hobbit) + count: 2 + } effect: [ { + type: if + condition: { + type: location + filter: dwelling + } + true: { + type: cancelSkirmish + filter: hobbit + } + false: { + type: modifyStrength + filter: choose(hobbit) + amount: 3 + } } ] } @@ -318,6 +381,18 @@ vitality: 4 resistance: 9 effects: [ + { + type: modifier + modifier: { + type: modifyStrength + filter: self + amount: { + type: forEachYouCanSpot + filter: other,unbound,companion,assignedToSkirmish(any) + multiplier: 2 + } + } + } ] gametext: For each other unbound companion assigned to a skirmish, Merry is strength +2. lore: We can't leave Frodo! Pippin and I always intended to go wherever he went, and we still do.' @@ -355,13 +430,17 @@ Toil 2 Fellowship ] - effects: { type: event - cost: { - }, + requires: { + type: canSpot + filter: culture(shire),companion + count: 2 + } effect: [ { + type: removeBurdens + amount: 2 } ] } @@ -403,6 +482,25 @@ vitality: 4 resistance: 9 effects: [ + { + type: activated + phase: skirmish + requires: [ + { + type: canSpot + filter: self,notAssignedToSkirmish + } + { + type: canSpot + filter: unbound,companion,resistanceLessThanFilter(self) + } + ] + effect: { + type: replaceInSkirmish + filter: unbound,companion,resistanceLessThanFilter(self) + with: self + } + } ] gametext: Skirmish: If Pippin is not assigned to a skirmish, spot an unbound companion who has less resistance than Pippin to have Pippin replace him or her in a skirmish. lore: Merry and he had drawn their swords, but the Orcs did not wish to fight.... @@ -438,8 +536,43 @@ type: Possession resistance: 2 itemclass: Box - #target: a Hobbit + target: hobbit effects: [ + { + type: activated + phase: fellowship + cost: { + type: discard + filter: self + } + effect: { + type: removeBurdens + } + } + { + type: activated + phase: skirmish + requires: { + type: canSpot + filter: bearer,unbound,hobbit + } + cost: [ + { + type: memorizeActive + memory: bearer + filter: bearer + } + { + type: discard + filter: self + } + ] + effect: { + type: alterOverwhelmMultiplier + filter: memory(bearer) + multiplier: 3 + } + } ] gametext: Bearer must be a Hobbit.
Fellowship: Discard this possession to remove a burden.
Skirmish: If bearer is an unbound Hobbit, discard this possession to prevent him or her from being overwhelmed unless his or her strength is tripled. lore: "" @@ -480,6 +613,14 @@ resistance: 10 keywords: Ring-bound effects: [ + { + type: modifier + modifier: { + type: modifyResistance + filter: other,companion + amount: 1 + } + } ] gametext: Ring-bound.
Each other companion is resistance +1. lore: I'm coming too, or neither of us is going. I'll knock holes in all the boats first.' @@ -516,8 +657,37 @@ type: Possession strength: 2 itemclass: Hand weapon - #target: title(Bilbo, Frodo, or Sam) + target: or(title(Bilbo),title(Frodo),title(Sam)) effects: [ + { + type: activated + phase: maneuver + requires: { + type: canSpot + filter: bearer,or(title(Bilbo),title(Frodo)) + } + cost: { + type: exert + filter: bearer + } + effect: { + type: modifyResistance + filter: choose(not(bearer),companion) + amount: 2 + until: regroup + } + } + { + type: trigger + optional: true + trigger: { + type: winsSkirmish + filter: bearer,title(Sam) + } + effect: { + type: removeBurdens + } + } ] gametext: Bearer must be Bilbo, Frodo, or Sam.
Maneuver: If bearer is Bilbo or Frodo, exert him to make another companion resistance +2 until the regroup phase. If bearer is Sam, each time he wins a skirmish, you may remove a burden. lore: This blade has dealt many wounds, by many hands. @@ -552,13 +722,16 @@ twilight: 1 type: Event keywords: Skirmish - effects: { type: event - cost: { - }, effect: [ { + type: modifyStrength + filter: choose(hobbit) + amount: { + type: forEachYouCanSpot + filter: companion,minResistance(7) + } } ] } @@ -595,13 +768,18 @@ twilight: 0 type: Event keywords: Skirmish - effects: { type: event - cost: { - }, effect: [ { + type: chooseHowManyToSpot + filter: hobbit + memorize: spotCount + } + { + type: modifyResistance + filter: choose(unbound,hobbit) + amount: memory(spotCount) } ] } @@ -638,13 +816,20 @@ twilight: 0 type: Event keywords: Regroup - effects: { type: event - cost: { - }, effect: [ { + type: repeat + times: { + type: forEachYouCanSpot + filter: minion + } + effect: { + type: heal + filter: choose(hobbit) + count: 0-1 + } } ] } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java index 19e4c0265..43efe1dba 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/BuiltLotroCardBlueprint.java @@ -1053,7 +1053,7 @@ public class BuiltLotroCardBlueprint implements LotroCardBlueprint { } private static Set frodosWithNon10Resistance = Sets.newHashSet("Resolute Hobbit"); - private static Set samsWithNon5Resistance = Sets.newHashSet("Loyal Friend", "Dropper of Eaves", "Humble Halfling"); + private static Set samsWithNon5Resistance = Sets.newHashSet("Loyal Friend", "Dropper of Eaves", "Humble Halfling", "Steadfast Friend"); public void validateConsistency() throws InvalidCardDefinitionException { if (title == null) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java index 8c0c209b8..8ec60dd1f 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/filter/FilterFactory.java @@ -430,6 +430,21 @@ public class FilterFactory { return (actionContext) -> Filters.regionNumberBetweenInclusive(min, max); }); + parameterFilters.put("resistancelessthanfilter", + (parameter, environment) -> { + FilterableSource filter = environment.getFilterFactory().createFilter(parameter, environment); + + return (actionContext) -> { + Filterable filterable = filter.getFilterable(actionContext); + return new Filter() { + @Override + public boolean accepts(LotroGame game, PhysicalCard physicalCard) { + int resistance = game.getModifiersQuerying().getResistance(game, physicalCard); + return Filters.countActive(game, filterable, Filters.maxResistance(resistance - 1)) > 0; + } + }; + }; + }); parameterFilters.put("resistancelessthan", (parameter, environment) -> { final ValueSource valueSource = ValueResolver.resolveEvaluator(parameter, environment);