Token images for a couple of sets (#9047)

* Added support for and assigned IMA token images

* Added support for and assigned CM2 token images

* Fixed M19 DragonEggDragonToken not displaying in game
This commit is contained in:
PurpleCrowbar 2022-06-01 21:55:17 +01:00 committed by GitHub
parent e679574a15
commit a8309f38f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 93 additions and 18 deletions

View file

@ -1040,6 +1040,35 @@ public class ScryfallImageSupportTokens {
put ("DDU/Thopter/1", "https://api.scryfall.com/cards/tddu/3/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"); put ("DDU/Thopter/2", "https://api.scryfall.com/cards/tddu/4/en?format=image");
// IMA
put ("IMA/Angel", "https://api.scryfall.com/cards/tima/1/en?format=image");
put ("IMA/Beast", "https://api.scryfall.com/cards/tima/7/en?format=image");
put ("IMA/Bird", "https://api.scryfall.com/cards/tima/2/en?format=image");
put ("IMA/Djinn Monk", "https://api.scryfall.com/cards/tima/4/en?format=image");
put ("IMA/Dragon/1", "https://api.scryfall.com/cards/tima/5/en?format=image");
put ("IMA/Dragon/2", "https://api.scryfall.com/cards/tima/6/en?format=image");
put ("IMA/Spirit", "https://api.scryfall.com/cards/tima/3/en?format=image");
// CM2
put ("CM2/Bird", "https://api.scryfall.com/cards/tcm2/2/en?format=image");
put ("CM2/Emblem Daretti", "https://api.scryfall.com/cards/tcm2/18/en?format=image");
put ("CM2/Elemental Shaman", "https://api.scryfall.com/cards/tcm2/8/en?format=image");
put ("CM2/Phyrexian Germ", "https://api.scryfall.com/cards/tcm2/6/en?format=image");
put ("CM2/Goat", "https://api.scryfall.com/cards/tcm2/3/en?format=image");
put ("CM2/Goblin", "https://api.scryfall.com/cards/tcm2/9/en?format=image");
put ("CM2/Knight", "https://api.scryfall.com/cards/tcm2/4/en?format=image");
put ("CM2/Lightning Rager", "https://api.scryfall.com/cards/tcm2/10/en?format=image");
put ("CM2/Myr", "https://api.scryfall.com/cards/tcm2/12/en?format=image");
put ("CM2/Pentavite", "https://api.scryfall.com/cards/tcm2/13/en?format=image");
put ("CM2/Saproling", "https://api.scryfall.com/cards/tcm2/11/en?format=image");
put ("CM2/Shapeshifter", "https://api.scryfall.com/cards/tcm2/1/en?format=image");
put ("CM2/Spirit", "https://api.scryfall.com/cards/tcm2/5/en?format=image");
put ("CM2/Triskelavite", "https://api.scryfall.com/cards/tcm2/14/en?format=image");
put ("CM2/Tuktuk the Returned", "https://api.scryfall.com/cards/tcm2/15/en?format=image");
put ("CM2/Phyrexian Wurm/1", "https://api.scryfall.com/cards/tcm2/16/en?format=image");
put ("CM2/Phyrexian Wurm/2", "https://api.scryfall.com/cards/tcm2/17/en?format=image");
put ("CM2/Zombie", "https://api.scryfall.com/cards/tcm2/7/en?format=image");
// generate supported sets // generate supported sets
supportedSets.clear(); supportedSets.clear();
for (String cardName : this.keySet()) { for (String cardName : this.keySet()) {

View file

@ -51,6 +51,7 @@
|Generate|EMBLEM!:C14|Emblem Nixilis|||ObNixilisOfTheBlackOathEmblem| |Generate|EMBLEM!:C14|Emblem Nixilis|||ObNixilisOfTheBlackOathEmblem|
|Generate|EMBLEM!:C14|Emblem Teferi|||TeferiTemporalArchmageEmblem| |Generate|EMBLEM!:C14|Emblem Teferi|||TeferiTemporalArchmageEmblem|
|Generate|EMBLEM!:C16|Emblem Daretti|||DarettiScrapSavantEmblem| |Generate|EMBLEM!:C16|Emblem Daretti|||DarettiScrapSavantEmblem|
|Generate|EMBLEM!:CM2|Emblem Daretti|||DarettiScrapSavantEmblem|
|Generate|EMBLEM:C19|Ob Nixilis Reignited||Emblem Nixilis|ObNixilisReignitedEmblem| |Generate|EMBLEM:C19|Ob Nixilis Reignited||Emblem Nixilis|ObNixilisReignitedEmblem|
|Generate|EMBLEM!:CNS|Emblem Dack Fayden||Emblem Dack|DackFaydenEmblem| |Generate|EMBLEM!:CNS|Emblem Dack Fayden||Emblem Dack|DackFaydenEmblem|
|Generate|EMBLEM!:DTK|Emblem Narset|||NarsetTranscendentEmblem| |Generate|EMBLEM!:DTK|Emblem Narset|||NarsetTranscendentEmblem|
@ -1810,3 +1811,31 @@
|Generate|TOK:DDU|Myr|||MyrToken| |Generate|TOK:DDU|Myr|||MyrToken|
|Generate|TOK:DDU|Thopter|1||ThopterColorlessToken| |Generate|TOK:DDU|Thopter|1||ThopterColorlessToken|
|Generate|TOK:DDU|Thopter|2||ThopterColorlessToken| |Generate|TOK:DDU|Thopter|2||ThopterColorlessToken|
# IMA
|Generate|TOK:IMA|Angel|||AngelToken|
|Generate|TOK:IMA|Beast|||BeastToken2|
|Generate|TOK:IMA|Bird|||BirdToken|
|Generate|TOK:IMA|Djinn Monk|||DjinnMonkToken|
|Generate|TOK:IMA|Dragon|1||DragonEggDragonToken|
|Generate|TOK:IMA|Dragon|2||DragonToken2|
|Generate|TOK:IMA|Spirit|||SpiritWhiteToken|
# CM2
|Generate|TOK:CM2|Bird|||BirdToken|
|Generate|TOK:CM2|Elemental Shaman|||ElementalShamanToken|
|Generate|TOK:CM2|Phyrexian Germ|||PhyrexianGermToken|
|Generate|TOK:CM2|Goat|||GoatToken|
|Generate|TOK:CM2|Goblin|||GoblinToken|
|Generate|TOK:CM2|Knight|||HuntedDragonKnightToken|
|Generate|TOK:CM2|Lightning Rager|||LightningRagerToken|
|Generate|TOK:CM2|Myr|||MyrToken|
|Generate|TOK:CM2|Pentavite|||PentaviteToken|
|Generate|TOK:CM2|Saproling|||SaprolingToken|
|Generate|TOK:CM2|Shapeshifter|||CribSwapShapeshifterWhiteToken|
|Generate|TOK:CM2|Spirit|||SpiritWhiteToken|
|Generate|TOK:CM2|Triskelavite|||TriskelaviteToken|
|Generate|TOK:CM2|Tuktuk the Returned|||TuktukTheReturnedToken|
|Generate|TOK:CM2|Phyrexian Wurm|1||WurmWithDeathtouchToken|
|Generate|TOK:CM2|Phyrexian Wurm|2||WurmWithLifelinkToken|
|Generate|TOK:CM2|Zombie|||ZombieToken|

View file

@ -26,7 +26,6 @@ public final class DarettiScrapSavantEmblem extends Emblem {
public DarettiScrapSavantEmblem() { public DarettiScrapSavantEmblem() {
setName("Emblem Daretti"); setName("Emblem Daretti");
this.setExpansionSetCodeForImage("C14");
this.getAbilities().add(new DarettiScrapSavantTriggeredAbility()); this.getAbilities().add(new DarettiScrapSavantTriggeredAbility());
} }

View file

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

View file

@ -20,7 +20,7 @@ public final class BeastToken2 extends TokenImpl {
toughness = new MageInt(4); toughness = new MageInt(4);
availableImageSetCodes = Arrays.asList("C14", "C15", "C18", "C19", "CMA", "CMD", "GVL", "DDD", availableImageSetCodes = Arrays.asList("C14", "C15", "C18", "C19", "CMA", "CMD", "GVL", "DDD",
"E01", "ODY", "SCG", "ZEN", "C20", "ZNC", "CMR", "C21", "MH2", "MID"); "E01", "ODY", "SCG", "ZEN", "C20", "ZNC", "CMR", "C21", "MH2", "MID", "IMA");
} }
public BeastToken2(final BeastToken2 token) { public BeastToken2(final BeastToken2 token) {

View file

@ -24,7 +24,7 @@ public final class BirdToken extends TokenImpl {
addAbility(FlyingAbility.getInstance()); addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("BNG", "CSP", "DGM", "JUD", "MM3", "RTR", "VMA", "ZEN", availableImageSetCodes = Arrays.asList("BNG", "CSP", "DGM", "JUD", "MM3", "RTR", "VMA", "ZEN",
"MH1", "C16", "C20", "M21", "ZNC", "KHC", "MH2"); "MH1", "C16", "C20", "M21", "ZNC", "KHC", "MH2", "IMA", "CM2");
} }
public BirdToken(final BirdToken token) { public BirdToken(final BirdToken token) {

View file

@ -28,7 +28,7 @@ public final class DragonEggDragonToken extends TokenImpl {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}"))); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}")));
availableImageSetCodes = Arrays.asList("C18", "EMA", "M14", "M19", "CMR"); availableImageSetCodes = Arrays.asList("C18", "EMA", "M14", "M19", "CMR", "IMA");
} }
public DragonEggDragonToken(final DragonEggDragonToken token) { public DragonEggDragonToken(final DragonEggDragonToken token) {
@ -42,5 +42,12 @@ public final class DragonEggDragonToken extends TokenImpl {
@Override @Override
public void setExpansionSetCodeForImage(String code) { public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code); super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("IMA")) {
this.setTokenType(1);
}
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M19")) {
this.setTokenType(1);
}
} }
} }

