From 60b64047532d1c6523bbfbca58574d8716245ecb Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 6 Oct 2011 08:59:48 +0000 Subject: [PATCH] "Over the Isen" --- .../lotro/cards/set4/dunland/Card4_031.java | 57 +++++++++++++++++++ .../com/gempukku/lotro/filters/Filters.java | 4 ++ 2 files changed, 61 insertions(+) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_031.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_031.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_031.java new file mode 100644 index 000000000..91dbb6132 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/dunland/Card4_031.java @@ -0,0 +1,57 @@ +package com.gempukku.lotro.cards.set4.dunland; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; +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.AssignmentEffect; +import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; +import com.gempukku.lotro.logic.timing.Action; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Two Towers + * Side: Shadow + * Culture: Dunland + * Twilight Cost: 0 + * Type: Condition + * Game Text: Plays to your support area. Assignment: Spot a site you control and remove (2) to assign a [DUNLAND] Man + * to an unbound companion. + */ +public class Card4_031 extends AbstractPermanent { + public Card4_031() { + super(Side.SHADOW, 0, CardType.CONDITION, Culture.DUNLAND, Zone.SUPPORT, "Over the Isen", true); + } + + @Override + protected List getExtraPhaseActions(final String playerId, LotroGame game, final PhysicalCard self) { + if (PlayConditions.canUseShadowCardDuringPhase(game.getGameState(), Phase.ASSIGNMENT, self, 2) + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.siteControlled(playerId))) { + final ActivateCardAction action = new ActivateCardAction(self, Keyword.ASSIGNMENT); + action.appendCost( + new RemoveTwilightEffect(2)); + action.appendEffect( + new ChooseActiveCardEffect(self, playerId, "Choose DUNLAND Man", Filters.culture(Culture.DUNLAND), Filters.race(Race.MAN), Filters.canBeAssignedToSkirmish()) { + @Override + protected void cardSelected(final PhysicalCard dunlandMan) { + action.insertEffect( + new ChooseActiveCardEffect(self, playerId, "Choose unbound companion", Filters.unboundCompanion(), Filters.canBeAssignedToSkirmish()) { + @Override + protected void cardSelected(PhysicalCard unboundCompanion) { + action.insertEffect( + new AssignmentEffect(playerId, unboundCompanion, Collections.singletonList(dunlandMan), "Over the Isen effect")); + } + }); + } + }); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java index 194609e4d..d31324295 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/filters/Filters.java @@ -439,6 +439,10 @@ public class Filters { }; } + public static Filter unboundCompanion() { + return Filters.and(Filters.type(CardType.COMPANION), Filters.not(Filters.keyword(Keyword.RING_BOUND))); + } + private static class SpotFilterCardInPlayVisitor implements PhysicalCardVisitor { private GameState _gameState; private ModifiersQuerying _modifiersQuerying;