diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_056.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_056.java new file mode 100644 index 000000000..54c48f324 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set7/gollum/Card7_056.java @@ -0,0 +1,46 @@ +package com.gempukku.lotro.cards.set7.gollum; + +import com.gempukku.lotro.cards.AbstractAttachable; +import com.gempukku.lotro.cards.PlayConditions; +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.RequiredTriggerAction; +import com.gempukku.lotro.logic.effects.DiscardCardsFromPlayEffect; +import com.gempukku.lotro.logic.timing.Effect; + +import java.util.Collections; +import java.util.List; + +/** + * Set: The Return of the King + * Side: Free + * Culture: Gollum + * Twilight Cost: 3 + * Type: Condition + * Game Text: Stealth. Bearer must be Smeagol. If Smeagol is about to be killed in a skirmish, he is discarded instead. + */ +public class Card7_056 extends AbstractAttachable { + public Card7_056() { + super(Side.FREE_PEOPLE, CardType.CONDITION, 3, Culture.GOLLUM, null, "The Dead City"); + addKeyword(Keyword.STEALTH); + } + + @Override + protected Filterable getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) { + return Filters.name("Smeagol"); + } + + @Override + public List getRequiredBeforeTriggers(LotroGame game, Effect effect, PhysicalCard self) { + if (PlayConditions.isGettingKilled(effect, game, Filters.hasAttached(self)) + && game.getGameState().getCurrentPhase() == Phase.SKIRMISH) { + RequiredTriggerAction action = new RequiredTriggerAction(self); + action.appendEffect( + new DiscardCardsFromPlayEffect(self, Filters.hasAttached(self))); + return Collections.singletonList(action); + } + return null; + } +} diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/KillEffect.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/KillEffect.java index dd5846e61..b073a70d8 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/KillEffect.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/effects/KillEffect.java @@ -27,7 +27,13 @@ public class KillEffect extends AbstractSuccessfulEffect { } public List getCharactersToBeKilled() { - return _cards; + List result = new LinkedList(); + for (PhysicalCard card : _cards) { + if (card.getZone().isInPlay()) + result.add(card); + } + + return result; } @Override @@ -38,9 +44,11 @@ public class KillEffect extends AbstractSuccessfulEffect { @Override public Collection playEffect(LotroGame game) { + List toBeKilled = getCharactersToBeKilled(); + GameState gameState = game.getGameState(); - for (PhysicalCard card : _cards) + for (PhysicalCard card : toBeKilled) gameState.sendMessage(GameUtils.getCardLink(card) + " gets killed"); // For result @@ -52,7 +60,7 @@ public class KillEffect extends AbstractSuccessfulEffect { Set toAddToDeadPile = new HashSet(); Set toAddToDiscard = new HashSet(); - for (PhysicalCard card : _cards) { + for (PhysicalCard card : toBeKilled) { toRemoveFromZone.add(card); if (card.getBlueprint().getSide() == Side.FREE_PEOPLE) {