View file

@ -22,7 +22,7 @@ public final class DragonToken2 extends TokenImpl {
addAbility(FlyingAbility.getInstance()); addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("10E", "BFZ", "C15", "C19", "CMA", "CMD", "ONS", "ROE", "SCG", "WWK", "M19", "KHM", "AFC"); availableImageSetCodes = Arrays.asList("10E", "BFZ", "C15", "C19", "CMA", "CMD", "ONS", "ROE", "SCG", "WWK", "M19", "KHM", "AFC", "IMA");
} }
public DragonToken2(final DragonToken2 token) { public DragonToken2(final DragonToken2 token) {
@ -40,5 +40,8 @@ public final class DragonToken2 extends TokenImpl {
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M19")) { if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M19")) {
this.setTokenType(2); this.setTokenType(2);
} }
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("IMA")) {
this.setTokenType(2);
}
} }
} }

View file

@ -18,7 +18,7 @@ public final class ElementalShamanToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
static { static {
tokenImageSets.addAll(Arrays.asList("C15", "JVC", "DD2", "LRW")); tokenImageSets.addAll(Arrays.asList("C15", "JVC", "DD2", "LRW", "CM2"));
} }
public ElementalShamanToken(boolean withHaste) { public ElementalShamanToken(boolean withHaste) {

View file

@ -16,7 +16,7 @@ public final class GoatToken extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>(); static final private List<String> tokenImageSets = new ArrayList<>();
static { static {
tokenImageSets.addAll(Arrays.asList("EVE", "M13", "M14", "C14", "C16", "ELD", "THB", "NCC")); tokenImageSets.addAll(Arrays.asList("EVE", "M13", "M14", "C14", "C16", "ELD", "THB", "NCC", "CM2"));
} }
public GoatToken() { public GoatToken() {

View file

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

View file

@ -21,7 +21,7 @@ public final class HuntedDragonKnightToken extends TokenImpl {
toughness = new MageInt(2); toughness = new MageInt(2);
this.addAbility(FirstStrikeAbility.getInstance()); this.addAbility(FirstStrikeAbility.getInstance());
availableImageSetCodes = Arrays.asList("ORI", "RTR", "C15"); availableImageSetCodes = Arrays.asList("ORI", "RTR", "C15", "CM2");
} }
public HuntedDragonKnightToken(final HuntedDragonKnightToken token) { public HuntedDragonKnightToken(final HuntedDragonKnightToken token) {

View file

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

View file

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

View file

@ -50,7 +50,8 @@ public final class SaprolingToken extends TokenImpl {
"AFC", "AFC",
"NEC", "NEC",
"2XM", "2XM",
"NCC" "NCC",
"CM2"
)); ));
} }

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", 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", "SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C19", "C20", "CMR", "KHM",
"MID", "VOW", "UMA", "BBD"); "MID", "VOW", "UMA", "BBD", "IMA", "CM2");
} }
@Override @Override

