[TMT] Implement Mutagen Man, Living Ooze (#14285)

This commit is contained in:
Muz 2026-01-18 10:07:01 -06:00 committed by GitHub
parent 67f25b9fe8
commit 48dee7d128
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 105 additions and 0 deletions

View file

@ -0,0 +1,103 @@
package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.game.permanent.PermanentToken;
import mage.game.permanent.token.MutagenToken;
import mage.players.Player;
import mage.util.CardUtil;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.GetXValue;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.cost.CostModificationEffectImpl;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.CostModificationType;
import mage.constants.Duration;
import mage.constants.Outcome;
/**
*
* @author muz
*/
public final class MutagenManLivingOoze extends CardImpl {
public MutagenManLivingOoze(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{X}{G}{G}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.OOZE);
this.subtype.add(SubType.MUTANT);
this.power = new MageInt(2);
this.toughness = new MageInt(3);
// Trample
this.addAbility(TrampleAbility.getInstance());
// Activated abilities of artifact tokens you control cost {1} less to activate.
this.addAbility(new SimpleStaticAbility(new MutagenManLivingOozeEffect()));
// When Mutagen Man enters, create X Mutagen tokens.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new MutagenToken(), GetXValue.instance)));
}
private MutagenManLivingOoze(final MutagenManLivingOoze card) {
super(card);
}
@Override
public MutagenManLivingOoze copy() {
return new MutagenManLivingOoze(this);
}
}
class MutagenManLivingOozeEffect extends CostModificationEffectImpl {
private static final String effectText = "Activated abilities of artifact tokens you control cost {1} less to activate";
MutagenManLivingOozeEffect() {
super(Duration.Custom, Outcome.Benefit, CostModificationType.REDUCE_COST);
staticText = effectText;
}
private MutagenManLivingOozeEffect(final MutagenManLivingOozeEffect effect) {
super(effect);
}
@Override
public boolean apply(Game game, Ability source, Ability abilityToModify) {
Player controller = game.getPlayer(abilityToModify.getControllerId());
if (controller == null) {
return false;
}
CardUtil.reduceCost(abilityToModify, 1);
return true;
}
@Override
public boolean applies(Ability abilityToModify, Ability source, Game game) {
if (!abilityToModify.getAbilityType().isActivatedAbility()) {
return false;
}
// Activated abilities of artifact tokens you control
Permanent permanent = game.getPermanentOrLKIBattlefield(abilityToModify.getSourceId());
return permanent != null
&& permanent.isArtifact(game)
&& (permanent instanceof PermanentToken)
&& permanent.isControlledBy(source.getControllerId());
}
@Override
public MutagenManLivingOozeEffect copy() {
return new MutagenManLivingOozeEffect(this);
}
}

View file

@ -36,6 +36,7 @@ public final class TeenageMutantNinjaTurtles extends ExpansionSet {
cards.add(new SetCardInfo("Leonardo, Sewer Samurai", 301, Rarity.MYTHIC, mage.cards.l.LeonardoSewerSamurai.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Mountain", 256, Rarity.LAND, mage.cards.basiclands.Mountain.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Mountain", 313, Rarity.LAND, mage.cards.basiclands.Mountain.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Mutagen Man, Living Ooze", 124, Rarity.RARE, mage.cards.m.MutagenManLivingOoze.class));
cards.add(new SetCardInfo("North Wind Avatar", 162, Rarity.MYTHIC, mage.cards.n.NorthWindAvatar.class));
cards.add(new SetCardInfo("Plains", 253, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));
cards.add(new SetCardInfo("Plains", 310, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));

View file

@ -61328,6 +61328,7 @@ Casey Jones, Jury-Rig Justiciar|Teenage Mutant Ninja Turtles|87|U|{1}{R}|Legenda
Raphael, the Nightwatcher|Teenage Mutant Ninja Turtles|103|R|{2}{R}{R}|Legendary Creature - Mutant Ninja Turtle|2|3|Sneak {1}{R}{R}$Attacking creatures you control have double strike.|
Raphael's Technique|Teenage Mutant Ninja Turtles|105|R|{4}{R}{R}|Instant|||Sneak {2}{R}$Each player may discard their hand and draw seven cards.|
Groundchuck & Dirtbag|Teenage Mutant Ninja Turtles|115|R|{4}{G}{G}|Legendary Creature - Ox Mole Mutant|8|8|Trample$Whenever you tap a land for mana, add {G}.|
Mutagen Man, Living Ooze|Teenage Mutant Ninja Turtles|124|R|{X}{G}{G}|Legendary Creature - Ooze Mutant|2|3|Trample$Activated abilities of artifact tokens you control cost {1} less to activate.$When Mutagen Man enters, create X Mutagen tokens.|
Transdimensional Bovine|Teenage Mutant Ninja Turtles|134|R|{2}{G}|Creature - Ox Avatar|0|4|Flying${T}: Add two mana of any one color.|
Turtle Power!|Teenage Mutant Ninja Turtles|135|R|{2}{G}|Enchantment|||Flash$Turtles you control get +2/+2.|
Bebop & Rocksteady|Teenage Mutant Ninja Turtles|140|R|{1}{B/G}{B/G}|Legendary Creature - Boar Rhino Mutant|7|5|Whenever Bebop & Rocksteady attack or block, sacrifice a permanent unless you discard a card.|