diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_299.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_299.java new file mode 100644 index 000000000..a2ecd4652 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/shire/Card4_299.java @@ -0,0 +1,70 @@ +package com.gempukku.lotro.cards.set4.shire; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.effects.RemoveBurdenEffect; +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.actions.RequiredTriggerAction; +import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException; +import com.gempukku.lotro.logic.decisions.IntegerAwaitingDecision; +import com.gempukku.lotro.logic.effects.ChooseAndWoundCharactersEffect; +import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect; +import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; +import com.gempukku.lotro.logic.timing.Action; +import com.gempukku.lotro.logic.timing.EffectResult; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Two Towers + * Side: Free + * Culture: Shire + * Twilight Cost: 0 + * Type: Condition + * Game Text: Plays to your support area. When the fellowship moves from site 1T, remove up to 2 burdens. + * Skirmish: Discard this condition to wound a minion a Hobbit companion is skirmishing. + */ +public class Card4_299 extends AbstractPermanent { + public Card4_299() { + super(Side.FREE_PEOPLE, 0, CardType.CONDITION, Culture.SHIRE, Zone.SUPPORT, "Cliffs of Emyn Muil", true); + } + + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) { + if (effectResult.getType() == EffectResult.Type.WHEN_MOVE_FROM + && game.getGameState().getCurrentSiteNumber() == 1 && game.getGameState().getCurrentSiteBlock() == Block.TWO_TOWERS) { + final RequiredTriggerAction action = new RequiredTriggerAction(self); + action.appendEffect( + new PlayoutDecisionEffect(game.getUserFeedback(), self.getOwner(), + new IntegerAwaitingDecision(1, "How many burdens do you wish to remove?", 0, 2) { + @Override + public void decisionMade(String result) throws DecisionResultInvalidException { + int count = getValidatedResult(result); + for (int i = 0; i < count; i++) + action.appendEffect( + new RemoveBurdenEffect(self)); + } + })); + return Collections.singletonList(action); + } + return null; + } + + @Override + protected List getExtraPhaseActions(String playerId, LotroGame game, PhysicalCard self) { + if (PlayConditions.canUseFPCardDuringPhase(game.getGameState(), Phase.SKIRMISH, self)) { + ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new DiscardCardsFromPlayEffect(self, self)); + action.appendEffect( + new ChooseAndWoundCharactersEffect(action, playerId, 1, 1, Filters.inSkirmishAgainst(Filters.sameCard(self.getAttachedTo())))); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndWoundCharactersEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndWoundCharactersEffect.java index 9470c2471..89caf9f78 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndWoundCharactersEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/ChooseAndWoundCharactersEffect.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; @@ -13,11 +14,11 @@ public class ChooseAndWoundCharactersEffect extends ChooseActiveCardsEffect { private CostToEffectAction _action; private int _count; - public ChooseAndWoundCharactersEffect(CostToEffectAction action, String playerId, int minimum, int maximum, Filter... filters) { + public ChooseAndWoundCharactersEffect(CostToEffectAction action, String playerId, int minimum, int maximum, Filterable... filters) { this(action, playerId, minimum, maximum, 1, filters); } - public ChooseAndWoundCharactersEffect(CostToEffectAction action, String playerId, int minimum, int maximum, int count, Filter... filters) { + public ChooseAndWoundCharactersEffect(CostToEffectAction action, String playerId, int minimum, int maximum, int count, Filterable... filters) { super(action.getActionSource(), playerId, "Choose characters to wound", minimum, maximum, filters); _action = action; _count = count;