From 12f0f5315a4bad11e0441b5bed2ee1ebf5abc271 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Fri, 30 Aug 2019 14:33:08 -0700 Subject: [PATCH] LosesSkirmish memorizing losing character --- .../build/field/effect/trigger/LosesSkirmish.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/LosesSkirmish.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/LosesSkirmish.java index f2388eca6..1eaf9b26d 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/LosesSkirmish.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/trigger/LosesSkirmish.java @@ -10,15 +10,17 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.TriggerConditions; +import com.gempukku.lotro.logic.timing.results.CharacterLostSkirmishResult; import org.json.simple.JSONObject; public class LosesSkirmish implements TriggerCheckerProducer { @Override public TriggerChecker getTriggerChecker(JSONObject value, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(value, "filter", "against"); + FieldUtils.validateAllowedFields(value, "filter", "against", "memorize"); String loser = FieldUtils.getString(value.get("filter"), "filter", "any"); String against = FieldUtils.getString(value.get("against"), "against", "any"); + String memorize = FieldUtils.getString(value.get("memorize"), "memorize"); final FilterableSource loserFilter = environment.getFilterFactory().generateFilter(loser); final FilterableSource againstFilter = environment.getFilterFactory().generateFilter(against); @@ -26,9 +28,15 @@ public class LosesSkirmish implements TriggerCheckerProducer { return new TriggerChecker() { @Override public boolean accepts(ActionContext actionContext, String playerId, LotroGame game, PhysicalCard self, EffectResult effectResult, Effect effect) { - return TriggerConditions.losesSkirmishInvolving(game, effectResult, + final boolean result = TriggerConditions.losesSkirmishInvolving(game, effectResult, loserFilter.getFilterable(actionContext, playerId, game, self, effectResult, effect), againstFilter.getFilterable(actionContext, playerId, game, self, effectResult, effect)); + if (result && memorize != null) { + CharacterLostSkirmishResult lostResult = (CharacterLostSkirmishResult) effectResult; + + actionContext.setCardMemory(memorize, lostResult.getLoser()); + } + return result; } @Override