From f7da91dd88102cee1ad0ed8a8b15af50fe23617b Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sun, 8 Jan 2012 19:46:24 +0000 Subject: [PATCH] "Radagast Deceived" --- .../cards/set13/isengard/Card13_079.java | 3 +- .../cards/set13/isengard/Card13_080.java | 101 ++++++++++++++++++ 2 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_080.java diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_079.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_079.java index 428edfea7..c12847f11 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_079.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_079.java @@ -42,7 +42,8 @@ public class Card13_079 extends AbstractPermanent { @Override public List getOptionalAfterTriggers(String playerId, LotroGame game, EffectResult effectResult, final PhysicalCard self) { if (TriggerConditions.startOfPhase(game, effectResult, Phase.MANEUVER) - && PlayConditions.canExert(self, game, Race.WIZARD)) { + && PlayConditions.canExert(self, game, Race.WIZARD) + && self.getZone() != Zone.SHADOW_CHARACTERS) { final OptionalTriggerAction action = new OptionalTriggerAction(self); action.appendCost( new ChooseAndExertCharactersEffect(action, playerId, 1, 1, Race.WIZARD)); diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_080.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_080.java new file mode 100644 index 000000000..e5d0e9432 --- /dev/null +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set13/isengard/Card13_080.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 heals, this condition becomes a fierce Wizard minion until the start of the regroup + * phase that has 12 strength and 1 vitality, and cannot take wounds or bear other cards. + * This card is still a condition. + */ +public class Card13_080 extends AbstractPermanent { + public Card13_080() { + super(Side.SHADOW, 3, CardType.CONDITION, Culture.ISENGARD, Zone.SUPPORT, "Radagast Deceived", true); + } + + @Override + public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) { + if (TriggerConditions.forEachHealed(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 12; + } + + @Override + public int getVitality() { + return 1; + } + + @Override + public Race getRace() { + return Race.WIZARD; + } +}