From 6d6f661770aa59a98dfdd1b63c229a1fb5b6b11c Mon Sep 17 00:00:00 2001 From: xenohedron Date: Fri, 3 Nov 2023 22:09:31 -0400 Subject: [PATCH] implement [LCI] Thousand Moons Crackshot --- .../mage/cards/t/ThousandMoonsCrackshot.java | 47 +++++++++++++++++++ .../src/mage/sets/TheLostCavernsOfIxalan.java | 1 + 2 files changed, 48 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/t/ThousandMoonsCrackshot.java diff --git a/Mage.Sets/src/mage/cards/t/ThousandMoonsCrackshot.java b/Mage.Sets/src/mage/cards/t/ThousandMoonsCrackshot.java new file mode 100644 index 00000000000..57251773283 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/ThousandMoonsCrackshot.java @@ -0,0 +1,47 @@ +package mage.cards.t; + +import mage.MageInt; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.delayed.ReflexiveTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DoWhenCostPaid; +import mage.abilities.effects.common.TapTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author xenohedron + */ +public final class ThousandMoonsCrackshot extends CardImpl { + + public ThousandMoonsCrackshot(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.SOLDIER); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Whenever Thousand Moons Crackshot attacks, you may pay {2}{W}. When you do, tap target creature. + ReflexiveTriggeredAbility reflexive = new ReflexiveTriggeredAbility(new TapTargetEffect(), false); + reflexive.addTarget(new TargetCreaturePermanent()); + this.addAbility(new AttacksTriggeredAbility(new DoWhenCostPaid( + reflexive, new ManaCostsImpl<>("{2}{W}"), "Pay {2}{W} to tap target creature?" + ))); + + } + + private ThousandMoonsCrackshot(final ThousandMoonsCrackshot card) { + super(card); + } + + @Override + public ThousandMoonsCrackshot copy() { + return new ThousandMoonsCrackshot(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java b/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java index 9e567ab18ff..c04e4ebd242 100644 --- a/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java +++ b/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java @@ -244,6 +244,7 @@ public final class TheLostCavernsOfIxalan extends ExpansionSet { cards.add(new SetCardInfo("The Millennium Calendar", 257, Rarity.MYTHIC, mage.cards.t.TheMillenniumCalendar.class)); cards.add(new SetCardInfo("The Mycotyrant", 235, Rarity.MYTHIC, mage.cards.t.TheMycotyrant.class)); cards.add(new SetCardInfo("The Skullspore Nexus", 212, Rarity.MYTHIC, mage.cards.t.TheSkullsporeNexus.class)); + cards.add(new SetCardInfo("Thousand Moons Crackshot", 37, Rarity.COMMON, mage.cards.t.ThousandMoonsCrackshot.class)); cards.add(new SetCardInfo("Thrashing Brontodon", 216, Rarity.UNCOMMON, mage.cards.t.ThrashingBrontodon.class)); cards.add(new SetCardInfo("Threefold Thunderhulk", 265, Rarity.RARE, mage.cards.t.ThreefoldThunderhulk.class)); cards.add(new SetCardInfo("Throne of the Grim Captain", 266, Rarity.RARE, mage.cards.t.ThroneOfTheGrimCaptain.class));