From 3cb721fbd9cd0b30bb3ea0359331fe61cea51171 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Sat, 5 Feb 2022 14:44:46 +0400 Subject: [PATCH] [VOW] added tokens and images support --- .../sources/ScryfallImageSupportTokens.java | 20 ++++++++++++++++ .../src/main/resources/card-pictures-tok.txt | 23 ++++++++++++++++++- .../src/mage/cards/e/EdgarMarkovsCoffin.java | 4 ++-- .../src/mage/cards/g/GlassCastHeart.java | 4 ++-- .../mage/game/permanent/token/BloodToken.java | 4 ++++ .../mage/game/permanent/token/Boar3Token.java | 4 ++++ .../permanent/token/DragonIllusionToken.java | 8 +++++-- ...va => EdgarMarkovsCoffinVampireToken.java} | 16 +++++++++---- .../token/HumanSoldierTrainingToken.java | 6 +++++ .../mage/game/permanent/token/HumanToken.java | 7 +++--- .../game/permanent/token/InsectToken.java | 2 +- .../game/permanent/token/RedHumanToken.java | 13 +++++++++++ .../game/permanent/token/RedWolfToken.java | 13 +++++++++++ .../mage/game/permanent/token/SlugToken.java | 4 ++++ .../permanent/token/SpiritClericToken.java | 5 ++++ .../permanent/token/SpiritWhiteToken.java | 3 ++- .../token/StitcherGeralfZombieToken.java | 6 ++++- .../game/permanent/token/TreasureToken.java | 2 +- .../permanent/token/VampireLifelinkToken.java | 18 +++++++++++++-- .../mage/game/permanent/token/WolfToken.java | 2 +- .../game/permanent/token/ZombieToken.java | 2 +- 21 files changed, 143 insertions(+), 23 deletions(-) rename Mage/src/main/java/mage/game/permanent/token/{EdgarMarkovsCoffinToken.java => EdgarMarkovsCoffinVampireToken.java} (58%) 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 c9606e22809..313543dbafa 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 @@ -691,6 +691,26 @@ public class ScryfallImageSupportTokens { put("VOC/Spirit/2", "https://api.scryfall.com/cards/tvoc/3/en?format=image"); // 3/3 put("VOC/Thopter", "https://api.scryfall.com/cards/tvoc/6/en?format=image"); + // VOW + put("VOW/Blood", "https://api.scryfall.com/cards/tvow/17/en?format=image"); + put("VOW/Boar", "https://api.scryfall.com/cards/tvow/12/en?format=image"); + put("VOW/Emblem Chandra, Dressed to Kill", "https://api.scryfall.com/cards/tvow/20/en?format=image"); + put("VOW/Dragon Illusion", "https://api.scryfall.com/cards/tvow/9/en?format=image"); + put("VOW/Human Soldier", "https://api.scryfall.com/cards/tvow/15/en?format=image"); + put("VOW/Human/1", "https://api.scryfall.com/cards/tvow/10/en?format=image"); // red + put("VOW/Human/2", "https://api.scryfall.com/cards/tvow/1/en?format=image"); // white + put("VOW/Insect", "https://api.scryfall.com/cards/tvow/13/en?format=image"); + put("VOW/Slug", "https://api.scryfall.com/cards/tvow/6/en?format=image"); + put("VOW/Spirit Cleric", "https://api.scryfall.com/cards/tvow/4/en?format=image"); + put("VOW/Spirit/1", "https://api.scryfall.com/cards/tvow/2/en?format=image"); // 1/1 + put("VOW/Spirit/2", "https://api.scryfall.com/cards/tvow/3/en?format=image"); // 4/4 + put("VOW/Treasure", "https://api.scryfall.com/cards/tvow/18/en?format=image"); + put("VOW/Vampire/1", "https://api.scryfall.com/cards/tvow/16/en?format=image"); // lifelink + put("VOW/Vampire/2", "https://api.scryfall.com/cards/tvow/7/en?format=image"); // flying, lifelink + put("VOW/Wolf/1", "https://api.scryfall.com/cards/tvow/14/en?format=image"); // green + put("VOW/Wolf/2", "https://api.scryfall.com/cards/tvow/11/en?format=image"); // red + put("VOW/Zombie/1", "https://api.scryfall.com/cards/tvow/8/en?format=image"); // 2/2 + put("VOW/Zombie/2", "https://api.scryfall.com/cards/tvow/5/en?format=image"); // */* // generate supported sets supportedSets.clear(); diff --git a/Mage.Client/src/main/resources/card-pictures-tok.txt b/Mage.Client/src/main/resources/card-pictures-tok.txt index 7aa51fb5459..ba20a0a9b3c 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -114,6 +114,7 @@ |Generate|EMBLEM:AFR|Zariel, Archduke of Avernus||Emblem Zariel|ZarielArchdukeOfAvernusEmblem| |Generate|EMBLEM:MID|Teferi, Who Slows the Sunset||Emblem Teferi|TeferiWhoSlowsTheSunsetEmblem| |Generate|EMBLEM:MID|Wrenn and Seven||Emblem Wrenn|WrennAndSevenEmblem| +|Generate|EMBLEM:VOW|Chandra, Dressed to Kill||Emblem Chandra|ChandraDressedToKillEmblem| # Planes |Generate|PLANE:PCA|Plane - Academy at Tolaria West|||AcademyAtTolariaWestPlane| @@ -1643,4 +1644,24 @@ |Generate|TOK:VOC|Clue|||ClueArtifactToken| |Generate|TOK:VOC|Spirit|1||SpiritToken| |Generate|TOK:VOC|Spirit|2||AnotherSpiritToken| -|Generate|TOK:VOC|Thopter|||ThopterColorlessToken| \ No newline at end of file +|Generate|TOK:VOC|Thopter|||ThopterColorlessToken| + +# VOW +|Generate|TOK:VOW|Blood|||BloodToken| +|Generate|TOK:VOW|Boar|||Boar3Token| +|Generate|TOK:VOW|Dragon Illusion|||DragonIllusionToken| +|Generate|TOK:VOW|Human|1||RedHumanToken| +|Generate|TOK:VOW|Human|2||HumanToken| +|Generate|TOK:VOW|Human Soldier|||HumanSoldierTrainingToken| +|Generate|TOK:VOW|Insect|||InsectToken| +|Generate|TOK:VOW|Slug|||SlugToken| +|Generate|TOK:VOW|Spirit|1||SpiritWhiteToken| +|Generate|TOK:VOW|Spirit|2||DorotheasRetributionSpiritToken| +|Generate|TOK:VOW|Spirit Cleric|||SpiritClericToken| +|Generate|TOK:VOW|Treasure|||TreasureToken| +|Generate|TOK:VOW|Vampire|1||EdgarMarkovsCoffinVampireToken| +|Generate|TOK:VOW|Vampire|2||VampireLifelinkToken| +|Generate|TOK:VOW|Wolf|1||WolfToken| +|Generate|TOK:VOW|Wolf|2||RedWolfToken| +|Generate|TOK:VOW|Zombie|1||ZombieToken| +|Generate|TOK:VOW|Zombie|2||StitcherGeralfZombieToken| \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/e/EdgarMarkovsCoffin.java b/Mage.Sets/src/mage/cards/e/EdgarMarkovsCoffin.java index 3ff61b8f110..8065378ef46 100644 --- a/Mage.Sets/src/mage/cards/e/EdgarMarkovsCoffin.java +++ b/Mage.Sets/src/mage/cards/e/EdgarMarkovsCoffin.java @@ -14,7 +14,7 @@ import mage.constants.TargetController; import mage.counters.CounterType; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.EdgarMarkovsCoffinToken; +import mage.game.permanent.token.EdgarMarkovsCoffinVampireToken; import java.util.UUID; @@ -33,7 +33,7 @@ public final class EdgarMarkovsCoffin extends CardImpl { // At the beginning of your upkeep, create a 1/1 white and black Vampire creature token with lifelink and put a bloodline counter on Edgar Markov's Coffin. Then if there are three or more bloodline counters on it, remove those counters and transform it. Ability ability = new BeginningOfUpkeepTriggeredAbility( - new CreateTokenEffect(new EdgarMarkovsCoffinToken()), + new CreateTokenEffect(new EdgarMarkovsCoffinVampireToken()), TargetController.YOU, false ); ability.addEffect(new AddCountersSourceEffect( diff --git a/Mage.Sets/src/mage/cards/g/GlassCastHeart.java b/Mage.Sets/src/mage/cards/g/GlassCastHeart.java index 87a861dc137..5feed114e69 100644 --- a/Mage.Sets/src/mage/cards/g/GlassCastHeart.java +++ b/Mage.Sets/src/mage/cards/g/GlassCastHeart.java @@ -20,7 +20,7 @@ import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.permanent.token.BloodToken; -import mage.game.permanent.token.EdgarMarkovsCoffinToken; +import mage.game.permanent.token.EdgarMarkovsCoffinVampireToken; import mage.target.common.TargetControlledPermanent; import java.util.UUID; @@ -49,7 +49,7 @@ public final class GlassCastHeart extends CardImpl { // {B}, {T}, Pay 1 life: Create a 1/1 white and black Vampire creature token with lifelink. Ability ability = new SimpleActivatedAbility( - new CreateTokenEffect(new EdgarMarkovsCoffinToken()), new ManaCostsImpl<>("{B}") + new CreateTokenEffect(new EdgarMarkovsCoffinVampireToken()), new ManaCostsImpl<>("{B}") ); ability.addCost(new TapSourceCost()); ability.addCost(new PayLifeCost(1)); diff --git a/Mage/src/main/java/mage/game/permanent/token/BloodToken.java b/Mage/src/main/java/mage/game/permanent/token/BloodToken.java index 208036a16c3..e7b92e36f79 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BloodToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BloodToken.java @@ -10,6 +10,8 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -28,6 +30,8 @@ public final class BloodToken extends TokenImpl { ability.addCost(new DiscardCardCost()); ability.addCost(new SacrificeSourceCost().setText("Sacrifice this artifact")); this.addAbility(ability); + + availableImageSetCodes = Arrays.asList("VOW"); } public BloodToken(final BloodToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/Boar3Token.java b/Mage/src/main/java/mage/game/permanent/token/Boar3Token.java index a7ad98db7c3..79f26040bcc 100644 --- a/Mage/src/main/java/mage/game/permanent/token/Boar3Token.java +++ b/Mage/src/main/java/mage/game/permanent/token/Boar3Token.java @@ -4,6 +4,8 @@ import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -16,6 +18,8 @@ public final class Boar3Token extends TokenImpl { subtype.add(SubType.BOAR); power = new MageInt(3); toughness = new MageInt(1); + + availableImageSetCodes = Arrays.asList("VOW"); } public Boar3Token(final Boar3Token token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonIllusionToken.java b/Mage/src/main/java/mage/game/permanent/token/DragonIllusionToken.java index 2f8d769eb95..0a1386500cf 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DragonIllusionToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DragonIllusionToken.java @@ -6,6 +6,8 @@ import mage.abilities.keyword.HasteAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * * @author weirddan455 @@ -25,8 +27,10 @@ public class DragonIllusionToken extends TokenImpl { power = new MageInt(xValue); toughness = new MageInt(xValue); - addAbility(FlyingAbility.getInstance()); - addAbility(HasteAbility.getInstance()); + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(HasteAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("VOW"); } private DragonIllusionToken(final DragonIllusionToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/EdgarMarkovsCoffinToken.java b/Mage/src/main/java/mage/game/permanent/token/EdgarMarkovsCoffinVampireToken.java similarity index 58% rename from Mage/src/main/java/mage/game/permanent/token/EdgarMarkovsCoffinToken.java rename to Mage/src/main/java/mage/game/permanent/token/EdgarMarkovsCoffinVampireToken.java index a0dd30cc315..d625f5c6732 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EdgarMarkovsCoffinToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EdgarMarkovsCoffinVampireToken.java @@ -5,12 +5,14 @@ import mage.abilities.keyword.LifelinkAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ -public final class EdgarMarkovsCoffinToken extends TokenImpl { +public final class EdgarMarkovsCoffinVampireToken extends TokenImpl { - public EdgarMarkovsCoffinToken() { + public EdgarMarkovsCoffinVampireToken() { super("Vampire", "1/1 white and black Vampire creature token with lifelink"); cardType.add(CardType.CREATURE); color.setWhite(true); @@ -18,14 +20,18 @@ public final class EdgarMarkovsCoffinToken extends TokenImpl { subtype.add(SubType.VAMPIRE); power = new MageInt(1); toughness = new MageInt(1); + + // Lifelink this.addAbility(LifelinkAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("VOW"); } - public EdgarMarkovsCoffinToken(final EdgarMarkovsCoffinToken token) { + public EdgarMarkovsCoffinVampireToken(final EdgarMarkovsCoffinVampireToken token) { super(token); } - public EdgarMarkovsCoffinToken copy() { - return new EdgarMarkovsCoffinToken(this); + public EdgarMarkovsCoffinVampireToken copy() { + return new EdgarMarkovsCoffinVampireToken(this); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/HumanSoldierTrainingToken.java b/Mage/src/main/java/mage/game/permanent/token/HumanSoldierTrainingToken.java index 78e324567c9..6f87411e6d9 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HumanSoldierTrainingToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/HumanSoldierTrainingToken.java @@ -5,6 +5,8 @@ import mage.abilities.keyword.TrainingAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -19,7 +21,11 @@ public class HumanSoldierTrainingToken extends TokenImpl { subtype.add(SubType.SOLDIER); power = new MageInt(1); toughness = new MageInt(1); + + // Training (Whenever this creature attacks with another creature with greater power, put a +1/+1 counter on this creature.) this.addAbility(new TrainingAbility()); + + availableImageSetCodes = Arrays.asList("VOW"); } private HumanSoldierTrainingToken(final HumanSoldierTrainingToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/HumanToken.java b/Mage/src/main/java/mage/game/permanent/token/HumanToken.java index 199d1dcc652..873aa867551 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HumanToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/HumanToken.java @@ -19,7 +19,7 @@ public final class HumanToken extends TokenImpl { power = new MageInt(1); toughness = new MageInt(1); - availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD", "C19", "C20", "MID")); + availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD", "C19", "C20", "MID", "VOW")); } public HumanToken(final HumanToken token) { @@ -34,8 +34,9 @@ public final class HumanToken extends TokenImpl { @Override public void setExpansionSetCodeForImage(String code) { super.setExpansionSetCodeForImage(code); - if (getOriginalExpansionSetCode().equals("AVR")) { - this.setTokenType(1); + + if (getOriginalExpansionSetCode().equals("VOW")) { + this.setTokenType(2); } } } diff --git a/Mage/src/main/java/mage/game/permanent/token/InsectToken.java b/Mage/src/main/java/mage/game/permanent/token/InsectToken.java index 9f7e4d32114..272c30fd96a 100644 --- a/Mage/src/main/java/mage/game/permanent/token/InsectToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/InsectToken.java @@ -24,7 +24,7 @@ public final class InsectToken extends TokenImpl { power = new MageInt(1); toughness = new MageInt(1); - availableImageSetCodes = Arrays.asList("M10", "MM2", "SOI", "ZNR"); + availableImageSetCodes = Arrays.asList("M10", "MM2", "SOI", "ZNR", "VOW"); } public InsectToken(final InsectToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/RedHumanToken.java b/Mage/src/main/java/mage/game/permanent/token/RedHumanToken.java index dd216253e82..ef7f4c58daf 100644 --- a/Mage/src/main/java/mage/game/permanent/token/RedHumanToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/RedHumanToken.java @@ -6,6 +6,8 @@ import mage.constants.SubType; import mage.MageInt; import mage.ObjectColor; +import java.util.Arrays; + /** * * @author spjspj @@ -20,6 +22,17 @@ public final class RedHumanToken extends TokenImpl { this.color.setRed(true); this.power = new MageInt(1); this.toughness = new MageInt(1); + + availableImageSetCodes = Arrays.asList("AVR", "EMN", "VOW"); + } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode().equals("AVR")) { + this.setTokenType(2); + } } public RedHumanToken(final RedHumanToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/RedWolfToken.java b/Mage/src/main/java/mage/game/permanent/token/RedWolfToken.java index 4368d19f8f5..fe49cf801c0 100644 --- a/Mage/src/main/java/mage/game/permanent/token/RedWolfToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/RedWolfToken.java @@ -4,6 +4,8 @@ import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -17,6 +19,17 @@ public final class RedWolfToken extends TokenImpl { subtype.add(SubType.WOLF); power = new MageInt(3); toughness = new MageInt(2); + + availableImageSetCodes = Arrays.asList("VOW"); + } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("VOW")) { + setTokenType(2); + } } private RedWolfToken(final RedWolfToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/SlugToken.java b/Mage/src/main/java/mage/game/permanent/token/SlugToken.java index 4e16874f015..941509cc13d 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SlugToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SlugToken.java @@ -4,6 +4,8 @@ import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ @@ -16,6 +18,8 @@ public final class SlugToken extends TokenImpl { subtype.add(SubType.SLUG); power = new MageInt(1); toughness = new MageInt(1); + + availableImageSetCodes = Arrays.asList("VOW"); } public SlugToken(final SlugToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiritClericToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiritClericToken.java index 8ddb81c9c88..0f69fd243c9 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiritClericToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiritClericToken.java @@ -12,6 +12,8 @@ import mage.constants.SubType; import mage.game.Game; import mage.game.permanent.Permanent; +import java.util.Arrays; + /** * * @author weirddan455 @@ -28,7 +30,10 @@ public class SpiritClericToken extends TokenImpl { power = new MageInt(0); toughness = new MageInt(0); + // This creature’s power and toughness are each equal to the number of Spirits you control. this.addAbility(new SimpleStaticAbility(new SetPowerToughnessSourceEffect(SpiritClericTokenValue.instance, Duration.EndOfGame))); + + availableImageSetCodes = Arrays.asList("VOW"); } private SpiritClericToken(final SpiritClericToken token) { 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 058ad7caec1..c2d05a2f959 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiritWhiteToken.java @@ -23,7 +23,8 @@ public final class SpiritWhiteToken extends TokenImpl { addAbility(FlyingAbility.getInstance()); 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", "C20", "CMR", "KHM", "MID"); + "SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C20", "CMR", "KHM", + "MID", "VOW"); } @Override diff --git a/Mage/src/main/java/mage/game/permanent/token/StitcherGeralfZombieToken.java b/Mage/src/main/java/mage/game/permanent/token/StitcherGeralfZombieToken.java index 5d50c2bdeb8..5b36fa03997 100644 --- a/Mage/src/main/java/mage/game/permanent/token/StitcherGeralfZombieToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/StitcherGeralfZombieToken.java @@ -23,7 +23,7 @@ public final class StitcherGeralfZombieToken extends TokenImpl { power = new MageInt(xValue); toughness = new MageInt(xValue); - availableImageSetCodes = Arrays.asList("C14", "MIC"); + availableImageSetCodes = Arrays.asList("C14", "MIC", "VOW"); } @Override @@ -37,6 +37,10 @@ public final class StitcherGeralfZombieToken extends TokenImpl { if (getOriginalExpansionSetCode().equals("MIC")) { this.setTokenType(2); } + + if (getOriginalExpansionSetCode().equals("VOW")) { + this.setTokenType(2); + } } public StitcherGeralfZombieToken(final StitcherGeralfZombieToken token) { 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 952ed64833f..d436e3005ab 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"); + availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR", "KHM", "STX", "MH2", "AFR", "VOW"); } public TreasureToken(final TreasureToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/VampireLifelinkToken.java b/Mage/src/main/java/mage/game/permanent/token/VampireLifelinkToken.java index f7d4234f192..c8d7686b335 100644 --- a/Mage/src/main/java/mage/game/permanent/token/VampireLifelinkToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/VampireLifelinkToken.java @@ -6,6 +6,8 @@ import mage.abilities.keyword.LifelinkAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * * @author weirddan455 @@ -19,8 +21,20 @@ public class VampireLifelinkToken extends TokenImpl { subtype.add(SubType.VAMPIRE); power = new MageInt(2); toughness = new MageInt(3); - addAbility(FlyingAbility.getInstance()); - addAbility(LifelinkAbility.getInstance()); + + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(LifelinkAbility.getInstance()); + + availableImageSetCodes = Arrays.asList("VOW"); + } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("VOW")) { + setTokenType(2); + } } private VampireLifelinkToken(final VampireLifelinkToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/WolfToken.java b/Mage/src/main/java/mage/game/permanent/token/WolfToken.java index a966b428440..30870f4a7be 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WolfToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/WolfToken.java @@ -23,7 +23,7 @@ public final class WolfToken extends TokenImpl { availableImageSetCodes = Arrays.asList("BNG", "C14", "C15", "CMA", "CMD", "CNS", "DKA", "EVE", "ISD", "LRW", "M10", "M14", "MM2", "MOR", "SHM", "SOI", "SOM", "V10", "WWK", "ZEN", "WAR", "M20", - "THB", "AFR", "MID"); + "THB", "AFR", "MID", "VOW"); } @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 03ec5ca8f0d..3589b3747ad 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieToken.java @@ -25,7 +25,7 @@ public final class ZombieToken extends TokenImpl { "CNS", "MMA", "BNG", "KTK", "DTK", "ORI", "OGW", "SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01", "RNA", "WAR", "MH1", "M20", "C19", "THB", "M21", - "CMR", "C21", "MH2", "AFR", "MIC"); + "CMR", "C21", "MH2", "AFR", "MIC", "VOW"); } @Override