From 5ba0bbe7bfcbc359ec8b396ca49f416e01dd5fd5 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 21 Mar 2025 19:32:31 -0400 Subject: [PATCH] [TDM] Implement Heritage Reclamation --- .../src/mage/cards/h/HeritageReclamation.java | 47 +++++++++++++++++++ .../src/mage/sets/TarkirDragonstorm.java | 1 + 2 files changed, 48 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/h/HeritageReclamation.java diff --git a/Mage.Sets/src/mage/cards/h/HeritageReclamation.java b/Mage.Sets/src/mage/cards/h/HeritageReclamation.java new file mode 100644 index 00000000000..ec49a79cba0 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HeritageReclamation.java @@ -0,0 +1,47 @@ +package mage.cards.h; + +import mage.abilities.Mode; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.common.TargetArtifactPermanent; +import mage.target.common.TargetCardInGraveyard; +import mage.target.common.TargetEnchantmentPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class HeritageReclamation extends CardImpl { + + public HeritageReclamation(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}"); + + // Choose one -- + // * Destroy target artifact. + this.getSpellAbility().addEffect(new DestroyTargetEffect()); + this.getSpellAbility().addTarget(new TargetArtifactPermanent()); + + // * Destroy target enchantment. + this.getSpellAbility().addMode(new Mode(new DestroyTargetEffect()) + .addTarget(new TargetEnchantmentPermanent())); + + // * Exile up to one target card from a graveyard. Draw a card. + this.getSpellAbility().addMode(new Mode(new ExileTargetEffect()) + .addEffect(new DrawCardSourceControllerEffect(1)) + .addTarget(new TargetCardInGraveyard(0, 1))); + } + + private HeritageReclamation(final HeritageReclamation card) { + super(card); + } + + @Override + public HeritageReclamation copy() { + return new HeritageReclamation(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java index a144d214c56..e2cb4e82039 100644 --- a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java +++ b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java @@ -46,6 +46,7 @@ public final class TarkirDragonstorm extends ExpansionSet { cards.add(new SetCardInfo("Fortress Kin-Guard", 12, Rarity.COMMON, mage.cards.f.FortressKinGuard.class)); cards.add(new SetCardInfo("Fresh Start", 46, Rarity.UNCOMMON, mage.cards.f.FreshStart.class)); cards.add(new SetCardInfo("Frontier Bivouac", 256, Rarity.UNCOMMON, mage.cards.f.FrontierBivouac.class)); + cards.add(new SetCardInfo("Heritage Reclamation", 145, Rarity.COMMON, mage.cards.h.HeritageReclamation.class)); cards.add(new SetCardInfo("Inevitable Defeat", 194, Rarity.RARE, mage.cards.i.InevitableDefeat.class)); cards.add(new SetCardInfo("Island", 279, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Jade-Cast Sentinel", 243, Rarity.COMMON, mage.cards.j.JadeCastSentinel.class));