From 99ca25841c23e6d9b6015f8d774a360aabadb7f6 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Thu, 26 Mar 2020 08:28:52 -0700 Subject: [PATCH] "Sting" should now correctly apply phase limit --- .../src/main/web/cards/set1/set1-shire.json | 12 ++++++++---- .../effect/appender/resolver/ValueResolver.java | 7 +++++++ 2 files changed, 15 insertions(+), 4 deletions(-) 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 c9e327613..b62a20271 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 @@ -791,10 +791,14 @@ { "type": "removeTwilight", "amount": { - "type": "forEachMatchingInMemory", - "memory": "revealedCards", - "filter": "orc", - "limit": 4 + "type": "cardPhaseLimit", + "limit": 4, + "amount": { + "type": "forEachMatchingInMemory", + "memory": "revealedCards", + "filter": "orc", + "limit": 4 + } } } ] diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/ValueResolver.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/ValueResolver.java index 196b18e9d..51463c02d 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/ValueResolver.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/resolver/ValueResolver.java @@ -172,6 +172,13 @@ public class ValueResolver { final int limit = FieldUtils.getInteger(object.get("value"), "value"); ValueSource valueSource = resolveEvaluator(object.get("amount"), 0, environment); return (actionContext) -> new LimitEvaluator(valueSource.getEvaluator(actionContext), limit); + } else if (type.equalsIgnoreCase("cardphaselimit")) { + FieldUtils.validateAllowedFields(object, "limit", "amount"); + final int limit = FieldUtils.getInteger(object.get("limit"), "limit"); + ValueSource valueSource = resolveEvaluator(object.get("amount"), 0, environment); + return (actionContext) -> new CardPhaseLimitEvaluator(actionContext.getGame(), actionContext.getSource(), + actionContext.getGame().getGameState().getCurrentPhase(), limit, + valueSource.getEvaluator(actionContext)); } else if (type.equalsIgnoreCase("countStacked")) { FieldUtils.validateAllowedFields(object, "on", "filter"); final String on = FieldUtils.getString(object.get("on"), "on");