From 99ceeb5076c3fd51545b6f19643683d9063a6864 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Thu, 9 Jul 2020 02:38:37 +0400 Subject: [PATCH] Tokens improves: * [M21] added tokens; * [M21] added tokens download support; * Fixed wrong images for some tokens (Angel, Beast, Bird, Cat, etc); --- .../sources/ScryfallImageSupportTokens.java | 23 +++++++++ .../src/main/resources/card-pictures-tok.txt | 51 ++++++++++++++----- .../src/mage/cards/c/ChromeReplicator.java | 4 +- .../mage/cards/j/JolraelMwonvuliRecluse.java | 4 +- .../src/mage/cards/r/RetrofitterFoundry.java | 8 +-- .../permanent/token/AkroanSoldierToken.java | 21 ++++++-- .../mage/game/permanent/token/AngelToken.java | 21 +++----- .../mage/game/permanent/token/BeastToken.java | 32 +++++++----- .../mage/game/permanent/token/BirdToken.java | 9 ++-- ...FoundryToken.java => Construct4Token.java} | 22 ++++---- .../mage/game/permanent/token/DemonToken.java | 19 ++----- .../permanent/token/GoblinWizardToken.java | 4 ++ .../game/permanent/token/GreenCat2Token.java | 41 +++++++++++++++ .../game/permanent/token/GreenCatToken.java | 8 +-- .../game/permanent/token/GreenCatToken2.java | 28 ---------- .../game/permanent/token/GriffinToken.java | 13 ++--- .../token/HuntedDragonKnightToken.java | 24 +++++---- .../game/permanent/token/KnightToken.java | 30 +++++------ .../permanent/token/PursuedWhaleToken.java | 4 ++ .../game/permanent/token/SaprolingToken.java | 30 ++++++++--- .../game/permanent/token/SoldierToken.java | 43 ++++++++-------- .../token/SoldierTokenWithHaste.java | 24 ++++----- .../game/permanent/token/TreasureToken.java | 14 ++++- .../game/permanent/token/WeirdToken2.java | 4 ++ .../game/permanent/token/WhiteDogToken.java | 5 +- .../game/permanent/token/ZombieToken.java | 18 +++---- 26 files changed, 298 insertions(+), 206 deletions(-) rename Mage/src/main/java/mage/game/permanent/token/{RetrofitterFoundryToken.java => Construct4Token.java} (53%) create mode 100644 Mage/src/main/java/mage/game/permanent/token/GreenCat2Token.java delete mode 100644 Mage/src/main/java/mage/game/permanent/token/GreenCatToken2.java 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 4fc76ae7aa..627c761e2c 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 @@ -426,6 +426,29 @@ public class ScryfallImageSupportTokens { put("C20/Treasure", "https://api.scryfall.com/cards/tc20/19/en?format=image"); put("C20/Zombie", "https://api.scryfall.com/cards/tc20/9/en?format=image"); + // M21 + put("M21/Angel", "https://api.scryfall.com/cards/tm21/1/en?format=image"); + put("M21/Emblem Basri Ket", "https://api.scryfall.com/cards/tm21/16/en?format=image"); + put("M21/Beast", "https://api.scryfall.com/cards/tm21/10/en?format=image"); + put("M21/Bird", "https://api.scryfall.com/cards/tm21/2/en?format=image"); + put("M21/Cat/1", "https://api.scryfall.com/cards/tm21/20/en?format=image"); // 1/1 + put("M21/Cat/2", "https://api.scryfall.com/cards/tm21/11/en?format=image"); // 2/2 + put("M21/Construct", "https://api.scryfall.com/cards/tm21/14/en?format=image"); + put("M21/Demon", "https://api.scryfall.com/cards/tm21/6/en?format=image"); + put("M21/Dog", "https://api.scryfall.com/cards/tm21/19/en?format=image"); + put("M21/Emblem Garruk, Unleashed", "https://api.scryfall.com/cards/tm21/17/en?format=image"); + put("M21/Goblin Wizard", "https://api.scryfall.com/cards/tm21/8/en?format=image"); + put("M21/Griffin", "https://api.scryfall.com/cards/tm21/3/en?format=image"); + put("M21/Knight", "https://api.scryfall.com/cards/tm21/4/en?format=image"); + put("M21/Emblem Liliana, Waker of the Dead", "https://api.scryfall.com/cards/tm21/18/en?format=image"); + put("M21/Pirate", "https://api.scryfall.com/cards/tm21/9/en?format=image"); + put("M21/Saproling", "https://api.scryfall.com/cards/tm21/12/en?format=image"); + put("M21/Soldier", "https://api.scryfall.com/cards/tm21/5/en?format=image"); + put("M21/Treasure", "https://api.scryfall.com/cards/tm21/15/en?format=image"); + put("M21/Weird", "https://api.scryfall.com/cards/tm21/13/en?format=image"); + put("M21/Zombie", "https://api.scryfall.com/cards/tm21/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 068eead09f..696dcdc9c4 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -45,6 +45,8 @@ #|Generate|TOK:PTC|Wolf|| #|Generate|TOK:PTC|Wurm|| #|Generate|TOK:WMCQ|Angel|| + +# Emblems |Generate|EMBLEM!:BFZ|Emblem Gideon|||GideonAllyOfZendikarEmblem| |Generate|EMBLEM!:BFZ|Emblem Kiora|||KioraMasterOfTheDepthsEmblem| |Generate|EMBLEM!:BFZ|Emblem Nixilis|||ObNixilisReignitedEmblem| @@ -102,6 +104,11 @@ |Generate|EMBLEM:AER|Tezzeret the Schemer||Emblem Tezzeret|TezzeretTheSchemerEmblem| |Generate|EMBLEM:ELD|Garruk, Cursed Huntsman||Emblem Garruk|GarrukCursedHuntsmanEmblem| |Generate|EMBLEM:IKO|Narset Of The Ancient Way||Emblem Narset|NarsetOfTheAncientWayEmblem| +|Generate|EMBLEM:M21|Basri Ket||Emblem Basri|BasriKetEmblem| +|Generate|EMBLEM:M21|Garruk, Unleashed||Emblem Garruk|GarrukUnleashedEmblem| +|Generate|EMBLEM:M21|Liliana, Waker of the Dead||Emblem Liliana|LilianaWakerOfTheDeadEmblem| + +# Planes |Generate|PLANE:PCA|Plane - Academy at Tolaria West|||AcademyAtTolariaWestPlane| |Generate|PLANE:PCA|Plane - Agyrem|||AgyremPlane| |Generate|PLANE:PCA|Plane - Akoum|||AkoumPlane| @@ -237,7 +244,6 @@ |Generate|TOK:ATQ|Assembly-Worker|||AssemblyWorkerToken| |Generate|TOK:ATQ|Tetravite|||TetraviteToken| |Generate|TOK:AVR|Angel|||AngelToken| -|Generate|TOK:AVR|Angel|||AngelTombToken| |Generate|TOK:AVR|Demon|||DemonToken| |Generate|TOK:AVR|Human|1||HumanToken| |Generate|TOK:AVR|Human|2||RedHumanToken| @@ -388,7 +394,7 @@ |Generate|TOK:C18|Cat|||CatToken| |Generate|TOK:C18|Cat Warrior|||CatWarriorToken| |Generate|TOK:C18|Clue|||ClueArtifactToken| -|Generate|TOK:C18|Construct|1||RetrofitterFoundryToken| +|Generate|TOK:C18|Construct|1||Construct4Token| |Generate|TOK:C18|Construct|2||StoneTrapIdolToken| |Generate|TOK:C18|Dragon|||DragonEggDragonToken| |Generate|TOK:C18|Dragon Egg|||NestingDragonToken| @@ -451,8 +457,8 @@ |Generate|TOK:CMA|Treefolk|||SylvanOfferingTreefolkToken| |Generate|TOK:CMA|Wolf|||WolfToken| |Generate|TOK:CMA|Zombie|||ZombieToken| -|Generate|TOK:CMD|Beast|||BeastToken2| -|Generate|TOK:CMD|Beast|||BeastToken| +|Generate|TOK:CMD|Beast|1||BeastToken2| +|Generate|TOK:CMD|Beast|2||BeastToken| |Generate|TOK:CMD|Dragon|||DragonToken2| |Generate|TOK:CMD|Eldrazi Spawn|||EldraziSpawnToken| |Generate|TOK:CMD|Elemental|||CallTheSkyBreakerElementalToken| @@ -517,8 +523,8 @@ |Generate|TOK:DD3EVG|Goblin|||GoblinToken| |Generate|TOK:DD3GVL|Ape|||PongifyApeToken| |Generate|TOK:DD3GVL|Bat|||BatToken| -|Generate|TOK:DD3GVL|Beast|||BeastToken2| -|Generate|TOK:DD3GVL|Beast|||BeastToken| +|Generate|TOK:DD3GVL|Beast|1||BeastToken2| +|Generate|TOK:DD3GVL|Beast|2||BeastToken| |Generate|TOK:DD3GVL|Elephant|||ElephantToken| |Generate|TOK:DD3JVC|Elemental Shaman|||ElementalShamanToken| |Generate|TOK:DDC|Demon|||ReignOfThePitToken| @@ -969,8 +975,8 @@ |Generate|TOK:MRD|Spirit|||SpiritWhiteToken| |Generate|TOK:NEM|Angel|||AngelToken| |Generate|TOK:NEM|Goblin|||GoblinToken| -|Generate|TOK:NEM|Saproling|||SaprolingBurstToken| -|Generate|TOK:NEM|Saproling|||SaprolingToken| +|Generate|TOK:NEM|Saproling|1||SaprolingBurstToken| +|Generate|TOK:NEM|Saproling|2||SaprolingToken| |Generate|TOK:NPH|Beast|||BeastToken| |Generate|TOK:NPH|Germ|||GermToken| |Generate|TOK:NPH|Goblin|||GoblinTokenWithHaste| @@ -1007,7 +1013,6 @@ |Generate|TOK:ONS|Soldier|||SoldierToken| |Generate|TOK:ONS|Zombie|||ZombieToken| |Generate|TOK:ORI|Angel|||AngelToken| -|Generate|TOK:ORI|Angel|||AngelTombToken| |Generate|TOK:ORI|Ashaya, the Awoken World|||NissaSageAnimistToken| |Generate|TOK:ORI|Demon|||DemonToken| |Generate|TOK:ORI|Elemental|||ZendikarsRoilElementalToken| @@ -1147,9 +1152,9 @@ |Generate|TOK:THS|Golem|||HammerOfPurphorosGolemToken| |Generate|TOK:THS|Harpy|||AbhorrentOverlordHarpyToken| |Generate|TOK:THS|Satyr|||XenagosSatyrToken| -|Generate|TOK:THS|Soldier|||AkroanSoldierToken| |Generate|TOK:THS|Soldier|1||SoldierToken| |Generate|TOK:THS|Soldier|2||SoldierToken| +|Generate|TOK:THS|Soldier|3||AkroanSoldierToken| |Generate|TOK:TMP|Beast|||CarnivoreToken| |Generate|TOK:TMP|Dog|||GreenDogToken| |Generate|TOK:TMP|Pegasus|||PegasusToken| @@ -1212,8 +1217,8 @@ |Generate|TOK:VMA|Goblin|||GoblinToken| |Generate|TOK:VMA|Insect|||InsectToken| |Generate|TOK:VMA|Reflection|||ReflectionToken| -|Generate|TOK:VMA|Saproling|||SaprolingBurstToken| -|Generate|TOK:VMA|Saproling|||SaprolingToken| +|Generate|TOK:VMA|Saproling|1||SaprolingBurstToken| +|Generate|TOK:VMA|Saproling|2||SaprolingToken| |Generate|TOK:VMA|Soldier|||SoldierToken| |Generate|TOK:VMA|Spirit|||SpiritWhiteToken| |Generate|TOK:VMA|Squirrel|||SquirrelToken| @@ -1403,5 +1408,25 @@ |Generate|TOK:C20|Treasure|||TreasureToken| |Generate|TOK:C20|Zombie|||ZombieToken| +# M21 +|Generate|TOK:M21|Angel|||AngelToken| +|Generate|TOK:M21|Beast|||BeastToken| +|Generate|TOK:M21|Bird|||BirdToken| +|Generate|TOK:M21|Cat|1||GreenCatToken| +|Generate|TOK:M21|Cat|2||GreenCat2Token| +|Generate|TOK:M21|Construct|||Construct4Token| +|Generate|TOK:M21|Demon|||DemonToken| +|Generate|TOK:M21|Dog|||WhiteDogToken| +|Generate|TOK:M21|Goblin Wizard|||GoblinWizardToken| +|Generate|TOK:M21|Griffin|||GriffinToken| +|Generate|TOK:M21|Knight|||KnightToken| +|Generate|TOK:M21|Pirate|||PursuedWhaleToken| +|Generate|TOK:M21|Saproling|||SaprolingToken| +|Generate|TOK:M21|Soldier|||SoldierToken| +|Generate|TOK:M21|Treasure|||TreasureToken| +|Generate|TOK:M21|Weird|||WeirdToken2| +|Generate|TOK:M21|Zombie|||ZombieToken| + # JMP -|Generate|TOK:JMP|Unicorn|||UnicornToken| \ No newline at end of file +|Generate|TOK:JMP|Unicorn|||UnicornToken| +|Generate|TOK:JMP|Dog|||WhiteDogToken| \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/c/ChromeReplicator.java b/Mage.Sets/src/mage/cards/c/ChromeReplicator.java index 712eef718e..8075551225 100644 --- a/Mage.Sets/src/mage/cards/c/ChromeReplicator.java +++ b/Mage.Sets/src/mage/cards/c/ChromeReplicator.java @@ -16,7 +16,7 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; -import mage.game.permanent.token.RetrofitterFoundryToken; +import mage.game.permanent.token.Construct4Token; import java.util.HashMap; import java.util.Map; @@ -37,7 +37,7 @@ public final class ChromeReplicator extends CardImpl { // When Chrome Replicator enters the battlefield, if you control two or more nonland, nontoken permanents with the same name as one another, create a 4/4 colorless Construct artifact creature token. this.addAbility(new ConditionalInterveningIfTriggeredAbility( - new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new RetrofitterFoundryToken())), + new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new Construct4Token())), ChromeReplicatorCondition.instance, "When {this} enters the battlefield, " + "if you control two or more nonland, nontoken permanents with the same name as one another, " + "create a 4/4 colorless Construct artifact creature token." diff --git a/Mage.Sets/src/mage/cards/j/JolraelMwonvuliRecluse.java b/Mage.Sets/src/mage/cards/j/JolraelMwonvuliRecluse.java index 49e20864a8..deca477cce 100644 --- a/Mage.Sets/src/mage/cards/j/JolraelMwonvuliRecluse.java +++ b/Mage.Sets/src/mage/cards/j/JolraelMwonvuliRecluse.java @@ -14,7 +14,7 @@ import mage.constants.Duration; import mage.constants.SubType; import mage.constants.SuperType; import mage.filter.StaticFilters; -import mage.game.permanent.token.GreenCatToken2; +import mage.game.permanent.token.GreenCat2Token; import java.util.UUID; @@ -33,7 +33,7 @@ public final class JolraelMwonvuliRecluse extends CardImpl { this.toughness = new MageInt(2); // Whenever you draw your second card each turn, create a 2/2 green Cat creature token. - this.addAbility(new DrawSecondCardTriggeredAbility(new CreateTokenEffect(new GreenCatToken2()), false)); + this.addAbility(new DrawSecondCardTriggeredAbility(new CreateTokenEffect(new GreenCat2Token()), false)); // {4}{G}{G}: Until end of turn, creatures you control have base power and toughness X/X, where X is the number of cards in your hand. this.addAbility(new SimpleActivatedAbility(new SetPowerToughnessAllEffect( diff --git a/Mage.Sets/src/mage/cards/r/RetrofitterFoundry.java b/Mage.Sets/src/mage/cards/r/RetrofitterFoundry.java index e6f66162a0..0197093c6d 100644 --- a/Mage.Sets/src/mage/cards/r/RetrofitterFoundry.java +++ b/Mage.Sets/src/mage/cards/r/RetrofitterFoundry.java @@ -1,6 +1,5 @@ package mage.cards.r; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.SacrificeTargetCost; @@ -14,13 +13,14 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; -import mage.game.permanent.token.RetrofitterFoundryToken; +import mage.game.permanent.token.Construct4Token; import mage.game.permanent.token.ServoToken; import mage.game.permanent.token.ThopterColorlessToken; import mage.target.common.TargetControlledPermanent; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class RetrofitterFoundry extends CardImpl { @@ -62,7 +62,7 @@ public final class RetrofitterFoundry extends CardImpl { // {T}, Sacrifice a Thopter: Create a 4/4 colorless Construct artifact creature token. ability = new SimpleActivatedAbility( - new CreateTokenEffect(new RetrofitterFoundryToken()), + new CreateTokenEffect(new Construct4Token()), new TapSourceCost() ); ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter2))); diff --git a/Mage/src/main/java/mage/game/permanent/token/AkroanSoldierToken.java b/Mage/src/main/java/mage/game/permanent/token/AkroanSoldierToken.java index 6715ee73f1..49b481684e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/AkroanSoldierToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/AkroanSoldierToken.java @@ -1,13 +1,13 @@ - - package mage.game.permanent.token; -import mage.constants.CardType; -import mage.constants.SubType; + import mage.MageInt; import mage.abilities.keyword.HasteAbility; +import mage.constants.CardType; +import mage.constants.SubType; + +import java.util.Arrays; /** - * * @author spjspj */ public final class AkroanSoldierToken extends TokenImpl { @@ -21,6 +21,8 @@ public final class AkroanSoldierToken extends TokenImpl { power = new MageInt(1); toughness = new MageInt(1); this.addAbility(HasteAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("THS"); } public AkroanSoldierToken(final AkroanSoldierToken token) { @@ -30,4 +32,13 @@ public final class AkroanSoldierToken extends TokenImpl { public AkroanSoldierToken copy() { return new AkroanSoldierToken(this); } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("THS")) { + this.setTokenType(3); + } + } } 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 960758bc3d..0a1f871834 100644 --- a/Mage/src/main/java/mage/game/permanent/token/AngelToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/AngelToken.java @@ -1,36 +1,29 @@ package mage.game.permanent.token; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public final class AngelToken extends TokenImpl { static final private List tokenImageSets = new ArrayList<>(); - static { - tokenImageSets.addAll(Arrays.asList("AVR", "C14", "CFX", "GTC", "ISD", "M14", "ORI", "SOI", "ZEN", "C15", "MM3")); - } - public AngelToken() { - this((String)null); - } - - public AngelToken(String setCode) { super("Angel", "4/4 white Angel creature token with flying"); - availableImageSetCodes = tokenImageSets; - setOriginalExpansionSetCode(setCode); - cardType.add(CardType.CREATURE); color.setWhite(true); subtype.add(SubType.ANGEL); power = new MageInt(4); toughness = new MageInt(4); 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"); } public AngelToken(final AngelToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken.java index b4452e1c24..b1da78bd39 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BeastToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken.java @@ -3,6 +3,7 @@ package mage.game.permanent.token; import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import mage.util.RandomUtil; import java.util.Arrays; @@ -12,34 +13,37 @@ import java.util.Arrays; public final class BeastToken extends TokenImpl { public BeastToken() { - this(null, 0); - } - - public BeastToken(String setCode) { - this(setCode, 0); - } - - public BeastToken(String setCode, int tokenType) { super("Beast", "3/3 green Beast creature token"); - setOriginalExpansionSetCode(setCode); cardType.add(CardType.CREATURE); color.setGreen(true); subtype.add(SubType.BEAST); power = new MageInt(3); toughness = new MageInt(3); - availableImageSetCodes = Arrays.asList("C14", "LRW", "M15", "M14", "DDL", "M13", "M12", "DD3GVL", "NPH", "M11", "M10", "EVE", "MM3", "CMA", "E01", "C19", "IKO"); + availableImageSetCodes = Arrays.asList("5DN", "C14", "C16", "C19", "CMA", "CMD", "CN2", + "DD3C", "DD3GVL", "DDD", "DDL", "DST", "E01", "EVE", "LRW", "M10", "M11", "M12", + "M13", "M14", "M15", "MM3", "NPH", "PC2", "USG", "M19", "IKO", "M21"); } @Override public void setExpansionSetCodeForImage(String code) { super.setExpansionSetCodeForImage(code); - if (getOriginalExpansionSetCode().equals("M15")) { + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M15")) { this.setTokenType(2); } - if (getOriginalExpansionSetCode().equals("DD3GVL") || getOriginalExpansionSetCode().equals("C14") || getOriginalExpansionSetCode().equals("DDD") || getOriginalExpansionSetCode().equals("MM3")) { - this.setTokenType(1); + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("CMD")) { + this.setTokenType(2); + } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("DD3GVL")) { + this.setTokenType(2); + } + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("DD3C")) { + setTokenType(RandomUtil.nextInt(2) + 1); + } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MM3")) { + setTokenType(RandomUtil.nextInt(2) + 1); } } @@ -49,6 +53,6 @@ public final class BeastToken extends TokenImpl { @Override public BeastToken copy() { - return new BeastToken(this); //To change body of generated methods, choose Tools | Templates. + return new BeastToken(this); } } 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 fd7a4e8712..8dd75ae842 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BirdToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BirdToken.java @@ -4,6 +4,7 @@ import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.constants.CardType; import mage.constants.SubType; +import mage.util.RandomUtil; import java.util.Arrays; @@ -21,7 +22,7 @@ public final class BirdToken extends TokenImpl { toughness = new MageInt(1); addAbility(FlyingAbility.getInstance()); - availableImageSetCodes.addAll(Arrays.asList("BNG", "RTR", "ZEN", "C16", "MM3", "DGM")); + availableImageSetCodes.addAll(Arrays.asList("BNG", "CSP", "DGM", "JUD", "MM3", "RTR", "VMA", "ZEN", "MH1", "C20", "M21")); } public BirdToken(final BirdToken token) { @@ -36,11 +37,9 @@ public final class BirdToken extends TokenImpl { @Override public void setExpansionSetCodeForImage(String code) { super.setExpansionSetCodeForImage(code); - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("BNG")) { - this.setTokenType(1); - } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C16")) { - this.setTokenType(1); + setTokenType(RandomUtil.nextInt(2) + 1); } } } diff --git a/Mage/src/main/java/mage/game/permanent/token/RetrofitterFoundryToken.java b/Mage/src/main/java/mage/game/permanent/token/Construct4Token.java similarity index 53% rename from Mage/src/main/java/mage/game/permanent/token/RetrofitterFoundryToken.java rename to Mage/src/main/java/mage/game/permanent/token/Construct4Token.java index c413d20bca..13936b0261 100644 --- a/Mage/src/main/java/mage/game/permanent/token/RetrofitterFoundryToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/Construct4Token.java @@ -1,34 +1,32 @@ package mage.game.permanent.token; +import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; -import mage.MageInt; + +import java.util.Arrays; /** - * * @author TheElk801 */ -public final class RetrofitterFoundryToken extends TokenImpl { +public final class Construct4Token extends TokenImpl { - public RetrofitterFoundryToken() { - this("C18"); - } - - public RetrofitterFoundryToken(String setCode) { + public Construct4Token() { super("Construct", "4/4 colorless Construct artifact creature token"); - this.setOriginalExpansionSetCode(setCode); cardType.add(CardType.ARTIFACT); cardType.add(CardType.CREATURE); subtype.add(SubType.CONSTRUCT); power = new MageInt(4); toughness = new MageInt(4); + + availableImageSetCodes.addAll(Arrays.asList("C18", "M21")); } - public RetrofitterFoundryToken(final RetrofitterFoundryToken token) { + public Construct4Token(final Construct4Token token) { super(token); } - public RetrofitterFoundryToken copy() { - return new RetrofitterFoundryToken(this); + public Construct4Token copy() { + return new Construct4Token(this); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/DemonToken.java b/Mage/src/main/java/mage/game/permanent/token/DemonToken.java index 413adf5614..e39d299c50 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DemonToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DemonToken.java @@ -1,15 +1,13 @@ - - package mage.game.permanent.token; -import java.util.Arrays; import mage.MageInt; import mage.abilities.keyword.FlyingAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** - * * @author LoneFox */ public final class DemonToken extends TokenImpl { @@ -22,7 +20,8 @@ public final class DemonToken extends TokenImpl { power = new MageInt(5); toughness = new MageInt(5); addAbility(FlyingAbility.getInstance()); - availableImageSetCodes.addAll(Arrays.asList("ISD", "AVR", "C14", "ORI", "M20")); + + availableImageSetCodes.addAll(Arrays.asList("AVR", "C14", "DD3A", "ISD", "ORI", "M20", "M21")); } public DemonToken(final DemonToken token) { @@ -30,15 +29,7 @@ public final class DemonToken extends TokenImpl { } @Override - public DemonToken copy() { + public DemonToken copy() { return new DemonToken(this); } - - @Override - public void setExpansionSetCodeForImage(String code) { - super.setExpansionSetCodeForImage(code); - if (getOriginalExpansionSetCode().equals("C14")) { - this.setTokenType(2); - } - } } diff --git a/Mage/src/main/java/mage/game/permanent/token/GoblinWizardToken.java b/Mage/src/main/java/mage/game/permanent/token/GoblinWizardToken.java index 04089b6217..1ab3106fb8 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GoblinWizardToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GoblinWizardToken.java @@ -5,6 +5,8 @@ import mage.abilities.keyword.ProwessAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -19,6 +21,8 @@ public final class GoblinWizardToken extends TokenImpl { power = new MageInt(1); toughness = new MageInt(1); this.addAbility(new ProwessAbility()); + + availableImageSetCodes.addAll(Arrays.asList("M21")); } private GoblinWizardToken(final GoblinWizardToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/GreenCat2Token.java b/Mage/src/main/java/mage/game/permanent/token/GreenCat2Token.java new file mode 100644 index 0000000000..7d7d6ab7f0 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/GreenCat2Token.java @@ -0,0 +1,41 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; +import mage.constants.SubType; + +import java.util.Arrays; + +/** + * @author TheElk801 + */ +public final class GreenCat2Token extends TokenImpl { + + public GreenCat2Token() { + super("Cat", "2/2 green Cat creature token"); + cardType.add(CardType.CREATURE); + color.setGreen(true); + subtype.add(SubType.CAT); + power = new MageInt(2); + toughness = new MageInt(2); + + availableImageSetCodes.addAll(Arrays.asList("M21")); + } + + private GreenCat2Token(final GreenCat2Token token) { + super(token); + } + + public GreenCat2Token copy() { + return new GreenCat2Token(this); + } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("M21")) { + this.setTokenType(2); + } + } +} diff --git a/Mage/src/main/java/mage/game/permanent/token/GreenCatToken.java b/Mage/src/main/java/mage/game/permanent/token/GreenCatToken.java index da32a283f9..d90855b0e4 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GreenCatToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GreenCatToken.java @@ -1,12 +1,12 @@ - package mage.game.permanent.token; import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** - * * @author spjspj */ public final class GreenCatToken extends TokenImpl { @@ -18,8 +18,10 @@ public final class GreenCatToken extends TokenImpl { subtype.add(SubType.CAT); power = new MageInt(1); toughness = new MageInt(1); + + availableImageSetCodes.addAll(Arrays.asList("6ED", "M21")); } - + public GreenCatToken(final GreenCatToken token) { super(token); } diff --git a/Mage/src/main/java/mage/game/permanent/token/GreenCatToken2.java b/Mage/src/main/java/mage/game/permanent/token/GreenCatToken2.java deleted file mode 100644 index 403aa94477..0000000000 --- a/Mage/src/main/java/mage/game/permanent/token/GreenCatToken2.java +++ /dev/null @@ -1,28 +0,0 @@ -package mage.game.permanent.token; - -import mage.MageInt; -import mage.constants.CardType; -import mage.constants.SubType; - -/** - * @author TheElk801 - */ -public final class GreenCatToken2 extends TokenImpl { - - public GreenCatToken2() { - super("Cat", "2/2 green Cat creature token"); - cardType.add(CardType.CREATURE); - color.setGreen(true); - subtype.add(SubType.CAT); - power = new MageInt(2); - toughness = new MageInt(2); - } - - private GreenCatToken2(final GreenCatToken2 token) { - super(token); - } - - public GreenCatToken2 copy() { - return new GreenCatToken2(this); - } -} diff --git a/Mage/src/main/java/mage/game/permanent/token/GriffinToken.java b/Mage/src/main/java/mage/game/permanent/token/GriffinToken.java index 5d59a2248e..4914ca065b 100644 --- a/Mage/src/main/java/mage/game/permanent/token/GriffinToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GriffinToken.java @@ -1,13 +1,13 @@ - - package mage.game.permanent.token; -import mage.constants.CardType; -import mage.constants.SubType; + import mage.MageInt; import mage.abilities.keyword.FlyingAbility; +import mage.constants.CardType; +import mage.constants.SubType; + +import java.util.Arrays; /** - * * @author spjspj */ public final class GriffinToken extends TokenImpl { @@ -16,11 +16,12 @@ public final class GriffinToken extends TokenImpl { super("Griffin", "2/2 white Griffin creature token with flying"); cardType.add(CardType.CREATURE); color.setWhite(true); - subtype.add(SubType.GRIFFIN); power = new MageInt(2); toughness = new MageInt(2); this.addAbility(FlyingAbility.getInstance()); + + availableImageSetCodes.addAll(Arrays.asList("DDG", "DDH", "DDL", "TSP", "M21")); } public GriffinToken(final GriffinToken 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 f0751efe80..856a763e91 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/HuntedDragonKnightToken.java @@ -1,34 +1,27 @@ package mage.game.permanent.token; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; import mage.MageInt; import mage.abilities.keyword.FirstStrikeAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** - * * @author spjspj */ public final class HuntedDragonKnightToken extends TokenImpl { - static final private List tokenImageSets = new ArrayList<>(); - - static { - tokenImageSets.addAll(Arrays.asList("ORI", "RTR", "C15")); - } - public HuntedDragonKnightToken() { super("Knight", "2/2 white Knight creature tokens with first strike"); cardType.add(CardType.CREATURE); color.setWhite(true); - subtype.add(SubType.KNIGHT); power = new MageInt(2); toughness = new MageInt(2); this.addAbility(FirstStrikeAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("ORI", "RTR", "C15"); } public HuntedDragonKnightToken(final HuntedDragonKnightToken token) { @@ -38,4 +31,13 @@ public final class HuntedDragonKnightToken extends TokenImpl { public HuntedDragonKnightToken copy() { return new HuntedDragonKnightToken(this); } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C15")) { + setTokenType(2); + } + } } 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 35f63cd23b..780caeb355 100644 --- a/Mage/src/main/java/mage/game/permanent/token/KnightToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/KnightToken.java @@ -6,29 +6,16 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.util.RandomUtil; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; /** * @author LevelX2 */ public final class KnightToken extends TokenImpl { - static final private List tokenImageSets = new ArrayList<>(); - - static { - tokenImageSets.addAll(Arrays.asList("ORI", "RTR", "C15", "CMA", "DOM", "ELD")); - } - public KnightToken() { super("Knight", "2/2 white Knight creature token with vigilance"); - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C15")) { - setTokenType(2); - } - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("DOM")) { - this.setTokenType(RandomUtil.nextInt(2) + 1); - } + cardType.add(CardType.CREATURE); color.setWhite(true); subtype.add(SubType.KNIGHT); @@ -36,7 +23,7 @@ public final class KnightToken extends TokenImpl { toughness = new MageInt(2); this.addAbility(VigilanceAbility.getInstance()); - availableImageSetCodes = tokenImageSets; + availableImageSetCodes = Arrays.asList("C13", "C15", "CMA", "DGM", "ORI", "RTR", "M19", "ELD", "M21"); } public KnightToken(final KnightToken token) { @@ -46,4 +33,17 @@ public final class KnightToken extends TokenImpl { public KnightToken copy() { return new KnightToken(this); } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C15")) { + setTokenType(2); + } + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("DOM")) { + this.setTokenType(RandomUtil.nextInt(2) + 1); + } + } } diff --git a/Mage/src/main/java/mage/game/permanent/token/PursuedWhaleToken.java b/Mage/src/main/java/mage/game/permanent/token/PursuedWhaleToken.java index 3363fe182a..a083103150 100644 --- a/Mage/src/main/java/mage/game/permanent/token/PursuedWhaleToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/PursuedWhaleToken.java @@ -10,6 +10,8 @@ import mage.constants.SubType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -34,6 +36,8 @@ public final class PursuedWhaleToken extends TokenImpl { this.addAbility(new SimpleStaticAbility(new AttacksIfAbleAllEffect( filter, Duration.WhileOnBattlefield, true ))); + + availableImageSetCodes = Arrays.asList("M21"); } private PursuedWhaleToken(final PursuedWhaleToken token) { 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 955d409e92..dd71a45a20 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SaprolingToken.java @@ -29,6 +29,7 @@ public final class SaprolingToken extends TokenImpl { "MM2", "MM3", "MMA", + "NEM", "RTR", "C15", "MM3", @@ -40,7 +41,8 @@ public final class SaprolingToken extends TokenImpl { "RIX", "DOM", // 3 different token images "C19", - "C20" + "C20", + "M21" )); } @@ -52,13 +54,6 @@ public final class SaprolingToken extends TokenImpl { subtype.add(SubType.SAPROLING); power = new MageInt(1); toughness = new MageInt(1); - - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C16")) { - this.setTokenType(RandomUtil.nextInt(2) + 1); - } - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("DOM")) { - this.setTokenType(RandomUtil.nextInt(3) + 1); - } } public SaprolingToken(final SaprolingToken token) { @@ -68,4 +63,23 @@ public final class SaprolingToken extends TokenImpl { public SaprolingToken copy() { return new SaprolingToken(this); } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("NEM")) { + this.setTokenType(2); + } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("VMA")) { + this.setTokenType(2); + } + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("C16")) { + this.setTokenType(RandomUtil.nextInt(2) + 1); + } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("DOM")) { + this.setTokenType(RandomUtil.nextInt(3) + 1); + } + } } \ No newline at end of file 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 d4b1bfa80d..f622eb1b1c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SoldierToken.java @@ -5,42 +5,23 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.util.RandomUtil; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; /** * @author BetaSteward_at_googlemail.com */ public final class SoldierToken extends TokenImpl { - static final private List tokenImageSets = new ArrayList<>(); - - static { - tokenImageSets.addAll(Arrays.asList("10E", "M15", "C14", "ORI", "ALA", "DDF", "THS", "M12", "M13", "MM2", "MMA", "RTR", - "SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16", "MM3", "E01", "DOM", "MH1", "M20", "C20")); - } - public SoldierToken() { super("Soldier", "1/1 white Soldier creature token"); - availableImageSetCodes = tokenImageSets; - cardType.add(CardType.CREATURE); color.setWhite(true); subtype.add(SubType.SOLDIER); power = new MageInt(1); toughness = new MageInt(1); - } - @Override - public void setExpansionSetCodeForImage(String code) { - super.setExpansionSetCodeForImage(code); - if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("THS")) { - this.setTokenType(RandomUtil.nextInt(2) + 1); - } - if (getOriginalExpansionSetCode() != null && (getOriginalExpansionSetCode().equals("CN2") || getOriginalExpansionSetCode().equals("MM3"))) { - setTokenType(1); - } + availableImageSetCodes = Arrays.asList("10E", "M15", "C14", "ORI", "ALA", "DDF", "THS", "M12", "M13", "MM2", "MMA", "RTR", + "SOM", "DDO", "M10", "ORI", "EMN", "EMA", "CN2", "C16", "MM3", "E01", "DOM", "MH1", "M20", "C20", "M21"); } public SoldierToken(final SoldierToken token) { @@ -49,6 +30,24 @@ public final class SoldierToken extends TokenImpl { @Override public SoldierToken copy() { - return new SoldierToken(this); //To change body of generated methods, choose Tools | Templates. + return new SoldierToken(this); + } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("CN2")) { + this.setTokenType(RandomUtil.nextInt(2) + 1); + } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("CN2")) { + this.setTokenType(RandomUtil.nextInt(2) + 1); + } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MM3")) { + this.setTokenType(RandomUtil.nextInt(2) + 1); + } + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("THS")) { + this.setTokenType(RandomUtil.nextInt(2) + 1); + } } } diff --git a/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java b/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java index 59fe7b1231..14c3cc0599 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java +++ b/Mage/src/main/java/mage/game/permanent/token/SoldierTokenWithHaste.java @@ -1,27 +1,17 @@ - - package mage.game.permanent.token; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import mage.constants.CardType; -import mage.constants.SubType; import mage.MageInt; import mage.abilities.keyword.HasteAbility; +import mage.constants.CardType; +import mage.constants.SubType; + +import java.util.Arrays; /** - * * @author LoneFox */ public final class SoldierTokenWithHaste extends TokenImpl { - static final private List tokenImageSets = new ArrayList<>(); - - static { - tokenImageSets.addAll(Arrays.asList("GTC", "MM3")); - } - public SoldierTokenWithHaste() { super("Soldier", "1/1 red and white Soldier creature token with haste"); cardType.add(CardType.CREATURE); @@ -31,12 +21,18 @@ public final class SoldierTokenWithHaste extends TokenImpl { power = new MageInt(1); toughness = new MageInt(1); addAbility(HasteAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("GTC", "MM3"); } @Override public void setExpansionSetCodeForImage(String code) { super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("GTC")) { + setTokenType(2); + } if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MM3")) { setTokenType(2); } 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 fee291d404..21e61a6f39 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/TreasureToken.java @@ -8,6 +8,7 @@ import mage.abilities.mana.SimpleManaAbility; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; +import mage.util.RandomUtil; import java.util.ArrayList; import java.util.Arrays; @@ -24,11 +25,11 @@ public final class TreasureToken extends TokenImpl { super("Treasure", "Treasure token"); cardType.add(CardType.ARTIFACT); subtype.add(SubType.TREASURE); - availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20"); - Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(), new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); this.addAbility(ability); + + availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21"); } public TreasureToken(final TreasureToken token) { @@ -38,4 +39,13 @@ public final class TreasureToken extends TokenImpl { public TreasureToken copy() { return new TreasureToken(this); } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("XLN")) { + this.setTokenType(RandomUtil.nextInt(4) + 1); + } + } } diff --git a/Mage/src/main/java/mage/game/permanent/token/WeirdToken2.java b/Mage/src/main/java/mage/game/permanent/token/WeirdToken2.java index 31daad3b06..aeb5d0a367 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WeirdToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/WeirdToken2.java @@ -4,6 +4,8 @@ import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -21,6 +23,8 @@ public final class WeirdToken2 extends TokenImpl { subtype.add(SubType.WEIRD); power = new MageInt(xValue); toughness = new MageInt(xValue); + + availableImageSetCodes = Arrays.asList("M21"); } private WeirdToken2(final WeirdToken2 token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/WhiteDogToken.java b/Mage/src/main/java/mage/game/permanent/token/WhiteDogToken.java index d9742c0fc7..b09d7b2cdd 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WhiteDogToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/WhiteDogToken.java @@ -4,8 +4,9 @@ import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** - * * @author htrajan */ public final class WhiteDogToken extends TokenImpl { @@ -18,6 +19,8 @@ public final class WhiteDogToken extends TokenImpl { color.setWhite(true); power = new MageInt(1); toughness = new MageInt(1); + + availableImageSetCodes.addAll(Arrays.asList("M21", "JMP")); } private WhiteDogToken(final WhiteDogToken token) { 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 0518703268..5c2d49a668 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java @@ -5,30 +5,26 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.util.RandomUtil; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; /** * @author BetaSteward_at_googlemail.com */ public final class ZombieToken extends TokenImpl { - static final private List tokenImageSets = new ArrayList<>(); - - static { - tokenImageSets.addAll(Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", "MBS", "ALA", "ISD", "C14", "C15", "C16", "C17", "CNS", - "MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01", "RNA", "WAR", "MH1", "M20", "C19", "THB")); - } - public ZombieToken() { super("Zombie", "2/2 black Zombie creature token"); - availableImageSetCodes = tokenImageSets; cardType.add(CardType.CREATURE); color.setBlack(true); subtype.add(SubType.ZOMBIE); power = new MageInt(2); toughness = new MageInt(2); + + availableImageSetCodes = Arrays.asList("10E", "M10", "M11", "M12", "M13", "M14", "M15", + "MBS", "ALA", "ISD", "C14", "C15", "C16", "C17", + "CNS", "MMA", "BNG", "KTK", "DTK", "ORI", "OGW", + "SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01", + "RNA", "WAR", "MH1", "M20", "C19", "THB", "M21"); } @Override @@ -55,6 +51,6 @@ public final class ZombieToken extends TokenImpl { @Override public ZombieToken copy() { - return new ZombieToken(this); //To change body of generated methods, choose Tools | Templates. + return new ZombieToken(this); } }