diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifyMoveLimit.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifyMoveLimit.java index 2e1e25241..9cab4898f 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifyMoveLimit.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/cards/build/field/effect/modifier/ModifyMoveLimit.java @@ -1,9 +1,6 @@ package com.gempukku.lotro.cards.build.field.effect.modifier; -import com.gempukku.lotro.cards.build.CardGenerationEnvironment; -import com.gempukku.lotro.cards.build.InvalidCardDefinitionException; -import com.gempukku.lotro.cards.build.ModifierSource; -import com.gempukku.lotro.cards.build.ValueSource; +import com.gempukku.lotro.cards.build.*; import com.gempukku.lotro.cards.build.field.FieldUtils; import com.gempukku.lotro.cards.build.field.effect.appender.resolver.ValueResolver; import com.gempukku.lotro.logic.modifiers.MoveLimitModifier; @@ -13,13 +10,18 @@ import org.json.simple.JSONObject; public class ModifyMoveLimit implements ModifierSourceProducer { @Override public ModifierSource getModifierSource(JSONObject object, CardGenerationEnvironment environment) throws InvalidCardDefinitionException { - FieldUtils.validateAllowedFields(object, "amount"); + FieldUtils.validateAllowedFields(object, "requires", "amount"); + final JSONObject[] requiresArray = FieldUtils.getObjectArray(object.get("requires"), "requires"); final ValueSource valueSource = ValueResolver.resolveEvaluator(object.get("amount"), environment); + final Requirement[] requirements = environment.getRequirementFactory().getRequirements(requiresArray, environment); + return (actionContext) -> { final Evaluator evaluator = valueSource.getEvaluator(actionContext); - return new MoveLimitModifier(actionContext.getSource(), evaluator.evaluateExpression(actionContext.getGame(), null)); + return new MoveLimitModifier(actionContext.getSource(), + evaluator.evaluateExpression(actionContext.getGame(), null), + RequirementCondition.createCondition(requirements, actionContext)); }; } } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/MoveLimitModifier.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/MoveLimitModifier.java index d422db8b5..e54e57ee2 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/MoveLimitModifier.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/MoveLimitModifier.java @@ -9,7 +9,11 @@ public class MoveLimitModifier extends AbstractModifier { private final Evaluator _moveLimitModifier; public MoveLimitModifier(PhysicalCard source, int moveLimitModifier) { - super(source, null, null, null, ModifierEffect.MOVE_LIMIT_MODIFIER); + this(source, moveLimitModifier, null); + } + + public MoveLimitModifier(PhysicalCard source, int moveLimitModifier, Condition condition) { + super(source, null, null, condition, ModifierEffect.MOVE_LIMIT_MODIFIER); _moveLimitModifier = new ConstantEvaluator(moveLimitModifier); }