View file

@ -12,6 +12,8 @@ import mage.abilities.keyword.FlyingAbility;
import mage.constants.Zone; import mage.constants.Zone;
import mage.target.common.TargetAnyTarget; import mage.target.common.TargetAnyTarget;
import java.util.Arrays;
/** /**
* *
* @author spjspj * @author spjspj
@ -32,6 +34,8 @@ public final class TriskelaviteToken extends TokenImpl {
this.addAbility(ability); this.addAbility(ability);
addAbility(FlyingAbility.getInstance()); addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("CM2");
} }
public TriskelaviteToken(final TriskelaviteToken token) { public TriskelaviteToken(final TriskelaviteToken token) {

View file

@ -22,7 +22,7 @@ public final class WurmWithDeathtouchToken extends TokenImpl {
toughness = new MageInt(3); toughness = new MageInt(3);
this.addAbility(DeathtouchAbility.getInstance()); this.addAbility(DeathtouchAbility.getInstance());
availableImageSetCodes = Arrays.asList("C14", "SOM", "2XM"); availableImageSetCodes = Arrays.asList("C14", "SOM", "2XM", "CM2");
} }
@Override @Override
@ -41,6 +41,9 @@ public final class WurmWithDeathtouchToken extends TokenImpl {
if (getOriginalExpansionSetCode().equals("2XM")) { if (getOriginalExpansionSetCode().equals("2XM")) {
this.setTokenType(1); this.setTokenType(1);
} }
if (getOriginalExpansionSetCode().equals("CM2")) {
this.setTokenType(1);
}
} }
public WurmWithDeathtouchToken(final WurmWithDeathtouchToken token) { public WurmWithDeathtouchToken(final WurmWithDeathtouchToken token) {

View file

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

View file

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