From 6de96558e01146b0c04c0865a24dbf0b598aaff7 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 30 Aug 2011 13:19:48 +0000 Subject: [PATCH] "Breeding Pit" --- .../gempukku/lotro/cards/PlayConditions.java | 2 +- .../lotro/cards/set1/isengard/Card1_122.java | 55 +++++++++++++++++++ .../gempukku/lotro/game/state/GameState.java | 4 ++ 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_122.java 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 1d290cc4e..3b09a9b4d 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 @@ -23,7 +23,7 @@ public class PlayConditions { public static boolean canPlayShadowCardDuringPhase(GameState gameState, ModifiersQuerying modifiersQuerying, Phase phase, PhysicalCard self) { return gameState.getCurrentPhase() == phase && (self.getZone() == Zone.HAND || self.getZone() == Zone.DECK) - && modifiersQuerying.getTwilightCost(gameState, self) <= gameState.getTwilightPool(); + && (phase == null || modifiersQuerying.getTwilightCost(gameState, self) <= gameState.getTwilightPool()); } public static boolean canPlayCompanionDuringSetup(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_122.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_122.java new file mode 100644 index 000000000..42cd7918a --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_122.java @@ -0,0 +1,55 @@ +package com.gempukku.lotro.cards.set1.isengard; + +import com.gempukku.lotro.cards.AbstractLotroCardBlueprint; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.effects.PutCardFromDiscardOnBottomOfDeckEffect; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Side; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.timing.Action; +import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.results.PlayCardResult; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Fellowship of the Ring + * Side: Shadow + * Culture: Isengard + * Twilight Cost: 1 + * Type: Event + * Game Text: Response: If you play an Uruk-hai, take all copies of that card in your discard pile and place them + * beneath your draw deck. + */ +public class Card1_122 extends AbstractLotroCardBlueprint { + public Card1_122() { + super(Side.SHADOW, CardType.EVENT, Culture.ISENGARD, "Breeding Pit", "1_122"); + addKeyword(Keyword.RESPONSE); + } + + @Override + public int getTwilightCost() { + return 1; + } + + @Override + public List getPlayableWhenActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (PlayConditions.played(game.getGameState(), game.getModifiersQuerying(), effectResult, Filters.keyword(Keyword.URUK_HAI)) + && PlayConditions.canPlayShadowCardDuringPhase(game.getGameState(), game.getModifiersQuerying(), null, self)) { + final PlayEventAction action = new PlayEventAction(self); + String playedCardName = ((PlayCardResult) effectResult).getPlayedCard().getBlueprint().getName(); + List cardsInDiscardWithSameName = Filters.filter(game.getGameState().getDiscard(playerId), game.getGameState(), game.getModifiersQuerying(), Filters.name(playedCardName)); + for (PhysicalCard physicalCard : cardsInDiscardWithSameName) + action.addEffect(new PutCardFromDiscardOnBottomOfDeckEffect(physicalCard)); + + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java index 9a9150d29..ca4fefca1 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/game/state/GameState.java @@ -306,6 +306,10 @@ public class GameState { return Collections.unmodifiableList(_decks.get(playerId)); } + public List getDiscard(String playerId) { + return Collections.unmodifiableList(_discards.get(playerId)); + } + public List getAdventureDeck(String playerId) { return Collections.unmodifiableList(_adventureDecks.get(playerId)); }