From 976f997164fc52860e1a4a86d35a6b81a7f82e02 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 15 Nov 2011 15:25:07 +0000 Subject: [PATCH] "Great Day, Great Hour" --- .../lotro/cards/set10/dwarven/Card10_001.java | 56 +++++++++++++++++++ .../lotro/cards/set8/gondor/Card8_033.java | 3 +- .../lotro/cards/set8/shire/Card8_115.java | 3 +- .../lotro/cards/set8/shire/Card8_116.java | 1 + 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/dwarven/Card10_001.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/dwarven/Card10_001.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/dwarven/Card10_001.java new file mode 100644 index 000000000..3a6da2937 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set10/dwarven/Card10_001.java @@ -0,0 +1,56 @@ +package com.gempukku.lotro.cards.set10.dwarven; + +import com.gempukku.lotro.cards.AbstractResponseEvent; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.effects.ExertCharactersEffect; +import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; +import com.gempukku.lotro.common.*; +import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.game.state.LotroGame; +import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.results.PlayCardResult; + +import java.util.Collections; +import java.util.List; + +/** + * Set: Mount Doom + * Side: Free + * Culture: Dwarven + * Twilight Cost: 3 + * Type: Event • Response + * Game Text: If an opponent plays a minion, exert a Dwarf who is damage +X to exert that minion X times. + */ +public class Card10_001 extends AbstractResponseEvent { + public Card10_001() { + super(Side.FREE_PEOPLE, 3, Culture.DWARVEN, "Great Day, Great Hour"); + } + + @Override + public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier, boolean ignoreRoamingPenalty) { + return super.checkPlayRequirements(playerId, game, self, twilightModifier, ignoreRoamingPenalty) + && PlayConditions.canExert(self, game, Race.DWARF, Keyword.DAMAGE); + } + + @Override + public List getOptionalAfterActions(String playerId, final LotroGame game, EffectResult effectResult, final PhysicalCard self) { + if (PlayConditions.played(game, effectResult, CardType.MINION)) { + PlayCardResult playResult = (PlayCardResult) effectResult; + final PhysicalCard playedMinion = playResult.getPlayedCard(); + final PlayEventAction action = new PlayEventAction(self); + action.appendCost( + new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.DWARF, Keyword.DAMAGE) { + @Override + protected void forEachCardExertedCallback(PhysicalCard character) { + int damageCount = game.getModifiersQuerying().getKeywordCount(game.getGameState(), character, Keyword.DAMAGE); + for (int i = 0; i < damageCount; i++) + action.appendEffect( + new ExertCharactersEffect(self, playedMinion)); + } + }); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/gondor/Card8_033.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/gondor/Card8_033.java index fcbdc1172..f0e3d36dd 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/gondor/Card8_033.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/gondor/Card8_033.java @@ -36,7 +36,8 @@ public class Card8_033 extends AbstractResponseEvent { @Override public List getOptionalBeforeActions(String playerId, LotroGame game, Effect effect, PhysicalCard self) { - if (PlayConditions.isGettingKilled(effect, game, Culture.GONDOR, Race.WRAITH)) { + if (PlayConditions.isGettingKilled(effect, game, Culture.GONDOR, Race.WRAITH) + && checkPlayRequirements(playerId, game, self, 0, false)) { KillEffect killEffect = (KillEffect) effect; Collection killedWraiths = Filters.filter(killEffect.getCharactersToBeKilled(), game.getGameState(), game.getModifiersQuerying(), Culture.GONDOR, Race.WRAITH); List actions = new LinkedList(); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_115.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_115.java index 96969e70d..8acae4444 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_115.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_115.java @@ -35,7 +35,8 @@ public class Card8_115 extends AbstractResponseEvent { @Override public List getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (effectResult.getType() == EffectResult.Type.EXERT - && PlayConditions.canExert(self, game, Filters.unboundCompanion, Race.HOBBIT)) { + && PlayConditions.canExert(self, game, Filters.unboundCompanion, Race.HOBBIT) + && checkPlayRequirements(playerId, game, self, 0, false)) { ExertResult exertResult = (ExertResult) effectResult; final Collection exertedMinions = Filters.filter(exertResult.getExertedCards(), game.getGameState(), game.getModifiersQuerying(), CardType.MINION); if (exertedMinions.size() > 0) { diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_116.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_116.java index 490e9be0d..dfc9dc6c0 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_116.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_116.java @@ -34,6 +34,7 @@ public class Card8_116 extends AbstractResponseEvent { @Override public List getOptionalAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { if (effectResult.getType() == EffectResult.Type.WHEN_FELLOWSHIP_MOVES + && checkPlayRequirements(playerId, game, self, 0, false) && game.getGameState().getCurrentPhase() == Phase.REGROUP && PlayConditions.canExert(self, game, Filters.unboundCompanion, Race.HOBBIT)) { PlayEventAction action = new PlayEventAction(self);