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 03c49f8be47..82eeafb54a8 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 @@ -663,6 +663,27 @@ public class ScryfallImageSupportTokens { put("MIC/Zombie/1", "https://api.scryfall.com/cards/tmic/5/en?format=image"); // 2/2 put("MIC/Zombie/2", "https://api.scryfall.com/cards/tmic/4/en?format=image"); // */* + // MID + put("MID/Bat", "https://api.scryfall.com/cards/tmid/4/en?format=image"); + put("MID/Beast", "https://api.scryfall.com/cards/tmid/8/en?format=image"); + put("MID/Bird", "https://api.scryfall.com/cards/tmid/3/en?format=image"); + put("MID/Clue", "https://api.scryfall.com/cards/tmid/16/en?format=image"); + put("MID/Devil", "https://api.scryfall.com/cards/tmid/6/en?format=image"); + put("MID/Elemental", "https://api.scryfall.com/cards/tmid/7/en?format=image"); + put("MID/Human", "https://api.scryfall.com/cards/tmid/1/en?format=image"); + put("MID/Insect", "https://api.scryfall.com/cards/tmid/9/en?format=image"); + put("MID/Ooze", "https://api.scryfall.com/cards/tmid/10/en?format=image"); + put("MID/Spider", "https://api.scryfall.com/cards/tmid/11/en?format=image"); + put("MID/Spirit", "https://api.scryfall.com/cards/tmid/2/en?format=image"); + put("MID/Emblem Teferi, Who Slows the Sunset", "https://api.scryfall.com/cards/tmid/17/en?format=image"); + put("MID/Treefolk", "https://api.scryfall.com/cards/tmid/12/en?format=image"); + put("MID/Vampire", "https://api.scryfall.com/cards/tmid/14/en?format=image"); + put("MID/Wolf", "https://api.scryfall.com/cards/tmid/13/en?format=image"); + put("MID/Emblem Wrenn and Seven", "https://api.scryfall.com/cards/tmid/18/en?format=image"); + put("MID/Zombie/1", "https://api.scryfall.com/cards/tmid/5/en?format=image"); // decayed + put("MID/Zombie/2", "https://api.scryfall.com/cards/tmid/15/en?format=image"); // menace + + // 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 63b533d159e..87428256672 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -112,6 +112,8 @@ |Generate|EMBLEM:AFR|Lolth, Spider Queen||Emblem Lolth|LolthSpiderQueenEmblem| |Generate|EMBLEM:AFR|Mordenkainen||Emblem Mordenkainen|MordenkainenEmblem| |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| # Planes |Generate|PLANE:PCA|Plane - Academy at Tolaria West|||AcademyAtTolariaWestPlane| @@ -1615,4 +1617,22 @@ |Generate|TOK:MIC|Snake|||SnakeToken| |Generate|TOK:MIC|Zombie|1||ZombieToken| |Generate|TOK:MIC|Zombie|2||StitcherGeralfZombieToken| -|Generate|TOK:MIC|Zombie Army|||ZombieArmyToken| \ No newline at end of file +|Generate|TOK:MIC|Zombie Army|||ZombieArmyToken| + +# MID +|Generate|TOK:MID|Bat|||BatToken| +|Generate|TOK:MID|Beast|||BeastToken2| +|Generate|TOK:MID|Bird|||OminousRoostBirdToken| +|Generate|TOK:MID|Clue|||ClueArtifactToken| +|Generate|TOK:MID|Devil|||DevilToken| +|Generate|TOK:MID|Elemental|||SeizeTheStormElementalToken| +|Generate|TOK:MID|Human|||HumanToken| +|Generate|TOK:MID|Insect|||RiseOfTheAntsInsectToken| +|Generate|TOK:MID|Ooze|||ConsumingBlobOozeToken| +|Generate|TOK:MID|Spider|||SpiderToken| +|Generate|TOK:MID|Spirit|||SpiritWhiteToken| +|Generate|TOK:MID|Treefolk|||WrennAndSevenTreefolkToken| +|Generate|TOK:MID|Vampire|||HungryForMoreVampireToken| +|Generate|TOK:MID|Wolf|||WolfToken| +|Generate|TOK:MID|Zombie|1||ZombieDecayedToken| +|Generate|TOK:MID|Zombie|2||ZombieMenaceToken| \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/c/ConsumingBlob.java b/Mage.Sets/src/mage/cards/c/ConsumingBlob.java index b49efca1438..0ac5a90b823 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumingBlob.java +++ b/Mage.Sets/src/mage/cards/c/ConsumingBlob.java @@ -13,7 +13,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; import mage.game.Game; -import mage.game.permanent.token.ConsumingBlobToken; +import mage.game.permanent.token.ConsumingBlobOozeToken; import java.util.UUID; @@ -34,7 +34,7 @@ public final class ConsumingBlob extends CardImpl { // At the beginning of your end step, create a green Ooze creature token with "This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1". this.addAbility(new BeginningOfEndStepTriggeredAbility( - new CreateTokenEffect(new ConsumingBlobToken()), TargetController.YOU, false) + new CreateTokenEffect(new ConsumingBlobOozeToken()), TargetController.YOU, false) ); } diff --git a/Mage.Sets/src/mage/cards/h/HungryForMore.java b/Mage.Sets/src/mage/cards/h/HungryForMore.java index 2c91750e367..629847927c4 100644 --- a/Mage.Sets/src/mage/cards/h/HungryForMore.java +++ b/Mage.Sets/src/mage/cards/h/HungryForMore.java @@ -10,9 +10,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.constants.TimingRule; import mage.game.Game; -import mage.game.permanent.token.HungryForMoreToken; +import mage.game.permanent.token.HungryForMoreVampireToken; import mage.game.permanent.token.Token; import mage.target.targetpointer.FixedTargets; @@ -63,7 +62,7 @@ class HungryForMoreEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Token token = new HungryForMoreToken(); + Token token = new HungryForMoreVampireToken(); token.putOntoBattlefield(1, game, source, source.getControllerId()); game.addDelayedTriggeredAbility(new AtTheBeginOfNextEndStepDelayedTriggeredAbility( new SacrificeTargetEffect().setTargetPointer(new FixedTargets( diff --git a/Mage.Sets/src/mage/cards/o/OminousRoost.java b/Mage.Sets/src/mage/cards/o/OminousRoost.java index 1c2d18c6760..527e5610053 100644 --- a/Mage.Sets/src/mage/cards/o/OminousRoost.java +++ b/Mage.Sets/src/mage/cards/o/OminousRoost.java @@ -2,16 +2,13 @@ package mage.cards.o; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; -import mage.game.permanent.token.OminousRoostToken; -import mage.game.stack.Spell; -import mage.target.common.TargetNonlandPermanent; +import mage.game.permanent.token.OminousRoostBirdToken; import java.util.UUID; @@ -40,7 +37,7 @@ public final class OminousRoost extends CardImpl { class OminousRoostTriggeredAbility extends TriggeredAbilityImpl { OminousRoostTriggeredAbility() { - super(Zone.ALL, new CreateTokenEffect(new OminousRoostToken())); + super(Zone.ALL, new CreateTokenEffect(new OminousRoostBirdToken())); } private OminousRoostTriggeredAbility(final OminousRoostTriggeredAbility ability) { diff --git a/Mage.Sets/src/mage/cards/r/RiseOfTheAnts.java b/Mage.Sets/src/mage/cards/r/RiseOfTheAnts.java index afb446d9c5e..35039a6d118 100644 --- a/Mage.Sets/src/mage/cards/r/RiseOfTheAnts.java +++ b/Mage.Sets/src/mage/cards/r/RiseOfTheAnts.java @@ -7,7 +7,7 @@ import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.game.permanent.token.RiseOfTheAntsToken; +import mage.game.permanent.token.RiseOfTheAntsInsectToken; import java.util.UUID; @@ -20,7 +20,7 @@ public final class RiseOfTheAnts extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{G}{G}"); // Create two 3/3 green Insect creature tokens. You gain 2 life. - this.getSpellAbility().addEffect(new CreateTokenEffect(new RiseOfTheAntsToken(), 2)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new RiseOfTheAntsInsectToken(), 2)); this.getSpellAbility().addEffect(new GainLifeEffect(2).concatBy(".")); // Flashback {6}{G}{G} diff --git a/Mage.Sets/src/mage/cards/s/SeizeTheStorm.java b/Mage.Sets/src/mage/cards/s/SeizeTheStorm.java index 45f52e91d3f..eef63c29577 100644 --- a/Mage.Sets/src/mage/cards/s/SeizeTheStorm.java +++ b/Mage.Sets/src/mage/cards/s/SeizeTheStorm.java @@ -13,7 +13,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.StaticFilters; import mage.game.Game; -import mage.game.permanent.token.SeizeTheStormToken; +import mage.game.permanent.token.SeizeTheStormElementalToken; import mage.players.Player; import java.util.UUID; @@ -32,7 +32,7 @@ public final class SeizeTheStorm extends CardImpl { // Create a red Elemental creature token with trample and "This creature's power and toughness are each equal to the number of instant and sorcery cards in your graveyard, plus the number of cards with flashback you own in exile." this.getSpellAbility().addEffect(new CreateTokenEffect( - new SeizeTheStormToken(SeizeTheStormValue.instance, hint) + new SeizeTheStormElementalToken(SeizeTheStormValue.instance, hint) )); this.getSpellAbility().addHint(hint); diff --git a/Mage.Sets/src/mage/cards/w/WrennAndSeven.java b/Mage.Sets/src/mage/cards/w/WrennAndSeven.java index 6afb80df199..e1d9d4270d9 100644 --- a/Mage.Sets/src/mage/cards/w/WrennAndSeven.java +++ b/Mage.Sets/src/mage/cards/w/WrennAndSeven.java @@ -14,7 +14,7 @@ import mage.constants.*; import mage.filter.StaticFilters; import mage.game.Game; import mage.game.command.emblems.WrennAndSevenEmblem; -import mage.game.permanent.token.WrennAndSevenToken; +import mage.game.permanent.token.WrennAndSevenTreefolkToken; import mage.players.Player; import mage.target.common.TargetCardInHand; @@ -41,7 +41,7 @@ public final class WrennAndSeven extends CardImpl { this.addAbility(new LoyaltyAbility(new WrennAndSevenLandEffect(), 0)); // −3: Create a green Treefolk creature token with reach and "This creature's power and toughness are each equal to the number of lands you control." - this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new WrennAndSevenToken()), -3)); + this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new WrennAndSevenTreefolkToken()), -3)); // −8: Return all permanent cards from your graveyard to your hand. You get an emblem with "You have no maximum hand size." Ability ability = new LoyaltyAbility(new WrennAndSevenReturnEffect(), -8); diff --git a/Mage/src/main/java/mage/game/permanent/token/BatToken.java b/Mage/src/main/java/mage/game/permanent/token/BatToken.java index 6e22ffb8ce4..4c69a91b15d 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BatToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/BatToken.java @@ -1,24 +1,16 @@ 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; -public final class BatToken extends TokenImpl { - - static final private List tokenImageSets = new ArrayList<>(); +import java.util.Arrays; - static { - tokenImageSets.addAll(Arrays.asList("MMA", "C17")); - } +public final class BatToken extends TokenImpl { public BatToken() { super("Bat", "1/1 black Bat creature token with flying"); - availableImageSetCodes = tokenImageSets; cardType.add(CardType.CREATURE); color.setBlack(true); subtype.add(SubType.BAT); @@ -26,8 +18,9 @@ public final class BatToken extends TokenImpl { toughness = new MageInt(1); this.addAbility(FlyingAbility.getInstance()); - this.setOriginalExpansionSetCode("MMA"); + availableImageSetCodes = Arrays.asList("GVL", "DDD", "GPT", "MMA", "M19", "MID"); } + public BatToken(final BatToken token) { super(token); } diff --git a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java index 48cb131ed5a..2387f23798b 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java +++ b/Mage/src/main/java/mage/game/permanent/token/BeastToken2.java @@ -20,7 +20,7 @@ public final class BeastToken2 extends TokenImpl { toughness = new MageInt(4); availableImageSetCodes = Arrays.asList("C13", "C14", "C15", "C19", "CMA", "CMD", "GVL", "DDD", - "E01", "ODY", "SCG", "ZEN", "C20", "ZNC", "CMR", "C21", "MH2"); + "E01", "ODY", "SCG", "ZEN", "C20", "ZNC", "CMR", "C21", "MH2", "MID"); } public BeastToken2(final BeastToken2 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 8a156c2f046..da40ac43b6d 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"); + availableImageSetCodes = Arrays.asList("C18", "SOI", "MH2", "AFC", "MID"); } @Override diff --git a/Mage/src/main/java/mage/game/permanent/token/ConsumingBlobToken.java b/Mage/src/main/java/mage/game/permanent/token/ConsumingBlobOozeToken.java similarity index 85% rename from Mage/src/main/java/mage/game/permanent/token/ConsumingBlobToken.java rename to Mage/src/main/java/mage/game/permanent/token/ConsumingBlobOozeToken.java index d3d113fc666..3341105ea9e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ConsumingBlobToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ConsumingBlobOozeToken.java @@ -10,14 +10,15 @@ import mage.abilities.hint.common.CardTypesInGraveyardHint; import mage.constants.*; import mage.game.Game; +import java.util.Arrays; + /** * @author ciaccona007 */ -public final class ConsumingBlobToken extends TokenImpl { +public final class ConsumingBlobOozeToken extends TokenImpl { - public ConsumingBlobToken() { + public ConsumingBlobOozeToken() { super("Ooze", "green Ooze creature token with \"This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1.\""); - setOriginalExpansionSetCode("MID"); cardType.add(CardType.CREATURE); subtype.add(SubType.OOZE); color.setGreen(true); @@ -28,15 +29,16 @@ public final class ConsumingBlobToken extends TokenImpl { // This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1. this.addAbility(new SimpleStaticAbility(Zone.ALL, new ConsumingBlobTokenEffect()).addHint(CardTypesInGraveyardHint.YOU)); + availableImageSetCodes.addAll(Arrays.asList("MID")); } - private ConsumingBlobToken(final ConsumingBlobToken token) { + private ConsumingBlobOozeToken(final ConsumingBlobOozeToken token) { super(token); } @Override - public ConsumingBlobToken copy() { - return new ConsumingBlobToken(this); + public ConsumingBlobOozeToken copy() { + return new ConsumingBlobOozeToken(this); } } 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 78708614649..729af8219a0 100644 --- a/Mage/src/main/java/mage/game/permanent/token/DevilToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/DevilToken.java @@ -21,8 +21,6 @@ public final class DevilToken extends TokenImpl { public DevilToken() { super("Devil", "1/1 red Devil creature token with \"When this creature dies, it deals 1 damage to any target.\""); - availableImageSetCodes.addAll(Collections.singletonList("SOI")); - availableImageSetCodes.addAll(Collections.singletonList("WAR")); cardType.add(CardType.CREATURE); subtype.add(SubType.DEVIL); color.setRed(true); @@ -36,7 +34,7 @@ public final class DevilToken extends TokenImpl { ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); - availableImageSetCodes = Arrays.asList("SOI", "WAR", "AFR"); + availableImageSetCodes = Arrays.asList("SOI", "WAR", "AFR", "MID"); } public DevilToken(final DevilToken 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 f0df12ed622..199d1dcc652 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HumanToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/HumanToken.java @@ -18,7 +18,8 @@ public final class HumanToken extends TokenImpl { subtype.add(SubType.HUMAN); power = new MageInt(1); toughness = new MageInt(1); - availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD", "C19", "C20")); + + availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD", "C19", "C20", "MID")); } public HumanToken(final HumanToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/HungryForMoreToken.java b/Mage/src/main/java/mage/game/permanent/token/HungryForMoreVampireToken.java similarity index 68% rename from Mage/src/main/java/mage/game/permanent/token/HungryForMoreToken.java rename to Mage/src/main/java/mage/game/permanent/token/HungryForMoreVampireToken.java index 6f41a946a4d..30f7d80e98a 100644 --- a/Mage/src/main/java/mage/game/permanent/token/HungryForMoreToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/HungryForMoreVampireToken.java @@ -7,12 +7,14 @@ import mage.abilities.keyword.TrampleAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ -public final class HungryForMoreToken extends TokenImpl { +public final class HungryForMoreVampireToken extends TokenImpl { - public HungryForMoreToken() { + public HungryForMoreVampireToken() { super("Vampire", "3/1 black and red Vampire creature token with trample, lifelink, and haste"); cardType.add(CardType.CREATURE); color.setRed(true); @@ -23,13 +25,15 @@ public final class HungryForMoreToken extends TokenImpl { addAbility(TrampleAbility.getInstance()); addAbility(LifelinkAbility.getInstance()); addAbility(HasteAbility.getInstance()); + + availableImageSetCodes.addAll(Arrays.asList("MID")); } - public HungryForMoreToken(final HungryForMoreToken token) { + public HungryForMoreVampireToken(final HungryForMoreVampireToken token) { super(token); } - public HungryForMoreToken copy() { - return new HungryForMoreToken(this); + public HungryForMoreVampireToken copy() { + return new HungryForMoreVampireToken(this); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/OminousRoostToken.java b/Mage/src/main/java/mage/game/permanent/token/OminousRoostBirdToken.java similarity index 71% rename from Mage/src/main/java/mage/game/permanent/token/OminousRoostToken.java rename to Mage/src/main/java/mage/game/permanent/token/OminousRoostBirdToken.java index 17e645c212b..9a4579b7caa 100644 --- a/Mage/src/main/java/mage/game/permanent/token/OminousRoostToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/OminousRoostBirdToken.java @@ -6,9 +6,11 @@ import mage.abilities.keyword.FlyingAbility; import mage.constants.CardType; import mage.constants.SubType; -public class OminousRoostToken extends TokenImpl { +import java.util.Arrays; - public OminousRoostToken() { +public class OminousRoostBirdToken extends TokenImpl { + + public OminousRoostBirdToken() { super("Bird", "1/1 blue Bird creature token with flying and \"This creature can block only creatures with flying\""); cardType.add(CardType.CREATURE); color.setBlue(true); @@ -18,14 +20,16 @@ public class OminousRoostToken extends TokenImpl { this.addAbility(FlyingAbility.getInstance()); this.addAbility(new CanBlockOnlyFlyingAbility()); + + availableImageSetCodes = Arrays.asList("MID"); } - public OminousRoostToken(final OminousRoostToken token) { + public OminousRoostBirdToken(final OminousRoostBirdToken token) { super(token); } @Override public Token copy() { - return new OminousRoostToken(this); + return new OminousRoostBirdToken(this); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/RiseOfTheAntsToken.java b/Mage/src/main/java/mage/game/permanent/token/RiseOfTheAntsInsectToken.java similarity index 54% rename from Mage/src/main/java/mage/game/permanent/token/RiseOfTheAntsToken.java rename to Mage/src/main/java/mage/game/permanent/token/RiseOfTheAntsInsectToken.java index 81167ac5669..2a20ab1ee5e 100644 --- a/Mage/src/main/java/mage/game/permanent/token/RiseOfTheAntsToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/RiseOfTheAntsInsectToken.java @@ -4,25 +4,29 @@ import mage.MageInt; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ -public final class RiseOfTheAntsToken extends TokenImpl { +public final class RiseOfTheAntsInsectToken extends TokenImpl { - public RiseOfTheAntsToken() { + public RiseOfTheAntsInsectToken() { super("Insect", "3/3 green Insect creature token"); cardType.add(CardType.CREATURE); color.setGreen(true); subtype.add(SubType.INSECT); power = new MageInt(3); toughness = new MageInt(3); + + availableImageSetCodes.addAll(Arrays.asList("MID")); } - public RiseOfTheAntsToken(final RiseOfTheAntsToken token) { + public RiseOfTheAntsInsectToken(final RiseOfTheAntsInsectToken token) { super(token); } - public RiseOfTheAntsToken copy() { - return new RiseOfTheAntsToken(this); + public RiseOfTheAntsInsectToken copy() { + return new RiseOfTheAntsInsectToken(this); } } \ No newline at end of file diff --git a/Mage/src/main/java/mage/game/permanent/token/SeizeTheStormToken.java b/Mage/src/main/java/mage/game/permanent/token/SeizeTheStormElementalToken.java similarity index 77% rename from Mage/src/main/java/mage/game/permanent/token/SeizeTheStormToken.java rename to Mage/src/main/java/mage/game/permanent/token/SeizeTheStormElementalToken.java index fdcc76e93c8..1a9358de84c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SeizeTheStormToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SeizeTheStormElementalToken.java @@ -10,12 +10,14 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; +import java.util.Arrays; + /** * @author TheElk801 */ -public final class SeizeTheStormToken extends TokenImpl { +public final class SeizeTheStormElementalToken extends TokenImpl { - public SeizeTheStormToken(DynamicValue xValue, Hint hint) { + public SeizeTheStormElementalToken(DynamicValue xValue, Hint hint) { super("Elemental", "red Elemental creature token with trample and " + "\"This creature's power and toughness are each equal to the number of instant " + "and sorcery cards in your graveyard plus the number of cards with flashback you own in exile.\""); @@ -30,14 +32,16 @@ public final class SeizeTheStormToken extends TokenImpl { ).setText("this creature's power and toughness are each equal to the number of " + "instant and sorcery cards in your graveyard, plus the number of cards with flashback you own in exile") ).addHint(hint)); + + availableImageSetCodes = Arrays.asList("MID"); } - private SeizeTheStormToken(final SeizeTheStormToken token) { + private SeizeTheStormElementalToken(final SeizeTheStormElementalToken token) { super(token); } @Override - public SeizeTheStormToken copy() { - return new SeizeTheStormToken(this); + public SeizeTheStormElementalToken copy() { + return new SeizeTheStormElementalToken(this); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/SpiderToken.java b/Mage/src/main/java/mage/game/permanent/token/SpiderToken.java index 6c5dd0e72fb..eab04a5ea3f 100644 --- a/Mage/src/main/java/mage/game/permanent/token/SpiderToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/SpiderToken.java @@ -5,39 +5,24 @@ import mage.abilities.keyword.ReachAbility; import mage.constants.CardType; import mage.constants.SubType; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; /** * @author fireshoes */ public final class SpiderToken extends TokenImpl { - static final private List tokenImageSets = new ArrayList<>(); - - static { - tokenImageSets.addAll(Arrays.asList("ISD", "EMN", "C15", "SHM", "MH1", "THB")); - } - public SpiderToken() { - this(null, 0); - } - - public SpiderToken(String setCode) { - this(setCode, 0); - } - - public SpiderToken(String setCode, int tokenType) { super("Spider", "1/2 green Spider creature token with reach"); - availableImageSetCodes = tokenImageSets; - setOriginalExpansionSetCode(setCode); cardType.add(CardType.CREATURE); color.setGreen(true); subtype.add(SubType.SPIDER); power = new MageInt(1); toughness = new MageInt(2); - addAbility(ReachAbility.getInstance()); + + this.addAbility(ReachAbility.getInstance()); + + availableImageSetCodes.addAll(Arrays.asList("C15", "EMN", "ISD", "SHM", "MH1", "THB", "MID")); } public SpiderToken(final SpiderToken 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 ece95a952f7..058ad7caec1 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,7 @@ 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"); + "SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C20", "CMR", "KHM", "MID"); } @Override 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 3c96b8bb03c..a966b428440 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"); + "THB", "AFR", "MID"); } @Override diff --git a/Mage/src/main/java/mage/game/permanent/token/WrennAndSevenToken.java b/Mage/src/main/java/mage/game/permanent/token/WrennAndSevenTreefolkToken.java similarity index 75% rename from Mage/src/main/java/mage/game/permanent/token/WrennAndSevenToken.java rename to Mage/src/main/java/mage/game/permanent/token/WrennAndSevenTreefolkToken.java index 4397ea9050f..e8ac755adef 100644 --- a/Mage/src/main/java/mage/game/permanent/token/WrennAndSevenToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/WrennAndSevenTreefolkToken.java @@ -10,12 +10,14 @@ import mage.constants.Duration; import mage.constants.SubType; import mage.constants.Zone; +import java.util.Arrays; + /** * @author TheElk801 */ -public final class WrennAndSevenToken extends TokenImpl { +public final class WrennAndSevenTreefolkToken extends TokenImpl { - public WrennAndSevenToken() { + public WrennAndSevenTreefolkToken() { super("Treefolk", "green Treefolk creature token with reach and \"This creature's power and toughness are each equal to the number of lands you control.\""); cardType.add(CardType.CREATURE); color.setGreen(true); @@ -26,13 +28,15 @@ public final class WrennAndSevenToken extends TokenImpl { this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect( LandsYouControlCount.instance, Duration.EndOfGame ).setText("this creature's power and toughness are each equal to the number of lands you control"))); + + availableImageSetCodes.addAll(Arrays.asList("MID")); } - public WrennAndSevenToken(final WrennAndSevenToken token) { + public WrennAndSevenTreefolkToken(final WrennAndSevenTreefolkToken token) { super(token); } - public WrennAndSevenToken copy() { - return new WrennAndSevenToken(this); + public WrennAndSevenTreefolkToken copy() { + return new WrennAndSevenTreefolkToken(this); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieDecayedToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieDecayedToken.java index e64ab12141b..f36d562da62 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieDecayedToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieDecayedToken.java @@ -4,6 +4,9 @@ import mage.MageInt; import mage.abilities.keyword.DecayedAbility; import mage.constants.CardType; import mage.constants.SubType; +import mage.util.RandomUtil; + +import java.util.Arrays; /** * @author TheElk801 @@ -18,6 +21,8 @@ public final class ZombieDecayedToken extends TokenImpl { power = new MageInt(2); toughness = new MageInt(2); this.addAbility(new DecayedAbility()); + + availableImageSetCodes.addAll(Arrays.asList("MID")); } public ZombieDecayedToken(final ZombieDecayedToken token) { diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieMenaceToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieMenaceToken.java index 3ebca8811cf..4837a0cee9c 100644 --- a/Mage/src/main/java/mage/game/permanent/token/ZombieMenaceToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieMenaceToken.java @@ -5,6 +5,8 @@ import mage.abilities.keyword.MenaceAbility; import mage.constants.CardType; import mage.constants.SubType; +import java.util.Arrays; + public class ZombieMenaceToken extends TokenImpl { public ZombieMenaceToken(int xValue) { @@ -15,7 +17,19 @@ public class ZombieMenaceToken extends TokenImpl { subtype.add(SubType.ZOMBIE); power = new MageInt(xValue); toughness = new MageInt(xValue); - addAbility(new MenaceAbility()); + + this.addAbility(new MenaceAbility()); + + availableImageSetCodes.addAll(Arrays.asList("MID")); + } + + @Override + public void setExpansionSetCodeForImage(String code) { + super.setExpansionSetCodeForImage(code); + + if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("MID")) { + this.setTokenType(2); + } } private ZombieMenaceToken(final ZombieMenaceToken token) {