diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseYesOrNo.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseYesOrNo.java index 8bc92c766..c5b3d8878 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseYesOrNo.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/appender/ChooseYesOrNo.java @@ -6,6 +6,7 @@ import com.gempukku.lotro.cards.build.InvalidCardDefinitionException; import com.gempukku.lotro.cards.build.field.FieldUtils; import com.gempukku.lotro.cards.build.field.effect.EffectAppender; import com.gempukku.lotro.cards.build.field.effect.EffectAppenderProducer; +import com.gempukku.lotro.cards.build.field.effect.appender.resolver.PlayerResolver; import com.gempukku.lotro.logic.actions.CostToEffectAction; import com.gempukku.lotro.logic.decisions.YesNoDecision; import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; @@ -15,7 +16,7 @@ import org.json.simple.JSONObject; public class ChooseYesOrNo implements EffectAppenderProducer { @Override public EffectAppender createEffectAppender(JSONObject effectObject, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(effectObject, "text", "memorize", "yes", "no"); + FieldUtils.validateAllowedFields(effectObject, "text", "player", "memorize", "yes", "no"); final String text = FieldUtils.getString(effectObject.get("text"), "text"); if (text == null) @@ -23,11 +24,12 @@ public class ChooseYesOrNo implements EffectAppenderProducer { final String memorize = FieldUtils.getString(effectObject.get("memorize"), "memorize"); final String yesAnswer = FieldUtils.getString(effectObject.get("yes"), "yes"); final String noAnswer = FieldUtils.getString(effectObject.get("no"), "no"); + String player = FieldUtils.getString(effectObject.get("player"), "player", "you"); return new DelayedAppender() { @Override protected Effect createEffect(boolean cost, CostToEffectAction action, ActionContext actionContext) { - return new PlayoutDecisionEffect(actionContext.getPerformingPlayer(), + return new PlayoutDecisionEffect(player, new YesNoDecision(text) { @Override protected void yes() { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/requirement/MemoryIs.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/requirement/MemoryIs.java new file mode 100644 index 000000000..a89922f91 --- /dev/null +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/requirement/MemoryIs.java @@ -0,0 +1,28 @@ +package com.gempukku.lotro.cards.build.field.effect.requirement; + +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.Requirement; +import com.gempukku.lotro.cards.build.field.FieldUtils; +import com.gempukku.lotro.common.Filterable; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import org.json.simple.JSONObject; + +import java.util.Collection; + +public class MemoryIs implements RequirementProducer { + @Override + public Requirement getPlayRequirement(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { + FieldUtils.validateAllowedFields(object, "memory", "value"); + + final String memory = FieldUtils.getString(object.get("memory"), "memory"); + final String value = FieldUtils.getString(object.get("value"), "value"); + + return (actionContext) -> { + String valueFromMemory = actionContext.getValueFromMemory(memory); + return valueFromMemory != null && valueFromMemory.equals(value); + }; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/requirement/RequirementFactory.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/requirement/RequirementFactory.java index e8dbdf21d..5dfa64e50 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/requirement/RequirementFactory.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/requirement/RequirementFactory.java @@ -28,6 +28,7 @@ public class RequirementFactory { requirementProducers.put("phase", new PhaseRequirement()); requirementProducers.put("ringisactive", new RingIsActive()); requirementProducers.put("memorymatches", new MemoryMatches()); + requirementProducers.put("memoryis", new MemoryIs()); requirementProducers.put("cantspotfpcultures", new CantSpotFPCultures()); requirementProducers.put("haveinitiative", new HaveInitiative()); requirementProducers.put("fierceskirmish", new FierceSkirmish());