- Changed all the effects that modify Move Limit to always act until end of turn once a condition is met (first time

in that turn).
This commit is contained in:
marcins78
2012-10-23 16:26:07 +00:00
parent cf81da89ea
commit bfccd9d12a
8 changed files with 77 additions and 53 deletions

View File

@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.modifiers;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState; import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.logic.modifiers.AbstractModifier; import com.gempukku.lotro.logic.modifiers.AbstractModifier;
import com.gempukku.lotro.logic.modifiers.Condition;
import com.gempukku.lotro.logic.modifiers.ModifierEffect; import com.gempukku.lotro.logic.modifiers.ModifierEffect;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator; import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator;
@@ -13,16 +12,8 @@ public class MoveLimitModifier extends AbstractModifier {
private Evaluator _moveLimitModifier; private Evaluator _moveLimitModifier;
public MoveLimitModifier(PhysicalCard source, int moveLimitModifier) { public MoveLimitModifier(PhysicalCard source, int moveLimitModifier) {
this(source, null, moveLimitModifier); super(source, null, null, null, ModifierEffect.MOVE_LIMIT_MODIFIER);
} _moveLimitModifier = new ConstantEvaluator(moveLimitModifier);
public MoveLimitModifier(PhysicalCard source, Condition condition, int moveLimitModifier) {
this(source, condition, new ConstantEvaluator(moveLimitModifier));
}
public MoveLimitModifier(PhysicalCard source, Condition condition, Evaluator moveLimitModifier) {
super(source, null, null, condition, ModifierEffect.MOVE_LIMIT_MODIFIER);
_moveLimitModifier = moveLimitModifier;
} }
@Override @Override

View File

@@ -5,11 +5,11 @@ import com.gempukku.lotro.cards.modifiers.MoveLimitModifier;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.Condition; import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import java.util.List;
/** /**
* et: The Fellowship of the Ring * et: The Fellowship of the Ring
@@ -33,14 +33,14 @@ public class Card1_142 extends AbstractPermanent {
} }
@Override @Override
public Modifier getAlwaysOnModifier(PhysicalCard self) { public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
return new MoveLimitModifier(self, if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1
new Condition() { && (game.getGameState().getBurdens() >= 5 || Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.ringBearer, Filters.exhausted))) {
@Override game.getModifiersEnvironment().addUntilEndOfTurnModifier(
public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { new MoveLimitModifier(self,-1));
return gameState.getBurdens() >= 5 game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1);
|| Filters.canSpot(gameState, modifiersQuerying, Filters.ringBearer, Filters.exhausted); }
} return null;
}, -1);
} }
} }

View File

@@ -3,9 +3,13 @@ package com.gempukku.lotro.cards.set1.sauron;
import com.gempukku.lotro.cards.AbstractPermanent; import com.gempukku.lotro.cards.AbstractPermanent;
import com.gempukku.lotro.cards.modifiers.MoveLimitModifier; import com.gempukku.lotro.cards.modifiers.MoveLimitModifier;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.SpotCondition; import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.List;
/** /**
* Set: The Fellowship of the Ring * Set: The Fellowship of the Ring
@@ -23,7 +27,14 @@ public class Card1_260 extends AbstractPermanent {
} }
@Override @Override
public Modifier getAlwaysOnModifier(PhysicalCard self) { public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
return new MoveLimitModifier(self, new SpotCondition(7, CardType.COMPANION), -1); if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), 7, CardType.COMPANION)) {
game.getModifiersEnvironment().addUntilEndOfTurnModifier(
new MoveLimitModifier(self, -1));
game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1);
}
return null;
} }
} }

View File

@@ -8,11 +8,11 @@ import com.gempukku.lotro.cards.modifiers.MoveLimitModifier;
import com.gempukku.lotro.common.*; import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.GameState;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.modifiers.Condition; import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.timing.EffectResult;
import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
import java.util.List;
/** /**
* Set: The Fellowship of the Ring * Set: The Fellowship of the Ring
@@ -43,14 +43,13 @@ public class Card1_274 extends AbstractPermanent {
} }
@Override @Override
public Modifier getAlwaysOnModifier(PhysicalCard self) { public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
return new MoveLimitModifier(self, if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1
new Condition() { && Filters.filter(game.getGameState().getDeadPile(game.getGameState().getCurrentPlayerId()), game.getGameState(), game.getModifiersQuerying(), CardType.COMPANION).size() >= 3) {
@Override game.getModifiersEnvironment().addUntilEndOfTurnModifier(
public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { new MoveLimitModifier(self,-1));
return Filters.filter(gameState.getDeadPile(gameState.getCurrentPlayerId()), gameState, modifiersQuerying, CardType.COMPANION).size() >= 3; game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1);
} }
}, return null;
-1);
} }
} }

View File

@@ -9,9 +9,10 @@ import com.gempukku.lotro.common.*;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.SpotCondition;
import com.gempukku.lotro.logic.modifiers.StrengthModifier; import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@@ -44,11 +45,21 @@ public class Card11_155 extends AbstractPermanent {
return playCardAction; return playCardAction;
} }
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), 2, Culture.ROHAN, PossessionClass.MOUNT)) {
game.getModifiersEnvironment().addUntilEndOfTurnModifier(
new MoveLimitModifier(self,1));
game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1);
}
return null;
}
@Override @Override
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>(); List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new MoveLimitModifier(self, new SpotCondition(2, Culture.ROHAN, PossessionClass.MOUNT), 1));
modifiers.add( modifiers.add(
new StrengthModifier(self, Filters.and(Filters.owner(self.getOwner()), CardType.COMPANION, Filters.not(Filters.mounted)), -1)); new StrengthModifier(self, Filters.and(Filters.owner(self.getOwner()), CardType.COMPANION, Filters.not(Filters.mounted)), -1));
return modifiers; return modifiers;

View File

@@ -9,9 +9,11 @@ import com.gempukku.lotro.common.Race;
import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.modifiers.KeywordModifier; import com.gempukku.lotro.logic.modifiers.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.SpotCondition; import com.gempukku.lotro.logic.modifiers.SpotCondition;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@@ -33,6 +35,17 @@ public class Card13_137 extends AbstractCompanion {
super(3, 7, 3, 7, Culture.ROHAN, Race.MAN, null, Names.theoden, "The Renowned", true); super(3, 7, 3, 7, Culture.ROHAN, Race.MAN, null, Names.theoden, "The Renowned", true);
} }
@Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.name("Theodred"))) {
game.getModifiersEnvironment().addUntilEndOfTurnModifier(
new MoveLimitModifier(self,1));
game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1);
}
return null;
}
@Override @Override
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>(); List<Modifier> modifiers = new LinkedList<Modifier>();
@@ -40,8 +53,6 @@ public class Card13_137 extends AbstractCompanion {
new KeywordModifier(self, self, new SpotCondition(Filters.name(Names.eowyn)), Keyword.DEFENDER, 1)); new KeywordModifier(self, self, new SpotCondition(Filters.name(Names.eowyn)), Keyword.DEFENDER, 1));
modifiers.add( modifiers.add(
new KeywordModifier(self, self, new SpotCondition(Filters.name(Names.eomer)), Keyword.DAMAGE, 1)); new KeywordModifier(self, self, new SpotCondition(Filters.name(Names.eomer)), Keyword.DAMAGE, 1));
modifiers.add(
new MoveLimitModifier(self, new SpotCondition(Filters.name("Theodred")), 1));
return modifiers; return modifiers;
} }
} }

View File

@@ -14,7 +14,6 @@ import com.gempukku.lotro.game.PhysicalCard;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.actions.RequiredTriggerAction; import com.gempukku.lotro.logic.actions.RequiredTriggerAction;
import com.gempukku.lotro.logic.effects.AddThreatsEffect; import com.gempukku.lotro.logic.effects.AddThreatsEffect;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections; import java.util.Collections;
@@ -49,14 +48,14 @@ public class Card7_069 extends AbstractPermanent {
return playCardAction; return playCardAction;
} }
@Override
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new MoveLimitModifier(self, 1));
}
@Override @Override
public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) { public List<RequiredTriggerAction> getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (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.END_OF_TURN) { if (effectResult.getType() == EffectResult.Type.END_OF_TURN) {
RequiredTriggerAction action = new RequiredTriggerAction(self); RequiredTriggerAction action = new RequiredTriggerAction(self);
action.appendEffect( action.appendEffect(

View File

@@ -7,6 +7,8 @@ what effect you're using). Then you choose which cards you want to discard, up t
All cards are discarded and then you draw an equal number of cards. All cards are discarded and then you draw an equal number of cards.
- "Arwen's Fate" now can't be played if you don't control exertable Aragorn or Arwen. - "Arwen's Fate" now can't be played if you don't control exertable Aragorn or Arwen.
- "Bilbo, Bearer of Things Burgled" can now only play either non-events or Regroup events (not Skirmish events and thee like). - "Bilbo, Bearer of Things Burgled" can now only play either non-events or Regroup events (not Skirmish events and thee like).
- Changed all the effects that modify Move Limit to always act until end of turn once a condition is met (first time
in that turn).
<b>16 Oct. 2012</b> <b>16 Oct. 2012</b>
- "Down to the Last Child" now triggers on companion/ally losing skirmish, not Uruk-hai winning, so if companion loses - "Down to the Last Child" now triggers on companion/ally losing skirmish, not Uruk-hai winning, so if companion loses