From e77443f5b99e2cac0b441ed2194ac875be060330 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 29 Mar 2024 10:16:48 -0400 Subject: [PATCH] [OTJ] Implement Forsaken Miner --- Mage.Sets/src/mage/cards/f/ForsakenMiner.java | 49 +++++++++++++++++++ .../mage/sets/OutlawsOfThunderJunction.java | 1 + .../CommittedCrimeTriggeredAbility.java | 6 ++- 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 Mage.Sets/src/mage/cards/f/ForsakenMiner.java diff --git a/Mage.Sets/src/mage/cards/f/ForsakenMiner.java b/Mage.Sets/src/mage/cards/f/ForsakenMiner.java new file mode 100644 index 00000000000..db512ff78fe --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/ForsakenMiner.java @@ -0,0 +1,49 @@ +package mage.cards.f; + +import mage.MageInt; +import mage.abilities.common.CantBlockAbility; +import mage.abilities.common.CommittedCrimeTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.Zone; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ForsakenMiner extends CardImpl { + + public ForsakenMiner(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}"); + + this.subtype.add(SubType.SKELETON); + this.subtype.add(SubType.ROGUE); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Forsaken Miner can't block. + this.addAbility(new CantBlockAbility()); + + // Whenever you commit a crime, you may pay {B}. If you do, return Forsaken Miner from your graveyard to the battlefield. + this.addAbility(new CommittedCrimeTriggeredAbility( + Zone.GRAVEYARD, + new DoIfCostPaid(new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl<>("{B}")), + false + )); + } + + private ForsakenMiner(final ForsakenMiner card) { + super(card); + } + + @Override + public ForsakenMiner copy() { + return new ForsakenMiner(this); + } +} diff --git a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java index 954c48eba70..fa123c4581f 100644 --- a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java +++ b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java @@ -55,6 +55,7 @@ public final class OutlawsOfThunderJunction extends ExpansionSet { cards.add(new SetCardInfo("Forest", 276, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Forlorn Flats", 258, Rarity.COMMON, mage.cards.f.ForlornFlats.class)); cards.add(new SetCardInfo("Form a Posse", 204, Rarity.UNCOMMON, mage.cards.f.FormAPosse.class)); + cards.add(new SetCardInfo("Forsaken Miner", 88, Rarity.UNCOMMON, mage.cards.f.ForsakenMiner.class)); cards.add(new SetCardInfo("Freestrider Lookout", 163, Rarity.RARE, mage.cards.f.FreestriderLookout.class)); cards.add(new SetCardInfo("Frontier Seeker", 13, Rarity.UNCOMMON, mage.cards.f.FrontierSeeker.class)); cards.add(new SetCardInfo("Hardbristle Bandit", 168, Rarity.COMMON, mage.cards.h.HardbristleBandit.class)); diff --git a/Mage/src/main/java/mage/abilities/common/CommittedCrimeTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/CommittedCrimeTriggeredAbility.java index a7cb2c5058f..fcb17df626c 100644 --- a/Mage/src/main/java/mage/abilities/common/CommittedCrimeTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/CommittedCrimeTriggeredAbility.java @@ -26,7 +26,11 @@ public class CommittedCrimeTriggeredAbility extends TriggeredAbilityImpl { } public CommittedCrimeTriggeredAbility(Effect effect, boolean optional) { - super(Zone.BATTLEFIELD, effect, optional); + this(Zone.BATTLEFIELD, effect, optional); + } + + public CommittedCrimeTriggeredAbility(Zone zone, Effect effect, boolean optional) { + super(zone, effect, optional); setTriggerPhrase("Whenever you commit a crime, "); }