From e56a55c9db82c64cfc8adf1c98fbaf2b1d0c7eaa Mon Sep 17 00:00:00 2001 From: Muz Ali Date: Tue, 30 Jun 2026 22:58:54 -0500 Subject: [PATCH] [MSH] Implement Hulkling, Burgeoning Bruiser --- .../cards/h/HulklingBurgeoningBruiser.java | 88 +++++++++++++++++++ .../src/mage/sets/MarvelSuperHeroes.java | 1 + 2 files changed, 89 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/h/HulklingBurgeoningBruiser.java diff --git a/Mage.Sets/src/mage/cards/h/HulklingBurgeoningBruiser.java b/Mage.Sets/src/mage/cards/h/HulklingBurgeoningBruiser.java new file mode 100644 index 000000000000..14aba83dc87f --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HulklingBurgeoningBruiser.java @@ -0,0 +1,88 @@ +package mage.cards.h; + +import java.util.UUID; + +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.StaticFilters; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; + +/** + * @author muz + */ +public final class HulklingBurgeoningBruiser extends CardImpl { + + public HulklingBurgeoningBruiser(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.KREE); + this.subtype.add(SubType.SKRULL); + this.subtype.add(SubType.HERO); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // Whenever another creature you control enters, if it has greater power or toughness than Hulkling, put a +1/+1 counter on Hulkling. + this.addAbility(new HulklingBurgeoningBruiserTriggeredAbility()); + } + + private HulklingBurgeoningBruiser(final HulklingBurgeoningBruiser card) { + super(card); + } + + @Override + public HulklingBurgeoningBruiser copy() { + return new HulklingBurgeoningBruiser(this); + } +} + +class HulklingBurgeoningBruiserTriggeredAbility extends TriggeredAbilityImpl { + + HulklingBurgeoningBruiserTriggeredAbility() { + super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance())); + setTriggerPhrase("Whenever another creature you control enters, " + + "if it has greater power or toughness than {this}, "); + } + + private HulklingBurgeoningBruiserTriggeredAbility(final HulklingBurgeoningBruiserTriggeredAbility ability) { + super(ability); + } + + @Override + public HulklingBurgeoningBruiserTriggeredAbility copy() { + return new HulklingBurgeoningBruiserTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + Permanent enteringCreature = game.getPermanent(event.getTargetId()); + Permanent permanent = getSourcePermanentIfItStillExists(game); + if (enteringCreature == null + || permanent == null + || !StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL.match(enteringCreature, getControllerId(), this, game)) { + return false; + } + + return !(enteringCreature.getPower().getValue() <= permanent.getPower().getValue() && + enteringCreature.getToughness().getValue() <= permanent.getToughness().getValue()); + } +} diff --git a/Mage.Sets/src/mage/sets/MarvelSuperHeroes.java b/Mage.Sets/src/mage/sets/MarvelSuperHeroes.java index 0c78fb74a146..50e93a3e07cd 100644 --- a/Mage.Sets/src/mage/sets/MarvelSuperHeroes.java +++ b/Mage.Sets/src/mage/sets/MarvelSuperHeroes.java @@ -166,6 +166,7 @@ private MarvelSuperHeroes() { cards.add(new SetCardInfo("Hire a Crew", 134, Rarity.COMMON, mage.cards.h.HireACrew.class)); cards.add(new SetCardInfo("Hour of Defeat", 99, Rarity.COMMON, mage.cards.h.HourOfDefeat.class)); cards.add(new SetCardInfo("Hulk, Gamma Goliath", 215, Rarity.UNCOMMON, mage.cards.h.HulkGammaGoliath.class)); + cards.add(new SetCardInfo("Hulkling, Burgeoning Bruiser", 173, Rarity.UNCOMMON, mage.cards.h.HulklingBurgeoningBruiser.class)); cards.add(new SetCardInfo("Human Torch, Johnny Storm", 136, Rarity.UNCOMMON, mage.cards.h.HumanTorchJohnnyStorm.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Human Torch, Johnny Storm", 321, Rarity.UNCOMMON, mage.cards.h.HumanTorchJohnnyStorm.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("I Am Iron Man", 58, Rarity.COMMON, mage.cards.i.IAmIronMan.class));