From bcb136b3363d4503850de1c701aff1684565bc93 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Thu, 25 Jan 2024 11:16:19 -0500 Subject: [PATCH] [MKM] Implement Gravestone Strider --- .../src/mage/cards/g/GravestoneStrider.java | 52 +++++++++++++++++++ .../src/mage/sets/MurdersAtKarlovManor.java | 1 + 2 files changed, 53 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/g/GravestoneStrider.java diff --git a/Mage.Sets/src/mage/cards/g/GravestoneStrider.java b/Mage.Sets/src/mage/cards/g/GravestoneStrider.java new file mode 100644 index 00000000000..d418f861d0e --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GravestoneStrider.java @@ -0,0 +1,52 @@ +package mage.cards.g; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.ExileSourceFromGraveCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.effects.mana.AddManaOfAnyColorEffect; +import mage.abilities.mana.LimitedTimesPerTurnActivatedManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.Zone; +import mage.target.common.TargetCardInGraveyard; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class GravestoneStrider extends CardImpl { + + public GravestoneStrider(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{2}"); + + this.subtype.add(SubType.GOLEM); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // {1}: Add one mana of any color. Activate only once each turn. + this.addAbility(new LimitedTimesPerTurnActivatedManaAbility( + Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), new GenericManaCost(1) + )); + + // {2}, Exile Gravestone Strider from your graveyard: Exile target card from a graveyard. + Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ExileTargetEffect(), new GenericManaCost(2)); + ability.addCost(new ExileSourceFromGraveCost()); + ability.addTarget(new TargetCardInGraveyard()); + this.addAbility(ability); + } + + private GravestoneStrider(final GravestoneStrider card) { + super(card); + } + + @Override + public GravestoneStrider copy() { + return new GravestoneStrider(this); + } +} diff --git a/Mage.Sets/src/mage/sets/MurdersAtKarlovManor.java b/Mage.Sets/src/mage/sets/MurdersAtKarlovManor.java index 2c532a2b2d1..0f219dd4d52 100644 --- a/Mage.Sets/src/mage/sets/MurdersAtKarlovManor.java +++ b/Mage.Sets/src/mage/sets/MurdersAtKarlovManor.java @@ -68,6 +68,7 @@ public final class MurdersAtKarlovManor extends ExpansionSet { cards.add(new SetCardInfo("Get a Leg Up", 161, Rarity.UNCOMMON, mage.cards.g.GetALegUp.class)); cards.add(new SetCardInfo("Gleaming Geardrake", 205, Rarity.UNCOMMON, mage.cards.g.GleamingGeardrake.class)); cards.add(new SetCardInfo("Granite Witness", 206, Rarity.COMMON, mage.cards.g.GraniteWitness.class)); + cards.add(new SetCardInfo("Gravestone Strider", 252, Rarity.COMMON, mage.cards.g.GravestoneStrider.class)); cards.add(new SetCardInfo("Greenbelt Radical", 163, Rarity.UNCOMMON, mage.cards.g.GreenbeltRadical.class)); cards.add(new SetCardInfo("Griffnaut Tracker", 17, Rarity.COMMON, mage.cards.g.GriffnautTracker.class)); cards.add(new SetCardInfo("Haazda Vigilante", 18, Rarity.COMMON, mage.cards.h.HaazdaVigilante.class));