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 c191f101c0..1e416e1a24 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 @@ -1798,6 +1798,25 @@ public class ScryfallImageSupportTokens { put ("GN3/Treasure", "https://api.scryfall.com/cards/tgn3/10/en?format=image"); put ("GN3/Zombie", "https://api.scryfall.com/cards/tgn3/7/en?format=image"); + // 40K + put ("40K/Astartes Warrior/1", "https://api.scryfall.com/cards/t40k/12/en?format=image"); + put ("40K/Astartes Warrior/2", "https://api.scryfall.com/cards/t40k/1/en?format=image"); + put ("40K/Blue Horror", "https://api.scryfall.com/cards/t40k/20/en?format=image"); + put ("40K/Cherubael", "https://api.scryfall.com/cards/t40k/13/en?format=image"); + put ("40K/Clue", "https://api.scryfall.com/cards/t40k/21/en?format=image"); + put ("40K/Insect", "https://api.scryfall.com/cards/t40k/22/en?format=image"); + put ("40K/Necron Warrior", "https://api.scryfall.com/cards/t40k/14/en?format=image"); + put ("40K/Plaguebearer of Nurgle", "https://api.scryfall.com/cards/t40k/15/en?format=image"); + put ("40K/Robot", "https://api.scryfall.com/cards/t40k/23/en?format=image"); + put ("40K/Soldier/1", "https://api.scryfall.com/cards/t40k/2/en?format=image"); + put ("40K/Soldier/2", "https://api.scryfall.com/cards/t40k/3/en?format=image"); + put ("40K/Soldier/3", "https://api.scryfall.com/cards/t40k/4/en?format=image"); + put ("40K/Spawn", "https://api.scryfall.com/cards/t40k/16/en?format=image"); + put ("40K/Tyranid/1", "https://api.scryfall.com/cards/t40k/17/en?format=image"); + put ("40K/Tyranid/2", "https://api.scryfall.com/cards/t40k/18/en?format=image"); + put ("40K/Tyranid Gargoyle", "https://api.scryfall.com/cards/t40k/9/en?format=image"); + put ("40K/Tyranid Warrior", "https://api.scryfall.com/cards/t40k/19/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 dc390f118b..2b77d50713 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -1919,3 +1919,22 @@ |Generate|TOK:GN3|Soldier|||SoldierToken| |Generate|TOK:GN3|Treasure|||TreasureToken| |Generate|TOK:GN3|Zombie|||ZombieToken| + +# 40K +|Generate|TOK:40K|Astartes Warrior|1||BlackAstartesWarriorToken| +|Generate|TOK:40K|Astartes Warrior|2||WhiteAstartesWarriorToken| +|Generate|TOK:40K|Blue Horror|||BlueHorrorToken| +|Generate|TOK:40K|Cherubael|||CherubaelToken| +|Generate|TOK:40K|Clue|||ClueArtifactToken| +|Generate|TOK:40K|Insect|||InsectColorlessToken| +|Generate|TOK:40K|Necron Warrior|||NecronWarriorToken| +|Generate|TOK:40K|Plaguebearer of Nurgle|||PlaguebearerOfNurgleToken| +|Generate|TOK:40K|Robot|||RobotToken| +|Generate|TOK:40K|Soldier|1||SoldierToken| +|Generate|TOK:40K|Soldier|2||SoldierToken| +|Generate|TOK:40K|Soldier|3||SoldierToken| +|Generate|TOK:40K|Spawn|||SpawnToken| +|Generate|TOK:40K|Tyranid|1||TyranidToken| +|Generate|TOK:40K|Tyranid|2||Tyranid55Token| +|Generate|TOK:40K|Tyranid Gargoyle|||TyranidGargoyleToken| +|Generate|TOK:40K|Tyranid Warrior|||TyranidWarriorToken| diff --git a/Mage/src/main/java/mage/game/permanent/token/BlackAstartesWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/BlackAstartesWarriorToken.java index 64e3fdc67a..8ca916a8c0 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BlackAstartesWarriorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BlackAstartesWarriorToken.java @@ -23,6 +23,7 @@ public final class BlackAstartesWarriorToken extends TokenImpl { addAbility(new MenaceAbility()); availableImageSetCodes.addAll(Arrays.asList("40K")); + this.setTokenType(1); } public BlackAstartesWarriorToken(final BlackAstartesWarriorToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/BlueHorrorToken.java b/Mage/src/main/java/mage/game/permanent/token/BlueHorrorToken.java index b202518d8e..980103a1e8 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BlueHorrorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BlueHorrorToken.java @@ -29,6 +29,8 @@ public final class BlueHorrorToken extends TokenImpl { ); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); + + this.setExpansionSetCodeForImage("40K"); } public BlueHorrorToken(final BlueHorrorToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/CherubaelToken.java b/Mage/src/main/java/mage/game/permanent/token/CherubaelToken.java index 268baf3d0f..30d23e35d4 100644 --- a/Mage/src/main/java/mage/game/permanent/token/CherubaelToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/CherubaelToken.java @@ -20,6 +20,8 @@ public final class CherubaelToken extends TokenImpl { power = new MageInt(4); toughness = new MageInt(4); this.addAbility(FlyingAbility.getInstance()); + + this.setExpansionSetCodeForImage("40K"); } public CherubaelToken(final CherubaelToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/ClueArtifactToken.java b/Mage/src/main/java/mage/game/permanent/token/ClueArtifactToken.java index 52da8da053..2cb5c3f891 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ClueArtifactToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ClueArtifactToken.java @@ -29,7 +29,7 @@ public final class ClueArtifactToken extends TokenImpl { ability.addCost(cost); this.addAbility(ability); - availableImageSetCodes = Arrays.asList("C18", "SOI", "MH2", "AFC", "MID", "VOC", "SLD", "2XM", "NCC", "CLB"); + availableImageSetCodes = Arrays.asList("C18", "SOI", "MH2", "AFC", "MID", "VOC", "SLD", "2XM", "NCC", "CLB", "40K"); } @Override diff --git a/Mage/src/main/java/mage/game/permanent/token/RobotToken.java b/Mage/src/main/java/mage/game/permanent/token/RobotToken.java index ed8cdae597..7592f60764 100644 --- a/Mage/src/main/java/mage/game/permanent/token/RobotToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/RobotToken.java @@ -23,6 +23,8 @@ public final class RobotToken extends TokenImpl { new CantBlockSourceEffect(Duration.WhileOnBattlefield) .setText("this creature can't block") )); + + this.setExpansionSetCodeForImage("40K"); } public RobotToken(final RobotToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java index 83c9010a96..7890145e17 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java @@ -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", "MED", "M19", "MD1", "A25", "CLB", "2X2", "DMU", "GN3"); + "DOM", "MH1", "M20", "C20", "M21", "CMR", "KHC", "TSR", "2XM", "MED", "M19", "MD1", "A25", "CLB", "2X2", "DMU", "GN3", "40K"); } public SoldierToken(final SoldierToken token) { @@ -47,5 +47,8 @@ public final class SoldierToken extends TokenImpl { if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("CMR")) { this.setTokenType(RandomUtil.nextInt(2) + 1); } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("40K")) { + this.setTokenType(RandomUtil.nextInt(3) + 1); + } } } diff --git a/Mage/src/main/java/mage/game/permanent/token/Tyranid55Token.java b/Mage/src/main/java/mage/game/permanent/token/Tyranid55Token.java index ea63da4e50..ee815e0fc4 100644 --- a/Mage/src/main/java/mage/game/permanent/token/Tyranid55Token.java +++ b/Mage/src/main/java/mage/game/permanent/token/Tyranid55Token.java @@ -20,6 +20,7 @@ public final class Tyranid55Token extends TokenImpl { toughness = new MageInt(5); availableImageSetCodes.addAll(Arrays.asList("40K")); + this.setTokenType(2); } public Tyranid55Token(final Tyranid55Token token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/TyranidToken.java b/Mage/src/main/java/mage/game/permanent/token/TyranidToken.java index 81a5fdaf5a..42d7f56bf2 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TyranidToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/TyranidToken.java @@ -20,6 +20,7 @@ public final class TyranidToken extends TokenImpl { toughness = new MageInt(1); availableImageSetCodes.addAll(Arrays.asList("40K")); + this.setTokenType(1); } public TyranidToken(final TyranidToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/WhiteAstartesWarriorToken.java b/Mage/src/main/java/mage/game/permanent/token/WhiteAstartesWarriorToken.java index 1e963cf277..2a8cfaa6d2 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WhiteAstartesWarriorToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/WhiteAstartesWarriorToken.java @@ -23,6 +23,7 @@ public final class WhiteAstartesWarriorToken extends TokenImpl { addAbility(VigilanceAbility.getInstance()); availableImageSetCodes.addAll(Arrays.asList("40K")); + this.setTokenType(2); } public WhiteAstartesWarriorToken(final WhiteAstartesWarriorToken token) {