[TMC] Implement Splinter, the Mentor

This commit is contained in:
theelk801 2025-10-10 17:08:41 -04:00
parent 60addceff9
commit 41c5076755
4 changed files with 99 additions and 0 deletions

View file

@ -0,0 +1,57 @@
package mage.cards.s;
import mage.MageInt;
import mage.abilities.common.LeavesBattlefieldAllTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.keyword.MenaceAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.PartnerVariantType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.filter.FilterPermanent;
import mage.filter.FilterPermanentThisOrAnother;
import mage.filter.StaticFilters;
import mage.game.permanent.token.MutagenToken;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class SplinterTheMentor extends CardImpl {
private static final FilterPermanent filter = new FilterPermanentThisOrAnother(
StaticFilters.FILTER_CONTROLLED_CREATURE_NON_TOKEN, false
);
public SplinterTheMentor(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.MUTANT);
this.subtype.add(SubType.NINJA);
this.subtype.add(SubType.RAT);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// Menace
this.addAbility(new MenaceAbility());
// Whenever Splinter or another nontoken creature you control leaves the battlefield, create a Mutagen token.
this.addAbility(new LeavesBattlefieldAllTriggeredAbility(new CreateTokenEffect(new MutagenToken()), filter));
// Partner--Character select
this.addAbility(PartnerVariantType.CHARACTER_SELECT.makeAbility());
}
private SplinterTheMentor(final SplinterTheMentor card) {
super(card);
}
@Override
public SplinterTheMentor copy() {
return new SplinterTheMentor(this);
}
}

View file

@ -22,5 +22,6 @@ public final class TeenageMutantNinjaTurtlesEternal extends ExpansionSet {
cards.add(new SetCardInfo("Dark Ritual", 131, Rarity.MYTHIC, mage.cards.d.DarkRitual.class)); cards.add(new SetCardInfo("Dark Ritual", 131, Rarity.MYTHIC, mage.cards.d.DarkRitual.class));
cards.add(new SetCardInfo("Donatello, Rad Scientist", 109, Rarity.MYTHIC, mage.cards.d.DonatelloRadScientist.class)); cards.add(new SetCardInfo("Donatello, Rad Scientist", 109, Rarity.MYTHIC, mage.cards.d.DonatelloRadScientist.class));
cards.add(new SetCardInfo("Leonardo, the Balance", 1, Rarity.MYTHIC, mage.cards.l.LeonardoTheBalance.class)); cards.add(new SetCardInfo("Leonardo, the Balance", 1, Rarity.MYTHIC, mage.cards.l.LeonardoTheBalance.class));
cards.add(new SetCardInfo("Splinter, the Mentor", 3, Rarity.MYTHIC, mage.cards.s.SplinterTheMentor.class));
} }
} }

View file

@ -64,6 +64,7 @@ public enum SubType {
JUNK("Junk", SubTypeSet.ArtifactType), JUNK("Junk", SubTypeSet.ArtifactType),
LANDER("Lander", SubTypeSet.ArtifactType), LANDER("Lander", SubTypeSet.ArtifactType),
MAP("Map", SubTypeSet.ArtifactType), MAP("Map", SubTypeSet.ArtifactType),
MUTAGEN("Mutagen", SubTypeSet.ArtifactType),
POWERSTONE("Powerstone", SubTypeSet.ArtifactType), POWERSTONE("Powerstone", SubTypeSet.ArtifactType),
SPACECRAFT("Spacecraft", SubTypeSet.ArtifactType), SPACECRAFT("Spacecraft", SubTypeSet.ArtifactType),
TREASURE("Treasure", SubTypeSet.ArtifactType), TREASURE("Treasure", SubTypeSet.ArtifactType),

View file

@ -0,0 +1,40 @@
package mage.game.permanent.token;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.target.common.TargetCreaturePermanent;
/**
* @author TheElk801
*/
public final class MutagenToken extends TokenImpl {
public MutagenToken() {
super("Mutagen Token", "Mutagen token");
cardType.add(CardType.ARTIFACT);
subtype.add(SubType.MUTAGEN);
Ability ability = new ActivateAsSorceryActivatedAbility(
new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new GenericManaCost(1)
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost().setText("sacrifice this token"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
private MutagenToken(final MutagenToken token) {
super(token);
}
public MutagenToken copy() {
return new MutagenToken(this);
}
}