Remove some of the clunky limits implementations.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -27,10 +27,10 @@ public class Card7_334 extends AbstractSite {
|
||||
|
||||
@Override
|
||||
public List<RequiredTriggerAction> 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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,10 +43,10 @@ public class Card9_026 extends AbstractCompanion {
|
||||
@Override
|
||||
public List<RequiredTriggerAction> 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)) {
|
||||
|
||||
Reference in New Issue
Block a user