diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/PlayEventAction.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/PlayEventAction.java index 6f33f8bc9..48c5a3241 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/PlayEventAction.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/actions/PlayEventAction.java @@ -153,9 +153,7 @@ public class PlayEventAction extends AbstractCostToEffectAction implements Disco _cardDiscarded = true; if (_eventPlayed.getZone() != null) game.getGameState().removeCardsFromZone(_eventPlayed.getOwner(), Collections.singleton(_eventPlayed)); - final Zone targetZone = _playCardEffect.getPlayEventResult().getTargetZone(); - if (targetZone != null) - game.getGameState().addCardToZone(game, _eventPlayed, targetZone); + game.getGameState().addCardToZone(game, _eventPlayed, Zone.DISCARD); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/CancelEventEffect.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/CancelEventEffect.java index 7ee883d35..958705cb5 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/CancelEventEffect.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/effects/CancelEventEffect.java @@ -1,11 +1,11 @@ package com.gempukku.lotro.cards.effects; +import com.gempukku.lotro.cards.results.PlayEventResult; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.GameUtils; import com.gempukku.lotro.logic.timing.AbstractEffect; import com.gempukku.lotro.logic.timing.Effect; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; public class CancelEventEffect extends AbstractEffect { private PhysicalCard _source; diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/PlayEventResult.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/results/PlayEventResult.java similarity index 56% rename from gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/PlayEventResult.java rename to gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/results/PlayEventResult.java index 021d5d6c1..ed4e72d6d 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/results/PlayEventResult.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/results/PlayEventResult.java @@ -1,26 +1,21 @@ -package com.gempukku.lotro.logic.timing.results; +package com.gempukku.lotro.cards.results; +import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.common.Zone; import com.gempukku.lotro.game.PhysicalCard; +import com.gempukku.lotro.logic.timing.results.PlayCardResult; public class PlayEventResult extends PlayCardResult { private boolean _eventCancelled; + private PlayEventAction _action; private boolean _requiresRanger; - private Zone _targetZone = Zone.DISCARD; - public PlayEventResult(Zone playedFrom, PhysicalCard playedCard, boolean requiresRanger) { + public PlayEventResult(PlayEventAction action, Zone playedFrom, PhysicalCard playedCard, boolean requiresRanger) { super(playedFrom, playedCard, null, null); + _action = action; _requiresRanger = requiresRanger; } - public void setTargetZone(Zone zone) { - _targetZone = zone; - } - - public Zone getTargetZone() { - return _targetZone; - } - public boolean isRequiresRanger() { return _requiresRanger; } @@ -32,4 +27,8 @@ public class PlayEventResult extends PlayCardResult { public boolean isEventCancelled() { return _eventCancelled; } + + public PlayEventAction getPlayEventAction() { + return _action; + } } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_115.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_115.java index bb7ef6fe4..7c37cc327 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_115.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/gondor/Card1_115.java @@ -4,12 +4,12 @@ import com.gempukku.lotro.cards.AbstractResponseOldEvent; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.CancelEventEffect; +import com.gempukku.lotro.cards.results.PlayEventResult; import com.gempukku.lotro.common.*; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.Skirmish; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; import java.util.Collections; import java.util.List; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_161.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_161.java index 0cbe5fbe0..6cc3c3fa2 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_161.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_161.java @@ -7,13 +7,13 @@ import com.gempukku.lotro.cards.effects.CancelEventEffect; import com.gempukku.lotro.cards.effects.ChoiceEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndDiscardCardsFromPlayEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; +import com.gempukku.lotro.cards.results.PlayEventResult; 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.timing.Effect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; import java.util.Collections; import java.util.LinkedList; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_194.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_194.java index fe5b0f1e7..f3727687b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_194.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/moria/Card1_194.java @@ -5,6 +5,7 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; import com.gempukku.lotro.cards.effects.CancelEventEffect; +import com.gempukku.lotro.cards.results.PlayEventResult; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -12,7 +13,6 @@ import com.gempukku.lotro.common.Side; 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.PlayEventResult; import java.util.Collections; import java.util.List; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_261.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_261.java index 041483116..edbeda6ad 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_261.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_261.java @@ -6,6 +6,7 @@ import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.CancelEventEffect; import com.gempukku.lotro.cards.effects.SelfExertEffect; import com.gempukku.lotro.cards.modifiers.RoamingPenaltyModifier; +import com.gempukku.lotro.cards.results.PlayEventResult; import com.gempukku.lotro.common.*; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; @@ -13,7 +14,6 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.ActivateCardAction; import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; import java.util.Collections; import java.util.List; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_275.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_275.java index 1387f5f09..02371445f 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_275.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_275.java @@ -5,12 +5,12 @@ import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.CancelEventEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; +import com.gempukku.lotro.cards.results.PlayEventResult; import com.gempukku.lotro.common.*; 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.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; import java.util.Collections; import java.util.List; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/elven/Card13_023.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/elven/Card13_023.java new file mode 100644 index 000000000..9d6c98b4d --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/elven/Card13_023.java @@ -0,0 +1,54 @@ +package com.gempukku.lotro.cards.set13.elven; + +import com.gempukku.lotro.cards.AbstractCompanion; +import com.gempukku.lotro.cards.PlayConditions; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.effects.PutPlayedEventOnTopOfDeckEffect; +import com.gempukku.lotro.cards.effects.SelfExertEffect; +import com.gempukku.lotro.cards.results.PlayEventResult; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Phase; +import com.gempukku.lotro.common.Race; +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.timing.EffectResult; + +import java.util.Collections; +import java.util.List; + +/** + * Set: Bloodlines + * Side: Free + * Culture: Elven + * Twilight Cost: 2 + * Type: Companion • Elf + * Strength: 6 + * Vitality: 3 + * Resistance: 6 + * Game Text: Response: If you play an event during a skirmish involving this companion, exert this companion to place + * that event on top of your draw deck. + */ +public class Card13_023 extends AbstractCompanion { + public Card13_023() { + super(2, 6, 3, 6, Culture.ELVEN, Race.ELF, null, "Shrouded Elf"); + } + + @Override + public List getOptionalInPlayAfterActions(String playerId, LotroGame game, EffectResult effectResult, PhysicalCard self) { + if (TriggerConditions.played(game, effectResult, Filters.owner(playerId), CardType.EVENT) + && PlayConditions.isPhase(game, Phase.SKIRMISH) + && Filters.inSkirmish.accepts(game.getGameState(), game.getModifiersQuerying(), self) + && PlayConditions.canSelfExert(self, game)) { + ActivateCardAction action = new ActivateCardAction(self); + action.appendCost( + new SelfExertEffect(self)); + action.appendEffect( + new PutPlayedEventOnTopOfDeckEffect(((PlayEventResult) effectResult).getPlayEventAction())); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/isengard/Card2_047.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/isengard/Card2_047.java index 06d5947ef..93040aee1 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/isengard/Card2_047.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/isengard/Card2_047.java @@ -6,6 +6,7 @@ import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.effects.CancelEventEffect; import com.gempukku.lotro.cards.effects.SelfExertEffect; import com.gempukku.lotro.cards.modifiers.RoamingPenaltyModifier; +import com.gempukku.lotro.cards.results.PlayEventResult; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -16,7 +17,6 @@ import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.actions.ActivateCardAction; import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; import java.util.Collections; import java.util.List; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/sauron/Card2_089.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/sauron/Card2_089.java index e6e6eaa39..64e015b18 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/sauron/Card2_089.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/sauron/Card2_089.java @@ -7,6 +7,7 @@ import com.gempukku.lotro.cards.effects.ChoiceEffect; import com.gempukku.lotro.cards.effects.SelfDiscardEffect; import com.gempukku.lotro.cards.effects.SelfExertEffect; import com.gempukku.lotro.cards.modifiers.RoamingPenaltyModifier; +import com.gempukku.lotro.cards.results.PlayEventResult; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -18,7 +19,6 @@ import com.gempukku.lotro.logic.actions.ActivateCardAction; import com.gempukku.lotro.logic.modifiers.Modifier; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; import java.util.Collections; import java.util.LinkedList; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_095.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_095.java index 882773b93..59417b9ff 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_095.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set4/gandalf/Card4_095.java @@ -4,15 +4,16 @@ import com.gempukku.lotro.cards.AbstractResponseOldEvent; import com.gempukku.lotro.cards.PlayConditions; import com.gempukku.lotro.cards.TriggerConditions; import com.gempukku.lotro.cards.actions.PlayEventAction; +import com.gempukku.lotro.cards.effects.PutPlayedEventIntoHandEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; -import com.gempukku.lotro.common.*; +import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; +import com.gempukku.lotro.common.Keyword; +import com.gempukku.lotro.common.Side; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; -import com.gempukku.lotro.logic.timing.AbstractSuccessfulEffect; -import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; import java.util.Collections; import java.util.List; @@ -46,23 +47,7 @@ public class Card4_095 extends AbstractResponseOldEvent { action.appendCost( new ChooseAndExertCharactersEffect(action, playerId, 1, 1, 2, Filters.gandalf)); action.appendEffect( - new AbstractSuccessfulEffect() { - @Override - public String getText(LotroGame game) { - return null; - } - - @Override - public Effect.Type getType() { - return null; - } - - @Override - public void playEffect(LotroGame game) { - ((PlayEventResult) effectResult).setTargetZone(Zone.HAND); - } - } - ); + new PutPlayedEventIntoHandEffect(action)); return Collections.singletonList(action); } return null; diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_032.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_032.java index 7208a863f..0ac632da8 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_032.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gandalf/Card7_032.java @@ -8,6 +8,7 @@ import com.gempukku.lotro.cards.effects.CancelEventEffect; import com.gempukku.lotro.cards.effects.ChoiceEffect; import com.gempukku.lotro.cards.effects.RemoveTwilightEffect; import com.gempukku.lotro.cards.effects.choose.ChooseAndExertCharactersEffect; +import com.gempukku.lotro.cards.results.PlayEventResult; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Side; @@ -16,7 +17,6 @@ import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.logic.timing.Effect; import com.gempukku.lotro.logic.timing.EffectResult; -import com.gempukku.lotro.logic.timing.results.PlayEventResult; import java.util.Collections; import java.util.LinkedList;