- 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.state.GameState;
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.ModifiersQuerying;
import com.gempukku.lotro.logic.modifiers.evaluator.ConstantEvaluator;
@@ -13,16 +12,8 @@ public class MoveLimitModifier extends AbstractModifier {
private Evaluator _moveLimitModifier;
public MoveLimitModifier(PhysicalCard source, int moveLimitModifier) {
this(source, null, 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;
super(source, null, null, null, ModifierEffect.MOVE_LIMIT_MODIFIER);
_moveLimitModifier = new ConstantEvaluator(moveLimitModifier);
}
@Override

View File

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

View File

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

View File

@@ -9,9 +9,10 @@ import com.gempukku.lotro.common.*;
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.Modifier;
import com.gempukku.lotro.logic.modifiers.SpotCondition;
import com.gempukku.lotro.logic.modifiers.StrengthModifier;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.LinkedList;
import java.util.List;
@@ -44,11 +45,21 @@ public class Card11_155 extends AbstractPermanent {
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
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
List<Modifier> modifiers = new LinkedList<Modifier>();
modifiers.add(
new MoveLimitModifier(self, new SpotCondition(2, Culture.ROHAN, PossessionClass.MOUNT), 1));
modifiers.add(
new StrengthModifier(self, Filters.and(Filters.owner(self.getOwner()), CardType.COMPANION, Filters.not(Filters.mounted)), -1));
return modifiers;

View File

@@ -9,9 +9,11 @@ import com.gempukku.lotro.common.Race;
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.KeywordModifier;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.modifiers.SpotCondition;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.LinkedList;
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);
}
@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
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
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));
modifiers.add(
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;
}
}

View File

@@ -14,7 +14,6 @@ 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.effects.AddThreatsEffect;
import com.gempukku.lotro.logic.modifiers.Modifier;
import com.gempukku.lotro.logic.timing.EffectResult;
import java.util.Collections;
@@ -49,14 +48,14 @@ public class Card7_069 extends AbstractPermanent {
return playCardAction;
}
@Override
public List<? extends Modifier> getAlwaysOnModifiers(LotroGame game, PhysicalCard self) {
return Collections.singletonList(
new MoveLimitModifier(self, 1));
}
@Override
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) {
RequiredTriggerAction action = new RequiredTriggerAction(self);
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.
- "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).
- 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>
- "Down to the Last Child" now triggers on companion/ally losing skirmish, not Uruk-hai winning, so if companion loses