From 5c86ba6e485db42e548ca35fed653db358772bb1 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 8 Feb 2012 23:33:53 +0000 Subject: [PATCH] - "Pillage of Rohan" should now correctly prevent FP player from playing Skirmish events and special abilities. --- ...PhaseEventsOrSpecialAbilitiesModifier.java | 36 +++++++++++++++++++ .../lotro/cards/set4/isengard/Card4_167.java | 23 +++++------- .../src/main/webapp/includes/changeLog.html | 3 ++ 3 files changed, 48 insertions(+), 14 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/SidePlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/SidePlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/SidePlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier.java new file mode 100644 index 000000000..1340b9cdb --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/modifiers/SidePlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier.java @@ -0,0 +1,36 @@ +package com.gempukku.lotro.cards.modifiers; + +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Side; +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.timing.Action; + +public class SidePlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier extends AbstractModifier { + private Side _side; + private Phase _phase; + + public SidePlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier(PhysicalCard source, Side side, Phase phase) { + this(source, null, side, phase); + } + + public SidePlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier(PhysicalCard source, Condition condition, Side side, Phase phase) { + super(source, null, null, condition, ModifierEffect.ACTION_MODIFIER); + _side = side; + _phase = phase; + } + + @Override + public boolean canPlayAction(GameState gameState, ModifiersQuerying modifiersQuerying, String performingPlayer, Action action) { + if (action.getActionTimeword() == _phase + && ( + (_side == Side.FREE_PEOPLE && action.getPerformingPlayer().equals(gameState.getCurrentPlayerId())) + || (_side == Side.SHADOW && !action.getPerformingPlayer().equals(gameState.getCurrentPlayerId())))) + return false; + return true; + } +} \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_167.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_167.java index 961c3fc91..c3ff7db05 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_167.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/isengard/Card4_167.java @@ -1,17 +1,16 @@ package com.gempukku.lotro.cards.set4.isengard; import com.gempukku.lotro.cards.AbstractAttachable; +import com.gempukku.lotro.cards.modifiers.SidePlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier; 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.modifiers.AbstractModifier; +import com.gempukku.lotro.logic.modifiers.Condition; import com.gempukku.lotro.logic.modifiers.Modifier; -import com.gempukku.lotro.logic.modifiers.ModifierEffect; import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; -import com.gempukku.lotro.logic.timing.Action; import java.util.Collections; import java.util.List; @@ -38,16 +37,12 @@ public class Card4_167 extends AbstractAttachable { @Override public List getAlwaysOnModifiers(LotroGame game, final PhysicalCard self) { return Collections.singletonList( - new AbstractModifier(self, null, null, ModifierEffect.ACTION_MODIFIER) { - @Override - public boolean canPlayAction(GameState gameState, ModifiersQuerying modifiersQuerying, String performingPlayer, Action action) { - if (Filters.filter(gameState.getStackedCards(self.getAttachedTo()), gameState, modifiersQuerying, Race.URUK_HAI).size() > 0) { - if (performingPlayer.equals(gameState.getCurrentPlayerId()) - && action.getActionTimeword() == Phase.SKIRMISH) - return false; - } - return true; - } - }); + new SidePlayerCantPlayPhaseEventsOrSpecialAbilitiesModifier(self, + new Condition() { + @Override + public boolean isFullfilled(GameState gameState, ModifiersQuerying modifiersQuerying) { + return Filters.filter(gameState.getStackedCards(self.getAttachedTo()), gameState, modifiersQuerying, Race.URUK_HAI).size() > 0; + } + }, Side.FREE_PEOPLE, Phase.SKIRMISH)); } } 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 590b4f832..91c25eaad 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 @@ -1,4 +1,7 @@
+8 Feb. 2012
+- "Pillage of Rohan" should now correctly prevent FP player from playing Skirmish events and special abilities.
+
 7 Feb. 2012
 - Added sets 15 and 16.
 - Hunter cards now get proper bonuses.