[MSH] Implement Bruce Banner / The Incredible Hulk

This commit is contained in:
theelk801 2025-12-10 11:12:37 -05:00
parent 27066e008d
commit 48631a3487
3 changed files with 85 additions and 0 deletions

View file

@ -0,0 +1,82 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.DealtDamageToSourceTriggeredAbility;
import mage.abilities.condition.common.SourceAttackingCondition;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.dynamicvalue.common.GetXValue;
import mage.abilities.effects.common.AdditionalCombatPhaseEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.TransformSourceEffect;
import mage.abilities.effects.common.UntapSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.ReachAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardSetInfo;
import mage.cards.ModalDoubleFacedCard;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.counters.CounterType;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class BruceBanner extends ModalDoubleFacedCard {
public BruceBanner(UUID ownerId, CardSetInfo setInfo) {
super(
ownerId, setInfo,
new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.SCIENTIST, SubType.HERO}, "{U}",
"The Incredible Hulk",
new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.CREATURE}, new SubType[]{SubType.GAMMA, SubType.BERSERKER, SubType.HERO}, "{2}{R}{R}{G}{G}"
);
this.getLeftHalfCard().setPT(1, 1);
this.getRightHalfCard().setPT(8, 8);
// {X}{X}, {T}: Draw X cards. Activate only as a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(
new DrawCardSourceControllerEffect(GetXValue.instance), new ManaCostsImpl<>("{X}{X}")
);
ability.addCost(new TapSourceCost());
this.getLeftHalfCard().addAbility(ability);
// {2}{R}{R}{G}{G}: Transform Bruce Banner. Activate only as a sorcery.
this.getLeftHalfCard().addAbility(new ActivateAsSorceryActivatedAbility(
new TransformSourceEffect(), new ManaCostsImpl<>("{2}{R}{R}{G}{G}")
));
// The Incredible Hulk
// Reach
this.getRightHalfCard().addAbility(ReachAbility.getInstance());
// Trample
this.getRightHalfCard().addAbility(TrampleAbility.getInstance());
// Enrage -- Whenever The Incredible Hulk is dealt damage, put a +1/+1 counter on him. If he's attacking, untap him and there is an additional combat phase after this phase.
ability = new DealtDamageToSourceTriggeredAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance())
.setText("put a +1/+1 counter on him"),
false, true
);
ability.addEffect(new ConditionalOneShotEffect(
new UntapSourceEffect(), SourceAttackingCondition.instance, "If he's attacking, " +
"untap him and there is an additional combat phase after this phase"
).addEffect(new AdditionalCombatPhaseEffect()));
this.getRightHalfCard().addAbility(ability);
}
private BruceBanner(final BruceBanner card) {
super(card);
}
@Override
public BruceBanner copy() {
return new BruceBanner(this);
}
}

View file

@ -21,6 +21,8 @@ public final class MarvelSuperHeroes extends ExpansionSet {
this.hasBasicLands = false; // temporary
cards.add(new SetCardInfo("Attuma, Atlantean Warlord", 47, Rarity.UNCOMMON, mage.cards.a.AttumaAtlanteanWarlord.class));
cards.add(new SetCardInfo("Bruce Banner", 390, Rarity.MYTHIC, mage.cards.b.BruceBanner.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Bruce Banner", 49, Rarity.MYTHIC, mage.cards.b.BruceBanner.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Captain America, Super-Soldier", 387, Rarity.MYTHIC, mage.cards.c.CaptainAmericaSuperSoldier.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Captain America, Super-Soldier", 9, Rarity.MYTHIC, mage.cards.c.CaptainAmericaSuperSoldier.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Moon Girl and Devil Dinosaur", 223, Rarity.RARE, mage.cards.m.MoonGirlAndDevilDinosaur.class));

View file

@ -193,6 +193,7 @@ public enum SubType {
FUNGUS("Fungus", SubTypeSet.CreatureType),
// G
GAMER("Gamer", SubTypeSet.CreatureType),
GAMMA("Gamma", SubTypeSet.CreatureType),
GAMORREAN("Gamorrean", SubTypeSet.CreatureType, true), // Star Wars
GAND("Gand", SubTypeSet.CreatureType, true), // Star Wars
GARGOYLE("Gargoyle", SubTypeSet.CreatureType),