From bfccd9d12a8428ba9ee128fb0cce5ffc45d3559f Mon Sep 17 00:00:00 2001 From: marcins78 Date: Tue, 23 Oct 2012 16:26:07 +0000 Subject: [PATCH] - 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). --- .../cards/modifiers/MoveLimitModifier.java | 13 ++-------- .../lotro/cards/set1/isengard/Card1_142.java | 26 +++++++++---------- .../lotro/cards/set1/sauron/Card1_260.java | 19 +++++++++++--- .../lotro/cards/set1/sauron/Card1_274.java | 25 +++++++++--------- .../lotro/cards/set11/rohan/Card11_155.java | 17 +++++++++--- .../lotro/cards/set13/rohan/Card13_137.java | 15 +++++++++-- .../lotro/cards/set7/gollum/Card7_069.java | 13 +++++----- .../src/main/webapp/includes/changeLog.html | 2 ++ 8 files changed, 77 insertions(+), 53 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/MoveLimitModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/MoveLimitModifier.java index 55ee38edf..f6b0bd207 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/MoveLimitModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/MoveLimitModifier.java @@ -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 diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_142.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_142.java index 7550bc1a3..857dfc4c9 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_142.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_142.java @@ -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 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; + } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_260.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_260.java index 5d1bbf3ed..e08e298ea 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_260.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_260.java @@ -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 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; + } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_274.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_274.java index 3503b90fd..4225bdf6a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_274.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_274.java @@ -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 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; } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/rohan/Card11_155.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/rohan/Card11_155.java index a02f54dd5..926f1824a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/rohan/Card11_155.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/rohan/Card11_155.java @@ -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 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 getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { List modifiers = new LinkedList(); - 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; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/rohan/Card13_137.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/rohan/Card13_137.java index 7895ca516..2ed88601a 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/rohan/Card13_137.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/rohan/Card13_137.java @@ -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 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 getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { List modifiers = new LinkedList(); @@ -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; } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_069.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_069.java index a655adf03..a4087c6ab 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_069.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_069.java @@ -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 getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { - return Collections.singletonList( - new MoveLimitModifier(self, 1)); - } - @Override public List 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( diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html index 5afdf4f20..8842a7564 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html @@ -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). 16 Oct. 2012 - "Down to the Last Child" now triggers on companion/ally losing skirmish, not Uruk-hai winning, so if companion loses