Fixing shadow cards to check they are payable for at the moment to play them.

This commit is contained in:
marcins78@gmail.com
2011-09-08 16:23:01 +00:00
parent 0547ebdd74
commit af72da3218
50 changed files with 103 additions and 83 deletions

View File

@@ -55,7 +55,7 @@ public class AbstractAlly extends AbstractLotroCardBlueprint {
}
private void appendPlayAllyActions(List<Action> actions, String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self))
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self))
actions.add(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -32,7 +32,8 @@ public abstract class AbstractAttachable extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return PlayConditions.checkUniqueness(game.getGameState(), game.getModifiersQuerying(), self)
return (self.getBlueprint().getSide() == Side.FREE_PEOPLE || PlayConditions.canPayForShadowCard(game, self, twilightModifier))
&& PlayConditions.checkUniqueness(game.getGameState(), game.getModifiersQuerying(), self)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), getValidTargetFilter(playerId, game, self));
}
@@ -40,8 +41,8 @@ public abstract class AbstractAttachable extends AbstractLotroCardBlueprint {
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
List<Action> actions = new LinkedList<Action>();
Side side = self.getBlueprint().getSide();
if (((side == Side.FREE_PEOPLE && PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self))
|| (side == Side.SHADOW && PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)))
if (((side == Side.FREE_PEOPLE && PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self))
|| (side == Side.SHADOW && PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)))
&& checkPlayRequirements(playerId, game, self, 0)) {
actions.add(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -45,7 +45,7 @@ public abstract class AbstractCompanion extends AbstractLotroCardBlueprint {
}
private void appendPlayCompanionActions(List<Action> actions, String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self))
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self))
actions.add(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -42,8 +42,8 @@ public abstract class AbstractEvent extends AbstractLotroCardBlueprint {
public final List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (_playableInPhases != null) {
Side side = self.getBlueprint().getSide();
if ((side == Side.FREE_PEOPLE && PlayConditions.canPlayFPCardDuringPhase(game, _playableInPhases, self))
|| (side == Side.SHADOW && PlayConditions.canPlayShadowCardDuringPhase(game, _playableInPhases, self))) {
if ((side == Side.FREE_PEOPLE && PlayConditions.canPlayCardDuringPhase(game, _playableInPhases, self))
|| (side == Side.SHADOW && PlayConditions.canPlayCardDuringPhase(game, _playableInPhases, self))) {
if (checkPlayRequirements(playerId, game, self, 0))
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -31,7 +31,7 @@ public class AbstractMinion extends AbstractLotroCardBlueprint {
}
private void appendPlayMinionActions(List<Action> actions, String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self))
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self))
actions.add(getPlayCardAction(playerId, game, self, 0));
}
@@ -51,7 +51,7 @@ public class AbstractMinion extends AbstractLotroCardBlueprint {
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return PlayConditions.checkUniqueness(game.getGameState(), game.getModifiersQuerying(), self)
&& game.getGameState().getTwilightPool() >= game.getModifiersQuerying().getTwilightCost(game.getGameState(), self) + twilightModifier;
&& PlayConditions.canPayForShadowCard(game, self, twilightModifier);
}
public Action getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {

View File

@@ -24,9 +24,8 @@ public class PlayConditions {
&& zone != Zone.ATTACHED && zone != Zone.ADVENTURE_PATH;
}
public static boolean canPlayFPCardDuringPhase(LotroGame game, Phase phase, PhysicalCard self) {
return (phase == null || game.getGameState().getCurrentPhase() == phase) && self.getZone() == Zone.HAND
&& (!self.getBlueprint().isUnique() || !Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.name(self.getBlueprint().getName())));
public static boolean canPayForShadowCard(LotroGame game, PhysicalCard self, int twilightModifier) {
return game.getModifiersQuerying().getTwilightCost(game.getGameState(), self) + twilightModifier <= game.getGameState().getTwilightPool();
}
private static boolean containsPhase(Phase[] phases, Phase phase) {
@@ -37,21 +36,15 @@ public class PlayConditions {
return false;
}
public static boolean canPlayFPCardDuringPhase(LotroGame game, Phase[] phases, PhysicalCard self) {
return (phases == null || containsPhase(phases, game.getGameState().getCurrentPhase()))
public static boolean canPlayCardDuringPhase(LotroGame game, Phase phase, PhysicalCard self) {
return (phase == null || game.getGameState().getCurrentPhase() == phase)
&& self.getZone() == Zone.HAND
&& (!self.getBlueprint().isUnique() || !Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.name(self.getBlueprint().getName())));
}
public static boolean canPlayShadowCardDuringPhase(LotroGame game, Phase phase, PhysicalCard self) {
return (phase == null || game.getGameState().getCurrentPhase() == phase) && self.getZone() == Zone.HAND
&& game.getModifiersQuerying().getTwilightCost(game.getGameState(), self) <= game.getGameState().getTwilightPool()
&& (!self.getBlueprint().isUnique() || !Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.name(self.getBlueprint().getName())));
}
public static boolean canPlayShadowCardDuringPhase(LotroGame game, Phase[] phases, PhysicalCard self) {
return (phases == null || containsPhase(phases, game.getGameState().getCurrentPhase())) && self.getZone() == Zone.HAND
&& game.getModifiersQuerying().getTwilightCost(game.getGameState(), self) <= game.getGameState().getTwilightPool()
public static boolean canPlayCardDuringPhase(LotroGame game, Phase[] phases, PhysicalCard self) {
return (phases == null || containsPhase(phases, game.getGameState().getCurrentPhase()))
&& self.getZone() == Zone.HAND
&& (!self.getBlueprint().isUnique() || !Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.name(self.getBlueprint().getName())));
}

View File

@@ -52,7 +52,7 @@ public class Card1_016 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.<Action>singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -48,7 +48,7 @@ public class Card1_020 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
return Collections.<Action>singletonList(getPlayCardAction(playerId, game, self, 0));
}
return null;

View File

@@ -44,7 +44,7 @@ public class Card1_021 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}
return null;

