From ebdebf101a874a5e50778c3ff7502f0ffdb46fb3 Mon Sep 17 00:00:00 2001 From: Muz Date: Wed, 7 Jan 2026 07:50:51 -0600 Subject: [PATCH] [ECL] Implement Flamebraider (#14175) Co-authored-by: Evan Kranzler --- Mage.Sets/src/mage/cards/f/Flamebraider.java | 77 ++++++++++++++++++++ Mage.Sets/src/mage/sets/LorwynEclipsed.java | 1 + 2 files changed, 78 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/f/Flamebraider.java diff --git a/Mage.Sets/src/mage/cards/f/Flamebraider.java b/Mage.Sets/src/mage/cards/f/Flamebraider.java new file mode 100644 index 00000000000..0181c544f28 --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/Flamebraider.java @@ -0,0 +1,77 @@ +package mage.cards.f; + +import java.util.UUID; + +import mage.ConditionalMana; +import mage.MageInt; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.abilities.mana.ConditionalAnyColorManaAbility; +import mage.abilities.mana.builder.ConditionalManaBuilder; +import mage.constants.SubType; +import mage.game.Game; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * + * @author muz + */ +public final class Flamebraider extends CardImpl { + + public Flamebraider(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}"); + + this.subtype.add(SubType.ELEMENTAL); + this.subtype.add(SubType.BARD); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // {T}: Add two mana in any combination of colors. Spend this mana only to cast Elemental spells or activate abilities of Elemental sources. + this.addAbility(new ConditionalAnyColorManaAbility(2, new FlamebraiderManaBuilder())); + } + + private Flamebraider(final Flamebraider card) { + super(card); + } + + @Override + public Flamebraider copy() { + return new Flamebraider(this); + } +} + +class FlamebraiderManaBuilder extends ConditionalManaBuilder { + + @Override + public ConditionalMana build(Object... options) { + return new FlamebraiderConditionalMana(this.mana); + } + + @Override + public String getRule() { + return "Spend this mana only to cast Elemental spells or activate abilities of Elemental sources"; + } +} + +class FlamebraiderConditionalMana extends ConditionalMana { + + public FlamebraiderConditionalMana(Mana mana) { + super(mana); + this.staticText = "Spend this mana only to cast Elemental spells or activate abilities of Elemental sources"; + addCondition(FlamebraiderManaCondition.instance); + } +} + +enum FlamebraiderManaCondition implements Condition { + instance; + + @Override + public boolean apply(Game game, Ability source) { + MageObject object = game.getObject(source); + return object != null && object.hasSubtype(SubType.ELEMENTAL, game); + } +} diff --git a/Mage.Sets/src/mage/sets/LorwynEclipsed.java b/Mage.Sets/src/mage/sets/LorwynEclipsed.java index 5b482fff4f8..712524d9c03 100644 --- a/Mage.Sets/src/mage/sets/LorwynEclipsed.java +++ b/Mage.Sets/src/mage/sets/LorwynEclipsed.java @@ -67,6 +67,7 @@ public final class LorwynEclipsed extends ExpansionSet { cards.add(new SetCardInfo("Explosive Prodigy", 136, Rarity.UNCOMMON, mage.cards.e.ExplosiveProdigy.class)); cards.add(new SetCardInfo("Figure of Fable", 224, Rarity.RARE, mage.cards.f.FigureOfFable.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Figure of Fable", 372, Rarity.RARE, mage.cards.f.FigureOfFable.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Flamebraider", 139, Rarity.UNCOMMON, mage.cards.f.Flamebraider.class)); cards.add(new SetCardInfo("Flock Impostor", 16, Rarity.UNCOMMON, mage.cards.f.FlockImpostor.class)); cards.add(new SetCardInfo("Forest", 273, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Forest", 278, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS));