diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CardTurnLimitEvaluator.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CardTurnLimitEvaluator.java deleted file mode 100644 index b7e5955b4..000000000 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/evaluator/CardTurnLimitEvaluator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.gempukku.lotro.cards.modifiers.evaluator; - -import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.GameState; -import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.modifiers.LimitCounter; -import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; -import com.gempukku.lotro.logic.modifiers.evaluator.Evaluator; - -public class CardTurnLimitEvaluator implements Evaluator { - private Integer _evaluated; - - private Evaluator _evaluator; - - private LotroGame _game; - private PhysicalCard _source; - private int _limit; - - public CardTurnLimitEvaluator(LotroGame game, PhysicalCard source, int limit, Evaluator evaluator) { - _game = game; - _source = source; - _limit = limit; - _evaluator = evaluator; - } - - private int evaluateOnce(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) { - LimitCounter limitCounter = modifiersQuerying.getUntilEndOfTurnLimitCounter(_source); - int internalResult = _evaluator.evaluateExpression(gameState, modifiersQuerying, cardAffected); - return limitCounter.incrementToLimit(_limit, internalResult); - } - - @Override - public int evaluateExpression(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard cardAffected) { - if (_evaluated == null) - _evaluated = evaluateOnce(gameState, modifiersQuerying, cardAffected); - return _evaluated; - } -} \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_327.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_327.java index 396d1bbd6..ca8457a13 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_327.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_327.java @@ -2,14 +2,12 @@ package com.gempukku.lotro.cards.set1.site; import com.gempukku.lotro.cards.AbstractSite; import com.gempukku.lotro.cards.modifiers.MoveLimitModifier; -import com.gempukku.lotro.cards.modifiers.evaluator.CardTurnLimitEvaluator; import com.gempukku.lotro.common.Block; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator; import com.gempukku.lotro.logic.timing.EffectResult; import java.util.List; @@ -31,8 +29,8 @@ public class Card1_327 extends AbstractSite { if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1 && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Keyword.RANGER)) { game.getModifiersEnvironment().addUntilEndOfTurnModifier( - new MoveLimitModifier(self, null, - new CardTurnLimitEvaluator(game, self, 1, new ConstantEvaluator(1)))); + new MoveLimitModifier(self, 1)); + game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1); } return null; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_342.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_342.java index 0108808bb..72fbe5c7f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_342.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/site/Card1_342.java @@ -10,7 +10,6 @@ import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator; import com.gempukku.lotro.logic.timing.EffectResult; import java.util.List; @@ -35,8 +34,8 @@ public class Card1_342 extends AbstractSite { && game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1 && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Keyword.RANGER)) { game.getModifiersEnvironment().addUntilEndOfTurnModifier( - new MoveLimitModifier(self, null, - new CardTurnLimitEvaluator(game, self, 1, new ConstantEvaluator(1)))); + new MoveLimitModifier(self, 1)); + game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1); } return null; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_326.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_326.java index c15c0acc1..e26fa7c45 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_326.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_326.java @@ -11,7 +11,6 @@ import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator; import com.gempukku.lotro.logic.timing.EffectResult; import java.util.List; @@ -33,8 +32,8 @@ public class Card4_326 extends AbstractSite { if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1 && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Culture.ROHAN, PossessionClass.MOUNT)) { game.getModifiersEnvironment().addUntilEndOfTurnModifier( - new MoveLimitModifier(self, null, - new CardTurnLimitEvaluator(game, self, 1, new ConstantEvaluator(1)))); + new MoveLimitModifier(self, 1)); + game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1); } return null; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_330.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_330.java index 58dce95c5..2a378e74e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_330.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/site/Card4_330.java @@ -10,7 +10,6 @@ import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.RequiredTriggerAction; -import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator; import com.gempukku.lotro.logic.timing.EffectResult; import java.util.List; @@ -33,8 +32,8 @@ public class Card4_330 extends AbstractSite { if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1 && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Race.HOBBIT, Filters.unboundCompanion)) { game.getModifiersEnvironment().addUntilEndOfTurnModifier( - new MoveLimitModifier(self, null, - new CardTurnLimitEvaluator(game, self, 1, new ConstantEvaluator(1)))); + new MoveLimitModifier(self, 1)); + game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1); } return null; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/site/Card7_334.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/site/Card7_334.java index c7c7387dc..90fcfef91 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/site/Card7_334.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/site/Card7_334.java @@ -27,10 +27,10 @@ public class Card7_334 extends AbstractSite { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { - if (self.getData() == null) { - self.storeData(new Object()); + if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1) { game.getModifiersEnvironment().addUntilEndOfTurnModifier( new KeywordModifier(self, Filters.and(Culture.GONDOR, CardType.COMPANION), Keyword.DEFENDER, 1)); + game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1); } return null; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_197.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_197.java index 8313ebde1..eb02548c6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_197.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_197.java @@ -2,7 +2,6 @@ package com.gempukku.lotro.cards.set7.wraith; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; -import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.SelfExertEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndAddUntilEOPStrengthBonusEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; @@ -57,7 +56,7 @@ public class Card7_197 extends AbstractMinion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return self.getData() == null; + return self.getWhileInZoneData() == null; } }), self)); } @@ -81,7 +80,7 @@ public class Card7_197 extends AbstractMinion { new UnrespondableEffect() { @Override protected void doPlayEffect(LotroGame game) { - self.storeData(new Object()); + self.setWhileInZoneData(new Object()); } }); } @@ -89,8 +88,6 @@ public class Card7_197 extends AbstractMinion { })); return Collections.singletonList(action); } - if (TriggerConditions.endOfPhase(game, effectResult, Phase.ASSIGNMENT)) - self.removeData(); return null; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_200.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_200.java index 30dcef952..05e0c3d21 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_200.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_200.java @@ -2,13 +2,11 @@ package com.gempukku.lotro.cards.set7.wraith; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; -import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; import com.gempukku.lotro.cards.modifiers.FreePeoplePlayerMayNotAssignCharacterModifier; import com.gempukku.lotro.cards.modifiers.conditions.AndCondition; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Race; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; @@ -52,7 +50,7 @@ public class Card7_200 extends AbstractMinion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return self.getData() == null; + return self.getWhileInZoneData() == null; } }), self)); } @@ -74,7 +72,7 @@ public class Card7_200 extends AbstractMinion { new UnrespondableEffect() { @Override protected void doPlayEffect(LotroGame game) { - self.storeData(new Object()); + self.setWhileInZoneData(new Object()); } }); } @@ -82,8 +80,6 @@ public class Card7_200 extends AbstractMinion { })); return Collections.singletonList(action); } - if (TriggerConditions.endOfPhase(game, effectResult, Phase.ASSIGNMENT)) - self.removeData(); return null; } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_201.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_201.java index 82fed38fb..713f19d89 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_201.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/wraith/Card7_201.java @@ -2,13 +2,11 @@ package com.gempukku.lotro.cards.set7.wraith; import com.gempukku.lotro.cards.AbstractMinion; import com.gempukku.lotro.cards.PlayConditions; -import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; import com.gempukku.lotro.cards.modifiers.FreePeoplePlayerMayNotAssignCharacterModifier; import com.gempukku.lotro.cards.modifiers.conditions.AndCondition; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; -import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Race; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; @@ -52,7 +50,7 @@ public class Card7_201 extends AbstractMinion { new Condition() { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return self.getData() == null; + return self.getWhileInZoneData() == null; } }), self)); } @@ -74,7 +72,7 @@ public class Card7_201 extends AbstractMinion { new UnrespondableEffect() { @Override protected void doPlayEffect(LotroGame game) { - self.storeData(new Object()); + self.setWhileInZoneData(new Object()); } }); } @@ -82,8 +80,6 @@ public class Card7_201 extends AbstractMinion { })); return Collections.singletonList(action); } - if (TriggerConditions.endOfPhase(game, effectResult, Phase.ASSIGNMENT)) - self.removeData(); return null; } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/gandalf/Card9_026.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/gandalf/Card9_026.java index 73d713396..79a781db9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/gandalf/Card9_026.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/gandalf/Card9_026.java @@ -43,10 +43,10 @@ public class Card9_026 extends AbstractCompanion { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { if ((TriggerConditions.played(game, effectResult, self) || effectResult.getType() == EffectResult.Type.START_OF_TURN) - && self.getData() == null) { - self.storeData(new Object()); + && game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1) { game.getModifiersEnvironment().addUntilEndOfTurnModifier( new MoveLimitModifier(self, 1)); + game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1); } if (effectResult.getType() == EffectResult.Type.WHEN_FELLOWSHIP_MOVES && PlayConditions.isPhase(game, Phase.REGROUP)) {