[TMT] Implement Dark Leo and Shredder

This commit is contained in:
theelk801 2026-01-22 09:32:03 -05:00
parent 6f1afc88ae
commit 3c55e1006d
3 changed files with 113 additions and 0 deletions

View file

@ -0,0 +1,84 @@
package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.LoseHalfLifeTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.abilities.keyword.DeathtouchAbility;
import mage.abilities.keyword.SneakAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterAttackingCreature;
import mage.filter.common.FilterControlledPermanent;
import mage.game.permanent.token.NinjaToken3;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class DarkLeoAndShredder extends CardImpl {
private static final FilterPermanent filter = new FilterAttackingCreature("attacking Ninjas");
static {
filter.add(SubType.NINJA.getPredicate());
}
private static final Condition condition = new PermanentsOnTheBattlefieldCondition(
new FilterControlledPermanent(SubType.NINJA), ComparisonType.OR_GREATER, 5
);
private static final Hint hint = new ValueHint(
"Ninjas you control", new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.NINJA))
);
public DarkLeoAndShredder(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{B}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.MUTANT);
this.subtype.add(SubType.NINJA);
this.subtype.add(SubType.TURTLE);
this.subtype.add(SubType.HUMAN);
this.power = new MageInt(1);
this.toughness = new MageInt(3);
// Sneak {W}{B}
this.addAbility(new SneakAbility(this, "{W}{B}"));
// Attacking Ninjas you control have deathtouch.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
DeathtouchAbility.getInstance(), Duration.WhileOnBattlefield, filter
)));
// Whenever Dark Leo & Shredder deal combat damage to a player, create a 1/1 black Ninja creature token. Then if you control five or more Ninjas, that player loses half their life, rounded up.
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(
new CreateTokenEffect(new NinjaToken3()), false, true
).setTriggerPhrase("Whenever {this} deal combat damage to a player, ");
ability.addEffect(new ConditionalOneShotEffect(
new LoseHalfLifeTargetEffect(), condition, "Then if you control " +
"five or more Ninjas, that player loses half their life, rounded up"
));
this.addAbility(ability.addHint(hint));
}
private DarkLeoAndShredder(final DarkLeoAndShredder card) {
super(card);
}
@Override
public DarkLeoAndShredder copy() {
return new DarkLeoAndShredder(this);
}
}

View file

@ -29,6 +29,7 @@ public final class TeenageMutantNinjaTurtles extends ExpansionSet {
cards.add(new SetCardInfo("Casey Jones, Vigilante", 88, Rarity.RARE, mage.cards.c.CaseyJonesVigilante.class));
cards.add(new SetCardInfo("Chrome Dome", 172, Rarity.RARE, mage.cards.c.ChromeDome.class));
cards.add(new SetCardInfo("Cool but Rude", 89, Rarity.RARE, mage.cards.c.CoolButRude.class));
cards.add(new SetCardInfo("Dark Leo & Shredder", 142, Rarity.MYTHIC, mage.cards.d.DarkLeoAndShredder.class));
cards.add(new SetCardInfo("Does Machines", 34, Rarity.RARE, mage.cards.d.DoesMachines.class));
cards.add(new SetCardInfo("Donatello, Gadget Master", 35, Rarity.RARE, mage.cards.d.DonatelloGadgetMaster.class));
cards.add(new SetCardInfo("Forest", 257, Rarity.LAND, mage.cards.basiclands.Forest.class, FULL_ART_BFZ_VARIOUS));

View file

@ -0,0 +1,28 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
/**
* @author TheElk801
*/
public final class NinjaToken3 extends TokenImpl {
public NinjaToken3() {
super("Ninja Token", "1/1 black Ninja creature token");
cardType.add(CardType.CREATURE);
color.setBlack(true);
subtype.add(SubType.NINJA);
power = new MageInt(1);
toughness = new MageInt(1);
}
private NinjaToken3(final NinjaToken3 token) {
super(token);
}
public NinjaToken3 copy() {
return new NinjaToken3(this);
}
}