From 2eefdb6fdc88bce3d1acc497447002c80a60f657 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sat, 15 Oct 2011 21:28:31 +0000 Subject: [PATCH] "Supplies of the Mark" --- .../choose/ChooseCardsFromHandEffect.java | 3 +- .../lotro/cards/set4/rohan/Card4_290.java | 56 +++++++++++++++++++ .../ChooseAndHealCharactersEffect.java | 7 ++- 3 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_290.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseCardsFromHandEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseCardsFromHandEffect.java index a5183dc7d..13ba1d017 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseCardsFromHandEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/choose/ChooseCardsFromHandEffect.java @@ -1,5 +1,6 @@ package com.gempukku.lotro.cards.effects.choose; +import com.gempukku.lotro.common.Filterable; import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -18,7 +19,7 @@ public abstract class ChooseCardsFromHandEffect extends AbstractEffect { private final int _maximum; private final Filter _filter; - public ChooseCardsFromHandEffect(String playerId, int minimum, int maximum, Filter... filters) { + public ChooseCardsFromHandEffect(String playerId, int minimum, int maximum, Filterable... filters) { _playerId = playerId; _minimum = minimum; _maximum = maximum; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_290.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_290.java new file mode 100644 index 000000000..b360a0b22 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/rohan/Card4_290.java @@ -0,0 +1,56 @@ +package com.gempukku.lotro.cards.set4.rohan; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.PutCardFromHandOnBottomOfDeckEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseCardsFromHandEffect; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.filters.Filters; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.actions.ActivateCardAction; +import com.gempukku.lotro.logic.effects.AddTwilightEffect; +import com.gempukku.lotro.logic.effects.ChooseAndHealCharactersEffect; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +/** + * Set: The Two Towers + * Side: Free + * Culture: Rohan + * Twilight Cost: 0 + * Type: Condition + * Game Text: Plays to your support area. Fellowship: Add (2) and place a villager from hand beneath your draw deck + * to heal a [ROHAN] ally. + */ +public class Card4_290 extends AbstractPermanent { + public Card4_290() { + super(Side.FREE_PEOPLE, 0, CardType.CONDITION, Culture.ROHAN, Zone.SUPPORT, "Supplies of the Mark"); + } + + @Override + protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.FELLOWSHIP, self) + && Filters.filter(game.getGameState().getHand(playerId), game.getGameState(), game.getModifiersQuerying(), Keyword.VILLAGER).size() > 0) { + final ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new AddTwilightEffect(self, 2)); + action.appendCost( + new ChooseCardsFromHandEffect(playerId, 1, 1, Keyword.VILLAGER) { + @Override + protected void cardsSelected(LotroGame game, Collection selectedCards) { + for (PhysicalCard selectedCard : selectedCards) + action.insertCost( + new PutCardFromHandOnBottomOfDeckEffect(selectedCard)); + } + }); + action.appendEffect( + new ChooseAndHealCharactersEffect(action, playerId, 1, 1, Culture.ROHAN, CardType.ALLY)); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndHealCharactersEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndHealCharactersEffect.java index 87357eef0..f304851ae 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndHealCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndHealCharactersEffect.java @@ -1,5 +1,6 @@ package com.gempukku.lotro.logic.effects; +import com.gempukku.lotro.common.Filterable; import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -16,15 +17,15 @@ public class ChooseAndHealCharactersEffect extends ChooseActiveCardsEffect { private String _playerId; private int _count; - public ChooseAndHealCharactersEffect(Action action, String playerId, Filter... filters) { + public ChooseAndHealCharactersEffect(Action action, String playerId, Filterable... filters) { this(action, playerId, 1, 1, filters); } - public ChooseAndHealCharactersEffect(Action action, String playerId, int minimum, int maximum, Filter... filters) { + public ChooseAndHealCharactersEffect(Action action, String playerId, int minimum, int maximum, Filterable... filters) { this(action, playerId, minimum, maximum, 1, filters); } - public ChooseAndHealCharactersEffect(Action action, String playerId, int minimum, int maximum, int count, Filter... filters) { + public ChooseAndHealCharactersEffect(Action action, String playerId, int minimum, int maximum, int count, Filterable... filters) { super(action.getActionSource(), playerId, "Choose character(s) to heal", minimum, maximum, filters); _action = action; _playerId = playerId;