From f3eef7eafd747041ddf833d1ed92b74c31def101 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Mon, 20 Sep 2021 20:34:19 -0400 Subject: [PATCH] [MIC] Implemented Curse of the Restless Dead --- .../mage/cards/c/CurseOfTheRestlessDead.java | 61 +++++++++++++++++++ .../src/mage/sets/MidnightHuntCommander.java | 1 + 2 files changed, 62 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/CurseOfTheRestlessDead.java diff --git a/Mage.Sets/src/mage/cards/c/CurseOfTheRestlessDead.java b/Mage.Sets/src/mage/cards/c/CurseOfTheRestlessDead.java new file mode 100644 index 00000000000..09919c2c47f --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CurseOfTheRestlessDead.java @@ -0,0 +1,61 @@ +package mage.cards.c; + +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SubType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterLandPermanent; +import mage.filter.predicate.permanent.EnchantPlayerControlsPredicate; +import mage.game.permanent.token.ZombieDecayedToken; +import mage.target.TargetPlayer; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class CurseOfTheRestlessDead extends CardImpl { + + private static final FilterPermanent filter = new FilterLandPermanent(); + + static { + filter.add(EnchantPlayerControlsPredicate.instance); + } + + public CurseOfTheRestlessDead(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}"); + + this.subtype.add(SubType.AURA); + this.subtype.add(SubType.CURSE); + + // Enchant player + TargetPlayer auraTarget = new TargetPlayer(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Whenever a land enters the battlefield under enchanted player's control, you create a 2/2 black Zombie creature token with decayed. + this.addAbility(new EntersBattlefieldAllTriggeredAbility( + new CreateTokenEffect(new ZombieDecayedToken()), + filter, "Whenever a land enters the battlefield under enchanted player's control, " + + "you create a 2/2 black Zombie creature token with decayed." + )); + } + + private CurseOfTheRestlessDead(final CurseOfTheRestlessDead card) { + super(card); + } + + @Override + public CurseOfTheRestlessDead copy() { + return new CurseOfTheRestlessDead(this); + } +} diff --git a/Mage.Sets/src/mage/sets/MidnightHuntCommander.java b/Mage.Sets/src/mage/sets/MidnightHuntCommander.java index c13eafb2ae3..80be93aca31 100644 --- a/Mage.Sets/src/mage/sets/MidnightHuntCommander.java +++ b/Mage.Sets/src/mage/sets/MidnightHuntCommander.java @@ -50,6 +50,7 @@ public final class MidnightHuntCommander extends ExpansionSet { cards.add(new SetCardInfo("Crowded Crypt", 17, Rarity.RARE, mage.cards.c.CrowdedCrypt.class)); cards.add(new SetCardInfo("Curse of Clinging Webs", 25, Rarity.RARE, mage.cards.c.CurseOfClingingWebs.class)); cards.add(new SetCardInfo("Curse of Conformity", 6, Rarity.RARE, mage.cards.c.CurseOfConformity.class)); + cards.add(new SetCardInfo("Curse of the Restless Dead", 18, Rarity.RARE, mage.cards.c.CurseOfTheRestlessDead.class)); cards.add(new SetCardInfo("Custodi Soulbinders", 83, Rarity.RARE, mage.cards.c.CustodiSoulbinders.class)); cards.add(new SetCardInfo("Dark Salvation", 110, Rarity.RARE, mage.cards.d.DarkSalvation.class)); cards.add(new SetCardInfo("Darkwater Catacombs", 171, Rarity.RARE, mage.cards.d.DarkwaterCatacombs.class));