diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java index 4a181382b8..8962e98d6f 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSupportTokens.java @@ -1040,6 +1040,35 @@ public class ScryfallImageSupportTokens { 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"); + // 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 supportedSets.clear(); for (String cardName : this.keySet()) { diff --git a/Mage.Client/src/main/resources/card-pictures-tok.txt b/Mage.Client/src/main/resources/card-pictures-tok.txt index d6ed694d9c..c3b8acda0f 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -51,6 +51,7 @@ |Generate|EMBLEM!:C14|Emblem Nixilis|||ObNixilisOfTheBlackOathEmblem| |Generate|EMBLEM!:C14|Emblem Teferi|||TeferiTemporalArchmageEmblem| |Generate|EMBLEM!:C16|Emblem Daretti|||DarettiScrapSavantEmblem| +|Generate|EMBLEM!:CM2|Emblem Daretti|||DarettiScrapSavantEmblem| |Generate|EMBLEM:C19|Ob Nixilis Reignited||Emblem Nixilis|ObNixilisReignitedEmblem| |Generate|EMBLEM!:CNS|Emblem Dack Fayden||Emblem Dack|DackFaydenEmblem| |Generate|EMBLEM!:DTK|Emblem Narset|||NarsetTranscendentEmblem| @@ -1809,4 +1810,32 @@ |Generate|TOK:DDU|Elf Warrior|||ElfWarriorToken| |Generate|TOK:DDU|Myr|||MyrToken| |Generate|TOK:DDU|Thopter|1||ThopterColorlessToken| -|Generate|TOK:DDU|Thopter|2||ThopterColorlessToken| \ No newline at end of file +|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| \ No newline at end of file diff --git a/Mage/src/main/java/mage/game/command/emblems/DarettiScrapSavantEmblem.java b/Mage/src/main/java/mage/game/command/emblems/DarettiScrapSavantEmblem.java index 33ebf2dddc..b8e1b161ea 100644 --- a/Mage/src/main/java/mage/game/command/emblems/DarettiScrapSavantEmblem.java +++ b/Mage/src/main/java/mage/game/command/emblems/DarettiScrapSavantEmblem.java @@ -26,7 +26,6 @@ public final class DarettiScrapSavantEmblem extends Emblem { public DarettiScrapSavantEmblem() { setName("Emblem Daretti"); - this.setExpansionSetCodeForImage("C14"); this.getAbilities().add(new DarettiScrapSavantTriggeredAbility()); } diff --git a/Mage/src/main/java/mage/game/permanent/token/AngelToken.java b/Mage/src/main/java/mage/game/permanent/token/AngelToken.java index 7e54d265d0..2e49551b10 100644 --- a/Mage/src/main/java/mage/game/permanent/token/AngelToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/AngelToken.java @@ -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", "2XM"); + "ISD", "M14", "MM3", "NEM", "OGW", "ORI", "PC2", "SCG", "SOI", "ZEN", "C20", "M21", "CMR", "AFC", "VOC", "2XM", "IMA"); } public AngelToken(final AngelToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java index bec70c2128..f7e838a97c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java @@ -20,7 +20,7 @@ public final class BeastToken2 extends TokenImpl { toughness = new MageInt(4); 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) { diff --git a/Mage/src/main/java/mage/game/permanent/token/BirdToken.java b/Mage/src/main/java/mage/game/permanent/token/BirdToken.java index b6df205bf4..a8f1103c6c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BirdToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BirdToken.java @@ -24,7 +24,7 @@ public final class BirdToken extends TokenImpl { addAbility(FlyingAbility.getInstance()); 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) { diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonEggDragonToken.java b/Mage/src/main/java/mage/game/permanent/token/DragonEggDragonToken.java index cd3d12b56a..1ebf683e44 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DragonEggDragonToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DragonEggDragonToken.java @@ -28,7 +28,7 @@ public final class DragonEggDragonToken extends TokenImpl { this.addAbility(FlyingAbility.getInstance()); 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) { @@ -42,5 +42,12 @@ public final class DragonEggDragonToken extends TokenImpl { @Override public void setExpansionSetCodeForImage(String code) { super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("IMA")) { + this.setTokenType(1); + } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M19")) { + this.setTokenType(1); + } } } diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java b/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java index 631846deb8..4daa4140cd 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/DragonToken2.java @@ -22,7 +22,7 @@ public final class DragonToken2 extends TokenImpl { 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) { @@ -40,5 +40,8 @@ public final class DragonToken2 extends TokenImpl { if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M19")) { this.setTokenType(2); } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("IMA")) { + this.setTokenType(2); + } } } diff --git a/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java b/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java index e9122f5d64..69cac19b37 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ElementalShamanToken.java @@ -18,7 +18,7 @@ public final class ElementalShamanToken extends TokenImpl { static final private List tokenImageSets = new ArrayList<>(); static { - tokenImageSets.addAll(Arrays.asList("C15", "JVC", "DD2", "LRW")); + tokenImageSets.addAll(Arrays.asList("C15", "JVC", "DD2", "LRW", "CM2")); } public ElementalShamanToken(boolean withHaste) { diff --git a/Mage/src/main/java/mage/game/permanent/token/GoatToken.java b/Mage/src/main/java/mage/game/permanent/token/GoatToken.java index 1ca61c08cc..867607a9bd 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GoatToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GoatToken.java @@ -16,7 +16,7 @@ public final class GoatToken extends TokenImpl { static final private List tokenImageSets = new ArrayList<>(); 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() { diff --git a/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java b/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java index 5518ffa14f..41faa19b53 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GoblinToken.java @@ -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", "M19"); + "MM3", "EMA", "C16", "DOM", "ANA", "RNA", "WAR", "MH1", "TSR", "MH2", "AFR", "NEC", "M19", "CM2"); } public GoblinToken(final GoblinToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java b/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java index 946b4e6bae..f0c19eceb5 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java @@ -21,7 +21,7 @@ public final class HuntedDragonKnightToken extends TokenImpl { toughness = new MageInt(2); this.addAbility(FirstStrikeAbility.getInstance()); - availableImageSetCodes = Arrays.asList("ORI", "RTR", "C15"); + availableImageSetCodes = Arrays.asList("ORI", "RTR", "C15", "CM2"); } public HuntedDragonKnightToken(final HuntedDragonKnightToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/MyrToken.java b/Mage/src/main/java/mage/game/permanent/token/MyrToken.java index e9e7970dde..91b839d879 100644 --- a/Mage/src/main/java/mage/game/permanent/token/MyrToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/MyrToken.java @@ -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", "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) { diff --git a/Mage/src/main/java/mage/game/permanent/token/PhyrexianGermToken.java b/Mage/src/main/java/mage/game/permanent/token/PhyrexianGermToken.java index f5bfe32415..074d97aa0d 100644 --- a/Mage/src/main/java/mage/game/permanent/token/PhyrexianGermToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/PhyrexianGermToken.java @@ -20,7 +20,7 @@ public final class PhyrexianGermToken extends TokenImpl { power = 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 diff --git a/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java b/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java index f988cd7608..3c37d3bed6 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java @@ -50,7 +50,8 @@ public final class SaprolingToken extends TokenImpl { "AFC", "NEC", "2XM", - "NCC" + "NCC", + "CM2" )); } diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java index 1412b241f3..b47419787a 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java @@ -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", "BBD"); + "MID", "VOW", "UMA", "BBD", "IMA", "CM2"); } @Override diff --git a/Mage/src/main/java/mage/game/permanent/token/TriskelaviteToken.java b/Mage/src/main/java/mage/game/permanent/token/TriskelaviteToken.java index 5fe1951908..ef2f3c5884 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TriskelaviteToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/TriskelaviteToken.java @@ -12,6 +12,8 @@ import mage.abilities.keyword.FlyingAbility; import mage.constants.Zone; import mage.target.common.TargetAnyTarget; +import java.util.Arrays; + /** * * @author spjspj @@ -32,6 +34,8 @@ public final class TriskelaviteToken extends TokenImpl { this.addAbility(ability); addAbility(FlyingAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("CM2"); } public TriskelaviteToken(final TriskelaviteToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/WurmWithDeathtouchToken.java b/Mage/src/main/java/mage/game/permanent/token/WurmWithDeathtouchToken.java index 44fa430f5a..edae64a1a6 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WurmWithDeathtouchToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/WurmWithDeathtouchToken.java @@ -22,7 +22,7 @@ public final class WurmWithDeathtouchToken extends TokenImpl { toughness = new MageInt(3); this.addAbility(DeathtouchAbility.getInstance()); - availableImageSetCodes = Arrays.asList("C14", "SOM", "2XM"); + availableImageSetCodes = Arrays.asList("C14", "SOM", "2XM", "CM2"); } @Override @@ -41,6 +41,9 @@ public final class WurmWithDeathtouchToken extends TokenImpl { if (getOriginalExpansionSetCode().equals("2XM")) { this.setTokenType(1); } + if (getOriginalExpansionSetCode().equals("CM2")) { + this.setTokenType(1); + } } public WurmWithDeathtouchToken(final WurmWithDeathtouchToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/WurmWithLifelinkToken.java b/Mage/src/main/java/mage/game/permanent/token/WurmWithLifelinkToken.java index 2cbba52636..0bee9aa6aa 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WurmWithLifelinkToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/WurmWithLifelinkToken.java @@ -22,7 +22,7 @@ public final class WurmWithLifelinkToken extends TokenImpl { toughness = new MageInt(3); this.addAbility(LifelinkAbility.getInstance()); - availableImageSetCodes = Arrays.asList("C14", "SOM", "2XM"); + availableImageSetCodes = Arrays.asList("C14", "SOM", "2XM", "CM2"); } @Override diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java index 1132671990..b84e18767f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java @@ -31,7 +31,7 @@ public final class ZombieToken extends TokenImpl { "M20", "C19", "C20", "THB", "M21", "CMR", "C21", "MH2", "AFR", "MIC", "VOW", "UMA", - "NCC", "MED", "BBD", "M19"); + "NCC", "MED", "BBD", "M19", "CM2"); } @Override