From ecec7e4476df5db857b42b3852afde6ec98a4140 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Tue, 27 May 2025 17:05:08 -0400 Subject: [PATCH] [FIN] Implement Choco Comet --- Mage.Sets/src/mage/cards/c/ChocoComet.java | 38 +++++++++++++++++++ Mage.Sets/src/mage/cards/g/GysahlGreens.java | 4 +- Mage.Sets/src/mage/sets/FinalFantasy.java | 1 + ...rdLandfallToken.java => ChocoboToken.java} | 12 +++--- 4 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/c/ChocoComet.java rename Mage/src/main/java/mage/game/permanent/token/{BirdLandfallToken.java => ChocoboToken.java} (75%) diff --git a/Mage.Sets/src/mage/cards/c/ChocoComet.java b/Mage.Sets/src/mage/cards/c/ChocoComet.java new file mode 100644 index 00000000000..1df17c2a89f --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/ChocoComet.java @@ -0,0 +1,38 @@ +package mage.cards.c; + +import mage.abilities.dynamicvalue.common.GetXValue; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.game.permanent.token.ChocoboToken; +import mage.target.common.TargetAnyTarget; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ChocoComet extends CardImpl { + + public ChocoComet(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}{R}"); + + // Choco-Comet deals X damage to any target. + this.getSpellAbility().addEffect(new DamageTargetEffect(GetXValue.instance)); + this.getSpellAbility().addTarget(new TargetAnyTarget()); + + // Create a 2/2 green Bird creature token with "Whenever a land you control enters, this token gets +1/+0 until end of turn." + this.getSpellAbility().addEffect(new CreateTokenEffect(new ChocoboToken()).concatBy("
")); + } + + private ChocoComet(final ChocoComet card) { + super(card); + } + + @Override + public ChocoComet copy() { + return new ChocoComet(this); + } +} diff --git a/Mage.Sets/src/mage/cards/g/GysahlGreens.java b/Mage.Sets/src/mage/cards/g/GysahlGreens.java index 7d80c14cc95..c72140ee111 100644 --- a/Mage.Sets/src/mage/cards/g/GysahlGreens.java +++ b/Mage.Sets/src/mage/cards/g/GysahlGreens.java @@ -7,7 +7,7 @@ import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.BirdLandfallToken; +import mage.game.permanent.token.ChocoboToken; /** * @@ -19,7 +19,7 @@ public final class GysahlGreens extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}"); // Create a 2/2 green Bird creature token with "Whenever a land you control enters, this token gets +1/+0 until end of turn." - this.getSpellAbility().addEffect(new CreateTokenEffect(new BirdLandfallToken())); + this.getSpellAbility().addEffect(new CreateTokenEffect(new ChocoboToken())); // Flashback {6}{G} this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{6}{G}"))); diff --git a/Mage.Sets/src/mage/sets/FinalFantasy.java b/Mage.Sets/src/mage/sets/FinalFantasy.java index dfcdc31f97a..ea901b40cdc 100644 --- a/Mage.Sets/src/mage/sets/FinalFantasy.java +++ b/Mage.Sets/src/mage/sets/FinalFantasy.java @@ -99,6 +99,7 @@ public final class FinalFantasy extends ExpansionSet { cards.add(new SetCardInfo("Chaos, the Endless", 486, Rarity.UNCOMMON, mage.cards.c.ChaosTheEndless.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Choco, Seeker of Paradise", 215, Rarity.RARE, mage.cards.c.ChocoSeekerOfParadise.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Choco, Seeker of Paradise", 479, Rarity.RARE, mage.cards.c.ChocoSeekerOfParadise.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Choco-Comet", 132, Rarity.UNCOMMON, mage.cards.c.ChocoComet.class)); cards.add(new SetCardInfo("Cid, Timeless Artificer", 216, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Cid, Timeless Artificer", 407, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Cid, Timeless Artificer", 408, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class, NON_FULL_USE_VARIOUS)); diff --git a/Mage/src/main/java/mage/game/permanent/token/BirdLandfallToken.java b/Mage/src/main/java/mage/game/permanent/token/ChocoboToken.java similarity index 75% rename from Mage/src/main/java/mage/game/permanent/token/BirdLandfallToken.java rename to Mage/src/main/java/mage/game/permanent/token/ChocoboToken.java index 44e5977a430..d51b49e0e92 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BirdLandfallToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ChocoboToken.java @@ -8,11 +8,11 @@ import mage.constants.Duration; import mage.constants.SubType; /** - * @author LoneFox + * @author TheElk801 */ -public final class BirdLandfallToken extends TokenImpl { +public final class ChocoboToken extends TokenImpl { - public BirdLandfallToken() { + public ChocoboToken() { super("Bird Token", "2/2 green Bird creature token with \"Whenever a land you control enters, this token gets +1/+0 until end of turn.\""); cardType.add(CardType.CREATURE); color.setGreen(true); @@ -23,12 +23,12 @@ public final class BirdLandfallToken extends TokenImpl { addAbility(new LandfallAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn)).setAbilityWord(null)); } - private BirdLandfallToken(final BirdLandfallToken token) { + private ChocoboToken(final ChocoboToken token) { super(token); } @Override - public BirdLandfallToken copy() { - return new BirdLandfallToken(this); + public ChocoboToken copy() { + return new ChocoboToken(this); } }