mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
Merge pull request #14153 from muz/spirited_away
Use specific tokens where possible for TDM
This commit is contained in:
commit
32b7f798f4
10 changed files with 96 additions and 24 deletions
|
|
@ -2693,9 +2693,10 @@ public class ScryfallImageSupportTokens {
|
|||
put("TDM/Reliquary Dragon", "https://api.scryfall.com/cards/ttdm/15/en?format=image");
|
||||
put("TDM/Soldier/1", "https://api.scryfall.com/cards/ttdm/4/en?format=image");
|
||||
put("TDM/Soldier/2", "https://api.scryfall.com/cards/ttdm/5/en?format=image");
|
||||
put("TDM/Spirit/1", "https://api.scryfall.com/cards/ttdm/9/en?format=image");
|
||||
put("TDM/Spirit/2", "https://api.scryfall.com/cards/ttdm/6/en?format=image");
|
||||
// TODO: 2/2 and 3/3 Spirit tokens (no relevant cards revealed, token not implemented)
|
||||
put("TDM/Spirit/1", "https://api.scryfall.com/cards/ttdm/9/en?format=image"); // */*
|
||||
put("TDM/Spirit/2", "https://api.scryfall.com/cards/ttdm/6/en?format=image"); // 1/1
|
||||
put("TDM/Spirit/3", "https://api.scryfall.com/cards/ttdm/7/en?format=image"); // 2/2
|
||||
put("TDM/Spirit/4", "https://api.scryfall.com/cards/ttdm/8/en?format=image"); // 3/3
|
||||
put("TDM/Treasure", "https://api.scryfall.com/cards/ttdm/16/en?format=image");
|
||||
put("TDM/Warrior", "https://api.scryfall.com/cards/ttdm/13/en?format=image");
|
||||
put("TDM/Zombie Druid", "https://api.scryfall.com/cards/ttdm/10/en?format=image");
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import mage.constants.SubType;
|
|||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.game.permanent.token.NoFlyingSpiritWhiteToken;
|
||||
import mage.game.permanent.token.NoFlyingSpiritWhite11Token;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -47,7 +47,7 @@ public final class GreatArashinCity extends CardImpl {
|
|||
this.addAbility(new BlackManaAbility());
|
||||
|
||||
// {1}{B}, {T}, Exile a creature card from your graveyard: Create a 1/1 white Spirit creature token.
|
||||
Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(new NoFlyingSpiritWhiteToken()), new ManaCostsImpl<>("{1}{B}"));
|
||||
Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(new NoFlyingSpiritWhite11Token()), new ManaCostsImpl<>("{1}{B}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE)).withSourceExileZone(false));
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.AnotherSpiritToken;
|
||||
import mage.game.permanent.token.Spirit33Token;
|
||||
|
||||
/**
|
||||
* @author Loki
|
||||
|
|
@ -29,7 +29,7 @@ public final class OyobiWhoSplitTheHeavens extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever you cast a Spirit or Arcane spell, create a 3/3 white Spirit creature token with flying.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new AnotherSpiritToken()), StaticFilters.FILTER_SPELL_SPIRIT_OR_ARCANE, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new Spirit33Token()), StaticFilters.FILTER_SPELL_SPIRIT_OR_ARCANE, false));
|
||||
}
|
||||
|
||||
private OyobiWhoSplitTheHeavens(final OyobiWhoSplitTheHeavens card) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import mage.constants.SagaChapter;
|
|||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.NoFlyingSpiritWhiteToken;
|
||||
import mage.game.permanent.token.NoFlyingSpiritWhite11Token;
|
||||
import mage.target.common.TargetPermanentAmount;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -35,7 +35,7 @@ public final class RevivalOfTheAncestors extends CardImpl {
|
|||
// I -- Create three 1/1 white Spirit creature tokens.
|
||||
sagaAbility.addChapterEffect(
|
||||
this, SagaChapter.CHAPTER_I,
|
||||
new CreateTokenEffect(new NoFlyingSpiritWhiteToken(), 3)
|
||||
new CreateTokenEffect(new NoFlyingSpiritWhite11Token(), 3)
|
||||
);
|
||||
|
||||
// II -- Distribute three +1/+1 counters among one, two, or three target creatures you control.
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -1439,7 +1439,7 @@
|
|||
|Generate|TOK:VOC|Bat|||BatToken|
|
||||
|Generate|TOK:VOC|Clue|||ClueArtifactToken|
|
||||
|Generate|TOK:VOC|Spirit|1||SpiritToken|
|
||||
|Generate|TOK:VOC|Spirit|2||AnotherSpiritToken|
|
||||
|Generate|TOK:VOC|Spirit|2||Spirit33Token|
|
||||
|Generate|TOK:VOC|Thopter|||ThopterColorlessToken|
|
||||
|
||||
# VOW
|
||||
|
|
@ -2732,9 +2732,9 @@
|
|||
|Generate|TOK:TDM|Soldier|1||SoldierToken|
|
||||
|Generate|TOK:TDM|Soldier|2||Soldier22Token|
|
||||
|Generate|TOK:TDM|Spirit|1||SpiritXXToken|
|
||||
|Generate|TOK:TDM|Spirit|2||NoFlyingSpiritWhiteToken|
|
||||
# TODO: 2/2 Spirit (no relevant cards revealed, token not implemented)
|
||||
# TODO: 3/3 Spirit (no relevant cards revealed, token not implemented)
|
||||
|Generate|TOK:TDM|Spirit|2||NoFlyingSpiritWhite11Token|
|
||||
|Generate|TOK:TDM|Spirit|3||NoFlyingSpiritWhite22Token|
|
||||
|Generate|TOK:TDM|Spirit|4||NoFlyingSpiritWhite33Token|
|
||||
|Generate|TOK:TDM|Treasure|||TreasureToken|
|
||||
|Generate|TOK:TDM|Warrior|||RedWarriorToken|
|
||||
|Generate|TOK:TDM|Zombie Druid|||ZombieDruidToken|
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue