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 ee28a896c6..092a0f7ce9 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 @@ -131,11 +131,8 @@ public class ScryfallImageSupportTokens { //KLD 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"); - // same construct images uses for different classes, so KLD have 4 instead 2 tokens put("KLD/Construct/1", "https://api.scryfall.com/cards/tkld/2/en?format=image"); put("KLD/Construct/2", "https://api.scryfall.com/cards/tkld/3/en?format=image"); - put("KLD/Construct/3", "https://api.scryfall.com/cards/tkld/2/en?format=image"); - put("KLD/Construct/4", "https://api.scryfall.com/cards/tkld/3/en?format=image"); put("KLD/Emblem Dovin", "https://api.scryfall.com/cards/tkld/12/en?format=image"); put("KLD/Emblem Nissa", "https://api.scryfall.com/cards/tkld/11/en?format=image"); put("KLD/Servo/1", "https://api.scryfall.com/cards/tkld/4/en?format=image"); @@ -520,7 +517,7 @@ public class ScryfallImageSupportTokens { put("KHM/Troll Warrior", "https://api.scryfall.com/cards/tkhm/16/en?format=image"); put("KHM/Zombie Berserker", "https://api.scryfall.com/cards/tkhm/9/en?format=image"); put("KHM/Emblem Kaya the Inexorable", "https://api.scryfall.com/cards/tkhm/20/en?format=image"); - put("KHM/Emblem Tibalt Cosmic Imposter", "https://api.scryfall.com/cards/tkhm/21/en?format=image"); + put("KHM/Emblem Tibalt, Cosmic Impostor", "https://api.scryfall.com/cards/tkhm/21/en?format=image"); put("KHM/Emblem Tyvar Kell", "https://api.scryfall.com/cards/tkhm/22/en?format=image"); // KHC @@ -842,6 +839,33 @@ public class ScryfallImageSupportTokens { 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"); + // DTK + put ("DTK/Djinn Monk", "https://api.scryfall.com/cards/tdtk/2/en?format=image"); + put ("DTK/Dragon", "https://api.scryfall.com/cards/tdtk/5/en?format=image"); + put ("DTK/Goblin", "https://api.scryfall.com/cards/tdtk/6/en?format=image"); + put ("DTK/Emblem Narset", "https://api.scryfall.com/cards/tdtk/8/en?format=image"); + put ("DTK/Warrior", "https://api.scryfall.com/cards/tdtk/1/en?format=image"); + put ("DTK/Zombie", "https://api.scryfall.com/cards/tdtk/3/en?format=image"); + put ("DTK/Zombie Horror", "https://api.scryfall.com/cards/tdtk/4/en?format=image"); + + // SNC + put ("SNC/Angel", "https://api.scryfall.com/cards/tsnc/2/en?format=image"); + put ("SNC/Cat", "https://api.scryfall.com/cards/tsnc/9/en?format=image"); + put ("SNC/Citizen", "https://api.scryfall.com/cards/tsnc/12/en?format=image"); + put ("SNC/Devil", "https://api.scryfall.com/cards/tsnc/8/en?format=image"); + put ("SNC/Dog", "https://api.scryfall.com/cards/tsnc/10/en?format=image"); + put ("SNC/Fish", "https://api.scryfall.com/cards/tsnc/4/en?format=image"); + put ("SNC/Ogre Warrior", "https://api.scryfall.com/cards/tsnc/6/en?format=image"); + put ("SNC/Rhino Warrior", "https://api.scryfall.com/cards/tsnc/11/en?format=image"); + put ("SNC/Rogue", "https://api.scryfall.com/cards/tsnc/7/en?format=image"); + put ("SNC/Spirit", "https://api.scryfall.com/cards/tsnc/3/en?format=image"); + put ("SNC/Treasure/1", "https://api.scryfall.com/cards/tsnc/13/en?format=image"); + put ("SNC/Treasure/2", "https://api.scryfall.com/cards/tsnc/14/en?format=image"); + put ("SNC/Treasure/3", "https://api.scryfall.com/cards/tsnc/15/en?format=image"); + put ("SNC/Treasure/4", "https://api.scryfall.com/cards/tsnc/16/en?format=image"); + put ("SNC/Treasure/5", "https://api.scryfall.com/cards/tsnc/17/en?format=image"); + put ("SNC/Wizard", "https://api.scryfall.com/cards/tsnc/5/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 23272c12fd..4a705310d3 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -104,7 +104,7 @@ |Generate|EMBLEM:M21|Garruk, Unleashed||Emblem Garruk|GarrukUnleashedEmblem| |Generate|EMBLEM:M21|Liliana, Waker of the Dead||Emblem Liliana|LilianaWakerOfTheDeadEmblem| |Generate|EMBLEM:KHM|Kaya the Inexorable||Emblem Kaya|KayaTheInexorableEmblem| -|Generate|EMBLEM:KHM|Tibalt Cosmic Imposter||Emblem Tibalt|TibaltCosmicImposterEmblem| +|Generate|EMBLEM:KHM|Tibalt, Cosmic Impostor||Emblem Tibalt|TibaltCosmicImpostorEmblem| |Generate|EMBLEM:KHM|Tyvar Kell||Emblem Tyvar|TyvarKellEmblem| |Generate|EMBLEM:STX|Lukka, Wayward Bonder||Emblem Lukka|LukkaWaywardBonderEmblem| |Generate|EMBLEM:STX|Rowan, Scholar of Sparks||Emblem Rowan|RowanScholarOfSparksEmblem| @@ -769,9 +769,7 @@ |Generate|TOK:JUD|Wurm|||WurmToken| |Generate|TOK:KLD|Beast|||ArchitectOfTheUntamedBeastToken| |Generate|TOK:KLD|Construct|1||OviyaPashiriSageLifecrafterToken| -|Generate|TOK:KLD|Construct|2||OviyaPashiriSageLifecrafterToken| -|Generate|TOK:KLD|Construct|3||MetallurgicSummoningsConstructToken| -|Generate|TOK:KLD|Construct|4||MetallurgicSummoningsConstructToken| +|Generate|TOK:KLD|Construct|2||MetallurgicSummoningsConstructToken| |Generate|TOK:KLD|Servo|1||ServoToken| |Generate|TOK:KLD|Servo|2||ServoToken| |Generate|TOK:KLD|Servo|3||ServoToken| @@ -1246,7 +1244,7 @@ |Generate|TOK:RNA|Ooze|||BiogenicOozeToken| |Generate|TOK:RNA|Sphinx|||WardenSphinxToken| |Generate|TOK:RNA|Spirit|||SpiritWhiteToken| -|Generate|TOK:RNA|Thopter|||ThopterToken| +|Generate|TOK:RNA|Thopter|||ThopterColorlessToken| |Generate|TOK:RNA|Treasure|||TreasureToken| |Generate|TOK:RNA|Zombie|||ZombieToken| |Generate|TOK:GRN|Angel|||AngelVigilanceToken| @@ -1581,7 +1579,7 @@ |Generate|TOK:AFR|Boo|||BooToken| |Generate|TOK:AFR|Devil|||DevilToken| |Generate|TOK:AFR|Dog Illusion|||DogIllusionToken| -# |Generate|TOK:AFR|Faerie Dragon|||xxx| TODO: add after dice pr merge +# |Generate|TOK:AFR|Faerie Dragon|||FaerieDragonToken| |Generate|TOK:AFR|Goblin|||GoblinToken| |Generate|TOK:AFR|Guenhwyvar|||GuenhwyvarToken| |Generate|TOK:AFR|Icingdeath, Frost Tongue|||IcingdeathFrostTongueToken| @@ -1760,4 +1758,22 @@ |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| \ No newline at end of file +|Generate|TOK:2XM|Phyrexian Wurm|2||WurmWithLifelinkToken| + +# SNC +|Generate|TOK:SNC|Angel|||Angel33Token| +|Generate|TOK:SNC|Cat|||CatHasteToken| +|Generate|TOK:SNC|Citizen|||CitizenGreenWhiteToken| +|Generate|TOK:SNC|Devil|||DevilToken| +|Generate|TOK:SNC|Dog|||DogVigilanceToken| +|Generate|TOK:SNC|Fish|||FishToken| +|Generate|TOK:SNC|Ogre Warrior|||OgreWarriorToken| +|Generate|TOK:SNC|Rhino Warrior|||RhinoWarriorToken| +|Generate|TOK:SNC|Rogue|||RogueToken| +|Generate|TOK:SNC|Spirit|||Spirit22Token| +|Generate|TOK:SNC|Treasure|1||TreasureToken| +|Generate|TOK:SNC|Treasure|2||TreasureToken| +|Generate|TOK:SNC|Treasure|3||TreasureToken| +|Generate|TOK:SNC|Treasure|4||TreasureToken| +|Generate|TOK:SNC|Treasure|5||TreasureToken| +|Generate|TOK:SNC|Wizard|||MagesAttendantToken| \ No newline at end of file diff --git a/Mage/src/main/java/mage/game/permanent/token/Angel33Token.java b/Mage/src/main/java/mage/game/permanent/token/Angel33Token.java index 36bad88919..c6d0f843ef 100644 --- a/Mage/src/main/java/mage/game/permanent/token/Angel33Token.java +++ b/Mage/src/main/java/mage/game/permanent/token/Angel33Token.java @@ -23,7 +23,7 @@ public final class Angel33Token extends TokenImpl { // Flying this.addAbility(FlyingAbility.getInstance()); - availableImageSetCodes = Arrays.asList("AFR"); + availableImageSetCodes = Arrays.asList("AFR", "SNC"); } public Angel33Token(final Angel33Token token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/CatHasteToken.java b/Mage/src/main/java/mage/game/permanent/token/CatHasteToken.java index b2f67dd807..af6b90b825 100644 --- a/Mage/src/main/java/mage/game/permanent/token/CatHasteToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/CatHasteToken.java @@ -5,6 +5,8 @@ import mage.abilities.keyword.HasteAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -19,6 +21,8 @@ public final class CatHasteToken extends TokenImpl { toughness = new MageInt(2); this.addAbility(HasteAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("SNC"); } private CatHasteToken(final CatHasteToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/CitizenGreenWhiteToken.java b/Mage/src/main/java/mage/game/permanent/token/CitizenGreenWhiteToken.java index ada27037d0..dc6b66e29b 100644 --- a/Mage/src/main/java/mage/game/permanent/token/CitizenGreenWhiteToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/CitizenGreenWhiteToken.java @@ -3,6 +3,7 @@ package mage.game.permanent.token; import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; /** * @author TheElk801 @@ -18,6 +19,8 @@ public final class CitizenGreenWhiteToken extends TokenImpl { subtype.add(SubType.CITIZEN); power = new MageInt(1); toughness = new MageInt(1); + + availableImageSetCodes = Arrays.asList("SNC"); } private CitizenGreenWhiteToken(final CitizenGreenWhiteToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/DevilToken.java b/Mage/src/main/java/mage/game/permanent/token/DevilToken.java index 4e1a13d203..bc9d78e03c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DevilToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DevilToken.java @@ -34,7 +34,7 @@ public final class DevilToken extends TokenImpl { ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); - availableImageSetCodes = Arrays.asList("SOI", "WAR", "AFR", "MID"); + availableImageSetCodes = Arrays.asList("SOI", "WAR", "AFR", "MID", "SNC"); } public DevilToken(final DevilToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/DogVigilanceToken.java b/Mage/src/main/java/mage/game/permanent/token/DogVigilanceToken.java index 17b3a0806c..f99df565d3 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DogVigilanceToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DogVigilanceToken.java @@ -4,6 +4,7 @@ import mage.MageInt; import mage.abilities.keyword.VigilanceAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; /** * @author TheElk801 @@ -20,6 +21,8 @@ public final class DogVigilanceToken extends TokenImpl { toughness = new MageInt(1); this.addAbility(VigilanceAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("SNC"); } private DogVigilanceToken(final DogVigilanceToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/FishToken.java b/Mage/src/main/java/mage/game/permanent/token/FishToken.java index 7688aec097..f8a6628e5f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/FishToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/FishToken.java @@ -4,6 +4,7 @@ import mage.MageInt; import mage.abilities.keyword.CantBeBlockedSourceAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; /** * @author TheElk801 @@ -19,6 +20,8 @@ public final class FishToken extends TokenImpl { toughness = new MageInt(1); addAbility(new CantBeBlockedSourceAbility("this creature can't be blocked")); + + availableImageSetCodes = Arrays.asList("SNC"); } public FishToken(final FishToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/KnightToken.java b/Mage/src/main/java/mage/game/permanent/token/KnightToken.java index 195cbe133c..60a23c2b84 100644 --- a/Mage/src/main/java/mage/game/permanent/token/KnightToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/KnightToken.java @@ -23,7 +23,7 @@ public final class KnightToken extends TokenImpl { toughness = new MageInt(2); this.addAbility(VigilanceAbility.getInstance()); - availableImageSetCodes = Arrays.asList("C13", "C15", "CMA", "DGM", "ORI", "RTR", "M19", "ELD", "M21", "AFC", "MIC"); + availableImageSetCodes = Arrays.asList("C13", "C15", "CMA", "DGM", "ORI", "RTR", "M19", "ELD", "M21", "AFC", "MIC", "DOM"); } public KnightToken(final KnightToken token) { @@ -43,7 +43,7 @@ public final class KnightToken extends TokenImpl { } if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("DOM")) { - this.setTokenType(RandomUtil.nextInt(2) + 1); + setTokenType(RandomUtil.nextInt(2) + 1); } } } diff --git a/Mage/src/main/java/mage/game/permanent/token/MagesAttendantToken.java b/Mage/src/main/java/mage/game/permanent/token/MagesAttendantToken.java index 1e1640a875..25b05924fd 100644 --- a/Mage/src/main/java/mage/game/permanent/token/MagesAttendantToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/MagesAttendantToken.java @@ -10,6 +10,7 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.filter.StaticFilters; import mage.target.TargetSpell; +import java.util.Arrays; /** * @author TheElk801 @@ -30,6 +31,8 @@ public final class MagesAttendantToken extends TokenImpl { ability.addCost(new SacrificeSourceCost().setText("sacrifice this creature")); ability.addTarget(new TargetSpell(StaticFilters.FILTER_SPELL_NON_CREATURE)); this.addAbility(ability); + + availableImageSetCodes = Arrays.asList("SNC"); } private MagesAttendantToken(final MagesAttendantToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/MetallurgicSummoningsConstructToken.java b/Mage/src/main/java/mage/game/permanent/token/MetallurgicSummoningsConstructToken.java index 54d0ca4f68..115950bc32 100644 --- a/Mage/src/main/java/mage/game/permanent/token/MetallurgicSummoningsConstructToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/MetallurgicSummoningsConstructToken.java @@ -40,7 +40,7 @@ public final class MetallurgicSummoningsConstructToken extends TokenImpl { super.setExpansionSetCodeForImage(code); if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("KLD")) { - setTokenType(RandomUtil.nextInt(2) + 3); // from 3 to 4 + setTokenType(2); } } } diff --git a/Mage/src/main/java/mage/game/permanent/token/OgreWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/OgreWarriorToken.java index b8f45c9c7b..4f7d8b31af 100644 --- a/Mage/src/main/java/mage/game/permanent/token/OgreWarriorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/OgreWarriorToken.java @@ -3,6 +3,7 @@ package mage.game.permanent.token; import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; /** * @author TheElk801 @@ -17,6 +18,8 @@ public final class OgreWarriorToken extends TokenImpl { subtype.add(SubType.WARRIOR); power = new MageInt(4); toughness = new MageInt(3); + + availableImageSetCodes = Arrays.asList("SNC"); } public OgreWarriorToken(final OgreWarriorToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java b/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java index 892f38036d..5a3365ce6e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/OviyaPashiriSageLifecrafterToken.java @@ -38,8 +38,8 @@ public final class OviyaPashiriSageLifecrafterToken extends TokenImpl { public void setExpansionSetCodeForImage(String code) { super.setExpansionSetCodeForImage(code); - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C21")) { - setTokenType(2); + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("KLD")) { + setTokenType(1); } } } diff --git a/Mage/src/main/java/mage/game/permanent/token/RogueToken.java b/Mage/src/main/java/mage/game/permanent/token/RogueToken.java index bf80cd1d32..8c57071999 100644 --- a/Mage/src/main/java/mage/game/permanent/token/RogueToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/RogueToken.java @@ -3,6 +3,7 @@ package mage.game.permanent.token; import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; /** * @author TheElk801 @@ -16,6 +17,8 @@ public final class RogueToken extends TokenImpl { color.setBlack(true); power = new MageInt(2); toughness = new MageInt(2); + + availableImageSetCodes = Arrays.asList("SNC"); } public RogueToken(final RogueToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/Spirit22Token.java b/Mage/src/main/java/mage/game/permanent/token/Spirit22Token.java index 8ab0b9c707..c4e9e04c7f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/Spirit22Token.java +++ b/Mage/src/main/java/mage/game/permanent/token/Spirit22Token.java @@ -4,6 +4,7 @@ import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; /** * @@ -19,6 +20,8 @@ public class Spirit22Token extends TokenImpl { power = new MageInt(2); toughness = new MageInt(2); addAbility(FlyingAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("SNC"); } private Spirit22Token(final Spirit22Token token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/ThopterColorlessToken.java b/Mage/src/main/java/mage/game/permanent/token/ThopterColorlessToken.java index 2fbc425151..e0cdaad9d7 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ThopterColorlessToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ThopterColorlessToken.java @@ -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"); + "KHC", "C21", "MH2", "AFC", "VOC", "NEC", "2XM", "RNA"); } @Override diff --git a/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java b/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java index c660689260..a854c22868 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java @@ -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", "NEO", "SLD", "2XM"); + availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR", "KHM", "STX", "MH2", "AFR", "VOW", "NEO", "SLD", "2XM", "SNC"); } public TreasureToken(final TreasureToken token) { @@ -45,5 +45,8 @@ public final class TreasureToken extends TokenImpl { if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("XLN")) { this.setTokenType(RandomUtil.nextInt(4) + 1); } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("SNC")) { + this.setTokenType(RandomUtil.nextInt(5) + 1); + } } }