From d7f568ba3493f66e2b0b74dd33bfc6ded21f7f44 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Tue, 29 Oct 2024 17:49:44 -0400 Subject: [PATCH] [FDN] Implement Firespitter Whelp --- .../src/mage/cards/f/FirespitterWhelp.java | 55 +++++++++++++++++++ Mage.Sets/src/mage/sets/Foundations.java | 1 + .../src/mage/sets/FoundationsJumpstart.java | 1 + 3 files changed, 57 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/f/FirespitterWhelp.java diff --git a/Mage.Sets/src/mage/cards/f/FirespitterWhelp.java b/Mage.Sets/src/mage/cards/f/FirespitterWhelp.java new file mode 100644 index 00000000000..f069b199f1d --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FirespitterWhelp.java @@ -0,0 +1,55 @@ +package mage.cards.f; + +import mage.MageInt; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.common.DamagePlayersEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.TargetController; +import mage.filter.FilterSpell; +import mage.filter.predicate.Predicates; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class FirespitterWhelp extends CardImpl { + + private static final FilterSpell filter = new FilterSpell("a noncreature or Dragon spell"); + + static { + filter.add(Predicates.or( + Predicates.not(CardType.CREATURE.getPredicate()), + SubType.DRAGON.getPredicate() + )); + } + + public FirespitterWhelp(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); + + this.subtype.add(SubType.DRAGON); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Whenever you cast a noncreature or Dragon spell, Firespitter Whelp deals 1 damage to each opponent. + this.addAbility(new SpellCastControllerTriggeredAbility( + new DamagePlayersEffect(1, TargetController.OPPONENT), filter, false + )); + } + + private FirespitterWhelp(final FirespitterWhelp card) { + super(card); + } + + @Override + public FirespitterWhelp copy() { + return new FirespitterWhelp(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Foundations.java b/Mage.Sets/src/mage/sets/Foundations.java index 7b0c9d1baf8..e9027f07e54 100644 --- a/Mage.Sets/src/mage/sets/Foundations.java +++ b/Mage.Sets/src/mage/sets/Foundations.java @@ -57,6 +57,7 @@ public final class Foundations extends ExpansionSet { cards.add(new SetCardInfo("Faebloom Trick", 38, Rarity.UNCOMMON, mage.cards.f.FaebloomTrick.class)); cards.add(new SetCardInfo("Felidar Savior", 12, Rarity.COMMON, mage.cards.f.FelidarSavior.class)); cards.add(new SetCardInfo("Fiery Annihilation", 86, Rarity.UNCOMMON, mage.cards.f.FieryAnnihilation.class)); + cards.add(new SetCardInfo("Firespitter Whelp", 197, Rarity.UNCOMMON, mage.cards.f.FirespitterWhelp.class)); cards.add(new SetCardInfo("Flashfreeze", 590, Rarity.UNCOMMON, mage.cards.f.Flashfreeze.class)); cards.add(new SetCardInfo("Forest", 280, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Giada, Font of Hope", 298, Rarity.RARE, mage.cards.g.GiadaFontOfHope.class)); diff --git a/Mage.Sets/src/mage/sets/FoundationsJumpstart.java b/Mage.Sets/src/mage/sets/FoundationsJumpstart.java index 683d00b38fd..aec23a41eb7 100644 --- a/Mage.Sets/src/mage/sets/FoundationsJumpstart.java +++ b/Mage.Sets/src/mage/sets/FoundationsJumpstart.java @@ -25,6 +25,7 @@ public final class FoundationsJumpstart extends ExpansionSet { cards.add(new SetCardInfo("Dawnwing Marshal", 1, Rarity.UNCOMMON, mage.cards.d.DawnwingMarshal.class)); cards.add(new SetCardInfo("Dionus, Elvish Archdruid", 52, Rarity.UNCOMMON, mage.cards.d.DionusElvishArchdruid.class)); cards.add(new SetCardInfo("Faithful Pikemaster", 3, Rarity.COMMON, mage.cards.f.FaithfulPikemaster.class)); + cards.add(new SetCardInfo("Firespitter Whelp", 14, Rarity.UNCOMMON, mage.cards.f.FirespitterWhelp.class)); cards.add(new SetCardInfo("Gilded Scuttler", 7, Rarity.COMMON, mage.cards.g.GildedScuttler.class)); cards.add(new SetCardInfo("Goblin Surprise", 16, Rarity.UNCOMMON, mage.cards.g.GoblinSurprise.class)); cards.add(new SetCardInfo("Hearts on Fire", 17, Rarity.COMMON, mage.cards.h.HeartsOnFire.class));