From d10863b84453c1df7d014d7844cca86316d48e51 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 14 Nov 2025 10:53:55 -0500 Subject: [PATCH] [TLE] Implement Bumi's Feast Lecture --- .../src/mage/cards/b/BumisFeastLecture.java | 51 +++++++++++++++++++ .../sets/AvatarTheLastAirbenderEternal.java | 1 + 2 files changed, 52 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/b/BumisFeastLecture.java diff --git a/Mage.Sets/src/mage/cards/b/BumisFeastLecture.java b/Mage.Sets/src/mage/cards/b/BumisFeastLecture.java new file mode 100644 index 00000000000..f3850984bee --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BumisFeastLecture.java @@ -0,0 +1,51 @@ +package mage.cards.b; + +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.keyword.EarthbendTargetEffect; +import mage.abilities.hint.Hint; +import mage.abilities.hint.ValueHint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.common.FilterControlledPermanent; +import mage.game.permanent.token.FoodToken; +import mage.target.common.TargetControlledLandPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class BumisFeastLecture extends CardImpl { + + private static final DynamicValue xValue = new PermanentsOnBattlefieldCount( + new FilterControlledPermanent(SubType.FOOD, "twice the number of Foods you control"), 2 + ); + private static final Hint hint = new ValueHint( + "Foods you control", new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.FOOD)) + ); + + public BumisFeastLecture(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}"); + + this.subtype.add(SubType.LESSON); + + // Create a Food token. Then earthbend X, where X is twice the number of Foods you control. + this.getSpellAbility().addEffect(new CreateTokenEffect(new FoodToken())); + this.getSpellAbility().addEffect(new EarthbendTargetEffect(xValue).concatBy("Then")); + this.getSpellAbility().addTarget(new TargetControlledLandPermanent()); + this.getSpellAbility().addHint(hint); + } + + private BumisFeastLecture(final BumisFeastLecture card) { + super(card); + } + + @Override + public BumisFeastLecture copy() { + return new BumisFeastLecture(this); + } +} diff --git a/Mage.Sets/src/mage/sets/AvatarTheLastAirbenderEternal.java b/Mage.Sets/src/mage/sets/AvatarTheLastAirbenderEternal.java index 21fd23654c4..53067807db6 100644 --- a/Mage.Sets/src/mage/sets/AvatarTheLastAirbenderEternal.java +++ b/Mage.Sets/src/mage/sets/AvatarTheLastAirbenderEternal.java @@ -64,6 +64,7 @@ public final class AvatarTheLastAirbenderEternal extends ExpansionSet { cards.add(new SetCardInfo("Brainstorm", 155, Rarity.COMMON, mage.cards.b.Brainstorm.class)); cards.add(new SetCardInfo("Bribery", 10, Rarity.MYTHIC, mage.cards.b.Bribery.class)); cards.add(new SetCardInfo("Brought Back", 1, Rarity.MYTHIC, mage.cards.b.BroughtBack.class)); + cards.add(new SetCardInfo("Bumi's Feast Lecture", 133, Rarity.UNCOMMON, mage.cards.b.BumisFeastLecture.class)); cards.add(new SetCardInfo("Bumi, Eclectic Earthbender", 248, Rarity.RARE, mage.cards.b.BumiEclecticEarthbender.class)); cards.add(new SetCardInfo("Capital Guard", 234, Rarity.COMMON, mage.cards.c.CapitalGuard.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Capital Guard", 277, Rarity.COMMON, mage.cards.c.CapitalGuard.class, NON_FULL_USE_VARIOUS));