View File

@@ -49,7 +49,7 @@ public class Card1_024 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
return Collections.<Action>singletonList(getPlayCardAction(playerId, game, self, 0));
}
return null;

View File

@@ -47,7 +47,7 @@ public class Card1_043 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -51,7 +51,7 @@ public class Card1_046 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -47,7 +47,7 @@ public class Card1_054 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -54,7 +54,7 @@ public class Card1_055 extends AbstractLotroCardBlueprint {
public List<? extends Action> getPhaseActions(final String playerId, final LotroGame game, PhysicalCard self) {
List<Action> actions = new LinkedList<Action>();
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self))
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self))
actions.add(getPlayCardAction(playerId, game, self, 0));
if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.MANEUVER, self)

View File

@@ -51,7 +51,7 @@ public class Card1_059 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(final String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -45,7 +45,7 @@ public class Card1_061 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}
return null;

View File

@@ -50,7 +50,7 @@ public class Card1_073 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(final String playerId, final LotroGame game, final PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -49,7 +49,7 @@ public class Card1_079 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0))
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
return null;

View File

@@ -50,7 +50,7 @@ public class Card1_100 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -46,7 +46,7 @@ public class Card1_105 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self))
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self))
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.MANEUVER, self)

View File

@@ -42,7 +42,8 @@ public class Card1_120 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.URUK_HAI), Filters.canExert());
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.URUK_HAI), Filters.canExert());
}
@Override
@@ -56,7 +57,7 @@ public class Card1_120 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
final GameState gameState = game.getGameState();
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -1,6 +1,7 @@
package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.cards.effects.ExertCharacterEffect;
@@ -34,7 +35,8 @@ public class Card1_121 extends AbstractEvent {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI), Filters.canExert());
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI), Filters.canExert());
}
@Override

View File

@@ -6,7 +6,6 @@ import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.PutCardFromDiscardOnBottomOfDeckEffect;
import com.gempukku.lotro.common.Culture;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.PhysicalCard;
@@ -40,7 +39,7 @@ public class Card1_122 extends AbstractResponseEvent {
@Override
public List<? extends Action> getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) {
if (PlayConditions.played(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.and(Filters.keyword(Keyword.URUK_HAI), Filters.owner(playerId)))
&& PlayConditions.canPlayShadowCardDuringPhase(game, (Phase) null, self)) {
&& PlayConditions.canPayForShadowCard(game, self, 0)) {
final PlayEventAction action = new PlayEventAction(self);
String playedCardName = ((PlayCardResult) effectResult).getPlayedCard().getBlueprint().getName();
List<PhysicalCard> cardsInDiscardWithSameName = Filters.filter(game.getGameState().getDiscard(playerId), game.getGameState(), game.getModifiersQuerying(), Filters.name(playedCardName));

View File

@@ -1,6 +1,7 @@
package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.ChooseAndExertCharacterEffect;
import com.gempukku.lotro.common.*;
@@ -33,7 +34,8 @@ public class Card1_123 extends AbstractEvent {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert())
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert())
&& Filters.countActive(game.getGameState(), game.getModifiersQuerying(), Filters.type(CardType.COMPANION)) >= 5;
}

View File

@@ -1,6 +1,7 @@
package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.AddBurdenEffect;
import com.gempukku.lotro.cards.effects.ChoiceEffect;
@@ -38,7 +39,8 @@ public class Card1_124 extends AbstractEvent {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert());
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert());
}
@Override

View File

@@ -36,7 +36,8 @@ public class Card1_125 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
}
@Override
@@ -46,7 +47,7 @@ public class Card1_125 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -1,6 +1,7 @@
package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect;
import com.gempukku.lotro.common.Culture;
@@ -33,7 +34,7 @@ public class Card1_126 extends AbstractEvent {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return true;
return PlayConditions.canPayForShadowCard(game, self, twilightModifier);
}
@Override

View File

@@ -1,6 +1,7 @@
package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.cards.modifiers.StrengthModifier;
@@ -39,7 +40,8 @@ public class Card1_128 extends AbstractEvent {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
}
@Override

View File

@@ -38,7 +38,8 @@ public class Card1_129 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI), Filters.canExert());
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI), Filters.canExert());
}
@Override
@@ -51,7 +52,7 @@ public class Card1_129 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -35,7 +35,7 @@ public class Card1_130 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return true;
return PlayConditions.canPayForShadowCard(game, self, twilightModifier);
}
@Override
@@ -45,7 +45,7 @@ public class Card1_130 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}
return null;

View File

@@ -1,6 +1,7 @@
package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect;
import com.gempukku.lotro.cards.modifiers.CancelStrengthBonusModifier;
@@ -30,7 +31,8 @@ public class Card1_132 extends AbstractEvent {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
}
@Override

View File

@@ -40,7 +40,7 @@ public class Card1_133 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return true;
return PlayConditions.canPayForShadowCard(game, self, twilightModifier);
}
@Override
@@ -50,7 +50,7 @@ public class Card1_133 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, final PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -41,7 +41,8 @@ public class Card1_134 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert())
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert())
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.type(CardType.SITE), Filters.not(Filters.hasAttached(Filters.name("Saruman's Chill"))));
}
@@ -55,7 +56,7 @@ public class Card1_134 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -44,7 +44,8 @@ public class Card1_135 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert())
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert())
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.type(CardType.SITE), Filters.not(Filters.hasAttached(Filters.name("Saruman's Frost"))));
}
@@ -58,7 +59,7 @@ public class Card1_135 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -1,6 +1,7 @@
package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.ChooseAndExertCharacterEffect;
import com.gempukku.lotro.common.*;
@@ -30,7 +31,8 @@ public class Card1_136 extends AbstractEvent {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert());
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert());
}
@Override

View File

@@ -1,6 +1,7 @@
package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.ChoiceEffect;
import com.gempukku.lotro.cards.effects.ChooseAndExertCharacterEffect;
@@ -38,7 +39,8 @@ public class Card1_137 extends AbstractEvent {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI), Filters.canExert());
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI), Filters.canExert());
}
@Override

View File

@@ -45,7 +45,8 @@ public class Card1_138 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert());
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert());
}
@Override
@@ -58,7 +59,7 @@ public class Card1_138 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -1,6 +1,7 @@
package com.gempukku.lotro.cards.set1.isengard;
import com.gempukku.lotro.cards.AbstractEvent;
import com.gempukku.lotro.cards.PlayConditions;
import com.gempukku.lotro.cards.actions.PlayEventAction;
import com.gempukku.lotro.cards.effects.AddUntilEndOfPhaseModifierEffect;
import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect;
@@ -38,7 +39,7 @@ public class Card1_139 extends AbstractEvent {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return true;
return PlayConditions.canPayForShadowCard(game, self, twilightModifier);
}
@Override

View File

@@ -46,7 +46,8 @@ public class Card1_140 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert());
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ISENGARD), Filters.type(CardType.MINION), Filters.canExert());
}
@Override
@@ -59,7 +60,7 @@ public class Card1_140 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -35,7 +35,8 @@ public class Card1_141 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.or(Filters.keyword(Keyword.URUK_HAI), Filters.name("Saruman")));
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.or(Filters.keyword(Keyword.URUK_HAI), Filters.name("Saruman")));
}
@Override
@@ -45,7 +46,7 @@ public class Card1_141 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -39,7 +39,8 @@ public class Card1_142 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
}
@Override
@@ -49,7 +50,7 @@ public class Card1_142 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -38,7 +38,7 @@ public class Card1_144 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return true;
return PlayConditions.canPayForShadowCard(game, self, twilightModifier);
}
@Override
@@ -48,7 +48,7 @@ public class Card1_144 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -37,7 +37,7 @@ public class Card1_157 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return true;
return PlayConditions.canPayForShadowCard(game, self, twilightModifier);
}
@Override
@@ -47,7 +47,7 @@ public class Card1_157 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}
return null;

View File

@@ -40,7 +40,8 @@ public class Card1_159 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI));
}
@Override
@@ -50,7 +51,7 @@ public class Card1_159 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -42,7 +42,8 @@ public class Card1_162 extends AbstractLotroCardBlueprint {
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI), Filters.canExert());
return PlayConditions.canPayForShadowCard(game, self, twilightModifier)
&& Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.keyword(Keyword.URUK_HAI), Filters.canExert());
}
@Override
@@ -55,7 +56,7 @@ public class Card1_162 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayShadowCardDuringPhase(game, Phase.SHADOW, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.SHADOW, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -16,7 +16,7 @@ import com.gempukku.lotro.logic.modifiers.ModifiersQuerying;
* Side: Shadow
* Culture: Moria
* Twilight Cost: 4
* Type: Minion <EFBFBD> Orc
* Type: Minion o Orc
* Strength: 9
* Vitality: 2
* Site: 4

View File

@@ -48,7 +48,7 @@ public class Card1_300 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}
return null;

View File

@@ -46,7 +46,7 @@ public class Card1_305 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}
return null;

View File

@@ -54,7 +54,7 @@ public class Card1_316 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}

View File

@@ -48,7 +48,7 @@ public class Card1_318 extends AbstractLotroCardBlueprint {
@Override
public List<? extends Action> getPhaseActions(String playerId, LotroGame game, PhysicalCard self) {
if (PlayConditions.canPlayFPCardDuringPhase(game, Phase.FELLOWSHIP, self)
if (PlayConditions.canPlayCardDuringPhase(game, Phase.FELLOWSHIP, self)
&& checkPlayRequirements(playerId, game, self, 0)) {
return Collections.singletonList(getPlayCardAction(playerId, game, self, 0));
}