Merge pull request #14153 from muz/spirited_away

Use specific tokens where possible for TDM
This commit is contained in:
xenohedron 2026-01-13 00:10:32 -05:00 committed by GitHub
commit 32b7f798f4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 96 additions and 24 deletions

View file

@ -9,6 +9,9 @@ import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.game.permanent.token.SpiritXXToken;
import mage.game.permanent.token.NoFlyingSpiritWhite11Token;
import mage.game.permanent.token.NoFlyingSpiritWhite22Token;
import mage.game.permanent.token.NoFlyingSpiritWhite33Token;
import mage.players.Player;
import mage.util.CardUtil;
@ -69,6 +72,16 @@ public class EndureSourceEffect extends OneShotEffect {
)) {
return permanent.addCounters(CounterType.P1P1.createInstance(amount), source, game);
}
return new SpiritXXToken(amount).putOntoBattlefield(1, game, source);
switch (amount) {
case 1:
return new NoFlyingSpiritWhite11Token().putOntoBattlefield(1, game, source);
case 2:
return new NoFlyingSpiritWhite22Token().putOntoBattlefield(1, game, source);
case 3:
return new NoFlyingSpiritWhite33Token().putOntoBattlefield(1, game, source);
default:
return new SpiritXXToken(amount).putOntoBattlefield(1, game, source);
}
}
}

View file

@ -7,9 +7,9 @@ import mage.constants.SubType;
/**
* @author PurpleCrowbar
*/
public final class NoFlyingSpiritWhiteToken extends TokenImpl {
public final class NoFlyingSpiritWhite11Token extends TokenImpl {
public NoFlyingSpiritWhiteToken() {
public NoFlyingSpiritWhite11Token() {
super("Spirit Token", "1/1 white Spirit creature token");
cardType.add(CardType.CREATURE);
subtype.add(SubType.SPIRIT);
@ -18,12 +18,12 @@ public final class NoFlyingSpiritWhiteToken extends TokenImpl {
toughness = new MageInt(1);
}
private NoFlyingSpiritWhiteToken(final NoFlyingSpiritWhiteToken token) {
private NoFlyingSpiritWhite11Token(final NoFlyingSpiritWhite11Token token) {
super(token);
}
@Override
public NoFlyingSpiritWhiteToken copy() {
return new NoFlyingSpiritWhiteToken(this);
public NoFlyingSpiritWhite11Token copy() {
return new NoFlyingSpiritWhite11Token(this);
}
}

View file

@ -0,0 +1,29 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
/**
* @author muz
*/
public final class NoFlyingSpiritWhite22Token extends TokenImpl {
public NoFlyingSpiritWhite22Token() {
super("Spirit Token", "2/2 white Spirit creature token");
cardType.add(CardType.CREATURE);
subtype.add(SubType.SPIRIT);
color.setWhite(true);
power = new MageInt(2);
toughness = new MageInt(2);
}
private NoFlyingSpiritWhite22Token(final NoFlyingSpiritWhite22Token token) {
super(token);
}
@Override
public NoFlyingSpiritWhite22Token copy() {
return new NoFlyingSpiritWhite22Token(this);
}
}

View file

@ -0,0 +1,29 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
/**
* @author muz
*/
public final class NoFlyingSpiritWhite33Token extends TokenImpl {
public NoFlyingSpiritWhite33Token() {
super("Spirit Token", "3/3 white Spirit creature token");
cardType.add(CardType.CREATURE);
subtype.add(SubType.SPIRIT);
color.setWhite(true);
power = new MageInt(3);
toughness = new MageInt(3);
}
private NoFlyingSpiritWhite33Token(final NoFlyingSpiritWhite33Token token) {
super(token);
}
@Override
public NoFlyingSpiritWhite33Token copy() {
return new NoFlyingSpiritWhite33Token(this);
}
}

View file

@ -8,9 +8,9 @@ import mage.constants.SubType;
/**
* @author spjspj
*/
public final class AnotherSpiritToken extends TokenImpl {
public final class Spirit33Token extends TokenImpl {
public AnotherSpiritToken() {
public Spirit33Token() {
super("Spirit Token", "3/3 white Spirit creature token with flying");
cardType.add(CardType.CREATURE);
color.setWhite(true);
@ -21,11 +21,11 @@ public final class AnotherSpiritToken extends TokenImpl {
this.addAbility(FlyingAbility.getInstance());
}
private AnotherSpiritToken(final AnotherSpiritToken token) {
private Spirit33Token(final Spirit33Token token) {
super(token);
}
public AnotherSpiritToken copy() {
return new AnotherSpiritToken(this);
public Spirit33Token copy() {
return new Spirit33Token(this);
}
}