From 7fa1dca60180d2c91d538be128d27fdd7a242740 Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Thu, 26 Mar 2020 11:57:19 -0700 Subject: [PATCH] "Realm of Dwarrowdelf" and other cards that add variable amount of keywords now do it correctly. --- .../build/field/effect/appender/AddKeyword.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddKeyword.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddKeyword.java index 7e10d040a..872a02c99 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddKeyword.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/AddKeyword.java @@ -21,6 +21,8 @@ import com.gempukku.lotro.logic.timing.Effect; import org.json.simple.JSONObject; import java.util.Collection; +import java.util.LinkedList; +import java.util.List; import java.util.function.Function; public class AddKeyword implements EffectAppenderProducer { @@ -58,11 +60,15 @@ public class AddKeyword implements EffectAppenderProducer { result.addEffectAppender( new DelayedAppender() { @Override - protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) { + protected List createEffects(boolean cost, CostToEffectAction action, ActionContext actionContext) { + List result = new LinkedList<>(); final Collection cardsFromMemory = actionContext.getCardsFromMemory(memory); - final int keywordCount = amount.getEvaluator(actionContext).evaluateExpression(actionContext.getGame(), null); - return new AddUntilModifierEffect( - new KeywordModifier(actionContext.getSource(), Filters.in(cardsFromMemory), keywordFunction.apply(actionContext), keywordCount), until); + for (PhysicalCard physicalCard : cardsFromMemory) { + final int keywordCount = amount.getEvaluator(actionContext).evaluateExpression(actionContext.getGame(), physicalCard); + result.add(new AddUntilModifierEffect( + new KeywordModifier(actionContext.getSource(), physicalCard, keywordFunction.apply(actionContext), keywordCount), until)); + } + return result; } });