Implemented Creeping Chill

This commit is contained in:
Evan Kranzler 2018-09-14 18:02:57 -04:00
parent 34e40febb8
commit ba8b2a609a
3 changed files with 77 additions and 1 deletions

View file

@ -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.";
}
}

View file

@ -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));

View file

@ -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