From ba8b2a609aad657b8f9a7b29826fe3c0bfb1634f Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Fri, 14 Sep 2018 18:02:57 -0400 Subject: [PATCH] Implemented Creeping Chill --- Mage.Sets/src/mage/cards/c/CreepingChill.java | 74 +++++++++++++++++++ Mage.Sets/src/mage/sets/GuildsOfRavnica.java | 1 + .../effects/common/DoIfCostPaid.java | 3 +- 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 Mage.Sets/src/mage/cards/c/CreepingChill.java diff --git a/Mage.Sets/src/mage/cards/c/CreepingChill.java b/Mage.Sets/src/mage/cards/c/CreepingChill.java new file mode 100644 index 00000000000..84aa12a754a --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CreepingChill.java @@ -0,0 +1,74 @@ +package mage.cards.c; + +import java.util.UUID; +import mage.abilities.common.ZoneChangeTriggeredAbility; +import mage.abilities.costs.common.ExileSourceFromGraveCost; +import mage.abilities.effects.common.DamagePlayersEffect; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.GainLifeEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.constants.Zone; + +/** + * + * @author TheElk801 + */ +public final class CreepingChill extends CardImpl { + + public CreepingChill(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}"); + + // Creeping Chill deals 3 damage to each opponent and you gain 3 life. + this.getSpellAbility().addEffect( + new DamagePlayersEffect(3, TargetController.OPPONENT) + ); + this.getSpellAbility().addEffect( + new GainLifeEffect(3).setText("and you gain 3 life") + ); + + // When Creeping Chill is put into your graveyard from your library, you may exile it. If you do, Creeping Chill deals 3 damage to each opponent and you gain 3 life. + this.addAbility(new CreepingChillAbility()); + } + + public CreepingChill(final CreepingChill card) { + super(card); + } + + @Override + public CreepingChill copy() { + return new CreepingChill(this); + } +} + +class CreepingChillAbility extends ZoneChangeTriggeredAbility { + + public CreepingChillAbility() { + super( + Zone.LIBRARY, Zone.GRAVEYARD, + new DoIfCostPaid( + new DamagePlayersEffect(3, TargetController.OPPONENT), + new ExileSourceFromGraveCost() + ).addEffect(new GainLifeEffect(3)), + "", true + ); + } + + public CreepingChillAbility(final CreepingChillAbility ability) { + super(ability); + } + + @Override + public CreepingChillAbility copy() { + return new CreepingChillAbility(this); + } + + @Override + public String getRule() { + return "When {this} is put into your graveyard from your library, " + + "you may exile it. If you do, {this} deals 3 damage " + + "to each opponent and you gain 3 life."; + } +} diff --git a/Mage.Sets/src/mage/sets/GuildsOfRavnica.java b/Mage.Sets/src/mage/sets/GuildsOfRavnica.java index 513f70c44e3..6279463cb34 100644 --- a/Mage.Sets/src/mage/sets/GuildsOfRavnica.java +++ b/Mage.Sets/src/mage/sets/GuildsOfRavnica.java @@ -47,6 +47,7 @@ public final class GuildsOfRavnica extends ExpansionSet { cards.add(new SetCardInfo("Conclave Tribunal", 6, Rarity.UNCOMMON, mage.cards.c.ConclaveTribunal.class)); cards.add(new SetCardInfo("Connive // Concoct", 222, Rarity.RARE, mage.cards.c.ConniveConcoct.class)); cards.add(new SetCardInfo("Crackling Drake", 163, Rarity.UNCOMMON, mage.cards.c.CracklingDrake.class)); + cards.add(new SetCardInfo("Creeping Chill", 66, Rarity.UNCOMMON, mage.cards.c.CreepingChill.class)); cards.add(new SetCardInfo("Darkblade Agent", 164, Rarity.COMMON, mage.cards.d.DarkbladeAgent.class)); cards.add(new SetCardInfo("Deadly Visit", 68, Rarity.COMMON, mage.cards.d.DeadlyVisit.class)); cards.add(new SetCardInfo("Deafening Clarion", 165, Rarity.RARE, mage.cards.d.DeafeningClarion.class)); diff --git a/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java b/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java index a68dc8e27f4..a5c530f11c1 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java @@ -54,8 +54,9 @@ public class DoIfCostPaid extends OneShotEffect { this.optional = effect.optional; } - public void addEffect(Effect effect) { + public DoIfCostPaid addEffect(Effect effect) { executingEffects.add(effect); + return this; } @Override