From 89c5b54d322d24c714b51a7efaed470d975f0e68 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 10 Oct 2025 14:24:06 -0400 Subject: [PATCH] [TMC] Implement Leonardo, the Balance --- .../src/mage/cards/l/LeonardoTheBalance.java | 73 +++++++++++++++++++ .../TeenageMutantNinjaTurtlesEternal.java | 1 + .../mage/constants/PartnerVariantType.java | 3 +- 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 Mage.Sets/src/mage/cards/l/LeonardoTheBalance.java diff --git a/Mage.Sets/src/mage/cards/l/LeonardoTheBalance.java b/Mage.Sets/src/mage/cards/l/LeonardoTheBalance.java new file mode 100644 index 00000000000..816a8f0226b --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LeonardoTheBalance.java @@ -0,0 +1,73 @@ +package mage.cards.l; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.GainAbilityAllEffect; +import mage.abilities.effects.common.counter.AddCountersAllEffect; +import mage.abilities.keyword.LifelinkAbility; +import mage.abilities.keyword.MenaceAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.counters.CounterType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class LeonardoTheBalance extends CardImpl { + + public LeonardoTheBalance(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.MUTANT); + this.subtype.add(SubType.NINJA); + this.subtype.add(SubType.TURTLE); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Whenever a token you control enters, you may put a +1/+1 counter on each creature you control. Do this only once each turn. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility( + new AddCountersAllEffect( + CounterType.P1P1.createInstance(), StaticFilters.FILTER_CONTROLLED_CREATURE + ), StaticFilters.FILTER_PERMANENT_TOKEN + ).setDoOnlyOnceEachTurn(true)); + + // {W}{U}{B}{R}{G}: Creatures you control gain menace, trample, and lifelink until end of turn. + Ability ability = new SimpleActivatedAbility( + new GainAbilityAllEffect( + new MenaceAbility(false), Duration.EndOfTurn, + StaticFilters.FILTER_CONTROLLED_CREATURE + ).setText("creatures you control gain menace"), + new ManaCostsImpl<>("{W}{U}{B}{R}{G}") + ); + ability.addEffect(new GainAbilityAllEffect( + TrampleAbility.getInstance(), Duration.EndOfTurn, + StaticFilters.FILTER_CONTROLLED_CREATURE + ).setText(", trample")); + ability.addEffect(new GainAbilityAllEffect( + LifelinkAbility.getInstance(), Duration.EndOfTurn, + StaticFilters.FILTER_CONTROLLED_CREATURE + ).setText(", and lifelink until end of turn")); + this.addAbility(ability); + + // Partner--Character select + this.addAbility(PartnerVariantType.CHARACTER_SELECT.makeAbility()); + } + + private LeonardoTheBalance(final LeonardoTheBalance card) { + super(card); + } + + @Override + public LeonardoTheBalance copy() { + return new LeonardoTheBalance(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TeenageMutantNinjaTurtlesEternal.java b/Mage.Sets/src/mage/sets/TeenageMutantNinjaTurtlesEternal.java index 7488409a10f..4a500387e5c 100644 --- a/Mage.Sets/src/mage/sets/TeenageMutantNinjaTurtlesEternal.java +++ b/Mage.Sets/src/mage/sets/TeenageMutantNinjaTurtlesEternal.java @@ -20,5 +20,6 @@ public final class TeenageMutantNinjaTurtlesEternal extends ExpansionSet { this.hasBasicLands = false; cards.add(new SetCardInfo("Dark Ritual", 131, Rarity.MYTHIC, mage.cards.d.DarkRitual.class)); + cards.add(new SetCardInfo("Leonardo, the Balance", 1, Rarity.MYTHIC, mage.cards.l.LeonardoTheBalance.class)); } } diff --git a/Mage/src/main/java/mage/constants/PartnerVariantType.java b/Mage/src/main/java/mage/constants/PartnerVariantType.java index db3914a50b0..1c1d960f983 100644 --- a/Mage/src/main/java/mage/constants/PartnerVariantType.java +++ b/Mage/src/main/java/mage/constants/PartnerVariantType.java @@ -12,7 +12,8 @@ import java.util.stream.Collectors; */ public enum PartnerVariantType { FATHER_AND_SON("Father & son"), - SURVIVORS("Survivors"); + SURVIVORS("Survivors"), + CHARACTER_SELECT("Character select"); private final String name;