From 402cc0c9cbd92588057c40987b1ccff03e8e20e9 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 30 Aug 2011 21:29:48 +0000 Subject: [PATCH] Another bunch of fixes. --- .../java/com/gempukku/lotro/cards/PlayConditions.java | 4 ++++ .../com/gempukku/lotro/cards/set1/elven/Card1_054.java | 3 +-- .../com/gempukku/lotro/logic/timing/TurnProcedure.java | 10 +++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java index 95946569e..371e57599 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/PlayConditions.java @@ -26,6 +26,10 @@ public class PlayConditions { && modifiersQuerying.getTwilightCost(gameState, self) <= gameState.getTwilightPool(); } + public static boolean canUseFPCardDuringPhase(GameState gameState, Phase phase, PhysicalCard self) { + return (phase == null || gameState.getCurrentPhase() == phase) && (self.getZone() == Zone.FREE_SUPPORT || self.getZone() == Zone.FREE_CHARACTERS); + } + public static boolean canUseShadowCardDuringPhase(GameState gameState, Phase phase, PhysicalCard self, int twilightCost) { return (phase == null || gameState.getCurrentPhase() == phase) && (self.getZone() == Zone.SHADOW_SUPPORT || self.getZone() == Zone.SHADOW_CHARACTERS) && twilightCost <= gameState.getTwilightPool(); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_054.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_054.java index 1952e23d5..c836dc6e7 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_054.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/elven/Card1_054.java @@ -42,8 +42,7 @@ public class Card1_054 extends AbstractLotroCardBlueprint { return Collections.singletonList(action); } - if (self.getZone() == Zone.FREE_SUPPORT - && Filters.filter(game.getGameState().getHand(playerId), game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.ELVEN)).size() > 0) { + if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self)) { final CostToEffectAction action = new CostToEffectAction(self, "Reveal an ELVEN card from hand and place it beneath your draw deck"); action.addCost( new ChooseAnyCardEffect(playerId, "Choose ELVEN card", Filters.zone(Zone.HAND), Filters.owner(playerId), Filters.culture(Culture.ELVEN)) { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java index 906bb9147..f0d5b06a3 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/TurnProcedure.java @@ -49,10 +49,14 @@ public class TurnProcedure { Effect effect = _actionStack.getNextEffect(); if (effect != null) { EffectResult effectResult = effect.getRespondableResult(); - if (effectResult != null) + if (effectResult != null) { _actionStack.stackAction(new PlayOutRecognizableEffect(effect)); - else - effect.playEffect(_game); + } else { + if (effect.canPlayEffect(_game)) + effect.playEffect(_game); + else + effect.setFailed(); + } } } }