From ddd3b6c905c2192f5e6adc7ecc12a53a6d53c0cd Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Thu, 27 Oct 2011 12:06:51 +0000 Subject: [PATCH] "Out of Darkness" --- .../cards/actions/SubCostToEffectAction.java | 65 +++++++++++++++++++ .../lotro/cards/set7/dwarven/Card7_011.java | 63 ++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/SubCostToEffectAction.java create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/dwarven/Card7_011.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/SubCostToEffectAction.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/SubCostToEffectAction.java new file mode 100644 index 000000000..e8062d053 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/SubCostToEffectAction.java @@ -0,0 +1,65 @@ +package com.gempukku.lotro.cards.actions; + +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.actions.AbstractCostToEffectAction; +import com.gempukku.lotro.logic.timing.Action; +import com.gempukku.lotro.logic.timing.Effect; + +public class SubCostToEffectAction extends AbstractCostToEffectAction { + private Action _action; + + public SubCostToEffectAction(Action action) { + _action = action; + } + + @Override + public PhysicalCard getActionAttachedToCard() { + return _action.getActionAttachedToCard(); + } + + @Override + public PhysicalCard getActionSource() { + return _action.getActionSource(); + } + + @Override + public Phase getActionTimeword() { + return _action.getActionTimeword(); + } + + @Override + public String getPerformingPlayer() { + return _action.getPerformingPlayer(); + } + + @Override + public void setActionTimeword(Phase phase) { + _action.setActionTimeword(phase); + } + + @Override + public void setPerformingPlayer(String playerId) { + _action.setPerformingPlayer(playerId); + } + + @Override + public String getText(LotroGame game) { + return _action.getText(game); + } + + @Override + public Effect nextEffect(LotroGame game) { + if (!isCostFailed()) { + Effect cost = getNextCost(); + if (cost != null) + return cost; + + Effect effect = getNextEffect(); + if (effect != null) + return effect; + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/dwarven/Card7_011.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/dwarven/Card7_011.java new file mode 100644 index 000000000..3a2b93dba --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/dwarven/Card7_011.java @@ -0,0 +1,63 @@ +package com.gempukku.lotro.cards.set7.dwarven; + +import com.gempukku.lotro.cards.AbstractEvent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.actions.SubCostToEffectAction; +import com.gempukku.lotro.cards.effects.ExertCharactersEffect; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Race; +import com.gempukku.lotro.common.Side; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.decisions.MultipleChoiceAwaitingDecision; +import com.gempukku.lotro.logic.effects.ChooseActiveCardEffect; +import com.gempukku.lotro.logic.effects.DrawCardEffect; +import com.gempukku.lotro.logic.effects.PlayoutDecisionEffect; +import com.gempukku.lotro.logic.modifiers.StrengthModifier; + +/** + * Set: The Return of the King + * Side: Free + * Culture: Dwarven + * Twilight Cost: 1 + * Type: Event • Skirmish + * Game Text: Make a Dwarf strength +2. You may also exert that Dwarf to draw 2 cards. + */ +public class Card7_011 extends AbstractEvent { + public Card7_011() { + super(Side.FREE_PEOPLE, 1, Culture.DWARVEN, "Out of Darkness", Phase.SKIRMISH); + } + + @Override + public PlayEventAction getPlayCardAction(final String playerId, LotroGame game, final PhysicalCard self, int twilightModifier) { + final PlayEventAction action = new PlayEventAction(self); + action.appendEffect( + new ChooseActiveCardEffect(self, playerId, "Choose a Dwarf", Race.DWARF) { + @Override + protected void cardSelected(final LotroGame game, final PhysicalCard card) { + game.getModifiersEnvironment().addUntilEndOfPhaseModifier( + new StrengthModifier(self, card, 2), Phase.SKIRMISH); + if (PlayConditions.canExert(self, game, card)) { + action.appendEffect( + new PlayoutDecisionEffect(game.getUserFeedback(), playerId, + new MultipleChoiceAwaitingDecision(1, "Do you want to exert that Dwarf to draw 2 cards?", new String[]{"Yes", "No"}) { + @Override + protected void validDecisionMade(int index, String result) { + if (index == 0) { + SubCostToEffectAction subAction = new SubCostToEffectAction(action); + subAction.appendCost( + new ExertCharactersEffect(self, card)); + subAction.appendEffect( + new DrawCardEffect(playerId, 2)); + game.getActionsEnvironment().addActionToStack(subAction); + } + } + })); + } + } + }); + return action; + } +}