From eda6c9c9d2a0cfe03c8ed0492b17458aa8643bc5 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sun, 8 Jan 2012 19:39:01 +0000 Subject: [PATCH] "Alatar Deceived" --- .../cards/set13/isengard/Card13_078.java | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_078.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_078.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_078.java new file mode 100644 index 000000000..d43f5bae7 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_078.java @@ -0,0 +1,101 @@ +package com.gempukku.lotro.cards.set13.isengard; + +import com.gempukku.lotro.cards.AbstractPermanent; +import com.gempukku.lotro.cards.TriggerConditions; +import com.gempukku.lotro.cards.effects.AddUntilStartOfPhaseModifierEffect; +import com.gempukku.lotro.cards.effects.TransferToShadowEffect; +import com.gempukku.lotro.cards.effects.TransferToSupportEffect; +import com.gempukku.lotro.cards.modifiers.CantTakeWoundsModifier; +import com.gempukku.lotro.cards.modifiers.IsAdditionalCardTypeModifier; +import com.gempukku.lotro.cards.modifiers.MayNotBearModifier; +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.modifiers.KeywordModifier; +import com.gempukku.lotro.logic.timing.EffectResult; +import com.gempukku.lotro.logic.timing.UnrespondableEffect; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * Set: Bloodlines + * Side: Shadow + * Culture: Isengard + * Twilight Cost: 3 + * Type: Condition • Support Area + * Game Text: Each time a Wizard wins a skirmish, this condition becomes a fierce, damage +1 Wizard minion until the + * start of the regroup phase that has 11 strength and 1 vitality, and cannot take wounds or bear other cards. + * This card is still a condition. + */ +public class Card13_078 extends AbstractPermanent { + public Card13_078() { + super(Side.SHADOW, 3, CardType.CONDITION, Culture.ISENGARD, Zone.SUPPORT, "Alatar Deceived", true); + } + + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) { + if (TriggerConditions.winsSkirmish(game, effectResult, Race.WIZARD) + && self.getZone() != Zone.SHADOW_CHARACTERS) { + final RequiredTriggerAction action = new RequiredTriggerAction(self); + action.appendEffect( + new TransferToShadowEffect(self) { + @Override + protected void cardTransferredCallback() { + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new IsAdditionalCardTypeModifier(self, self, CardType.MINION), Phase.REGROUP)); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, self, Keyword.FIERCE), Phase.REGROUP)); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new KeywordModifier(self, self, Keyword.DAMAGE, 1), Phase.REGROUP)); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new MayNotBearModifier(self, self, Filters.any), Phase.REGROUP)); + action.appendEffect( + new AddUntilStartOfPhaseModifierEffect( + new CantTakeWoundsModifier(self, self), Phase.REGROUP)); + } + }); + return Collections.singletonList(action); + } + if (TriggerConditions.startOfPhase(game, effectResult, Phase.REGROUP) + && self.getZone() == Zone.SHADOW_CHARACTERS) { + RequiredTriggerAction action = new RequiredTriggerAction(self); + action.appendEffect( + new UnrespondableEffect() { + @Override + protected void doPlayEffect(LotroGame game) { + for (Map.Entry tokenCount : game.getGameState().getTokens(self).entrySet()) { + if (tokenCount.getValue() > 0) + game.getGameState().removeTokens(self, tokenCount.getKey(), tokenCount.getValue()); + } + } + }); + action.appendEffect( + new TransferToSupportEffect(self)); + return Collections.singletonList(action); + } + return null; + } + + @Override + public int getStrength() { + return 11; + } + + @Override + public int getVitality() { + return 1; + } + + @Override + public Race getRace() { + return Race.WIZARD; + } +}