Token images and fixes for some sets (#9027)

* Fixed CMR's phyrexian horror token not displaying in game

* Added support for and assigned MED token images

* Added support for and assigned BBD token images

* Added support for and assigned DDU token images

* Fixed some M19 tokens not displaying correctly
This commit is contained in:
PurpleCrowbar 2022-05-29 06:08:09 +01:00 committed by GitHub
parent c667458198
commit cee6bc3cfe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 117 additions and 21 deletions

View file

@ -487,7 +487,7 @@ public class ScryfallImageSupportTokens {
put("CMR/Elephant", "https://api.scryfall.com/cards/tcmr/20/en?format=image");
put("CMR/Elf Warrior", "https://api.scryfall.com/cards/tcmr/8/en?format=image");
put("CMR/Golem", "https://api.scryfall.com/cards/tcmr/9/en?format=image");
put("CMR/Horror", "https://api.scryfall.com/cards/tcmr/10/en?format=image");
put("CMR/Phyrexian Horror", "https://api.scryfall.com/cards/tcmr/10/en?format=image");
put("CMR/Illusion", "https://api.scryfall.com/cards/tcmr/17/en?format=image");
put("CMR/Plant", "https://api.scryfall.com/cards/tcmr/21/en?format=image");
put("CMR/Rock", "https://api.scryfall.com/cards/tcmr/11/en?format=image");
@ -1006,6 +1006,40 @@ public class ScryfallImageSupportTokens {
put ("NCC/Wurm", "https://api.scryfall.com/cards/tncc/31/en?format=image");
put ("NCC/Zombie", "https://api.scryfall.com/cards/tncc/16/en?format=image");
// MED
put ("MED/Beast", "https://api.scryfall.com/cards/tmed/W1/en?format=image");
put ("MED/Construct/1", "https://api.scryfall.com/cards/tmed/R1/en?format=image");
put ("MED/Construct/2", "https://api.scryfall.com/cards/tmed/G3/en?format=image");
put ("MED/Emblem Dack", "https://api.scryfall.com/cards/tmed/R2/en?format=image");
put ("MED/Emblem Domri", "https://api.scryfall.com/cards/tmed/R3/en?format=image");
put ("MED/Dragon", "https://api.scryfall.com/cards/tmed/W2/en?format=image");
put ("MED/Emblem Elspeth", "https://api.scryfall.com/cards/tmed/G4/en?format=image");
put ("MED/Emblem Garruk", "https://api.scryfall.com/cards/tmed/W3/en?format=image");
put ("MED/Emblem Jaya Ballard", "https://api.scryfall.com/cards/tmed/R4/en?format=image");
put ("MED/Emblem Liliana", "https://api.scryfall.com/cards/tmed/G5/en?format=image");
put ("MED/Emblem Ral", "https://api.scryfall.com/cards/tmed/G6/en?format=image");
put ("MED/Soldier", "https://api.scryfall.com/cards/tmed/G1/en?format=image");
put ("MED/Emblem Tamiyo", "https://api.scryfall.com/cards/tmed/R5/en?format=image");
put ("MED/Emblem Teferi", "https://api.scryfall.com/cards/tmed/G7/en?format=image");
put ("MED/Emblem Vraska", "https://api.scryfall.com/cards/tmed/G8/en?format=image");
put ("MED/Zombie", "https://api.scryfall.com/cards/tmed/G2/en?format=image");
// BBD
put ("BBD/Beast", "https://api.scryfall.com/cards/tbbd/5/en?format=image");
put ("BBD/Myr", "https://api.scryfall.com/cards/tbbd/6/en?format=image");
put ("BBD/Emblem Rowan Kenrith", "https://api.scryfall.com/cards/tbbd/8/en?format=image");
put ("BBD/Spirit", "https://api.scryfall.com/cards/tbbd/1/en?format=image");
put ("BBD/Warrior", "https://api.scryfall.com/cards/tbbd/2/en?format=image");
put ("BBD/Emblem Will Kenrith", "https://api.scryfall.com/cards/tbbd/7/en?format=image");
put ("BBD/Zombie", "https://api.scryfall.com/cards/tbbd/3/en?format=image");
put ("BBD/Zombie Giant", "https://api.scryfall.com/cards/tbbd/4/en?format=image");
// DDU
put ("DDU/Elf Warrior", "https://api.scryfall.com/cards/tddu/1/en?format=image");
put ("DDU/Myr", "https://api.scryfall.com/cards/tddu/2/en?format=image");
put ("DDU/Thopter/1", "https://api.scryfall.com/cards/tddu/3/en?format=image");
put ("DDU/Thopter/2", "https://api.scryfall.com/cards/tddu/4/en?format=image");
// generate supported sets
supportedSets.clear();
for (String cardName : this.keySet()) {

View file

@ -70,6 +70,18 @@
|Generate|EMBLEM!:ORI|Emblem Liliana|||LilianaDefiantNecromancerEmblem|
|Generate|EMBLEM!:SOI|Emblem Arlinn|||ArlinnEmbracedByTheMoonEmblem|
|Generate|EMBLEM!:SOI|Emblem Jace|||JaceUnravelerOfSecretsEmblem|
|Generate|EMBLEM!:MED|Emblem Dack|||DackFaydenEmblem|
|Generate|EMBLEM!:MED|Emblem Domri|||DomriChaosBringerEmblem|
|Generate|EMBLEM!:MED|Emblem Elspeth|||ElspethKnightErrantEmblem|
|Generate|EMBLEM!:MED|Emblem Garruk|||GarrukApexPredatorEmblem|
|Generate|EMBLEM!:MED|Emblem Jaya Ballard|||JayaBallardEmblem|
|Generate|EMBLEM!:MED|Emblem Liliana|||LilianaTheLastHopeEmblem|
|Generate|EMBLEM!:MED|Emblem Ral|||RalIzzetViceroyEmblem|
|Generate|EMBLEM!:MED|Emblem Tamiyo|||TamiyoTheMoonSageEmblem|
|Generate|EMBLEM!:MED|Emblem Teferi|||TeferiHeroOfDominariaEmblem|
|Generate|EMBLEM!:MED|Emblem Vraska|||VraskaGolgariQueenEmblem|
|Generate|EMBLEM!:BBD|Emblem Rowan Kenrith|||RowanKenrithEmblem|
|Generate|EMBLEM!:BBD|Emblem Will Kenrith|||WillKenrithEmblem|
|Generate|EMBLEM:THS|Elspeth, Suns Champion||Emblem Elspeth|ElspethSunsChampionEmblem|
|Generate|EMBLEM:AVR|Tamiyo, the Moon Sage||Emblem Tamiyo|TamiyoTheMoonSageEmblem|
|Generate|EMBLEM:BNG|Kiora, the Crashing Wave||Emblem Kiora|KioraEmblem|
@ -853,12 +865,11 @@
|Generate|TOK:ME4|Djinn|||DjinnToken|
|Generate|TOK:ME4|Goblin|||GoblinToken|
|Generate|TOK:ME4|Tetravite|||TetraviteToken|
|Generate|TOK:MED|Assembly-Worker|||AssemblyWorkerToken|
|Generate|TOK:MED|Camarid|||CamaridToken|
|Generate|TOK:MED|Citizen|||CitizenToken|
|Generate|TOK:MED|Hippo|||HippoToken|
|Generate|TOK:MED|Snake|||SerpentGeneratorSnakeToken|
|Generate|TOK:MED|Thrull|||BreedingPitBlackInsectToken|
|Generate|TOK:MED|Beast|||GarrukApexPredatorBeastToken|
|Generate|TOK:MED|Construct|1||KarnConstructToken|
|Generate|TOK:MED|Construct|2||DarettiConstructToken|
|Generate|TOK:MED|Dragon|||DragonToken|
|Generate|TOK:MED|Soldier|||SoldierToken|
|Generate|TOK:MED|Zombie|||ZombieToken|
|Generate|TOK:MIR|Cat|||WaitingInTheWeedsCatToken|
|Generate|TOK:MIR|Goblin Scout|||GoblinScountsToken|
@ -1421,7 +1432,7 @@
|Generate|TOK:CMR|Elephant|||ElephantToken|
|Generate|TOK:CMR|Elf Warrior|||ElfWarriorToken|
|Generate|TOK:CMR|Golem|||GolemToken|
|Generate|TOK:CMR|Horror|||PhyrexianRebirthHorrorToken|
|Generate|TOK:CMR|Phyrexian Horror|||PhyrexianRebirthHorrorToken|
|Generate|TOK:CMR|Illusion|||MelokuTheCloudedMirrorToken|
|Generate|TOK:CMR|Plant|||PlantToken|
|Generate|TOK:CMR|Rock|||RockToken|
@ -1784,4 +1795,18 @@
|Generate|TOK:NCC|Thopter|||ThopterColorlessToken|
|Generate|TOK:NCC|Treefolk|||SylvanOfferingTreefolkToken|
|Generate|TOK:NCC|Wurm|||Wurm55Token|
|Generate|TOK:NCC|Zombie|||ZombieToken|
|Generate|TOK:NCC|Zombie|||ZombieToken|
# BBD
|Generate|TOK:BBD|Beast|||BeastToken|
|Generate|TOK:BBD|Myr|||MyrToken|
|Generate|TOK:BBD|Spirit|||SpiritWhiteToken|
|Generate|TOK:BBD|Warrior|||WarriorToken|
|Generate|TOK:BBD|Zombie|||ZombieToken|
|Generate|TOK:BBD|Zombie Giant|||QuestForTheGravelordZombieToken|
# DDU
|Generate|TOK:DDU|Elf Warrior|||ElfWarriorToken|
|Generate|TOK:DDU|Myr|||MyrToken|
|Generate|TOK:DDU|Thopter|1||ThopterColorlessToken|
|Generate|TOK:DDU|Thopter|2||ThopterColorlessToken|

View file

@ -22,7 +22,7 @@ public final class AssemblyWorkerToken extends TokenImpl {
power = new MageInt(2);
toughness = new MageInt(2);
availableImageSetCodes = Arrays.asList("4ED", "ATQ", "DDF", "EMA", "MED", "TSR");
availableImageSetCodes = Arrays.asList("4ED", "ATQ", "DDF", "EMA", "TSR");
}
public AssemblyWorkerToken(final AssemblyWorkerToken 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", "NEC", "2XM", "NCC");
"M13", "M14", "M15", "MM3", "NPH", "PC2", "USG", "M19", "IKO", "M21", "CMR", "C21", "AFC", "MIC", "NEC", "2XM", "NCC", "BBD");
}
@Override

View file

@ -5,6 +5,9 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.keyword.DefenderAbility;
import mage.util.RandomUtil;
import java.util.Arrays;
/**
*
@ -26,6 +29,17 @@ public final class DarettiConstructToken extends TokenImpl {
toughness = new MageInt(1);
addAbility(DefenderAbility.getInstance());
availableImageSetCodes = Arrays.asList("CNS", "CN2", "MED");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MED")) {
setTokenType(2);
}
}
public DarettiConstructToken(final DarettiConstructToken token) {

View file

@ -17,7 +17,7 @@ public final class DragonToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Arrays.asList("DTK", "MMA", "ALA", "MM3", "C17", "WAR"));
tokenImageSets.addAll(Arrays.asList("DTK", "MMA", "ALA", "MM3", "C17", "WAR", "MED"));
}
public DragonToken() {

View file

@ -20,7 +20,7 @@ public final class ElfWarriorToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("C14", "C16", "EVG", "EMA", "LRW", "MOR", "ORI", "SHM", "M19", "CMR", "KHM", "NCC");
availableImageSetCodes = Arrays.asList("C14", "C16", "EVG", "EMA", "LRW", "MOR", "ORI", "SHM", "M19", "CMR", "KHM", "NCC", "DDU");
}
public ElfWarriorToken(final ElfWarriorToken token) {

View file

@ -5,6 +5,9 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.MageInt;
import mage.abilities.keyword.DeathtouchAbility;
import mage.util.RandomUtil;
import java.util.Arrays;
/**
*
@ -24,6 +27,16 @@ public final class GarrukApexPredatorBeastToken extends TokenImpl {
abilities.add(DeathtouchAbility.getInstance());
availableImageSetCodes = Arrays.asList("M15", "MED");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("M15")) {
this.setTokenType(1);
}
}
public GarrukApexPredatorBeastToken(final GarrukApexPredatorBeastToken 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", "NEC");
"MM3", "EMA", "C16", "DOM", "ANA", "RNA", "WAR", "MH1", "TSR", "MH2", "AFR", "NEC", "M19");
}
public GoblinToken(final GoblinToken token) {

View file

@ -30,7 +30,7 @@ public final class KarnConstructToken extends TokenImpl {
.setText("This creature gets +1/+1 for each artifact you control")
));
availableImageSetCodes = Arrays.asList("DOM", "MH1", "C21", "MH2");
availableImageSetCodes = Arrays.asList("DOM", "MH1", "C21", "MH2", "MED");
}
public KarnConstructToken(final KarnConstructToken token) {
@ -48,5 +48,8 @@ public final class KarnConstructToken extends TokenImpl {
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C21")) {
setTokenType(RandomUtil.nextInt(2) + 1); // from 1 to 2
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MED")) {
setTokenType(1);
}
}
}

View file

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

View file

@ -6,6 +6,8 @@ import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
*
* spjspj
@ -21,6 +23,8 @@ public final class QuestForTheGravelordZombieToken extends TokenImpl {
color.setBlack(true);
power = new MageInt(5);
toughness = new MageInt(5);
availableImageSetCodes.addAll(Arrays.asList("ZEN", "DDR", "BBD"));
}
public QuestForTheGravelordZombieToken(final QuestForTheGravelordZombieToken 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", "C18", "MM3", "E01",
"DOM", "MH1", "M20", "C20", "M21", "CMR", "KHC", "TSR", "2XM");
"DOM", "MH1", "M20", "C20", "M21", "CMR", "KHC", "TSR", "2XM", "MED", "M19");
}
public SoldierToken(final SoldierToken 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", "C19", "C20", "CMR", "KHM",
"MID", "VOW", "UMA");
"MID", "VOW", "UMA", "BBD");
}
@Override

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", "NEC", "2XM", "RNA", "NCC");
"KHC", "C21", "MH2", "AFC", "VOC", "NEC", "2XM", "RNA", "NCC", "DDU");
}
@Override
@ -43,6 +43,9 @@ public final class ThopterColorlessToken extends TokenImpl {
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("2XM")) {
this.setTokenType(1);
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("DDU")) {
this.setTokenType(RandomUtil.nextInt(2) + 1);
}
}

View file

@ -22,7 +22,7 @@ public final class WarriorToken extends TokenImpl {
subtype.add(SubType.WARRIOR);
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes.addAll(Arrays.asList("KTK", "DTK"));
availableImageSetCodes.addAll(Arrays.asList("KTK", "DTK", "BBD"));
}
public WarriorToken(final WarriorToken token) {

View file

@ -31,7 +31,7 @@ public final class ZombieToken extends TokenImpl {
"M20", "C19", "C20", "THB",
"M21", "CMR", "C21", "MH2",
"AFR", "MIC", "VOW", "UMA",
"NCC");
"NCC", "MED", "BBD", "M19");
}
@Override