Add token images for several sets (#8873)

* Added support for and assigned UMA token images

* Added Scryfall token download links for MMA

* Added Scryfall token download links for SHM

* Fixed last commit and Oona token names

* Added support for and assigned NEO token images

* Added support for and assigned NEC token images

* Added support for and assigned SLD token images

* Added support for and assigned 2XM token images

* Fixed Tuktuk and some naming inconsistencies

* Fixed WalkerOfTheGroveToken's available image set codes

* Fixed WalkerOfTheGroveToken's available image set codes

* Fixed tokens with same names not displaying correctly
This commit is contained in:
PurpleCrowbar 2022-04-26 15:34:21 +01:00 committed by GitHub
parent d95d8378fb
commit 80f6ceccff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
60 changed files with 476 additions and 48 deletions

View file

@ -712,6 +712,136 @@ public class ScryfallImageSupportTokens {
put("VOW/Zombie/1", "https://api.scryfall.com/cards/tvow/8/en?format=image"); // 2/2
put("VOW/Zombie/2", "https://api.scryfall.com/cards/tvow/5/en?format=image"); // */*
// UMA
put ("UMA/Citizen", "https://api.scryfall.com/cards/tuma/1/en?format=image");
put ("UMA/Drake", "https://api.scryfall.com/cards/tuma/3/en?format=image");
put ("UMA/Elemental/1", "https://api.scryfall.com/cards/tuma/13/en?format=image"); // green
put ("UMA/Elemental/2", "https://api.scryfall.com/cards/tuma/9/en?format=image");
put ("UMA/Elemental/3", "https://api.scryfall.com/cards/tuma/10/en?format=image");
put ("UMA/Faerie Rogue", "https://api.scryfall.com/cards/tuma/5/en?format=image");
put ("UMA/Homunculus", "https://api.scryfall.com/cards/tuma/4/en?format=image");
put ("UMA/Marit Lage", "https://api.scryfall.com/cards/tuma/6/en?format=image");
put ("UMA/Ooze", "https://api.scryfall.com/cards/tuma/14/en?format=image");
put ("UMA/Soldier", "https://api.scryfall.com/cards/tuma/11/en?format=image");
put ("UMA/Spark Elemental", "https://api.scryfall.com/cards/tuma/12/en?format=image");
put ("UMA/Spider", "https://api.scryfall.com/cards/tuma/15/en?format=image");
put ("UMA/Spirit/1", "https://api.scryfall.com/cards/tuma/2/en?format=image"); // white
put ("UMA/Spirit/2", "https://api.scryfall.com/cards/tuma/16/en?format=image"); // white, black
put ("UMA/Wurm", "https://api.scryfall.com/cards/tuma/7/en?format=image");
put ("UMA/Zombie", "https://api.scryfall.com/cards/tuma/8/en?format=image");
// MMA
put ("MMA/Bat", "https://api.scryfall.com/cards/tmma/5/en?format=image");
put ("MMA/Dragon", "https://api.scryfall.com/cards/tmma/9/en?format=image");
put ("MMA/Elemental", "https://api.scryfall.com/cards/tmma/11/en?format=image");
put ("MMA/Emblem Elspeth, Knight Errant", "https://api.scryfall.com/cards/tmma/16/en?format=image");
put ("MMA/Faerie Rogue", "https://api.scryfall.com/cards/tmma/14/en?format=image");
put ("MMA/Giant Warrior", "https://api.scryfall.com/cards/tmma/1/en?format=image");
put ("MMA/Goblin", "https://api.scryfall.com/cards/tmma/10/en?format=image");
put ("MMA/Goblin Rogue", "https://api.scryfall.com/cards/tmma/6/en?format=image");
put ("MMA/Illusion", "https://api.scryfall.com/cards/tmma/4/en?format=image");
put ("MMA/Kithkin Soldier", "https://api.scryfall.com/cards/tmma/2/en?format=image");
put ("MMA/Saproling", "https://api.scryfall.com/cards/tmma/12/en?format=image");
put ("MMA/Soldier", "https://api.scryfall.com/cards/tmma/3/en?format=image");
put ("MMA/Spider", "https://api.scryfall.com/cards/tmma/7/en?format=image");
put ("MMA/Treefolk Shaman", "https://api.scryfall.com/cards/tmma/13/en?format=image");
put ("MMA/Worm", "https://api.scryfall.com/cards/tmma/15/en?format=image");
put ("MMA/Zombie", "https://api.scryfall.com/cards/tmma/8/en?format=image");
// SHM
put ("SHM/Elemental/1", "https://api.scryfall.com/cards/tshm/9/en?format=image"); // black, red
put ("SHM/Elemental/2", "https://api.scryfall.com/cards/tshm/4/en?format=image"); // haste
put ("SHM/Elf Warrior/1", "https://api.scryfall.com/cards/tshm/5/en?format=image"); // green
put ("SHM/Elf Warrior/2", "https://api.scryfall.com/cards/tshm/12/en?format=image"); // white, green
put ("SHM/Faerie Rogue", "https://api.scryfall.com/cards/tshm/8/en?format=image");
put ("SHM/Giant Warrior", "https://api.scryfall.com/cards/tshm/10/en?format=image");
put ("SHM/Goblin Warrior", "https://api.scryfall.com/cards/tshm/11/en?format=image");
put ("SHM/Kithkin Soldier", "https://api.scryfall.com/cards/tshm/1/en?format=image");
put ("SHM/Rat", "https://api.scryfall.com/cards/tshm/3/en?format=image");
put ("SHM/Spider", "https://api.scryfall.com/cards/tshm/6/en?format=image");
put ("SHM/Spirit", "https://api.scryfall.com/cards/tshm/2/en?format=image");
put ("SHM/Wolf", "https://api.scryfall.com/cards/tshm/7/en?format=image");
// NEO
put ("NEO/Construct/1", "https://api.scryfall.com/cards/tneo/15/en?format=image"); // 1/1
put ("NEO/Construct/2", "https://api.scryfall.com/cards/tneo/6/en?format=image"); // haste
put ("NEO/Dragon Spirit", "https://api.scryfall.com/cards/tneo/7/en?format=image");
put ("NEO/Goblin Shaman", "https://api.scryfall.com/cards/tneo/8/en?format=image");
put ("NEO/Human Monk", "https://api.scryfall.com/cards/tneo/10/en?format=image");
put ("NEO/Emblem Kaito Shizuki", "https://api.scryfall.com/cards/tneo/18/en?format=image");
put ("NEO/Keimi", "https://api.scryfall.com/cards/tneo/13/en?format=image");
put ("NEO/Mechtitan", "https://api.scryfall.com/cards/tneo/14/en?format=image");
put ("NEO/Ninja", "https://api.scryfall.com/cards/tneo/4/en?format=image");
put ("NEO/Pilot", "https://api.scryfall.com/cards/tneo/1/en?format=image");
put ("NEO/Rat Rogue", "https://api.scryfall.com/cards/tneo/5/en?format=image");
put ("NEO/Samurai", "https://api.scryfall.com/cards/tneo/3/en?format=image");
put ("NEO/Spirit/1", "https://api.scryfall.com/cards/tneo/2/en?format=image"); // colorless
put ("NEO/Spirit/2", "https://api.scryfall.com/cards/tneo/12/en?format=image"); // */*
put ("NEO/Spirit/3", "https://api.scryfall.com/cards/tneo/11/en?format=image"); // green
put ("NEO/Spirit/4", "https://api.scryfall.com/cards/tneo/9/en?format=image"); // red
put ("NEO/Tamiyo's Notebook", "https://api.scryfall.com/cards/tneo/16/en?format=image");
put ("NEO/Emblem Tezzeret, Betrayer of Flesh", "https://api.scryfall.com/cards/tneo/19/en?format=image");
put ("NEO/Treasure", "https://api.scryfall.com/cards/tneo/17/en?format=image");
// NEC
put ("NEC/Angel", "https://api.scryfall.com/cards/tnec/2/en?format=image");
put ("NEC/Beast", "https://api.scryfall.com/cards/tnec/7/en?format=image");
put ("NEC/Elemental", "https://api.scryfall.com/cards/tnec/4/en?format=image");
put ("NEC/Elephant", "https://api.scryfall.com/cards/tnec/8/en?format=image");
put ("NEC/Goblin", "https://api.scryfall.com/cards/tnec/5/en?format=image");
put ("NEC/Myr", "https://api.scryfall.com/cards/tnec/11/en?format=image");
put ("NEC/Phyrexian Germ", "https://api.scryfall.com/cards/tnec/3/en?format=image");
put ("NEC/Plant", "https://api.scryfall.com/cards/tnec/9/en?format=image");
put ("NEC/Saproling", "https://api.scryfall.com/cards/tnec/10/en?format=image");
put ("NEC/Shrine", "https://api.scryfall.com/cards/tnec/1/en?format=image");
put ("NEC/Smoke Blessing", "https://api.scryfall.com/cards/tnec/6/en?format=image");
put ("NEC/Thopter", "https://api.scryfall.com/cards/tnec/12/en?format=image");
// SLD
put ("SLD/Clue", "https://api.scryfall.com/cards/sld/348/en?format=image");
put ("SLD/Faerie Rogue/1", "https://api.scryfall.com/cards/sld/13/en?format=image");
put ("SLD/Faerie Rogue/2", "https://api.scryfall.com/cards/sld/14/en?format=image");
put ("SLD/Faerie Rogue/3", "https://api.scryfall.com/cards/sld/15/en?format=image");
put ("SLD/Faerie Rogue/4", "https://api.scryfall.com/cards/sld/16/en?format=image");
put ("SLD/Treasure", "https://api.scryfall.com/cards/sld/153/en?format=image");
put ("SLD/Walker/1", "https://api.scryfall.com/cards/sld/148/en?format=image");
put ("SLD/Walker/2", "https://api.scryfall.com/cards/sld/149/en?format=image");
put ("SLD/Walker/3", "https://api.scryfall.com/cards/sld/150/en?format=image");
put ("SLD/Walker/4", "https://api.scryfall.com/cards/sld/151/en?format=image");
put ("SLD/Walker/5", "https://api.scryfall.com/cards/sld/152/en?format=image");
// 2XM
put ("2XM/Angel", "https://api.scryfall.com/cards/t2xm/3/en?format=image");
put ("2XM/Ape", "https://api.scryfall.com/cards/t2xm/12/en?format=image");
put ("2XM/Beast", "https://api.scryfall.com/cards/t2xm/13/en?format=image");
put ("2XM/Cat", "https://api.scryfall.com/cards/t2xm/4/en?format=image");
put ("2XM/Clue", "https://api.scryfall.com/cards/t2xm/22/en?format=image");
put ("2XM/Demon", "https://api.scryfall.com/cards/t2xm/9/en?format=image");
put ("2XM/Eldrazi Spawn", "https://api.scryfall.com/cards/t2xm/1/en?format=image");
put ("2XM/Elemental", "https://api.scryfall.com/cards/t2xm/20/en?format=image");
put ("2XM/Elephant", "https://api.scryfall.com/cards/t2xm/14/en?format=image");
put ("2XM/Elf Warrior", "https://api.scryfall.com/cards/t2xm/21/en?format=image");
put ("2XM/Phyrexian Germ", "https://api.scryfall.com/cards/t2xm/10/en?format=image");
put ("2XM/Golem", "https://api.scryfall.com/cards/t2xm/23/en?format=image");
put ("2XM/Human Soldier", "https://api.scryfall.com/cards/t2xm/5/en?format=image");
put ("2XM/Marit Lage", "https://api.scryfall.com/cards/t2xm/11/en?format=image");
put ("2XM/Myr", "https://api.scryfall.com/cards/t2xm/24/en?format=image");
put ("2XM/Phyrexian Myr", "https://api.scryfall.com/cards/t2xm/7/en?format=image");
put ("2XM/Ooze", "https://api.scryfall.com/cards/t2xm/15/en?format=image");
put ("2XM/Plant", "https://api.scryfall.com/cards/t2xm/16/en?format=image");
put ("2XM/Saproling", "https://api.scryfall.com/cards/t2xm/17/en?format=image");
put ("2XM/Servo", "https://api.scryfall.com/cards/t2xm/25/en?format=image");
put ("2XM/Shapeshifter", "https://api.scryfall.com/cards/t2xm/2/en?format=image");
put ("2XM/Soldier", "https://api.scryfall.com/cards/t2xm/6/en?format=image");
put ("2XM/Squirrel", "https://api.scryfall.com/cards/t2xm/18/en?format=image");
put ("2XM/Thopter/1", "https://api.scryfall.com/cards/t2xm/26/en?format=image");
put ("2XM/Thopter/2", "https://api.scryfall.com/cards/t2xm/8/en?format=image");
put ("2XM/Treasure", "https://api.scryfall.com/cards/t2xm/27/en?format=image");
put ("2XM/Tuktuk the Returned", "https://api.scryfall.com/cards/t2xm/28/en?format=image");
put ("2XM/Wolf", "https://api.scryfall.com/cards/t2xm/19/en?format=image");
put ("2XM/Phyrexian Wurm/1", "https://api.scryfall.com/cards/t2xm/29/en?format=image");
put ("2XM/Phyrexian Wurm/2", "https://api.scryfall.com/cards/t2xm/30/en?format=image");
// generate supported sets
supportedSets.clear();
for (String cardName : this.keySet()) {

View file

@ -115,6 +115,8 @@
|Generate|EMBLEM:MID|Teferi, Who Slows the Sunset||Emblem Teferi|TeferiWhoSlowsTheSunsetEmblem|
|Generate|EMBLEM:MID|Wrenn and Seven||Emblem Wrenn|WrennAndSevenEmblem|
|Generate|EMBLEM:VOW|Chandra, Dressed to Kill||Emblem Chandra|ChandraDressedToKillEmblem|
|Generate|EMBLEM:NEO|Kaito Shizuki||Emblem Kaito|KaitoShizukiEmblem|
|Generate|EMBLEM:NEO|Tezzeret, Betrayer of Flesh||Emblem Tezzeret|TezzeretBetrayerOfFleshEmblem|
# Planes
|Generate|PLANE:PCA|Plane - Academy at Tolaria West|||AcademyAtTolariaWestPlane|
@ -931,7 +933,7 @@
|Generate|TOK:MMA|Bat|||BatToken|
|Generate|TOK:MMA|Dragon|||DragonToken|
|Generate|TOK:MMA|Elemental|||WalkerOfTheGroveToken|
|Generate|TOK:MMA|Faerie Rogue|||OonaQueenFaerieToken|
|Generate|TOK:MMA|Faerie Rogue|||OonaQueenFaerieRogueToken|
|Generate|TOK:MMA|Giant Warrior|||GiantWarriorToken|
|Generate|TOK:MMA|Goblin Rogue|||GoblinRogueToken|
|Generate|TOK:MMA|Goblin|||GoblinToken|
@ -1081,10 +1083,10 @@
|Generate|TOK:SCG|Goblin|||GoblinToken|
|Generate|TOK:SCG|Soldier|||SoldierToken|
|Generate|TOK:SHM|Elemental|1||DinOfTheFireherdToken|
|Generate|TOK:SHM|Elemental|2||RedElementalToken|
|Generate|TOK:SHM|Elemental|2||ElementalMasteryElementalToken|
|Generate|TOK:SHM|Elf Warrior|1||ElfWarriorToken|
|Generate|TOK:SHM|Elf Warrior|2||GreenWhiteElfWarriorToken|
|Generate|TOK:SHM|Faerie Rogue|||OonaQueenFaerieToken|
|Generate|TOK:SHM|Faerie Rogue|||OonaQueenFaerieRogueToken|
|Generate|TOK:SHM|Giant Warrior|||GiantBaitingGiantWarriorToken|
|Generate|TOK:SHM|Goblin Warrior|||WortTheRaidmotherToken|
|Generate|TOK:SHM|Kithkin Soldier|||KithkinSoldierToken|
@ -1663,3 +1665,99 @@
|Generate|TOK:VOW|Wolf|2||RedWolfToken|
|Generate|TOK:VOW|Zombie|1||ZombieToken|
|Generate|TOK:VOW|Zombie|2||StitcherGeralfZombieToken|
# UMA
|Generate|TOK:UMA|Citizen|||CitizenToken|
|Generate|TOK:UMA|Drake|||DrakeToken|
|Generate|TOK:UMA|Elemental|1||WalkerOfTheGroveToken|
|Generate|TOK:UMA|Elemental|2||RedElementalToken|
|Generate|TOK:UMA|Elemental|3||RedElementalToken|
|Generate|TOK:UMA|Faerie Rogue|||FaerieRogueToken|
|Generate|TOK:UMA|Homunculus|||StitchersApprenticeHomunculusToken|
|Generate|TOK:UMA|Marit Lage|||MaritLageToken|
|Generate|TOK:UMA|Ooze|||OozeToken|
|Generate|TOK:UMA|Soldier|||AkroanSoldierToken|
|Generate|TOK:UMA|Spark Elemental|||SparkElementalToken|
|Generate|TOK:UMA|Spider|||SpiderToken|
|Generate|TOK:UMA|Spirit|1||SpiritWhiteToken|
|Generate|TOK:UMA|Spirit|2||WhiteBlackSpiritToken|
|Generate|TOK:UMA|Wurm|||PenumbraWurmToken|
|Generate|TOK:UMA|Zombie|||ZombieToken|
# NEO
|Generate|TOK:NEO|Construct|1||ConstructToken|
|Generate|TOK:NEO|Construct|2||ConstructRedToken|
|Generate|TOK:NEO|Dragon Spirit|||DragonSpiritToken|
|Generate|TOK:NEO|Goblin Shaman|||FableOfTheMirrorBreakerToken|
|Generate|TOK:NEO|Human Monk|||HumanMonkToken|
|Generate|TOK:NEO|Keimi|||KeimiToken|
|Generate|TOK:NEO|Mechtitan|||MechtitanToken|
|Generate|TOK:NEO|Ninja|||NinjaToken|
|Generate|TOK:NEO|Pilot|||PilotToken|
|Generate|TOK:NEO|Rat Rogue|||RatRogueToken|
|Generate|TOK:NEO|Samurai|||SamuraiToken|
|Generate|TOK:NEO|Spirit|1||SpiritToken|
|Generate|TOK:NEO|Spirit|2||SpiritGreenXToken|
|Generate|TOK:NEO|Spirit|3||SpiritGreenToken|
|Generate|TOK:NEO|Spirit|4||SpiritRedToken|
|Generate|TOK:NEO|Tamiyo's Notebook|||TamiyosNotebookToken|
|Generate|TOK:NEO|Treasure|||TreasureToken|
# NEC
|Generate|TOK:NEC|Angel|||AngelVigilanceToken|
|Generate|TOK:NEC|Beast|||BeastToken|
|Generate|TOK:NEC|Elemental|||RedElementalToken|
|Generate|TOK:NEC|Elephant|||ElephantToken|
|Generate|TOK:NEC|Goblin|||GoblinToken|
|Generate|TOK:NEC|Myr|||MyrToken|
|Generate|TOK:NEC|Phyrexian Germ|||PhyrexianGermToken|
|Generate|TOK:NEC|Plant|||PlantToken|
|Generate|TOK:NEC|Saproling|||SaprolingToken|
|Generate|TOK:NEC|Shrine|||ShrineToken|
|Generate|TOK:NEC|Smoke Blessing|||SmokeBlessingToken|
|Generate|TOK:NEC|Thopter|||ThopterColorlessToken|
# SLD
|Generate|TOK:SLD|Clue|||ClueArtifactToken|
|Generate|TOK:SLD|Faerie Rogue|1||FaerieRogueToken|
|Generate|TOK:SLD|Faerie Rogue|2||FaerieRogueToken|
|Generate|TOK:SLD|Faerie Rogue|3||FaerieRogueToken|
|Generate|TOK:SLD|Faerie Rogue|4||FaerieRogueToken|
|Generate|TOK:SLD|Treasure|||TreasureToken|
|Generate|TOK:SLD|Walker|1||WalkerToken|
|Generate|TOK:SLD|Walker|2||WalkerToken|
|Generate|TOK:SLD|Walker|3||WalkerToken|
|Generate|TOK:SLD|Walker|4||WalkerToken|
|Generate|TOK:SLD|Walker|5||WalkerToken|
# 2XM
|Generate|TOK:2XM|Angel|||AngelToken|
|Generate|TOK:2XM|Ape|||ApeToken|
|Generate|TOK:2XM|Beast|||BeastToken|
|Generate|TOK:2XM|Cat|||CatToken|
|Generate|TOK:2XM|Clue|||ClueArtifactToken|
|Generate|TOK:2XM|Demon|||DemonToken|
|Generate|TOK:2XM|Eldrazi Spawn|||EldraziSpawnToken|
|Generate|TOK:2XM|Elemental|||VoiceOfResurgenceToken|
|Generate|TOK:2XM|Elephant|||ElephantToken|
|Generate|TOK:2XM|Elf Warrior|||GreenWhiteElfWarriorToken|
|Generate|TOK:2XM|Phyrexian Germ|||PhyrexianGermToken|
|Generate|TOK:2XM|Golem|||GolemToken|
|Generate|TOK:2XM|Human Soldier|||HumanSoldierToken|
|Generate|TOK:2XM|Marit Lage|||MaritLageToken|
|Generate|TOK:2XM|Myr|||MyrToken|
|Generate|TOK:2XM|Phyrexian Myr|||BrudicladTelchorMyrToken|
|Generate|TOK:2XM|Ooze|||OozeToken|
|Generate|TOK:2XM|Plant|||PlantToken|
|Generate|TOK:2XM|Saproling|||SaprolingToken|
|Generate|TOK:2XM|Servo|||ServoToken|
|Generate|TOK:2XM|Shapeshifter|||CribSwapShapeshifterWhiteToken|
|Generate|TOK:2XM|Soldier|||SoldierToken|
|Generate|TOK:2XM|Squirrel|||SquirrelToken|
|Generate|TOK:2XM|Thopter|1||ThopterColorlessToken|
|Generate|TOK:2XM|Thopter|2||ThopterToken|
|Generate|TOK:2XM|Treasure|||TreasureToken|
|Generate|TOK:2XM|Tuktuk the Returned|||TuktukTheReturnedToken|
|Generate|TOK:2XM|Wolf|||WolfToken|
|Generate|TOK:2XM|Phyrexian Wurm|1||WurmWithDeathtouchToken|
|Generate|TOK:2XM|Phyrexian Wurm|2||WurmWithLifelinkToken|

View file

@ -27,7 +27,7 @@ public final class TuktukTheExplorer extends CardImpl {
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(HasteAbility.getInstance());
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new TuktukTheReturnedToken(expansionSetCode))));
this.addAbility(new DiesSourceTriggeredAbility(new CreateTokenEffect(new TuktukTheReturnedToken())));
}
private TuktukTheExplorer(final TuktukTheExplorer card) {

View file

@ -22,7 +22,7 @@ public final class AkroanSoldierToken extends TokenImpl {
toughness = new MageInt(1);
this.addAbility(HasteAbility.getInstance());
availableImageSetCodes = Arrays.asList("THS");
availableImageSetCodes = Arrays.asList("THS", "UMA");
}
public AkroanSoldierToken(final AkroanSoldierToken token) {

View file

@ -20,7 +20,7 @@ public final class AngelToken extends TokenImpl {
addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("APC", "AVR", "C14", "C15", "C18", "CON", "DDQ", "GTC",
"ISD", "M14", "MM3", "NEM", "OGW", "ORI", "PC2", "SCG", "SOI", "ZEN", "C20", "M21", "CMR", "AFC", "VOC");
"ISD", "M14", "MM3", "NEM", "OGW", "ORI", "PC2", "SCG", "SOI", "ZEN", "C20", "M21", "CMR", "AFC", "VOC", "2XM");
}
public AngelToken(final AngelToken token) {

View file

@ -6,6 +6,8 @@ import mage.abilities.keyword.VigilanceAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
public final class AngelVigilanceToken extends TokenImpl {
public AngelVigilanceToken() {
@ -17,6 +19,8 @@ public final class AngelVigilanceToken extends TokenImpl {
toughness = new MageInt(4);
addAbility(FlyingAbility.getInstance());
addAbility(VigilanceAbility.getInstance());
availableImageSetCodes = Arrays.asList("NEC", "MH1", "WAR", "GRN", "M19");
}
public AngelVigilanceToken(final AngelVigilanceToken token) {

View file

@ -5,6 +5,8 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt;
import java.util.Arrays;
/**
*
* @author spjspj
@ -18,6 +20,8 @@ public final class ApeToken extends TokenImpl {
subtype.add(SubType.APE);
power = new MageInt(2);
toughness = new MageInt(2);
availableImageSetCodes = Arrays.asList("2XM", "TSR", "C14");
}
public ApeToken(final ApeToken token) {

View file

@ -22,7 +22,7 @@ public final class BeastToken extends TokenImpl {
availableImageSetCodes = Arrays.asList("5DN", "C14", "C16", "C19", "CMA", "CMD", "CN2", "GVL",
"DD3C", "DD3GVL", "DDD", "DDL", "DST", "E01", "EVE", "LRW", "M10", "M11", "M12",
"M13", "M14", "M15", "MM3", "NPH", "PC2", "USG", "M19", "IKO", "M21", "CMR", "C21", "AFC", "MIC");
"M13", "M14", "M15", "MM3", "NPH", "PC2", "USG", "M19", "IKO", "M21", "CMR", "C21", "AFC", "MIC", "NEC", "2XM");
}
@Override

View file

@ -13,7 +13,7 @@ public final class BrudicladTelchorMyrToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Arrays.asList("C18"));
tokenImageSets.addAll(Arrays.asList("C18", "2XM"));
}
public BrudicladTelchorMyrToken() {

View file

@ -19,7 +19,7 @@ public final class CatToken extends TokenImpl {
power = new MageInt(2);
toughness = new MageInt(2);
availableImageSetCodes = Arrays.asList("PMEI", "C14", "C15", "C17", "C18", "M13", "M14", "MBS", "SOM", "CMR");
availableImageSetCodes = Arrays.asList("PMEI", "C14", "C15", "C17", "C18", "M13", "M14", "MBS", "SOM", "CMR", "2XM");
}
public CatToken(final CatToken token) {

View file

@ -29,7 +29,7 @@ public final class ClueArtifactToken extends TokenImpl {
ability.addCost(cost);
this.addAbility(ability);
availableImageSetCodes = Arrays.asList("C18", "SOI", "MH2", "AFC", "MID", "VOC");
availableImageSetCodes = Arrays.asList("C18", "SOI", "MH2", "AFC", "MID", "VOC", "SLD", "2XM");
}
@Override

View file

@ -21,6 +21,15 @@ public final class ConstructRedToken extends TokenImpl {
addAbility(HasteAbility.getInstance());
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("NEO")) {
setTokenType(2);
}
}
public ConstructRedToken(final ConstructRedToken token) {
super(token);
}

View file

@ -19,7 +19,16 @@ public final class ConstructToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("ZNR");
availableImageSetCodes = Arrays.asList("ZNR", "NEO");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("NEO")) {
setTokenType(1);
}
}
public ConstructToken(final ConstructToken token) {

View file

@ -5,6 +5,8 @@ import mage.abilities.keyword.ChangelingAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author spjspj
*/
@ -18,6 +20,8 @@ public final class CribSwapShapeshifterWhiteToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
addAbility(new ChangelingAbility());
availableImageSetCodes = Arrays.asList("LRW", "C15", "CM2", "C18", "2XM");
}
public CribSwapShapeshifterWhiteToken(final CribSwapShapeshifterWhiteToken token) {

View file

@ -21,7 +21,7 @@ public final class DemonToken extends TokenImpl {
toughness = new MageInt(5);
addAbility(FlyingAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("AVR", "C14", "DD3A", "ISD", "ORI", "M20", "M21"));
availableImageSetCodes.addAll(Arrays.asList("AVR", "C14", "DD3A", "ISD", "ORI", "M20", "M21", "2XM"));
}
public DemonToken(final DemonToken token) {

View file

@ -21,6 +21,15 @@ public final class DinOfTheFireherdToken extends TokenImpl {
toughness = new MageInt(5);
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("SHM")) {
this.setTokenType(1);
}
}
public DinOfTheFireherdToken(final DinOfTheFireherdToken token) {
super(token);
}

View file

@ -24,7 +24,7 @@ public final class DrakeToken extends TokenImpl {
this.addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("AKH", "C15", "C19", "M13", "C20", "ZNR", "C21");
availableImageSetCodes = Arrays.asList("AKH", "C15", "C19", "M13", "C20", "ZNR", "C21", "UMA");
}
public DrakeToken(final DrakeToken token) {

View file

@ -26,7 +26,7 @@ public final class EldraziSpawnToken extends TokenImpl {
toughness = new MageInt(1);
addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1), new SacrificeSourceCost()));
availableImageSetCodes = Arrays.asList("CMD", "DDP", "MM2", "PC2", "ROE", "MIC");
availableImageSetCodes = Arrays.asList("CMD", "DDP", "MM2", "PC2", "ROE", "MIC", "2XM");
}
@Override

View file

@ -21,6 +21,16 @@ public final class ElementalMasteryElementalToken extends TokenImpl {
toughness = new MageInt(1);
addAbility(HasteAbility.getInstance());
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("SHM")) {
this.setTokenType(2);
}
}
public ElementalMasteryElementalToken(final ElementalMasteryElementalToken token) {
super(token);
}

View file

@ -20,7 +20,7 @@ public final class ElephantToken extends TokenImpl {
toughness = new MageInt(3);
availableImageSetCodes = Arrays.asList("C13", "C14", "C15", "CMA", "CMD", "CNS", "GVL", "DDD",
"EMA", "INV", "JUD", "MM2", "ODY", "ROE", "TSP", "VMA", "WWK", "MH1", "CMR", "C21", "MIC");
"EMA", "INV", "JUD", "MM2", "ODY", "ROE", "TSP", "VMA", "WWK", "MH1", "CMR", "C21", "MIC", "NEC", "2XM");
}
public ElephantToken(final ElephantToken token) {

View file

@ -35,5 +35,9 @@ public final class ElfWarriorToken extends TokenImpl {
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("SHM")) {
this.setTokenType(1);
}
}
}

