Additional token fixes for #6032:

- fixed wrong Elemental token images in BFZ's cards (Omnath, Locus of Rage and Seed Guardian);
 - fixed wrong Elemental token image in OGW's cards (Chandra Flamecaller);
 - removed unnecessary tokens from AKH, HOU and EMN (card duplicates);
 - fixed missing Goblin token in DOM;
 - fixed missing Bird Illusion token in GRN;
 - fixed same Zombie token in C19;
This commit is contained in:
Oleg Agafonov 2019-11-28 23:42:39 +04:00
parent fc08491ad6
commit 236cb46125
19 changed files with 112 additions and 110 deletions

View file

@ -48,16 +48,17 @@ public class ScryfallImageSupportTokens {
put("RNA/Thopter", "https://api.scryfall.com/cards/trna/11/en?format=image"); put("RNA/Thopter", "https://api.scryfall.com/cards/trna/11/en?format=image");
put("RNA/Treasure", "https://api.scryfall.com/cards/trna/12/en?format=image"); put("RNA/Treasure", "https://api.scryfall.com/cards/trna/12/en?format=image");
put("RNA/Zombie", "https://api.scryfall.com/cards/trna/3/en?format=image"); put("RNA/Zombie", "https://api.scryfall.com/cards/trna/3/en?format=image");
//GRN //GRN
put("GRN/Angel", "https://api.scryfall.com/cards/tgrn/1/en?format=image"); put("GRN/Angel", "https://api.scryfall.com/cards/tgrn/1/en?format=image");
put("GRN/Bird Illusion", "https://api.scryfall.com/cards/tgrn/3/en?format=image");
put("GRN/Elf Knight", "https://api.scryfall.com/cards/tgrn/6/en?format=image"); put("GRN/Elf Knight", "https://api.scryfall.com/cards/tgrn/6/en?format=image");
put("GRN/Goblin", "https://api.scryfall.com/cards/tgrn/4/en?format=image"); put("GRN/Goblin", "https://api.scryfall.com/cards/tgrn/4/en?format=image");
put("GRN/Insect", "https://api.scryfall.com/cards/tgrn/5/en?format=image"); put("GRN/Insect", "https://api.scryfall.com/cards/tgrn/5/en?format=image");
put("GRN/Emblem Ral, Izzet Viceroy", "https://api.scryfall.com/cards/tgrn/7/en?format=image"); put("GRN/Emblem Ral, Izzet Viceroy", "https://api.scryfall.com/cards/tgrn/7/en?format=image");
put("GRN/Soldier", "https://api.scryfall.com/cards/tgrn/2/en?format=image"); put("GRN/Soldier", "https://api.scryfall.com/cards/tgrn/2/en?format=image");
put("GRN/Emblem Vraska, Golgari Queen", "https://api.scryfall.com/cards/tgrn/8/en?format=image"); put("GRN/Emblem Vraska, Golgari Queen", "https://api.scryfall.com/cards/tgrn/8/en?format=image");
//DOM //DOM
put("DOM/Cleric", "https://api.scryfall.com/cards/tdom/4/en?format=image"); put("DOM/Cleric", "https://api.scryfall.com/cards/tdom/4/en?format=image");
put("DOM/Construct", "https://api.scryfall.com/cards/tdom/14/en?format=image"); put("DOM/Construct", "https://api.scryfall.com/cards/tdom/14/en?format=image");
@ -75,7 +76,7 @@ public class ScryfallImageSupportTokens {
put("DOM/Soldier", "https://api.scryfall.com/cards/tdom/3/en?format=image"); put("DOM/Soldier", "https://api.scryfall.com/cards/tdom/3/en?format=image");
put("DOM/Emblem Teferi, Hero of Dominaria", "https://api.scryfall.com/cards/tdom/16/en?format=image"); put("DOM/Emblem Teferi, Hero of Dominaria", "https://api.scryfall.com/cards/tdom/16/en?format=image");
put("DOM/Zombie Knight", "https://api.scryfall.com/cards/tdom/5/en?format=image"); put("DOM/Zombie Knight", "https://api.scryfall.com/cards/tdom/5/en?format=image");
//XLN //XLN
put("XLN/Dinosaur", "https://api.scryfall.com/cards/txln/5/en?format=image"); put("XLN/Dinosaur", "https://api.scryfall.com/cards/txln/5/en?format=image");
put("XLN/Illusion", "https://api.scryfall.com/cards/txln/2/en?format=image"); put("XLN/Illusion", "https://api.scryfall.com/cards/txln/2/en?format=image");
@ -87,29 +88,29 @@ public class ScryfallImageSupportTokens {
put("XLN/Treasure/3", "https://api.scryfall.com/cards/txln/9/en?format=image"); put("XLN/Treasure/3", "https://api.scryfall.com/cards/txln/9/en?format=image");
put("XLN/Treasure/4", "https://api.scryfall.com/cards/txln/10/en?format=image"); put("XLN/Treasure/4", "https://api.scryfall.com/cards/txln/10/en?format=image");
put("XLN/Vampire", "https://api.scryfall.com/cards/txln/1/en?format=image"); put("XLN/Vampire", "https://api.scryfall.com/cards/txln/1/en?format=image");
//HOU //HOU
put("HOU/Horse", "https://api.scryfall.com/cards/thou/10/en?format=image"); put("HOU/Horse", "https://api.scryfall.com/cards/thou/10/en?format=image");
put("HOU/Insect", "https://api.scryfall.com/cards/thou/12/en?format=image"); put("HOU/Insect", "https://api.scryfall.com/cards/thou/12/en?format=image");
put("HOU/Snake", "https://api.scryfall.com/cards/thou/11/en?format=image"); put("HOU/Snake", "https://api.scryfall.com/cards/thou/11/en?format=image");
//AKH //AKH
put("AKH/Beast", "https://api.scryfall.com/cards/takh/21/en?format=image"); put("AKH/Beast", "https://api.scryfall.com/cards/takh/21/en?format=image");
put("AKH/Cat", "https://api.scryfall.com/cards/takh/16/en?format=image"); put("AKH/Cat", "https://api.scryfall.com/cards/takh/16/en?format=image");
put("AKH/Drake", "https://api.scryfall.com/cards/takh/18/en?format=image"); put("AKH/Drake", "https://api.scryfall.com/cards/takh/18/en?format=image");
put("AKH/Emblem - Gideon", "https://api.scryfall.com/cards/takh/25/en?format=image"); put("AKH/Emblem Gideon", "https://api.scryfall.com/cards/takh/25/en?format=image");
put("AKH/Hippo", "https://api.scryfall.com/cards/takh/22/en?format=image"); put("AKH/Hippo", "https://api.scryfall.com/cards/takh/22/en?format=image");
put("AKH/Snake", "https://api.scryfall.com/cards/takh/23/en?format=image"); put("AKH/Snake", "https://api.scryfall.com/cards/takh/23/en?format=image");
put("AKH/Warrior", "https://api.scryfall.com/cards/takh/17/en?format=image"); put("AKH/Warrior", "https://api.scryfall.com/cards/takh/17/en?format=image");
put("AKH/Wurm", "https://api.scryfall.com/cards/takh/24/en?format=image"); put("AKH/Wurm", "https://api.scryfall.com/cards/takh/24/en?format=image");
put("AKH/Zombie", "https://api.scryfall.com/cards/takh/20/en?format=image"); put("AKH/Zombie", "https://api.scryfall.com/cards/takh/20/en?format=image");
//AER //AER
put("AER/Etherium Cell", "https://api.scryfall.com/cards/taer/3/en?format=image"); put("AER/Etherium Cell", "https://api.scryfall.com/cards/taer/3/en?format=image");
put("AER/Gremlin", "https://api.scryfall.com/cards/taer/1/en?format=image"); put("AER/Gremlin", "https://api.scryfall.com/cards/taer/1/en?format=image");
put("AER/Ragavan", "https://api.scryfall.com/cards/taer/2/en?format=image"); put("AER/Ragavan", "https://api.scryfall.com/cards/taer/2/en?format=image");
put("AER/Emblem Tezzeret the Schemer", "https://api.scryfall.com/cards/taer/4/en?format=image"); put("AER/Emblem Tezzeret the Schemer", "https://api.scryfall.com/cards/taer/4/en?format=image");
//KLD //KLD
put("KLD/Beast", "https://api.scryfall.com/cards/tkld/1/en?format=image"); put("KLD/Beast", "https://api.scryfall.com/cards/tkld/1/en?format=image");
put("KLD/Emblem Chandra", "https://api.scryfall.com/cards/tkld/10/en?format=image"); put("KLD/Emblem Chandra", "https://api.scryfall.com/cards/tkld/10/en?format=image");
@ -123,7 +124,7 @@ public class ScryfallImageSupportTokens {
put("KLD/Thopter/1", "https://api.scryfall.com/cards/tkld/7/en?format=image"); put("KLD/Thopter/1", "https://api.scryfall.com/cards/tkld/7/en?format=image");
put("KLD/Thopter/2", "https://api.scryfall.com/cards/tkld/8/en?format=image"); put("KLD/Thopter/2", "https://api.scryfall.com/cards/tkld/8/en?format=image");
put("KLD/Thopter/3", "https://api.scryfall.com/cards/tkld/9/en?format=image"); put("KLD/Thopter/3", "https://api.scryfall.com/cards/tkld/9/en?format=image");
//EMN //EMN
put("EMN/Eldrazi Horror", "https://api.scryfall.com/cards/temn/1/en?format=image"); put("EMN/Eldrazi Horror", "https://api.scryfall.com/cards/temn/1/en?format=image");
put("EMN/Human", "https://api.scryfall.com/cards/temn/7/en?format=image"); put("EMN/Human", "https://api.scryfall.com/cards/temn/7/en?format=image");
@ -135,7 +136,7 @@ public class ScryfallImageSupportTokens {
put("EMN/Zombie/2", "https://api.scryfall.com/cards/temn/4/en?format=image"); put("EMN/Zombie/2", "https://api.scryfall.com/cards/temn/4/en?format=image");
put("EMN/Zombie/3", "https://api.scryfall.com/cards/temn/5/en?format=image"); put("EMN/Zombie/3", "https://api.scryfall.com/cards/temn/5/en?format=image");
put("EMN/Zombie/4", "https://api.scryfall.com/cards/temn/6/en?format=image"); put("EMN/Zombie/4", "https://api.scryfall.com/cards/temn/6/en?format=image");
//SOI //SOI
put("SOI/Angel", "https://api.scryfall.com/cards/tsoi/1/en?format=image"); put("SOI/Angel", "https://api.scryfall.com/cards/tsoi/1/en?format=image");
put("SOI/Emblem Arlinn", "https://api.scryfall.com/cards/tsoi/18/en?format=image"); put("SOI/Emblem Arlinn", "https://api.scryfall.com/cards/tsoi/18/en?format=image");
@ -155,7 +156,7 @@ public class ScryfallImageSupportTokens {
put("SOI/Vampire Knight", "https://api.scryfall.com/cards/tsoi/4/en?format=image"); put("SOI/Vampire Knight", "https://api.scryfall.com/cards/tsoi/4/en?format=image");
put("SOI/Wolf", "https://api.scryfall.com/cards/tsoi/9/en?format=image"); put("SOI/Wolf", "https://api.scryfall.com/cards/tsoi/9/en?format=image");
put("SOI/Zombie", "https://api.scryfall.com/cards/tsoi/5/en?format=image"); put("SOI/Zombie", "https://api.scryfall.com/cards/tsoi/5/en?format=image");
//OGW //OGW
put("OGW/Angel", "https://api.scryfall.com/cards/togw/7/en?format=image"); put("OGW/Angel", "https://api.scryfall.com/cards/togw/7/en?format=image");
put("OGW/Eldrazi Scion/1", "https://api.scryfall.com/cards/togw/1/en?format=image"); put("OGW/Eldrazi Scion/1", "https://api.scryfall.com/cards/togw/1/en?format=image");
@ -168,7 +169,7 @@ public class ScryfallImageSupportTokens {
put("OGW/Elemental/2", "https://api.scryfall.com/cards/togw/9/en?format=image"); put("OGW/Elemental/2", "https://api.scryfall.com/cards/togw/9/en?format=image");
put("OGW/Plant", "https://api.scryfall.com/cards/togw/11/en?format=image"); put("OGW/Plant", "https://api.scryfall.com/cards/togw/11/en?format=image");
put("OGW/Zombie", "https://api.scryfall.com/cards/togw/8/en?format=image"); put("OGW/Zombie", "https://api.scryfall.com/cards/togw/8/en?format=image");
//BFZ //BFZ
put("BFZ/Dragon", "https://api.scryfall.com/cards/tbfz/8/en?format=image"); put("BFZ/Dragon", "https://api.scryfall.com/cards/tbfz/8/en?format=image");
put("BFZ/Eldrazi", "https://api.scryfall.com/cards/tbfz/1/en?format=image"); put("BFZ/Eldrazi", "https://api.scryfall.com/cards/tbfz/1/en?format=image");
@ -184,7 +185,7 @@ public class ScryfallImageSupportTokens {
put("BFZ/Emblem Nixilis", "https://api.scryfall.com/cards/tbfz/13/en?format=image"); put("BFZ/Emblem Nixilis", "https://api.scryfall.com/cards/tbfz/13/en?format=image");
put("BFZ/Octopus", "https://api.scryfall.com/cards/tbfz/7/en?format=image"); put("BFZ/Octopus", "https://api.scryfall.com/cards/tbfz/7/en?format=image");
put("BFZ/Plant", "https://api.scryfall.com/cards/tbfz/10/en?format=image"); put("BFZ/Plant", "https://api.scryfall.com/cards/tbfz/10/en?format=image");
// WAR // WAR
put("WAR/Angel", "https://api.scryfall.com/cards/twar/2/en?format=image"); put("WAR/Angel", "https://api.scryfall.com/cards/twar/2/en?format=image");
put("WAR/Assassin", "https://api.scryfall.com/cards/twar/6/en?format=image"); put("WAR/Assassin", "https://api.scryfall.com/cards/twar/6/en?format=image");
@ -284,7 +285,7 @@ public class ScryfallImageSupportTokens {
put("C18/Thopter/3", "https://api.scryfall.com/cards/tc18/8/en?format=image"); put("C18/Thopter/3", "https://api.scryfall.com/cards/tc18/8/en?format=image");
put("C18/Worm", "https://api.scryfall.com/cards/tc18/18/en?format=image"); put("C18/Worm", "https://api.scryfall.com/cards/tc18/18/en?format=image");
put("C18/Zombie", "https://api.scryfall.com/cards/tc18/9/en?format=image"); put("C18/Zombie", "https://api.scryfall.com/cards/tc18/9/en?format=image");
//C19 //C19
put("C19/Assassin", "https://api.scryfall.com/cards/tc19/9/en?format=image"); put("C19/Assassin", "https://api.scryfall.com/cards/tc19/9/en?format=image");
put("C19/Beast/1", "https://api.scryfall.com/cards/tc19/13/en?format=image"); put("C19/Beast/1", "https://api.scryfall.com/cards/tc19/13/en?format=image");

View file

@ -547,9 +547,11 @@ public class DownloadPicturesService extends DefaultBoundedRangeModel implements
CardDownloadData card = new CardDownloadData(params[3], set, "0", false, type, "", "", true, fileName); CardDownloadData card = new CardDownloadData(params[3], set, "0", false, type, "", "", true, fileName);
card.setTokenClassName(tokenClassName); card.setTokenClassName(tokenClassName);
list.add(card); list.add(card);
} else {
logger.error("wrong line format in tokens file: " + line);
} }
} else { } else {
logger.error("wrong format for image urls: " + line); logger.error("wrong line data in tokens file: " + line);
} }
} }
line = reader.readLine(); line = reader.readLine();

View file

@ -48,7 +48,7 @@
|Generate|EMBLEM!:BFZ|Emblem Gideon|||GideonAllyOfZendikarEmblem| |Generate|EMBLEM!:BFZ|Emblem Gideon|||GideonAllyOfZendikarEmblem|
|Generate|EMBLEM!:BFZ|Emblem Kiora|||KioraMasterOfTheDepthsEmblem| |Generate|EMBLEM!:BFZ|Emblem Kiora|||KioraMasterOfTheDepthsEmblem|
|Generate|EMBLEM!:BFZ|Emblem Nixilis|||ObNixilisReignitedEmblem| |Generate|EMBLEM!:BFZ|Emblem Nixilis|||ObNixilisReignitedEmblem|
|Generate|EMBLEM!:AKH|Emblem - Gideon|||GideonOfTheTrialsEmblem| |Generate|EMBLEM!:AKH|Emblem Gideon|||GideonOfTheTrialsEmblem|
|Generate|EMBLEM!:C14|Emblem Daretti|||DarettiScrapSavantEmblem| |Generate|EMBLEM!:C14|Emblem Daretti|||DarettiScrapSavantEmblem|
|Generate|EMBLEM!:C14|Emblem Daretti||Emblem Daretti|DarettiScrapSavantEmblem| |Generate|EMBLEM!:C14|Emblem Daretti||Emblem Daretti|DarettiScrapSavantEmblem|
|Generate|EMBLEM!:C14|Emblem Nixilis|||ObNixilisOfTheBlackOathEmblem| |Generate|EMBLEM!:C14|Emblem Nixilis|||ObNixilisOfTheBlackOathEmblem|
@ -165,29 +165,30 @@
|Generate|TOK:AER|Etherium Cell|||EtheriumCellToken| |Generate|TOK:AER|Etherium Cell|||EtheriumCellToken|
|Generate|TOK:AER|Gremlin|||GremlinToken| |Generate|TOK:AER|Gremlin|||GremlinToken|
|Generate|TOK:AER|Ragavan|||RagavanToken| |Generate|TOK:AER|Ragavan|||RagavanToken|
|Generate|TOK:AKH|Angel of Sanctions||
|Generate|TOK:AKH|Anointer Priest||
|Generate|TOK:AKH|Aven Initiate||
|Generate|TOK:AKH|Aven Wind Guide||
|Generate|TOK:AKH|Beast|||BeastToken3| |Generate|TOK:AKH|Beast|||BeastToken3|
|Generate|TOK:AKH|Cat|||CatToken2| |Generate|TOK:AKH|Cat|||CatToken2|
|Generate|TOK:AKH|Drake|||DrakeToken| |Generate|TOK:AKH|Drake|||DrakeToken|
|Generate|TOK:AKH|Glyph Keeper||
|Generate|TOK:AKH|Heart-Piercer Manticore||
|Generate|TOK:AKH|Hippo|||HippoToken2| |Generate|TOK:AKH|Hippo|||HippoToken2|
|Generate|TOK:AKH|Honored Hydra||
|Generate|TOK:AKH|Labyrinth Guardian||
|Generate|TOK:AKH|Oketra's Attendant||
|Generate|TOK:AKH|Sacred Cat||
|Generate|TOK:AKH|Snake|||DeathtouchSnakeToken| |Generate|TOK:AKH|Snake|||DeathtouchSnakeToken|
|Generate|TOK:AKH|Tah-Crop Skirmisher||
|Generate|TOK:AKH|Temmet, Vizier of Naktamun||
|Generate|TOK:AKH|Trueheart Duelist||
|Generate|TOK:AKH|Unwavering Initiate||
|Generate|TOK:AKH|Vizier of Many Faces||
|Generate|TOK:AKH|Warrior|||WarriorVigilantToken| |Generate|TOK:AKH|Warrior|||WarriorVigilantToken|
|Generate|TOK:AKH|Wurm|||WurmToken3| |Generate|TOK:AKH|Wurm|||WurmToken3|
|Generate|TOK:AKH|Zombie|||ZombieToken |Generate|TOK:AKH|Zombie|||ZombieToken
#TOK:AKH - some tokens from real cards (see Embalm ability)
#|Generate|TOK:AKH|Angel of Sanctions||
#|Generate|TOK:AKH|Anointer Priest||
#|Generate|TOK:AKH|Aven Initiate||
#|Generate|TOK:AKH|Aven Wind Guide||
#|Generate|TOK:AKH|Glyph Keeper||
#|Generate|TOK:AKH|Heart-Piercer Manticore||
#|Generate|TOK:AKH|Honored Hydra||
#|Generate|TOK:AKH|Labyrinth Guardian||
#|Generate|TOK:AKH|Oketra's Attendant||
#|Generate|TOK:AKH|Sacred Cat||
#|Generate|TOK:AKH|Tah-Crop Skirmisher||
#|Generate|TOK:AKH|Temmet, Vizier of Naktamun||
#|Generate|TOK:AKH|Trueheart Duelist||
#|Generate|TOK:AKH|Unwavering Initiate||
#|Generate|TOK:AKH|Vizier of Many Faces||
|Generate|TOK:ALA|Beast|||GodSireBeastToken| |Generate|TOK:ALA|Beast|||GodSireBeastToken|
|Generate|TOK:ALA|Dragon|||DragonToken| |Generate|TOK:ALA|Dragon|||DragonToken|
|Generate|TOK:ALA|Goblin|||GoblinTokenWithHaste| |Generate|TOK:ALA|Goblin|||GoblinTokenWithHaste|
@ -242,7 +243,7 @@
|Generate|TOK:BFZ|Eldrazi Scion|3||EldraziScionToken| |Generate|TOK:BFZ|Eldrazi Scion|3||EldraziScionToken|
|Generate|TOK:BFZ|Eldrazi|||EldraziToken| |Generate|TOK:BFZ|Eldrazi|||EldraziToken|
|Generate|TOK:BFZ|Elemental|1||OmnathElementalToken| |Generate|TOK:BFZ|Elemental|1||OmnathElementalToken|
|Generate|TOK:BFZ|Elemental|2||ElementalToken| |Generate|TOK:BFZ|Elemental|2||AkoumStonewakerElementalToken|
|Generate|TOK:BFZ|Knight Ally|||KnightAllyToken| |Generate|TOK:BFZ|Knight Ally|||KnightAllyToken|
|Generate|TOK:BFZ|Kor Ally|||KorAllyToken| |Generate|TOK:BFZ|Kor Ally|||KorAllyToken|
|Generate|TOK:BFZ|Octopus|||OctopusToken| |Generate|TOK:BFZ|Octopus|||OctopusToken|
@ -580,7 +581,7 @@
|Generate|TOK:DOM|Construct|||KarnConstructToken| |Generate|TOK:DOM|Construct|||KarnConstructToken|
|Generate|TOK:DOM|Demon|||BelzenlokDemonToken| |Generate|TOK:DOM|Demon|||BelzenlokDemonToken|
|Generate|TOK:DOM|Elemental|||ValdukElementalToken| |Generate|TOK:DOM|Elemental|||ValdukElementalToken|
|Gererate|TOK:DOM|Goblin|||GoblinToken| |Generate|TOK:DOM|Goblin|||GoblinToken|
|Generate|TOK:DOM|Karox Bladewing|||KaroxBladewingDragonToken| |Generate|TOK:DOM|Karox Bladewing|||KaroxBladewingDragonToken|
|Generate|TOK:DOM|Knight|1||KnightToken| |Generate|TOK:DOM|Knight|1||KnightToken|
|Generate|TOK:DOM|Knight|2||KnightToken| |Generate|TOK:DOM|Knight|2||KnightToken|
@ -628,15 +629,16 @@
|Generate|TOK:EMA|Wall|||TidalWaveWallToken| |Generate|TOK:EMA|Wall|||TidalWaveWallToken|
|Generate|TOK:EMA|Wurm|||WurmToken| |Generate|TOK:EMA|Wurm|||WurmToken|
|Generate|TOK:EMA|Zombie|||ZombieToken| |Generate|TOK:EMA|Zombie|||ZombieToken|
|Generate|TOK:EMN|Devil|||DevilToken| #TOK:EMN - Human Soldier, Spirit, Devil, Insect and Wolf tokens from SOI set
#|Generate|TOK:EMN|Devil|||DevilToken|
#|Generate|TOK:EMN|Human Soldier|||HumanSoldierToken|
#|Generate|TOK:EMN|Insect|||InsectToken|
#|Generate|TOK:EMN|Spirit|||SpiritWhiteToken|
#|Generate|TOK:EMN|Wolf|||WolfToken|
|Generate|TOK:EMN|Eldrazi Horror|||EldraziHorrorToken| |Generate|TOK:EMN|Eldrazi Horror|||EldraziHorrorToken|
|Generate|TOK:EMN|Human Soldier|||HumanSoldierToken|
|Generate|TOK:EMN|Human Wizard|||HumanWizardToken| |Generate|TOK:EMN|Human Wizard|||HumanWizardToken|
|Generate|TOK:EMN|Human|||RedHumanToken| |Generate|TOK:EMN|Human|||RedHumanToken|
|Generate|TOK:EMN|Insect|||InsectToken|
|Generate|TOK:EMN|Spider|||SpiderToken| |Generate|TOK:EMN|Spider|||SpiderToken|
|Generate|TOK:EMN|Spirit|||SpiritWhiteToken|
|Generate|TOK:EMN|Wolf|||WolfToken|
|Generate|TOK:EMN|Zombie|1||ZombieToken| |Generate|TOK:EMN|Zombie|1||ZombieToken|
|Generate|TOK:EMN|Zombie|2||ZombieToken| |Generate|TOK:EMN|Zombie|2||ZombieToken|
|Generate|TOK:EMN|Zombie|3||ZombieToken| |Generate|TOK:EMN|Zombie|3||ZombieToken|
@ -706,19 +708,20 @@
|Generate|TOK:HOP|Pentavite|||PentaviteToken| |Generate|TOK:HOP|Pentavite|||PentaviteToken|
|Generate|TOK:HOP|Pest|||PestToken| |Generate|TOK:HOP|Pest|||PestToken|
|Generate|TOK:HOP|Saproling|||SaprolingToken| |Generate|TOK:HOP|Saproling|||SaprolingToken|
|Generate|TOK:HOU|Horse|||CrestedSunmareToken|
|Generate|TOK:HOU|Insect|||TheLocustGodInsectToken|
|Generate|TOK:HOU|Snake|||RhonassLastStandToken|
#TOK:HOU - some tokens from real cards (see Eternalize ability)
#TOK:HOU - Cat, Warrior and Zombie tokens from AKH set
|Generate|TOK:HOU|Adorned Pouncer|||| |Generate|TOK:HOU|Adorned Pouncer||||
|Generate|TOK:HOU|Champion of Wits|||| |Generate|TOK:HOU|Champion of Wits||||
|Generate|TOK:HOU|Dreamstealer|||| |Generate|TOK:HOU|Dreamstealer||||
|Generate|TOK:HOU|Earthshaker Khenra|||| |Generate|TOK:HOU|Earthshaker Khenra||||
|Generate|TOK:HOU|Horse|||CrestedSunmareToken|
|Generate|TOK:HOU|Insect|||TheLocustGodInsectToken|
|Generate|TOK:HOU|Proven Combatant|||| |Generate|TOK:HOU|Proven Combatant||||
|Generate|TOK:HOU|Resilient Khenra|||| |Generate|TOK:HOU|Resilient Khenra||||
|Generate|TOK:HOU|Sinuous Striker|||| |Generate|TOK:HOU|Sinuous Striker||||
|Generate|TOK:HOU|Snake|||RhonassLastStandToken|
|Generate|TOK:HOU|Steadfast Sentinel|||| |Generate|TOK:HOU|Steadfast Sentinel||||
|Generate|TOK:HOU|Sunscourge Champion|||| |Generate|TOK:HOU|Sunscourge Champion||||
|Generate|TOK:HOU|Zombie||
|Generate|TOK:ICE|Caribou|||CaribouToken| |Generate|TOK:ICE|Caribou|||CaribouToken|
|Generate|TOK:INV|Bird|||OwlToken| |Generate|TOK:INV|Bird|||OwlToken|
|Generate|TOK:INV|Elephant|||ElephantToken| |Generate|TOK:INV|Elephant|||ElephantToken|
@ -1256,6 +1259,7 @@
|Generate|TOK:RNA|Treasure|||TreasureToken| |Generate|TOK:RNA|Treasure|||TreasureToken|
|Generate|TOK:RNA|Zombie|||ZombieToken| |Generate|TOK:RNA|Zombie|||ZombieToken|
|Generate|TOK:GRN|Angel|||AngelVigilanceToken| |Generate|TOK:GRN|Angel|||AngelVigilanceToken|
|Generate|TOK:GRN|Bird Illusion|||BirdIllusionToken|
|Generate|TOK:GRN|Elf Knight|||ElfKnightToken| |Generate|TOK:GRN|Elf Knight|||ElfKnightToken|
|Generate|TOK:GRN|Goblin|||GoblinToken| |Generate|TOK:GRN|Goblin|||GoblinToken|
|Generate|TOK:GRN|Insect|||IzoniInsectToken| |Generate|TOK:GRN|Insect|||IzoniInsectToken|

View file

@ -1,8 +1,5 @@
package mage.cards.c; package mage.cards.c;
import java.util.Set;
import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility; import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
@ -17,22 +14,24 @@ import mage.cards.Card;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.SuperType; import mage.constants.SuperType;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.token.ElementalToken; import mage.game.permanent.token.ElementalToken;
import mage.players.Player; import mage.players.Player;
import java.util.Set;
import java.util.UUID;
/** /**
*
* @author fireshoes * @author fireshoes
*/ */
public final class ChandraFlamecaller extends CardImpl { public final class ChandraFlamecaller extends CardImpl {
public ChandraFlamecaller(UUID ownerId, CardSetInfo setInfo) { public ChandraFlamecaller(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.PLANESWALKER},"{4}{R}{R}"); super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{4}{R}{R}");
this.addSuperType(SuperType.LEGENDARY); this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.CHANDRA); this.subtype.add(SubType.CHANDRA);
@ -78,7 +77,7 @@ class ChandraElementalEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId()); Player controller = game.getPlayer(source.getControllerId());
if (controller != null) { if (controller != null) {
CreateTokenEffect effect = new CreateTokenEffect(new ElementalToken("OGW", 1, true), 2); CreateTokenEffect effect = new CreateTokenEffect(new ElementalToken("OGW", 2, true), 2);
effect.apply(game, source); effect.apply(game, source);
effect.exileTokensCreatedAtNextEndStep(game, source); effect.exileTokensCreatedAtNextEndStep(game, source);
return true; return true;

View file

@ -1,4 +1,3 @@
package mage.game.command.emblems; package mage.game.command.emblems;
import mage.abilities.Ability; import mage.abilities.Ability;
@ -15,13 +14,12 @@ import mage.game.command.Emblem;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
/** /**
*
* @author spjspj * @author spjspj
*/ */
public final class GideonOfTheTrialsEmblem extends Emblem { public final class GideonOfTheTrialsEmblem extends Emblem {
public GideonOfTheTrialsEmblem() { public GideonOfTheTrialsEmblem() {
this.setName("Emblem - Gideon"); this.setName("Emblem Gideon");
Ability ability = new SimpleStaticAbility(Zone.COMMAND, new GideonOfTheTrialsCantLoseEffect()); Ability ability = new SimpleStaticAbility(Zone.COMMAND, new GideonOfTheTrialsCantLoseEffect());
this.getAbilities().add(ability); this.getAbilities().add(ability);
} }
@ -53,9 +51,7 @@ class GideonOfTheTrialsCantLoseEffect extends ContinuousRuleModifyingEffectImpl
public boolean applies(GameEvent event, Ability source, Game game) { public boolean applies(GameEvent event, Ability source, Game game) {
if ((event.getType() == GameEvent.EventType.WINS && game.getOpponents(source.getControllerId()).contains(event.getPlayerId())) if ((event.getType() == GameEvent.EventType.WINS && game.getOpponents(source.getControllerId()).contains(event.getPlayerId()))
|| (event.getType() == GameEvent.EventType.LOSES && event.getPlayerId().equals(source.getControllerId()))) { || (event.getType() == GameEvent.EventType.LOSES && event.getPlayerId().equals(source.getControllerId()))) {
if (game.getBattlefield().contains(filter, source.getControllerId(), 1, game)) { return game.getBattlefield().contains(filter, source.getControllerId(), 1, game);
return true;
}
} }
return false; return false;
} }

View file

@ -24,6 +24,10 @@ public final class AkoumStonewakerElementalToken extends TokenImpl {
this.addAbility(HasteAbility.getInstance()); this.addAbility(HasteAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("BFZ", "MH1")); availableImageSetCodes.addAll(Arrays.asList("BFZ", "MH1"));
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("BFZ")) {
setTokenType(2);
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MH1")) { if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MH1")) {
setTokenType(2); setTokenType(2);
} }

View file

@ -1,15 +1,14 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mage.MageInt; import mage.MageInt;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
*
* @author BetaSteward_at_googlemail.com * @author BetaSteward_at_googlemail.com
*/ */
public final class BeastToken extends TokenImpl { public final class BeastToken extends TokenImpl {
@ -17,7 +16,7 @@ public final class BeastToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
static { static {
tokenImageSets.addAll(Arrays.asList("C14", "LRW", "M15", "M14", "DDL", "M13", "M12", "DD3GVL", "NPH", "M11", "M10", "EVE", "MM3", "CMA", "E01")); tokenImageSets.addAll(Arrays.asList("C14", "LRW", "M15", "M14", "DDL", "M13", "M12", "DD3GVL", "NPH", "M11", "M10", "EVE", "MM3", "CMA", "E01", "C19"));
} }
public BeastToken() { public BeastToken() {

View file

@ -1,15 +1,14 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mage.MageInt; import mage.MageInt;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
*
* @author LoneFox * @author LoneFox
*/ */
public final class BeastToken2 extends TokenImpl { public final class BeastToken2 extends TokenImpl {
@ -17,7 +16,7 @@ public final class BeastToken2 extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
static { static {
tokenImageSets.addAll(Arrays.asList("ZEN", "C14", "DDD", "C15", "DD3GVL", "MM3", "CMA", "E01")); tokenImageSets.addAll(Arrays.asList("ZEN", "C14", "DDD", "C15", "DD3GVL", "MM3", "CMA", "E01", "C19"));
} }
public BeastToken2() { public BeastToken2() {

View file

@ -17,7 +17,7 @@ public final class CentaurToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
static { static {
tokenImageSets.addAll(Arrays.asList("RTR", "MM3", "RNA")); tokenImageSets.addAll(Arrays.asList("RTR", "MM3", "RNA", "C19"));
} }
public CentaurToken() { public CentaurToken() {

View file

@ -1,16 +1,15 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mage.MageInt; import mage.MageInt;
import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.FlyingAbility;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
*
* @author LoneFox * @author LoneFox
*/ */
public final class DragonToken2 extends TokenImpl { public final class DragonToken2 extends TokenImpl {
@ -18,11 +17,11 @@ public final class DragonToken2 extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
static { static {
tokenImageSets.addAll(Arrays.asList("WWK", "10E", "BFZ", "C15", "CN2", "CMA")); tokenImageSets.addAll(Arrays.asList("WWK", "10E", "BFZ", "C15", "CN2", "CMA", "C19"));
} }
public DragonToken2() { public DragonToken2() {
this((String)null); this((String) null);
} }
public DragonToken2(String setCode) { public DragonToken2(String setCode) {

View file

@ -18,7 +18,7 @@ public final class HumanToken extends TokenImpl {
subtype.add(SubType.HUMAN); subtype.add(SubType.HUMAN);
power = new MageInt(1); power = new MageInt(1);
toughness = new MageInt(1); toughness = new MageInt(1);
availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD")); availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD", "C19"));
} }
public HumanToken(final HumanToken token) { public HumanToken(final HumanToken token) {

View file

@ -1,19 +1,17 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.MageInt;
/** /**
*
* @author spjspj * @author spjspj
*/ */
public final class OmnathElementalToken extends TokenImpl { public final class OmnathElementalToken extends TokenImpl {
public OmnathElementalToken() { public OmnathElementalToken() {
super("Elemental", "5/5 red and green Elemental creature token"); super("Elemental", "5/5 red and green Elemental creature token");
setTokenType(2); setTokenType(1);
setOriginalExpansionSetCode("BFZ"); setOriginalExpansionSetCode("BFZ");
cardType.add(CardType.CREATURE); cardType.add(CardType.CREATURE);
subtype.add(SubType.ELEMENTAL); subtype.add(SubType.ELEMENTAL);
@ -23,6 +21,7 @@ public final class OmnathElementalToken extends TokenImpl {
power = new MageInt(5); power = new MageInt(5);
toughness = new MageInt(5); toughness = new MageInt(5);
} }
public OmnathElementalToken(final OmnathElementalToken token) { public OmnathElementalToken(final OmnathElementalToken token) {
super(token); super(token);
} }
@ -30,5 +29,5 @@ public final class OmnathElementalToken extends TokenImpl {
public OmnathElementalToken copy() { public OmnathElementalToken copy() {
return new OmnathElementalToken(this); return new OmnathElementalToken(this);
} }
} }

View file

@ -21,7 +21,7 @@ public final class RhinoToken extends TokenImpl {
toughness = new MageInt(4); toughness = new MageInt(4);
addAbility(TrampleAbility.getInstance()); addAbility(TrampleAbility.getInstance());
availableImageSetCodes.addAll(Arrays.asList("DGM", "RTR", "MH1")); availableImageSetCodes.addAll(Arrays.asList("DGM", "RTR", "MH1", "C19"));
} }
public RhinoToken(final RhinoToken token) { public RhinoToken(final RhinoToken token) {

View file

@ -1,17 +1,15 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mage.MageInt; import mage.MageInt;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.util.RandomUtil; import mage.util.RandomUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
*
* @author BetaSteward_at_googlemail.com * @author BetaSteward_at_googlemail.com
*/ */
public final class SaprolingToken extends TokenImpl { public final class SaprolingToken extends TokenImpl {
@ -39,7 +37,8 @@ public final class SaprolingToken extends TokenImpl {
"VMA", // 2 different token, one with DIFFERENT stats, "Saproling Burst" create different token, see https://scryfall.com/card/tvma/12 "VMA", // 2 different token, one with DIFFERENT stats, "Saproling Burst" create different token, see https://scryfall.com/card/tvma/12
"E02", "E02",
"RIX", "RIX",
"DOM" // 3 different token images "DOM", // 3 different token images
"C19"
)); ));
} }

View file

@ -1,12 +1,10 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.MageInt;
/** /**
*
* @author spjspj * @author spjspj
*/ */
public final class SeedGuardianToken extends TokenImpl { public final class SeedGuardianToken extends TokenImpl {
@ -14,9 +12,10 @@ public final class SeedGuardianToken extends TokenImpl {
public SeedGuardianToken() { public SeedGuardianToken() {
this(1); this(1);
} }
public SeedGuardianToken(int xValue) { public SeedGuardianToken(int xValue) {
super("Elemental", "X/X green Elemental creature token"); super("Elemental", "X/X green Elemental creature token");
setTokenType(2); setTokenType(1);
setOriginalExpansionSetCode("OGW"); setOriginalExpansionSetCode("OGW");
cardType.add(CardType.CREATURE); cardType.add(CardType.CREATURE);
color.setGreen(true); color.setGreen(true);

View file

@ -1,16 +1,14 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import mage.MageInt; import mage.MageInt;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
*
* @author BetaSteward_at_googlemail.com * @author BetaSteward_at_googlemail.com
*/ */
public final class SnakeToken extends TokenImpl { public final class SnakeToken extends TokenImpl {
@ -18,11 +16,11 @@ public final class SnakeToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
static { static {
tokenImageSets.addAll(Arrays.asList("ZEN", "KTK", "MM2", "C15")); tokenImageSets.addAll(Arrays.asList("ZEN", "KTK", "MM2", "C15", "C19"));
} }
public SnakeToken() { public SnakeToken() {
this((String)null); this((String) null);
} }
public SnakeToken(String setCode) { public SnakeToken(String setCode) {

View file

@ -1,12 +1,12 @@
package mage.game.permanent.token; package mage.game.permanent.token;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
/** /**
* @author Loki * @author Loki
@ -16,7 +16,7 @@ public final class SpiritToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
static { static {
tokenImageSets.addAll(Arrays.asList("CHK", "EMA", "C16")); tokenImageSets.addAll(Arrays.asList("CHK", "EMA", "C16", "C19"));
} }
public SpiritToken() { public SpiritToken() {

View file

@ -21,7 +21,7 @@ public final class TreasureToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
static { static {
tokenImageSets.addAll(Arrays.asList("XLN", "RNA", "M20")); tokenImageSets.addAll(Arrays.asList("XLN", "RNA", "M20", "C19"));
} }
public TreasureToken() { public TreasureToken() {

View file

@ -18,7 +18,7 @@ public final class ZombieToken extends TokenImpl {
static { static {
tokenImageSets.addAll(Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", "MBS", "ALA", "ISD", "C14", "C15", "C16", "C17", "CNS", tokenImageSets.addAll(Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", "MBS", "ALA", "ISD", "C14", "C15", "C16", "C17", "CNS",
"MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01", "RNA", "WAR", "MH1", "M20")); "MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01", "RNA", "WAR", "MH1", "M20", "C19"));
} }
public ZombieToken() { public ZombieToken() {
@ -34,6 +34,7 @@ public final class ZombieToken extends TokenImpl {
@Override @Override
public void setExpansionSetCodeForImage(String code) { public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code); super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("ISD")) { if (getOriginalExpansionSetCode().equals("ISD")) {
this.setTokenType(RandomUtil.nextInt(3) + 1); this.setTokenType(RandomUtil.nextInt(3) + 1);
} }
@ -43,6 +44,9 @@ public final class ZombieToken extends TokenImpl {
if (getOriginalExpansionSetCode().equals("EMN")) { if (getOriginalExpansionSetCode().equals("EMN")) {
this.setTokenType(RandomUtil.nextInt(4) + 1); this.setTokenType(RandomUtil.nextInt(4) + 1);
} }
if (getOriginalExpansionSetCode().equals("C19")) {
this.setTokenType(RandomUtil.nextInt(2) + 1);
}
} }
public ZombieToken(final ZombieToken token) { public ZombieToken(final ZombieToken token) {