From 1f3d6f4729b9a7152f3c5478d5ca81f0c94f5747 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 5 Jan 2012 12:53:58 +0000 Subject: [PATCH] Simplifying some based on phase filters. --- .../CantTakeMoreThanXWoundsModifier.java | 12 ++++------ .../conditions/FierceSkirmishCondition.java | 16 ++++++++++++++ .../modifiers/conditions/PhaseCondition.java | 2 +- .../lotro/cards/set12/men/Card12_060.java | 16 +++++--------- .../lotro/cards/set12/rohan/Card12_116.java | 11 ++-------- .../lotro/cards/set2/shire/Card2_097.java | 14 +++--------- .../lotro/cards/set3/isengard/Card3_068.java | 21 +++++++----------- .../lotro/cards/set3/isengard/Card3_069.java | 21 +++++++----------- .../lotro/cards/set4/gondor/Card4_116.java | 13 +++++------ .../lotro/cards/set4/isengard/Card4_142.java | 13 +++-------- .../lotro/cards/set4/isengard/Card4_147.java | 2 -- .../lotro/cards/set4/isengard/Card4_173.java | 16 +++++++++----- .../lotro/cards/set5/isengard/Card5_056.java | 22 +++++++------------ .../lotro/cards/set9/dwarven/Card9_010.java | 6 ++--- 14 files changed, 77 insertions(+), 108 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/FierceSkirmishCondition.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CantTakeMoreThanXWoundsModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CantTakeMoreThanXWoundsModifier.java index ad1dee2b2..3f2de3c8f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CantTakeMoreThanXWoundsModifier.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/CantTakeMoreThanXWoundsModifier.java @@ -1,8 +1,9 @@ package com.gempukku.lotro.cards.modifiers; +import com.gempukku.lotro.cards.modifiers.conditions.AndCondition; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; import com.gempukku.lotro.common.Filterable; import com.gempukku.lotro.common.Phase; -import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; @@ -20,13 +21,8 @@ public class CantTakeMoreThanXWoundsModifier extends AbstractModifier { } public CantTakeMoreThanXWoundsModifier(PhysicalCard source, final Phase phase, int count, Condition condition, Filterable... affectFilters) { - super(source, "Can't take more than " + count + " wound(s)", Filters.and(affectFilters, - new Filter() { - @Override - public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { - return phase == null || gameState.getCurrentPhase() == phase; - } - }), condition, ModifierEffect.WOUND_MODIFIER); + super(source, "Can't take more than " + count + " wound(s)", Filters.and(affectFilters), + new AndCondition(new PhaseCondition(phase), condition), ModifierEffect.WOUND_MODIFIER); _phase = phase; _count = count; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/FierceSkirmishCondition.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/FierceSkirmishCondition.java new file mode 100644 index 000000000..01cc295a9 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/FierceSkirmishCondition.java @@ -0,0 +1,16 @@ +package com.gempukku.lotro.cards.modifiers.conditions; + +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.game.state.GameState; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; + +public class FierceSkirmishCondition extends PhaseCondition { + public FierceSkirmishCondition() { + super(Phase.SKIRMISH); + } + + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return super.isFullfilled(gameState, modifiersQuerying) && gameState.isFierceSkirmishes(); + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/PhaseCondition.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/PhaseCondition.java index a8a9b71eb..3327a9bae 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/PhaseCondition.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/conditions/PhaseCondition.java @@ -14,6 +14,6 @@ public class PhaseCondition implements Condition { @Override public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return gameState.getCurrentPhase() == _phase; + return _phase == null || gameState.getCurrentPhase() == _phase; } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/men/Card12_060.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/men/Card12_060.java index a88c8b8bd..1f48fb33f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/men/Card12_060.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/men/Card12_060.java @@ -1,14 +1,15 @@ package com.gempukku.lotro.cards.set12.men; import com.gempukku.lotro.cards.AbstractMinion; +import com.gempukku.lotro.cards.modifiers.conditions.FierceSkirmishCondition; import com.gempukku.lotro.cards.modifiers.evaluator.CardMatchesEvaluator; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Race; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; -import com.gempukku.lotro.game.state.GameState; -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.modifiers.StrengthModifier; /** @@ -32,12 +33,7 @@ public class Card12_060 extends AbstractMinion { @Override public Modifier getAlwaysOnModifier(PhysicalCard self) { return new StrengthModifier(self, self, - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return gameState.getCurrentPhase() == Phase.SKIRMISH && gameState.isFierceSkirmishes(); - } - }, + new FierceSkirmishCondition(), new CardMatchesEvaluator(7, 10, Filters.inSkirmishAgainst(CardType.COMPANION, Filters.maxResistance(4)))); } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/rohan/Card12_116.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/rohan/Card12_116.java index 4ccfe532a..8e4d27a66 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/rohan/Card12_116.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set12/rohan/Card12_116.java @@ -5,16 +5,14 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect; import com.gempukku.lotro.cards.effects.SelfExertEffect; import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; +import com.gempukku.lotro.cards.modifiers.conditions.FierceSkirmishCondition; 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; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.ActivateCardAction; -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.modifiers.StrengthModifier; import java.util.Collections; @@ -38,12 +36,7 @@ public class Card12_116 extends AbstractCompanion { @Override public Modifier getAlwaysOnModifier(PhysicalCard self) { - return new CantTakeWoundsModifier(self, new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return gameState.getCurrentPhase() == Phase.SKIRMISH && gameState.isFierceSkirmishes(); - } - }, self); + return new CantTakeWoundsModifier(self, new FierceSkirmishCondition(), self); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/shire/Card2_097.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/shire/Card2_097.java index dca2ced7f..717c9b831 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/shire/Card2_097.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/shire/Card2_097.java @@ -7,15 +7,15 @@ import com.gempukku.lotro.cards.effects.ExertCharactersEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; +import com.gempukku.lotro.cards.modifiers.conditions.NotCondition; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filter; 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.actions.ActivateCardAction; import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Effect; @@ -46,15 +46,7 @@ public class Card2_097 extends AbstractAttachable { @Override public List getAlwaysOnModifiers(LotroGame game, PhysicalCard self) { return Collections.singletonList( - new CantTakeWoundsModifier(self, - Filters.and( - Filters.hasAttached(self), - new Filter() { - @Override - public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { - return gameState.getCurrentPhase() != Phase.ARCHERY; - } - }))); + new CantTakeWoundsModifier(self, new NotCondition(new PhaseCondition(Phase.ARCHERY)), Filters.hasAttached(self))); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_068.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_068.java index d6df92aad..a61ee4c01 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_068.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_068.java @@ -7,11 +7,12 @@ import com.gempukku.lotro.cards.effects.PreventCardEffect; import com.gempukku.lotro.cards.effects.SelfExertEffect; import com.gempukku.lotro.cards.modifiers.CantBeAssignedToSkirmishModifier; import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; +import com.gempukku.lotro.cards.modifiers.conditions.AndCondition; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Race; -import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; @@ -48,20 +49,14 @@ public class Card3_068 extends AbstractMinion { List modifiers = new LinkedList(); modifiers.add( new CantTakeWoundsModifier(self, - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return !modifiersQuerying.hasFlagActive(gameState, ModifierFlag.SARUMAN_FIRST_SENTENCE_INACTIVE); - } - }, - Filters.and( - self, - new Filter() { + new AndCondition( + new PhaseCondition(Phase.ARCHERY), + new Condition() { @Override - public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { - return gameState.getCurrentPhase() == Phase.ARCHERY; + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return !modifiersQuerying.hasFlagActive(gameState, ModifierFlag.SARUMAN_FIRST_SENTENCE_INACTIVE); } - }))); + }), self)); modifiers.add( new CantBeAssignedToSkirmishModifier(self, new Condition() { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_069.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_069.java index 5eec71258..2cf2c4fb6 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_069.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set3/isengard/Card3_069.java @@ -7,8 +7,9 @@ import com.gempukku.lotro.cards.effects.PreventableEffect; import com.gempukku.lotro.cards.effects.SelfExertEffect; import com.gempukku.lotro.cards.modifiers.CantBeAssignedToSkirmishModifier; import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; +import com.gempukku.lotro.cards.modifiers.conditions.AndCondition; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; import com.gempukku.lotro.common.*; -import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; @@ -51,20 +52,14 @@ public class Card3_069 extends AbstractMinion { List modifiers = new LinkedList(); modifiers.add( new CantTakeWoundsModifier(self, - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return !modifiersQuerying.hasFlagActive(gameState, ModifierFlag.SARUMAN_FIRST_SENTENCE_INACTIVE); - } - }, - Filters.and( - self, - new Filter() { + new AndCondition( + new PhaseCondition(Phase.ARCHERY), + new Condition() { @Override - public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { - return gameState.getCurrentPhase() == Phase.ARCHERY; + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return !modifiersQuerying.hasFlagActive(gameState, ModifierFlag.SARUMAN_FIRST_SENTENCE_INACTIVE); } - }))); + }), self)); modifiers.add( new CantBeAssignedToSkirmishModifier(self, new Condition() { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_116.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_116.java index f861eb7ae..e7e06ceaf 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_116.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gondor/Card4_116.java @@ -1,12 +1,14 @@ package com.gempukku.lotro.cards.set4.gondor; import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; 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.*; +import com.gempukku.lotro.logic.modifiers.Modifier; +import com.gempukku.lotro.logic.modifiers.StrengthModifier; +import com.gempukku.lotro.logic.modifiers.TwilightCostModifier; import java.util.LinkedList; import java.util.List; @@ -36,12 +38,7 @@ public class Card4_116 extends AbstractCompanion { List modifiers = new LinkedList(); modifiers.add( new TwilightCostModifier(self, Filters.and(Filters.not(self), Culture.GONDOR, Race.MAN), - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return gameState.getCurrentPhase() == Phase.PLAY_STARTING_FELLOWSHIP; - } - }, -1)); + new PhaseCondition(Phase.PLAY_STARTING_FELLOWSHIP), -1)); modifiers.add( new StrengthModifier(self, Filters.and(self, Filters.inSkirmishAgainst(Filters.and(CardType.MINION, Keyword.ROAMING))), 2)); return modifiers; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_142.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_142.java index 999b3d2ea..f62e05781 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_142.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_142.java @@ -2,14 +2,13 @@ package com.gempukku.lotro.cards.set4.isengard; import com.gempukku.lotro.cards.AbstractAttachable; import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; +import com.gempukku.lotro.cards.modifiers.conditions.NotCondition; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; 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.modifiers.StrengthModifier; import java.util.LinkedList; @@ -40,13 +39,7 @@ public class Card4_142 extends AbstractAttachable { modifiers.add( new StrengthModifier(self, Filters.hasAttached(self), 2)); modifiers.add( - new CantTakeWoundsModifier(self, - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return gameState.getCurrentPhase() != Phase.SKIRMISH; - } - }, Filters.hasAttached(self))); + new CantTakeWoundsModifier(self, new NotCondition(new PhaseCondition(Phase.SKIRMISH)), Filters.hasAttached(self))); return modifiers; } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_147.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_147.java index f26849750..c93831461 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_147.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_147.java @@ -57,8 +57,6 @@ public class Card4_147 extends AbstractPermanent { public boolean canPlayAction(GameState gameState, ModifiersQuerying modifiersQuerying, String performingPlayer, Action action) { if (!performingPlayer.equals(gameState.getCurrentPlayerId())) return true; - if (gameState.getCurrentPhase() != Phase.ARCHERY) - return true; if (action.getActionTimeword() == Phase.ARCHERY) return false; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_173.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_173.java index 06e609487..8d6c4b457 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_173.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_173.java @@ -8,6 +8,8 @@ import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffe import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect; import com.gempukku.lotro.cards.modifiers.CantBeAssignedToSkirmishModifier; import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; +import com.gempukku.lotro.cards.modifiers.conditions.AndCondition; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Phase; @@ -51,12 +53,14 @@ public class Card4_173 extends AbstractMinion { List modifiers = new LinkedList(); modifiers.add( new CantTakeWoundsModifier(self, - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return gameState.getCurrentPhase() == Phase.ARCHERY && !modifiersQuerying.hasFlagActive(gameState, ModifierFlag.SARUMAN_FIRST_SENTENCE_INACTIVE); - } - }, self)); + new AndCondition( + new PhaseCondition(Phase.ARCHERY), + new Condition() { + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return !modifiersQuerying.hasFlagActive(gameState, ModifierFlag.SARUMAN_FIRST_SENTENCE_INACTIVE); + } + }), self)); modifiers.add( new CantBeAssignedToSkirmishModifier(self, new Condition() { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/isengard/Card5_056.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/isengard/Card5_056.java index 668446df6..cddd3c9e7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/isengard/Card5_056.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/isengard/Card5_056.java @@ -6,12 +6,12 @@ import com.gempukku.lotro.cards.effects.SelfExertEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndPlayCardFromDiscardEffect; import com.gempukku.lotro.cards.modifiers.CantBeAssignedToSkirmishModifier; import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; +import com.gempukku.lotro.cards.modifiers.conditions.AndCondition; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; 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.filters.Filter; -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; @@ -52,20 +52,14 @@ public class Card5_056 extends AbstractMinion { List modifiers = new LinkedList(); modifiers.add( new CantTakeWoundsModifier(self, - new Condition() { - @Override - public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { - return !modifiersQuerying.hasFlagActive(gameState, ModifierFlag.SARUMAN_FIRST_SENTENCE_INACTIVE); - } - }, - Filters.and( - self, - new Filter() { + new AndCondition( + new PhaseCondition(Phase.ARCHERY), + new Condition() { @Override - public boolean accepts(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard) { - return gameState.getCurrentPhase() == Phase.ARCHERY; + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return !modifiersQuerying.hasFlagActive(gameState, ModifierFlag.SARUMAN_FIRST_SENTENCE_INACTIVE); } - }))); + }), self)); modifiers.add( new CantBeAssignedToSkirmishModifier(self, new Condition() { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/dwarven/Card9_010.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/dwarven/Card9_010.java index 9bcc74c28..048c04e8e 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/dwarven/Card9_010.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set9/dwarven/Card9_010.java @@ -1,6 +1,7 @@ package com.gempukku.lotro.cards.set9.dwarven; import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.cards.modifiers.conditions.PhaseCondition; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -34,11 +35,10 @@ public class Card9_010 extends AbstractCompanion { @Override public List getAlwaysOnModifiers(final LotroGame game, PhysicalCard self) { return Collections.singletonList( - new AbstractModifier(self, null, Filters.and(Culture.DWARVEN, CardType.EVENT, Keyword.SKIRMISH, Filters.stackedOn(Culture.DWARVEN, CardType.CONDITION)), ModifierEffect.EXTRA_ACTION_MODIFIER) { + new AbstractModifier(self, null, Filters.and(Culture.DWARVEN, CardType.EVENT, Keyword.SKIRMISH, Filters.stackedOn(Culture.DWARVEN, CardType.CONDITION)), new PhaseCondition(Phase.SKIRMISH), ModifierEffect.EXTRA_ACTION_MODIFIER) { @Override public List getExtraPhaseActionFromStacked(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard card) { - if (card.getBlueprint().checkPlayRequirements(card.getOwner(), game, card, 0, 0, false, false) - && gameState.getCurrentPhase() == Phase.SKIRMISH) + if (card.getBlueprint().checkPlayRequirements(card.getOwner(), game, card, 0, 0, false, false)) return Collections.singletonList( card.getBlueprint().getPlayCardAction(card.getOwner(), game, card, 0, false)); return null;