From 2ff82525c080c9c690705454cf59931b171242b9 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Fri, 4 Oct 2019 01:49:52 -0700 Subject: [PATCH] Some FotR cards in new system --- .../src/main/web/cards/set1/set1-shire.json | 144 ++++++++++++++++++ .../lotro/cards/set1/shire/Card1_284.java | 55 ------- .../lotro/cards/set1/shire/Card1_285.java | 71 --------- .../lotro/cards/set1/shire/Card1_286.java | 58 ------- .../lotro/cards/set1/shire/Card1_287.java | 44 ------ .../lotro/cards/set1/shire/Card1_288.java | 48 ------ .../lotro/cards/set1/shire/Card1_289.java | 43 ------ .../field/effect/EffectAppenderFactory.java | 1 + .../field/effect/trigger/AboutToHeal.java | 34 +++++ .../effect/trigger/TriggerCheckerFactory.java | 1 + 10 files changed, 180 insertions(+), 319 deletions(-) delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_284.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_285.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_286.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_287.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java delete mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_289.java create mode 100644 gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AboutToHeal.java diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-shire.json b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-shire.json index 9642e4aa0..9a7be935a 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-shire.json +++ b/gemp-lotr/gemp-lotr-async/src/main/web/cards/set1/set1-shire.json @@ -1,4 +1,148 @@ { + "1_284": { + "title": "*Bilbo", + "subtitle": "Retired Adventurer", + "culture": "shire", + "cost": 2, + "type": "ally", + "allyHome": "fellowship,3", + "race": "hobbit", + "strength": 2, + "vitality": 3, + "effects": { + "type": "activated", + "phase": "fellowship", + "cost": { + "type": "exert", + "filter": "self" + }, + "effect": { + "type": "shuffleCardsFromDiscardIntoDrawDeck", + "filter": "choose(culture(shire))" + } + } + }, + "1_285": { + "title": "*Bilbo's Pipe", + "culture": "shire", + "cost": 1, + "type": "possession", + "possession": "pipe", + "target": "hobbit", + "effects": { + "type": "activated", + "phase": "fellowship", + "cost": [ + { + "type": "discard", + "filter": "choose(pipeweed,possession)" + }, + { + "type": "chooseHowManyToSpot", + "filter": "pipe", + "memorize": "numberOfPipes" + } + ], + "effect": { + "type": "shuffleCardsFromDiscardIntoDrawDeck", + "count": { + "type": "fromMemory", + "memory": "numberOfPipes" + }, + "filter": "choose(tale)" + } + } + }, + "1_286": { + "title": "Bounder", + "culture": "shire", + "cost": 1, + "type": "ally", + "allyHome": "fellowship,2", + "race": "hobbit", + "strength": 2, + "vitality": 2, + "effects": { + "type": "activated", + "phase": "skirmish", + "cost": { + "type": "exert", + "filter": "self" + }, + "effect": { + "type": "cantBeOverwhelmedMultiplier", + "filter": "choose(hobbit)" + } + } + }, + "1_287": { + "title": "Extraordinary Resilience", + "culture": "shire", + "cost": 0, + "type": "event", + "keyword": "response", + "effects": { + "type": "responseEvent", + "trigger": { + "type": "aboutToHeal", + "filter": "ring bearer" + }, + "cost": { + "type": "preventHeal", + "filter": "choose(ring bearer)" + }, + "effect": { + "type": "removeBurdens" + } + } + }, + "1_288": { + "title": "*Farmer Maggot", + "subtitle": "Chaser of Rascals", + "culture": "shire", + "cost": 1, + "type": "ally", + "allyHome": "fellowship,1", + "race": "hobbit", + "strength": 2, + "vitality": 3, + "effects": { + "type": "activated", + "phase": "fellowship", + "cost": { + "type": "exert", + "filter": "self" + }, + "effect": { + "type": "heal", + "filter": "choose(or(name(Merry),name(Pippin)))" + } + } + }, + "1_289": { + "title": "*Frodo", + "subtitle": "Old Bilbo's Heir", + "culture": "shire", + "cost": 0, + "type": "companion", + "race": "hobbit", + "strength": 3, + "vitality": 4, + "resistance": 10, + "signet": "gandalf", + "keyword": "can start with ring", + "effects": { + "type": "trigger", + "optional": true, + "trigger": { + "type": "startOfTurn" + }, + "effect": { + "type": "heal", + "filter": "choose(hobbit,ally)" + } + } + }, "1_297": { "title": "Hobbit Party Guest", "culture": "shire", diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_284.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_284.java deleted file mode 100644 index dc0212997..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_284.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gempukku.lotro.cards.set1.shire; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.common.SitesBlock; -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.AbstractAlly; -import com.gempukku.lotro.logic.effects.ChooseArbitraryCardsEffect; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.effects.ShuffleCardsFromDiscardIntoDeckEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -/** - * Set: The Fellowship of the Ring - * Side: Free - * Culture: Shire - * Twilight Cost: 2 - * Type: Ally • Home 3 • Hobbit - * Strength: 2 - * Vitality: 3 - * Site: 3 - * Game Text: Fellowship: Exert Bilbo to shuffle a [SHIRE] card from your discard pile into your draw deck. - */ -public class Card1_284 extends AbstractAlly { - public Card1_284() { - super(2, SitesBlock.FELLOWSHIP, 3, 2, 3, Race.HOBBIT, Culture.SHIRE, "Bilbo", "Retired Adventurer", true); - } - - @Override - public List getPhaseActionsInPlay(final String playerId, final LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self) - && PlayConditions.canExert(self, game, self)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost(new SelfExertEffect(action, self)); - action.appendEffect( - new ChooseArbitraryCardsEffect(playerId, "Choose SHIRE card", game.getGameState().getDiscard(playerId), Culture.SHIRE, 1, 1) { - @Override - protected void cardsSelected(LotroGame game, Collection selectedCards) { - action.insertEffect( - new ShuffleCardsFromDiscardIntoDeckEffect(self, playerId, selectedCards)); - } - } - ); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_285.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_285.java deleted file mode 100644 index 194bb9bbe..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_285.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gempukku.lotro.cards.set1.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.decisions.DecisionResultInvalidException; -import com.gempukku.lotro.logic.decisions.ForEachYouSpotDecision; -import com.gempukku.lotro.logic.effects.ChooseArbitraryCardsEffect; -import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; -import com.gempukku.lotro.logic.effects.ShuffleCardsFromDiscardIntoDeckEffect; -import com.gempukku.lotro.logic.effects.choose.ChooseAndDiscardCardsFromPlayEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -/** - * Set: The Fellowship of the Ring - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Possession • Pipe - * Game Text: Bearer must be a Hobbit. Fellowship: Discard a pipeweed possession and spot X pipes to shuffle X tales - * from your discard pile into your draw deck. - */ -public class Card1_285 extends AbstractAttachableFPPossession { - public Card1_285() { - super(1, 0, 0, Culture.SHIRE, PossessionClass.PIPE, "Bilbo's Pipe", null, true); - } - - @Override - public Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { - return Race.HOBBIT; - } - - @Override - public List getPhaseActionsInPlay(final String playerId, final LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self) - && Filters.canSpot(game, Keyword.PIPEWEED, CardType.POSSESSION)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new ChooseAndDiscardCardsFromPlayEffect(action, playerId, 1, 1, Keyword.PIPEWEED, CardType.POSSESSION)); - action.appendEffect( - new PlayoutDecisionEffect(playerId, - new ForEachYouSpotDecision(1, "Choose number of pipes you wish to spot", game, PossessionClass.PIPE) { - @Override - public void decisionMade(String result) throws DecisionResultInvalidException { - int spotCount = getValidatedResult(result); - Collection talesInDiscard = Filters.filter(game.getGameState().getDiscard(playerId), game, Keyword.TALE); - - int shufflableTales = Math.min(spotCount, talesInDiscard.size()); - action.appendEffect( - new ChooseArbitraryCardsEffect(playerId, "Choose tales", new LinkedList(talesInDiscard), shufflableTales, shufflableTales) { - @Override - protected void cardsSelected(LotroGame game, Collection selectedCards) { - action.insertEffect( - new ShuffleCardsFromDiscardIntoDeckEffect(self, playerId, selectedCards)); - } - }); - } - })); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_286.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_286.java deleted file mode 100644 index 55a6131c5..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_286.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.gempukku.lotro.cards.set1.shire; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.common.SitesBlock; -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.AbstractAlly; -import com.gempukku.lotro.logic.effects.AddUntilEndOfPhaseModifierEffect; -import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.modifiers.OverwhelmedByMultiplierModifier; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: The Fellowship of the Ring - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Ally • Home 2 • Hobbit - * Strength: 2 - * Vitality: 2 - * Site: 2 - * Game Text: Skirmish: Exert this ally to prevent a Hobbit from being overwhelmed unless that Hobbit's strength is - * tripled. - */ -public class Card1_286 extends AbstractAlly { - public Card1_286() { - super(1, SitesBlock.FELLOWSHIP, 2, 2, 2, Race.HOBBIT, Culture.SHIRE, "Bounder"); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, final PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.SKIRMISH, self) - && PlayConditions.canExert(self, game, self)) { - final ActivateCardAction action = new ActivateCardAction(self); - action.appendCost(new SelfExertEffect(action, self)); - action.appendEffect( - new ChooseActiveCardEffect(self, playerId, "Choose a Hobbit", Race.HOBBIT) { - @Override - protected void cardSelected(LotroGame game, PhysicalCard hobbit) { - action.appendEffect( - new AddUntilEndOfPhaseModifierEffect( - new OverwhelmedByMultiplierModifier(self, Filters.sameCard(hobbit), 3))); - } - } - ); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_287.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_287.java deleted file mode 100644 index 0a66a87af..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_287.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gempukku.lotro.cards.set1.shire; - -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.PlayEventAction; -import com.gempukku.lotro.logic.cardtype.AbstractResponseEvent; -import com.gempukku.lotro.logic.effects.PreventCardEffect; -import com.gempukku.lotro.logic.effects.PreventableCardEffect; -import com.gempukku.lotro.logic.effects.RemoveBurdenEffect; -import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.TriggerConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: The Fellowship of the Ring - * Side: Free - * Culture: Shire - * Twilight Cost: 0 - * Type: Event - * Game Text: Response: If the Ring-bearer is about to heal, remove a burden instead. - */ -public class Card1_287 extends AbstractResponseEvent { - public Card1_287() { - super(Side.FREE_PEOPLE, 0, Culture.SHIRE, "Extraordinary Resilience"); - } - - @Override - public List getPlayResponseEventBeforeActions(String playerId, LotroGame game, Effect effect, final PhysicalCard self) { - if (TriggerConditions.isGettingHealed(effect, game, Filters.ringBearer)) { - final PlayEventAction action = new PlayEventAction(self); - action.appendCost( - new PreventCardEffect((PreventableCardEffect) effect, Filters.findFirstActive(game, Filters.ringBearer))); - action.appendEffect( - new RemoveBurdenEffect(playerId, self)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java deleted file mode 100644 index 734653220..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_288.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.gempukku.lotro.cards.set1.shire; - -import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.common.SitesBlock; -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.AbstractAlly; -import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect; -import com.gempukku.lotro.logic.effects.SelfExertEffect; -import com.gempukku.lotro.logic.timing.PlayConditions; - -import java.util.Collections; -import java.util.List; - -/** - * Set: The Fellowship of the Ring - * Side: Free - * Culture: Shire - * Twilight Cost: 1 - * Type: Ally • Home 1 • Hobbit - * Strength: 2 - * Vitality: 3 - * Site: 1 - * Game Text: Fellowship: Exert Farmer Maggot to heal Merry or Pippin. - */ -public class Card1_288 extends AbstractAlly { - public Card1_288() { - super(1, SitesBlock.FELLOWSHIP, 1, 2, 3, Race.HOBBIT, Culture.SHIRE, "Farmer Maggot", "Chaser of Rascals", true); - } - - @Override - public List getPhaseActionsInPlay(String playerId, LotroGame game, PhysicalCard self) { - if (PlayConditions.canUseFPCardDuringPhase(game, Phase.FELLOWSHIP, self) - && PlayConditions.canExert(self, game, self)) { - ActivateCardAction action = new ActivateCardAction(self); - action.appendCost( - new SelfExertEffect(action, self)); - action.appendEffect( - new ChooseAndHealCharactersEffect(action, playerId, Filters.or(Filters.name("Merry"), Filters.name("Pippin")))); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_289.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_289.java deleted file mode 100644 index 0ecce0207..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/shire/Card1_289.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gempukku.lotro.cards.set1.shire; - -import com.gempukku.lotro.logic.cardtype.AbstractCompanion; -import com.gempukku.lotro.logic.timing.TriggerConditions; -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.effects.ChooseAndHealCharactersEffect; -import com.gempukku.lotro.logic.timing.EffectResult; - -import java.util.Collections; -import java.util.List; - -/** - * Set: The Fellowship of the Ring - * Side: Free - * Culture: Shire - * Twilight Cost: 0 - * Type: Companion • Hobbit - * Strength: 3 - * Vitality: 4 - * Resistance: 10 - * Signet: Gandalf - * Game Text: Ring-bearer (resistance 10). At the start of each of your turns, you may heal a Hobbit ally. - */ -public class Card1_289 extends AbstractCompanion { - public Card1_289() { - super(0, 3, 4, 10, Culture.SHIRE, Race.HOBBIT, Signet.GANDALF, "Frodo", "Old Bilbo's Heir", true); - addKeyword(Keyword.CAN_START_WITH_RING); - } - - @Override - public List getOptionalAfterTriggers(final String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (TriggerConditions.startOfTurn(game, effectResult)) { - final OptionalTriggerAction action = new OptionalTriggerAction(self); - action.appendEffect( - new ChooseAndHealCharactersEffect(action, playerId, CardType.ALLY, Race.HOBBIT)); - return Collections.singletonList(action); - } - return null; - } -} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java index 9bc662fa1..c05910f14 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/EffectAppenderFactory.java @@ -17,6 +17,7 @@ public class EffectAppenderFactory { effectAppenderProducers.put("discard", new DiscardFromPlay()); effectAppenderProducers.put("removefromthegame", new RemoveFromTheGame()); effectAppenderProducers.put("preventdiscard", new PreventCardEffectAppender()); + effectAppenderProducers.put("preventheal", new PreventCardEffectAppender()); effectAppenderProducers.put("exert", new Exert()); effectAppenderProducers.put("exhaust", new Exhaust()); effectAppenderProducers.put("modifystrength", new ModifyStrength()); diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AboutToHeal.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AboutToHeal.java new file mode 100644 index 000000000..9fc8cd9e6 --- /dev/null +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/AboutToHeal.java @@ -0,0 +1,34 @@ +package com.gempukku.lotro.cards.build.field.effect.trigger; + +import com.gempukku.lotro.cards.build.ActionContext; +import com.gempukku.lotro.cards.build.CardGenerationEnvironment; +import com.gempukku.lotro.cards.build.FilterableSource; +import com.gempukku.lotro.cards.build.InvalidCardDefinitionException; +import com.gempukku.lotro.cards.build.field.FieldUtils; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.logic.timing.TriggerConditions; +import org.json.simple.JSONObject; + +public class AboutToHeal implements TriggerCheckerProducer { + @Override + public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { + FieldUtils.validateAllowedFields(value, "filter"); + + String filter = FieldUtils.getString(value.get("filter"), "filter"); + + final FilterableSource affectedFilter = environment.getFilterFactory().generateFilter(filter, environment); + + return new TriggerChecker() { + @Override + public boolean accepts(ActionContext actionContext) { + final Filterable affected = affectedFilter.getFilterable(actionContext); + return TriggerConditions.isGettingHealed(actionContext.getEffect(), actionContext.getGame(), affected); + } + + @Override + public boolean isBefore() { + return true; + } + }; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/TriggerCheckerFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/TriggerCheckerFactory.java index c9abdbfd4..1d0dd5f48 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/TriggerCheckerFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/TriggerCheckerFactory.java @@ -15,6 +15,7 @@ public class TriggerCheckerFactory { triggerCheckers.put("played", new PlayedTriggerCheckerProducer()); triggerCheckers.put("playedfromstacked", new PlayedFromStacked()); triggerCheckers.put("abouttodiscard", new AboutToDiscardFromPlay()); + triggerCheckers.put("abouttoheal", new AboutToHeal()); triggerCheckers.put("losesskirmish", new LosesSkirmish()); triggerCheckers.put("winsskirmish", new WinsSkirmish()); triggerCheckers.put("cancelledskirmish", new CancelledSkirmish());