View file

@ -4,6 +4,7 @@ import mage.MageInt;
import mage.abilities.keyword.FlyingAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.util.RandomUtil;
import java.util.Arrays;
@ -22,7 +23,16 @@ public final class FaerieRogueToken extends TokenImpl {
toughness = new MageInt(1);
addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("SHM", "MOR", "MMA", "MM2", "ZNC");
availableImageSetCodes = Arrays.asList("MOR", "MM2", "ZNC", "UMA", "SLD");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("SLD")) {
setTokenType(RandomUtil.nextInt(4) + 1);
}
}
public FaerieRogueToken(final FaerieRogueToken token) {

View file

@ -32,7 +32,7 @@ public final class GoblinToken extends TokenImpl {
availableImageSetCodes = Arrays.asList("10E", "ALA", "SOM", "M10", "NPH", "M13", "RTR",
"MMA", "M15", "C14", "KTK", "EVG", "DTK", "ORI", "DDG", "DDN", "EVG", "MM2",
"MM3", "EMA", "C16", "DOM", "ANA", "RNA", "WAR", "MH1", "TSR", "MH2", "AFR");
"MM3", "EMA", "C16", "DOM", "ANA", "RNA", "WAR", "MH1", "TSR", "MH2", "AFR", "NEC");
}
public GoblinToken(final GoblinToken token) {

View file

@ -19,7 +19,7 @@ public final class GolemToken extends TokenImpl {
power = new MageInt(3);
toughness = new MageInt(3);
availableImageSetCodes = Arrays.asList("MM2", "NPH", "SOM", "MH1", "M20", "CMR");
availableImageSetCodes = Arrays.asList("MM2", "NPH", "SOM", "MH1", "M20", "CMR", "2XM");
}
public GolemToken(final GolemToken token) {

View file

@ -21,7 +21,7 @@ public final class GreenWhiteElfWarriorToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("SHM");
availableImageSetCodes = Arrays.asList("SHM", "2XM");
}
public GreenWhiteElfWarriorToken(final GreenWhiteElfWarriorToken token) {

View file

@ -18,7 +18,7 @@ public final class HumanSoldierToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("SOI", "THB", "IKO", "MIC");
availableImageSetCodes = Arrays.asList("SOI", "THB", "IKO", "MIC", "2XM");
}
@Override

View file

@ -27,7 +27,7 @@ public final class MaritLageToken extends TokenImpl {
this.addAbility(FlyingAbility.getInstance());
this.addAbility(IndestructibleAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("CSP", "MH1"));
availableImageSetCodes.addAll(Arrays.asList("CSP", "MH1", "UMA", "2XM"));
}
public MaritLageToken(final MaritLageToken token) {

View file

@ -16,7 +16,7 @@ public final class MyrToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("C13", "C14", "DST", "MBS", "MM2", "MRD", "NPH", "SOM", "MH1", "C21");
availableImageSetCodes = Arrays.asList("C13", "C14", "DST", "MBS", "MM2", "MRD", "NPH", "SOM", "MH1", "C21", "NEC", "2XM");
}
public MyrToken(final MyrToken token) {

View file

@ -6,6 +6,8 @@ import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.keyword.FlyingAbility;
import java.util.Arrays;
/**
*
* @author spjspj
@ -22,6 +24,8 @@ public final class OonaQueenFaerieRogueToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
this.addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("MMA", "SHM");
}
public OonaQueenFaerieRogueToken(final OonaQueenFaerieRogueToken token) {
super(token);

View file

@ -4,6 +4,8 @@ import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
public final class OozeToken extends TokenImpl {
public OozeToken(int power, int toughness) {
@ -22,6 +24,8 @@ public final class OozeToken extends TokenImpl {
subtype.add(SubType.OOZE);
power = new MageInt(0);
toughness = new MageInt(0);
availableImageSetCodes = Arrays.asList("ALA", "ROE", "RTR", "MM3", "UMA", "GK2", "2XM");
}
public OozeToken(final OozeToken token) {

View file

@ -6,6 +6,8 @@ import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.keyword.TrampleAbility;
import java.util.Arrays;
/**
*
* @author spjspj
@ -21,6 +23,8 @@ public final class PenumbraWurmToken extends TokenImpl {
toughness = new MageInt(6);
this.addAbility(TrampleAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("UMA"));
}
public PenumbraWurmToken(final PenumbraWurmToken token) {

View file

@ -20,7 +20,7 @@ public final class PhyrexianGermToken extends TokenImpl {
power = new MageInt(0);
toughness = new MageInt(0);
availableImageSetCodes = Arrays.asList("C14", "C15", "MBS", "MM2", "NPH", "PC2", "MH2");
availableImageSetCodes = Arrays.asList("C14", "C15", "MBS", "MM2", "NPH", "PC2", "MH2", "NEC", "2XM");
}
@Override

View file

@ -5,6 +5,8 @@ import mage.abilities.common.CrewIncreasedPowerAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
@ -17,6 +19,8 @@ public final class PilotToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
addAbility(new CrewIncreasedPowerAbility("this creature"));
availableImageSetCodes = Arrays.asList("NEO");
}
public PilotToken(final PilotToken token) {

View file

@ -16,7 +16,7 @@ public final class PlantToken extends TokenImpl {
power = new MageInt(0);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("ARC", "C13", "C18", "DDP", "OGW", "PC2", "WWK", "XLN", "ZEN", "ZNR", "CMR");
availableImageSetCodes = Arrays.asList("ARC", "C13", "C18", "DDP", "OGW", "PC2", "WWK", "XLN", "ZEN", "ZNR", "CMR", "NEC", "2XM");
}
public PlantToken(final PlantToken token) {

View file

@ -20,7 +20,7 @@ public final class RedElementalToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("C13", "EMA", "M14", "SHM", "MH1", "M20", "RIX");
availableImageSetCodes = Arrays.asList("C13", "EMA", "M14", "SHM", "MH1", "M20", "RIX", "UMA", "NEC");
}
@Override
@ -42,6 +42,10 @@ public final class RedElementalToken extends TokenImpl {
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("SHM")) {
setTokenType(2);
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("UMA")) {
setTokenType(RandomUtil.nextInt(2) + 2); // 2..3
}
}
public RedElementalToken(final RedElementalToken token) {

View file

@ -47,7 +47,9 @@ public final class SaprolingToken extends TokenImpl {
"CMR",
"TSR",
"C21",
"AFC"
"AFC",
"NEC",
"2XM"
));
}

View file

@ -20,7 +20,7 @@ public final class ServoToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("C18", "KLD", "WAR", "KHC", "AFC");
availableImageSetCodes = Arrays.asList("C18", "KLD", "WAR", "KHC", "AFC", "2XM");
}
@Override

View file

@ -13,6 +13,8 @@ import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.TargetPermanent;
import java.util.Arrays;
/**
* @author TheElk801
*/
@ -35,6 +37,8 @@ public final class SmokeBlessingToken extends TokenImpl {
this.addAbility(ability);
this.addAbility(new DiesAttachedTriggeredAbility(new SmokeBlessingTokenEffect(), "enchanted creature"));
availableImageSetCodes = Arrays.asList("NEC");
}
public SmokeBlessingToken(final SmokeBlessingToken token) {

View file

@ -22,7 +22,7 @@ public final class SoldierToken extends TokenImpl {
availableImageSetCodes = Arrays.asList("10E", "M15", "C14", "ORI", "ALA", "DDF", "THS", "M12", "M13",
"MM2", "MMA", "RTR", "SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16", "MM3", "E01",
"DOM", "MH1", "M20", "C20", "M21", "CMR", "KHC", "TSR");
"DOM", "MH1", "M20", "C20", "M21", "CMR", "KHC", "TSR", "2XM");
}
public SoldierToken(final SoldierToken token) {

View file

@ -8,6 +8,8 @@ import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.constants.TargetController;
import java.util.Arrays;
/**
*
* @author spjspj
@ -25,6 +27,8 @@ public final class SparkElementalToken extends TokenImpl {
this.addAbility(TrampleAbility.getInstance());
this.addAbility(HasteAbility.getInstance());
this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.ANY, false));
availableImageSetCodes = Arrays.asList("UMA");
}
public SparkElementalToken(final SparkElementalToken token) {

View file

@ -22,7 +22,7 @@ public final class SpiderToken extends TokenImpl {
this.addAbility(ReachAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("C15", "EMN", "ISD", "SHM", "MH1", "THB", "MID"));
availableImageSetCodes.addAll(Arrays.asList("C15", "EMN", "ISD", "SHM", "MH1", "THB", "MID", "UMA"));
}
public SpiderToken(final SpiderToken token) {

View file

@ -18,6 +18,15 @@ public final class SpiritGreenToken extends TokenImpl {
toughness = new MageInt(5);
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("NEO")) {
setTokenType(3);
}
}
public SpiritGreenToken(final SpiritGreenToken token) {
super(token);
}

View file

@ -4,6 +4,8 @@ import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
@ -16,6 +18,17 @@ public final class SpiritGreenXToken extends TokenImpl {
color.setGreen(true);
power = new MageInt(xValue);
toughness = new MageInt(xValue);
availableImageSetCodes = Arrays.asList("NEO");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("NEO")) {
setTokenType(2);
}
}
public SpiritGreenXToken(final SpiritGreenXToken token) {

View file

@ -5,6 +5,8 @@ import mage.abilities.keyword.MenaceAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
@ -18,6 +20,17 @@ public final class SpiritRedToken extends TokenImpl {
power = new MageInt(2);
toughness = new MageInt(2);
addAbility(new MenaceAbility());
availableImageSetCodes = Arrays.asList("NEO");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("NEO")) {
setTokenType(4);
}
}
public SpiritRedToken(final SpiritRedToken token) {

View file

@ -18,7 +18,7 @@ public final class SpiritToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("C19", "CHK", "EMA", "EXP", "SOK", "V12", "VOC");
availableImageSetCodes = Arrays.asList("C19", "CHK", "EMA", "EXP", "NEO", "SOK", "V12", "VOC");
}
@Override
@ -32,6 +32,10 @@ public final class SpiritToken extends TokenImpl {
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("EMA")) {
setTokenType(2);
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("NEO")) {
setTokenType(1);
}
}
public SpiritToken(final SpiritToken token) {

View file

@ -24,7 +24,7 @@ public final class SpiritWhiteToken extends TokenImpl {
availableImageSetCodes = Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM",
"SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C20", "CMR", "KHM",
"MID", "VOW");
"MID", "VOW", "UMA");
}
@Override
@ -39,6 +39,9 @@ public final class SpiritWhiteToken extends TokenImpl {
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("EMA")) {
setTokenType(2);
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("UMA")) {
setTokenType(1);
}
}
public SpiritWhiteToken(final SpiritWhiteToken token) {

View file

@ -20,7 +20,7 @@ public final class SquirrelToken extends TokenImpl {
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("CMD", "CNS", "ODY", "PCY", "TOR", "ULG", "UNH", "WMA",
"WTH", "MH1", "MH2");
"WTH", "MH1", "MH2", "2XM");
}
public SquirrelToken(final SquirrelToken token) {

View file

@ -5,6 +5,8 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt;
import java.util.Arrays;
/**
*
* @author spjspj
@ -18,6 +20,8 @@ public final class StitchersApprenticeHomunculusToken extends TokenImpl {
subtype.add(SubType.HOMUNCULUS);
power = new MageInt(2);
toughness = new MageInt(2);
availableImageSetCodes = Arrays.asList("UMA");
}
public StitchersApprenticeHomunculusToken(final StitchersApprenticeHomunculusToken token) {

View file

@ -24,7 +24,7 @@ public final class ThopterColorlessToken extends TokenImpl {
addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("C18", "EXO", "KLD", "MBS", "ORI", "VMA", "M19", "ZNC",
"KHC", "C21", "MH2", "AFC", "VOC");
"KHC", "C21", "MH2", "AFC", "VOC", "NEC", "2XM");
}
@Override
@ -40,6 +40,9 @@ public final class ThopterColorlessToken extends TokenImpl {
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("ORI")) {
this.setTokenType(RandomUtil.nextInt(2) + 1);
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("2XM")) {
this.setTokenType(1);
}
}

View file

@ -6,6 +6,8 @@ import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.keyword.FlyingAbility;
import java.util.Arrays;
/**
*
* @author spjspj
@ -21,6 +23,17 @@ public final class ThopterToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
this.addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("ALA", "C16", "C18", "2XM");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("2XM")) {
this.setTokenType(2);
}
}
public ThopterToken(final ThopterToken token) {

View file

@ -27,7 +27,7 @@ public final class TreasureToken extends TokenImpl {
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR", "KHM", "STX", "MH2", "AFR", "VOW");
availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR", "KHM", "STX", "MH2", "AFR", "VOW", "NEO", "SLD", "2XM");
}
public TreasureToken(final TreasureToken token) {

View file

@ -5,18 +5,15 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import java.util.Arrays;
/**
* @author spjspj
*/
public final class TuktukTheReturnedToken extends TokenImpl {
public TuktukTheReturnedToken() {
this("ROE");
}
public TuktukTheReturnedToken(String setCode) {
super("Tuktuk the Returned", "Tuktuk the Returned, a legendary 5/5 colorless Goblin Golem artifact creature token");
setOriginalExpansionSetCode(setCode);
cardType.add(CardType.ARTIFACT);
cardType.add(CardType.CREATURE);
addSuperType(SuperType.LEGENDARY);
@ -24,6 +21,8 @@ public final class TuktukTheReturnedToken extends TokenImpl {
subtype.add(SubType.GOLEM);
power = new MageInt(5);
toughness = new MageInt(5);
availableImageSetCodes = Arrays.asList("ROE", "C14", "CM2", "2XM");
}
public TuktukTheReturnedToken(final TuktukTheReturnedToken token) {

View file

@ -9,6 +9,8 @@ import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import java.util.Arrays;
/**
* @author spjspj
*/
@ -28,6 +30,8 @@ public final class VoiceOfResurgenceToken extends TokenImpl {
// This creature's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(
CreaturesYouControlCount.instance, Duration.EndOfGame)));
availableImageSetCodes = Arrays.asList("DGM", "MM3", "2XM");
}
public VoiceOfResurgenceToken(final VoiceOfResurgenceToken token) {

View file

@ -9,6 +9,7 @@ import java.util.Arrays;
/**
* @author spjspj
*/
public final class WalkerOfTheGroveToken extends TokenImpl {
public WalkerOfTheGroveToken() {
@ -19,15 +20,15 @@ public final class WalkerOfTheGroveToken extends TokenImpl {
power = new MageInt(4);
toughness = new MageInt(4);
availableImageSetCodes = Arrays.asList("C13", "LRW", "MMA", "MOR");
availableImageSetCodes = Arrays.asList("LRW", "MMA", "DDR", "UMA");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("C13")) {
this.setTokenType(2);
if (getOriginalExpansionSetCode().equals("UMA")) {
this.setTokenType(1);
}
}

View file

@ -3,6 +3,9 @@ package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.util.RandomUtil;
import java.util.Arrays;
/**
* @author TheElk801
@ -16,6 +19,17 @@ public final class WalkerToken extends TokenImpl {
subtype.add(SubType.ZOMBIE);
power = new MageInt(2);
toughness = new MageInt(2);
availableImageSetCodes = Arrays.asList("SLD");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("SLD")) {
setTokenType(RandomUtil.nextInt(5) + 1);
}
}
public WalkerToken(final WalkerToken token) {

View file

@ -22,7 +22,16 @@ public final class WhiteBlackSpiritToken extends TokenImpl {
toughness = new MageInt(1);
this.addAbility(FlyingAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("MH1", "C21"));
availableImageSetCodes.addAll(Arrays.asList("MH1", "C21", "UMA"));
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("UMA")) {
this.setTokenType(2);
}
}
public WhiteBlackSpiritToken(final WhiteBlackSpiritToken token) {

View file

@ -23,7 +23,7 @@ public final class WolfToken extends TokenImpl {
availableImageSetCodes = Arrays.asList("BNG", "C14", "C15", "CMA", "CMD", "CNS", "DKA", "EVE", "ISD",
"LRW", "M10", "M14", "MM2", "MOR", "SHM", "SOI", "SOM", "V10", "WWK", "ZEN", "WAR", "M20",
"THB", "AFR", "MID", "VOW");
"THB", "AFR", "MID", "VOW", "2XM");
}
@Override

View file

@ -22,12 +22,25 @@ public final class WurmWithDeathtouchToken extends TokenImpl {
toughness = new MageInt(3);
this.addAbility(DeathtouchAbility.getInstance());
availableImageSetCodes = Arrays.asList("C14", "SOM");
availableImageSetCodes = Arrays.asList("C14", "SOM", "2XM");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("C14")) {
this.setTokenType(1);
}
if (getOriginalExpansionSetCode().equals("SOM")) {
this.setTokenType(1);
}
if (getOriginalExpansionSetCode().equals("CM2")) {
this.setTokenType(1);
}
if (getOriginalExpansionSetCode().equals("2XM")) {
this.setTokenType(1);
}
}
public WurmWithDeathtouchToken(final WurmWithDeathtouchToken token) {

View file

@ -22,7 +22,7 @@ public final class WurmWithLifelinkToken extends TokenImpl {
toughness = new MageInt(3);
this.addAbility(LifelinkAbility.getInstance());
availableImageSetCodes = Arrays.asList("C14", "SOM");
availableImageSetCodes = Arrays.asList("C14", "SOM", "2XM");
}
@Override
@ -32,10 +32,15 @@ public final class WurmWithLifelinkToken extends TokenImpl {
if (getOriginalExpansionSetCode().equals("C14")) {
this.setTokenType(2);
}
if (getOriginalExpansionSetCode().equals("SOM")) {
this.setTokenType(2);
}
if (getOriginalExpansionSetCode().equals("CM2")) {
this.setTokenType(2);
}
if (getOriginalExpansionSetCode().equals("2XM")) {
this.setTokenType(2);
}
}
public WurmWithLifelinkToken(final WurmWithLifelinkToken token) {

View file

@ -25,7 +25,7 @@ public final class ZombieToken extends TokenImpl {
"CNS", "MMA", "BNG", "KTK", "DTK", "ORI", "OGW",
"SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01",
"RNA", "WAR", "MH1", "M20", "C19", "THB", "M21",
"CMR", "C21", "MH2", "AFR", "MIC", "VOW");
"CMR", "C21", "MH2", "AFR", "MIC", "VOW", "UMA");
}
@Override