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 af56d15db40..cb28ed04818 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 @@ -2043,6 +2043,83 @@ public class ScryfallImageSupportTokens { put("LTC/Treefolk", "https://api.scryfall.com/cards/tltc/13/en?format=image"); put("LTC/Wraith", "https://api.scryfall.com/cards/tltc/7/en?format=image"); + // CMM + put("CMM/Emblem Ajani", "https://api.scryfall.com/cards/tcmm/77/en?format=image"); + put("CMM/Angel", "https://api.scryfall.com/cards/tcmm/59/en?format=image"); + put("CMM/Assassin", "https://api.scryfall.com/cards/tcmm/14/en?format=image"); + put("CMM/Avacyn", "https://api.scryfall.com/cards/tcmm/60/en?format=image"); + put("CMM/Bird", "https://api.scryfall.com/cards/tcmm/4/en?format=image"); + put("CMM/Bird Illusion", "https://api.scryfall.com/cards/tcmm/11/en?format=image"); + put("CMM/Cat/1", "https://api.scryfall.com/cards/tcmm/30/en?format=image"); + put("CMM/Cat/2", "https://api.scryfall.com/cards/tcmm/5/en?format=image"); + put("CMM/Cat Beast", "https://api.scryfall.com/cards/tcmm/61/en?format=image"); + put("CMM/Emblem Chandra/1", "https://api.scryfall.com/cards/tcmm/78/en?format=image"); + put("CMM/Emblem Chandra/2", "https://api.scryfall.com/cards/tcmm/79/en?format=image"); + put("CMM/Cleric", "https://api.scryfall.com/cards/tcmm/62/en?format=image"); + put("CMM/Clue", "https://api.scryfall.com/cards/tcmm/40/en?format=image"); + put("CMM/Construct/1", "https://api.scryfall.com/cards/tcmm/42/en?format=image"); + put("CMM/Construct/2", "https://api.scryfall.com/cards/tcmm/41/en?format=image"); + put("CMM/Construct/3", "https://api.scryfall.com/cards/tcmm/74/en?format=image"); + put("CMM/Construct/4", "https://api.scryfall.com/cards/tcmm/75/en?format=image"); + put("CMM/Emblem Daretti", "https://api.scryfall.com/cards/tcmm/51/en?format=image"); + put("CMM/Demon", "https://api.scryfall.com/cards/tcmm/15/en?format=image"); + put("CMM/Dragon/1", "https://api.scryfall.com/cards/tcmm/20/en?format=image"); + put("CMM/Dragon/2", "https://api.scryfall.com/cards/tcmm/70/en?format=image"); + put("CMM/Dragon/3", "https://api.scryfall.com/cards/tcmm/21/en?format=image"); + put("CMM/Dragon Egg", "https://api.scryfall.com/cards/tcmm/22/en?format=image"); + put("CMM/Drake", "https://api.scryfall.com/cards/tcmm/12/en?format=image"); + put("CMM/Dwarf Berserker", "https://api.scryfall.com/cards/tcmm/23/en?format=image"); + put("CMM/Eldrazi", "https://api.scryfall.com/cards/tcmm/1/en?format=image"); + put("CMM/Eldrazi Scion", "https://api.scryfall.com/cards/tcmm/2/en?format=image"); + put("CMM/Eldrazi Spawn", "https://api.scryfall.com/cards/tcmm/3/en?format=image"); + put("CMM/Elemental/1", "https://api.scryfall.com/cards/tcmm/24/en?format=image"); + put("CMM/Elemental/2", "https://api.scryfall.com/cards/tcmm/25/en?format=image"); + put("CMM/Elemental/3", "https://api.scryfall.com/cards/tcmm/26/en?format=image"); + put("CMM/Elemental/4", "https://api.scryfall.com/cards/tcmm/37/en?format=image"); + put("CMM/Elephant", "https://api.scryfall.com/cards/tcmm/31/en?format=image"); + put("CMM/Elf Druid", "https://api.scryfall.com/cards/tcmm/32/en?format=image"); + put("CMM/Elf Warrior", "https://api.scryfall.com/cards/tcmm/72/en?format=image"); + put("CMM/Emblem Elspeth", "https://api.scryfall.com/cards/tcmm/80/en?format=image"); + put("CMM/Goblin", "https://api.scryfall.com/cards/tcmm/27/en?format=image"); + put("CMM/Graveborn", "https://api.scryfall.com/cards/tcmm/38/en?format=image"); + put("CMM/Human Soldier", "https://api.scryfall.com/cards/tcmm/6/en?format=image"); + put("CMM/Human Warrior", "https://api.scryfall.com/cards/tcmm/63/en?format=image"); + put("CMM/Insect", "https://api.scryfall.com/cards/tcmm/33/en?format=image"); + put("CMM/Knight", "https://api.scryfall.com/cards/tcmm/7/en?format=image"); + put("CMM/Kor Ally", "https://api.scryfall.com/cards/tcmm/64/en?format=image"); + put("CMM/Kor Soldier", "https://api.scryfall.com/cards/tcmm/8/en?format=image"); + put("CMM/Myr", "https://api.scryfall.com/cards/tcmm/43/en?format=image"); + put("CMM/Emblem Narset", "https://api.scryfall.com/cards/tcmm/81/en?format=image"); + put("CMM/Emblem Nixilis", "https://api.scryfall.com/cards/tcmm/52/en?format=image"); + put("CMM/Ogre", "https://api.scryfall.com/cards/tcmm/28/en?format=image"); + put("CMM/Ox", "https://api.scryfall.com/cards/tcmm/65/en?format=image"); + put("CMM/Pegasus", "https://api.scryfall.com/cards/tcmm/66/en?format=image"); + put("CMM/Phyrexian Beast", "https://api.scryfall.com/cards/tcmm/34/en?format=image"); + put("CMM/Phyrexian Germ", "https://api.scryfall.com/cards/tcmm/16/en?format=image"); + put("CMM/Phyrexian Golem", "https://api.scryfall.com/cards/tcmm/76/en?format=image"); + put("CMM/Phyrexian Myr", "https://api.scryfall.com/cards/tcmm/44/en?format=image"); + put("CMM/Rat", "https://api.scryfall.com/cards/tcmm/17/en?format=image"); + put("CMM/Saproling", "https://api.scryfall.com/cards/tcmm/35/en?format=image"); + put("CMM/Satyr", "https://api.scryfall.com/cards/tcmm/29/en?format=image"); + put("CMM/Servo", "https://api.scryfall.com/cards/tcmm/45/en?format=image"); + put("CMM/Sliver", "https://api.scryfall.com/cards/tcmm/57/en?format=image"); + put("CMM/Sliver Army", "https://api.scryfall.com/cards/tcmm/68/en?format=image"); + put("CMM/Soldier", "https://api.scryfall.com/cards/tcmm/9/en?format=image"); + put("CMM/Spider", "https://api.scryfall.com/cards/tcmm/36/en?format=image"); + put("CMM/Spirit/1", "https://api.scryfall.com/cards/tcmm/58/en?format=image"); + put("CMM/Spirit/2", "https://api.scryfall.com/cards/tcmm/10/en?format=image"); + put("CMM/Spirit/3", "https://api.scryfall.com/cards/tcmm/39/en?format=image"); + put("CMM/Stoneforged Blade", "https://api.scryfall.com/cards/tcmm/46/en?format=image"); + put("CMM/Emblem Teferi", "https://api.scryfall.com/cards/tcmm/53/en?format=image"); + put("CMM/Thopter", "https://api.scryfall.com/cards/tcmm/47/en?format=image"); + put("CMM/Thrull", "https://api.scryfall.com/cards/tcmm/18/en?format=image"); + put("CMM/Treasure", "https://api.scryfall.com/cards/tcmm/48/en?format=image"); + put("CMM/Wizard", "https://api.scryfall.com/cards/tcmm/71/en?format=image"); + put("CMM/Wurm", "https://api.scryfall.com/cards/tcmm/73/en?format=image"); + put("CMM/Zombie/1", "https://api.scryfall.com/cards/tcmm/19/en?format=image"); + put("CMM/Zombie/2", "https://api.scryfall.com/cards/tcmm/13/en?format=image"); + put("CMM/Zombie Army", "https://api.scryfall.com/cards/tcmm/69/en?format=image"); + // generate supported sets supportedSets.clear(); for (String cardName : this.keySet()) { diff --git a/Mage.Sets/src/mage/cards/b/BalduvianDead.java b/Mage.Sets/src/mage/cards/b/BalduvianDead.java index c2c6ede1c7f..2f8b30abde5 100644 --- a/Mage.Sets/src/mage/cards/b/BalduvianDead.java +++ b/Mage.Sets/src/mage/cards/b/BalduvianDead.java @@ -20,7 +20,7 @@ import mage.constants.Zone; import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; -import mage.game.permanent.token.BalduvianToken; +import mage.game.permanent.token.GravebornToken; import mage.target.common.TargetCardInYourGraveyard; import mage.target.targetpointer.FixedTarget; @@ -41,7 +41,6 @@ public final class BalduvianDead extends CardImpl { TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE); ability.addCost(new ExileFromGraveCost(target)); this.addAbility(ability); - } private BalduvianDead(final BalduvianDead card) { @@ -72,7 +71,7 @@ class BalduvianDeadEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - CreateTokenEffect effect = new CreateTokenEffect(new BalduvianToken()); + CreateTokenEffect effect = new CreateTokenEffect(new GravebornToken()); effect.apply(game, source); for (UUID tokenId : effect.getLastAddedTokenIds()) { Permanent tokenPermanent = game.getPermanent(tokenId); diff --git a/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java b/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java index 2e594360fb1..cf53d6d0174 100644 --- a/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java +++ b/Mage.Sets/src/mage/cards/s/SekKuarDeathkeeper.java @@ -1,4 +1,3 @@ - package mage.cards.s; import java.util.UUID; @@ -14,7 +13,7 @@ import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.AnotherPredicate; import mage.filter.predicate.permanent.TokenPredicate; -import mage.game.permanent.token.SekKuarDeathkeeperGravebornToken; +import mage.game.permanent.token.GravebornToken; /** * @@ -40,7 +39,7 @@ public final class SekKuarDeathkeeper extends CardImpl { this.toughness = new MageInt(3); // Whenever another nontoken creature you control dies, create a 3/1 black and red Graveborn creature token with haste. - this.addAbility(new DiesCreatureTriggeredAbility(new CreateTokenEffect(new SekKuarDeathkeeperGravebornToken()), false, filter)); + this.addAbility(new DiesCreatureTriggeredAbility(new CreateTokenEffect(new GravebornToken()), false, filter)); } private SekKuarDeathkeeper(final SekKuarDeathkeeper card) { diff --git a/Mage/src/main/java/mage/game/permanent/token/BalduvianToken.java b/Mage/src/main/java/mage/game/permanent/token/GravebornToken.java similarity index 66% rename from Mage/src/main/java/mage/game/permanent/token/BalduvianToken.java rename to Mage/src/main/java/mage/game/permanent/token/GravebornToken.java index 52cb8337183..b1c71fb5e1a 100644 --- a/Mage/src/main/java/mage/game/permanent/token/BalduvianToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/GravebornToken.java @@ -1,5 +1,3 @@ - - package mage.game.permanent.token; import mage.constants.CardType; @@ -10,24 +8,24 @@ import mage.abilities.keyword.HasteAbility; /** * @author spjspj */ -public final class BalduvianToken extends TokenImpl { +public final class GravebornToken extends TokenImpl { - public BalduvianToken() { + public GravebornToken() { super("Graveborn Token", "3/1 black and red Graveborn creature token with haste"); cardType.add(CardType.CREATURE); color.setBlack(true); color.setRed(true); + subtype.add(SubType.GRAVEBORN); power = new MageInt(3); toughness = new MageInt(1); - subtype.add(SubType.GRAVEBORN); - addAbility(HasteAbility.getInstance()); + this.addAbility(HasteAbility.getInstance()); } - protected BalduvianToken(final BalduvianToken token) { + protected GravebornToken(final GravebornToken token) { super(token); } - public BalduvianToken copy() { - return new BalduvianToken(this); + public GravebornToken copy() { + return new GravebornToken(this); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/SekKuarDeathkeeperGravebornToken.java b/Mage/src/main/java/mage/game/permanent/token/SekKuarDeathkeeperGravebornToken.java deleted file mode 100644 index 974f8e7afc5..00000000000 --- a/Mage/src/main/java/mage/game/permanent/token/SekKuarDeathkeeperGravebornToken.java +++ /dev/null @@ -1,32 +0,0 @@ - -package mage.game.permanent.token; - -import mage.constants.CardType; -import mage.constants.SubType; -import mage.MageInt; -import mage.abilities.keyword.HasteAbility; - -/** - * @author spjspj - */ -public final class SekKuarDeathkeeperGravebornToken extends TokenImpl { - - public SekKuarDeathkeeperGravebornToken() { - super("Graveborn Token", "3/1 black and red Graveborn creature token with haste"); - cardType.add(CardType.CREATURE); - color.setBlack(true); - color.setRed(true); - subtype.add(SubType.GRAVEBORN); - power = new MageInt(3); - toughness = new MageInt(1); - this.addAbility(HasteAbility.getInstance()); - } - - protected SekKuarDeathkeeperGravebornToken(final SekKuarDeathkeeperGravebornToken token) { - super(token); - } - - public SekKuarDeathkeeperGravebornToken copy() { - return new SekKuarDeathkeeperGravebornToken(this); - } -} diff --git a/Mage/src/main/resources/tokens-database.txt b/Mage/src/main/resources/tokens-database.txt index bfea03e1fa3..89d1a265560 100644 --- a/Mage/src/main/resources/tokens-database.txt +++ b/Mage/src/main/resources/tokens-database.txt @@ -115,6 +115,14 @@ |Generate|EMBLEM:MOC|Emblem Elspeth|||ElspethSunsChampionEmblem| |Generate|EMBLEM:MOC|Emblem Teferi|||TeferisTalentEmblem| |Generate|EMBLEM:DIS|Emblem Momir|||MomirEmblem| +|Generate|EMBLEM:CMM|Emblem Ajani|||AjaniSteadfastEmblem| +|Generate|EMBLEM:CMM|Emblem Chandra|1||ChandraAwakenedInfernoEmblem| +|Generate|EMBLEM:CMM|Emblem Chandra|2||ChandraTorchOfDefianceEmblem| +|Generate|EMBLEM:CMM|Emblem Daretti|||DarettiScrapSavantEmblem| +|Generate|EMBLEM:CMM|Emblem Elspeth|||ElspethSunsChampionEmblem| +|Generate|EMBLEM:CMM|Emblem Narset|||NarsetOfTheAncientWayEmblem| +|Generate|EMBLEM:CMM|Emblem Nixilis|||ObNixilisOfTheBlackOathEmblem| +|Generate|EMBLEM:CMM|Emblem Teferi|||TeferiTemporalArchmageEmblem| # ALL PLANES # Usage hints: @@ -226,11 +234,6 @@ |Generate|TOK:ALA|Soldier|||SoldierToken| |Generate|TOK:ALA|Thopter|||ThopterToken| |Generate|TOK:ALA|Zombie|||ZombieToken| -|Generate|TOK:ALL|Graveborn|||SekKuarDeathkeeperGravebornToken| -|Generate|TOK:ALL|Hippo|||HippoToken| -|Generate|TOK:ALL|Soldier|||SoldierToken| -|Generate|TOK:ALL|Starfish|||StarfishToken| -|Generate|TOK:ALL|Zombie|||ZombieToken| |Generate|TOK:ARB|Bird Soldier|||BirdSoldierToken| |Generate|TOK:ARB|Dragon|||DragonBroodmotherDragonToken| |Generate|TOK:ARB|Lizard|||LizardToken| @@ -448,10 +451,6 @@ |Generate|TOK:CNS|Zombie|||ZombieToken| |Generate|TOK:CON|Angel|||AngelToken| |Generate|TOK:CON|Elemental|||ElementalTokenWithHaste| -|Generate|TOK:CSP|Bird|||BirdToken| -|Generate|TOK:CSP|Graveborn|||SekKuarDeathkeeperGravebornToken| -|Generate|TOK:CSP|Marit Lage|||MaritLageToken| -|Generate|TOK:CSP|Soldier|||SoldierToken| |Generate|TOK:DD2|Elemental Shaman|||ElementalShamanToken| |Generate|TOK:DVD|Demon|||DemonFlyingToken| |Generate|TOK:DVD|Spirit|||SpiritWhiteToken| @@ -732,16 +731,6 @@ |Generate|TOK:MBS|Phyrexian Horror|||PhyrexianRebirthHorrorToken| |Generate|TOK:MBS|Thopter|||ThopterColorlessToken| |Generate|TOK:MBS|Zombie|||ZombieToken| -|Generate|TOK:ME2|Caribou|||CaribouToken| -|Generate|TOK:ME2|Graveborn|||SekKuarDeathkeeperGravebornToken| -|Generate|TOK:ME2|Plant Wall|||KelpToken| -|Generate|TOK:ME2|Saproling|||SaprolingToken| -|Generate|TOK:ME2|Soldier|||SoldierToken| -|Generate|TOK:ME3|Demon|||MinorDemonToken| -|Generate|TOK:ME3|Sand Warrior|||HazezonTamarSandWarriorToken| -|Generate|TOK:ME4|Djinn|||DjinnToken| -|Generate|TOK:ME4|Goblin|||GoblinToken| -|Generate|TOK:ME4|Tetravite|||TetraviteToken| |Generate|TOK:MED|Beast|||GarrukApexPredatorBeastToken| |Generate|TOK:MED|Construct|1||KarnConstructToken| |Generate|TOK:MED|Construct|2||DarettiConstructToken| @@ -2053,4 +2042,74 @@ |Generate|TOK:LTC|Insect|||InsectDeathToken| |Generate|TOK:LTC|Soldier|||SoldierLifelinkToken| |Generate|TOK:LTC|Treefolk|||SylvanOfferingTreefolkToken| -|Generate|TOK:LTC|Wraith|||WraithToken| \ No newline at end of file +|Generate|TOK:LTC|Wraith|||WraithToken| + +# CMM +|Generate|TOK:CMM|Angel|||AngelToken| +|Generate|TOK:CMM|Assassin|||QueenMarchesaAssassinToken| +|Generate|TOK:CMM|Avacyn|||AvacynToken| +|Generate|TOK:CMM|Bird|||BirdToken| +|Generate|TOK:CMM|Bird Illusion|||BirdIllusionToken| +|Generate|TOK:CMM|Cat|1||GreenCat2Token| +|Generate|TOK:CMM|Cat|2||CatToken| +|Generate|TOK:CMM|Cat Beast|||CatBeastToken| +|Generate|TOK:CMM|Cleric|||HeliodGodOfTheSunToken| +|Generate|TOK:CMM|Clue|||ClueArtifactToken| +|Generate|TOK:CMM|Construct|1||OviyaPashiriSageLifecrafterToken| +|Generate|TOK:CMM|Construct|2||KarnConstructToken| +|Generate|TOK:CMM|Construct|3||ConstructToken| +|Generate|TOK:CMM|Construct|4||StoneTrapIdolToken| +|Generate|TOK:CMM|Demon|||DemonToken| +|Generate|TOK:CMM|Dragon|1||DragonEggDragonToken| +|Generate|TOK:CMM|Dragon|2||DragonToken| +|Generate|TOK:CMM|Dragon|3||DragonToken2| +|Generate|TOK:CMM|Dragon Egg|||NestingDragonToken| +|Generate|TOK:CMM|Drake|||DrakeToken| +|Generate|TOK:CMM|Dwarf Berserker|||DwarfBerserkerToken| +|Generate|TOK:CMM|Eldrazi|||EldraziToken| +|Generate|TOK:CMM|Eldrazi Scion|||EldraziScionToken| +|Generate|TOK:CMM|Eldrazi Spawn|||EldraziSpawnToken| +|Generate|TOK:CMM|Elemental|1||Elemental11HasteToken| +|Generate|TOK:CMM|Elemental|2||ElementalTokenWithHaste| +|Generate|TOK:CMM|Elemental|3||Elemental31TrampleHasteToken| +|Generate|TOK:CMM|Elemental|4||Elemental44Token| +|Generate|TOK:CMM|Elephant|||ElephantToken| +|Generate|TOK:CMM|Elf Druid|||ElfDruidToken| +|Generate|TOK:CMM|Elf Warrior|||ElfWarriorToken| +|Generate|TOK:CMM|Goblin|||GoblinToken| +|Generate|TOK:CMM|Graveborn|||GravebornToken| +|Generate|TOK:CMM|Human Soldier|||HumanSoldierToken| +|Generate|TOK:CMM|Human Warrior|||HumanWarriorToken| +|Generate|TOK:CMM|Insect|||InsectToken| +|Generate|TOK:CMM|Knight|||KnightToken| +|Generate|TOK:CMM|Kor Ally|||KorAllyToken| +|Generate|TOK:CMM|Kor Soldier|||KorSoldierToken| +|Generate|TOK:CMM|Myr|||MyrToken| +|Generate|TOK:CMM|Ogre|||OgreToken| +|Generate|TOK:CMM|Ox|||OxToken| +|Generate|TOK:CMM|Pegasus|||PegasusToken2| +|Generate|TOK:CMM|Phyrexian Beast|||PhyrexianBeastToken| +|Generate|TOK:CMM|Phyrexian Germ|||PhyrexianGermToken| +|Generate|TOK:CMM|Phyrexian Golem|||PhyrexianGolemToken| +|Generate|TOK:CMM|Phyrexian Myr|||PhyrexianMyrToken| +|Generate|TOK:CMM|Rat|||RatToken| +|Generate|TOK:CMM|Saproling|||SaprolingToken| +|Generate|TOK:CMM|Satyr|||SatyrCantBlockToken| +|Generate|TOK:CMM|Servo|||ServoToken| +|Generate|TOK:CMM|Sliver|||SliverToken| +|Generate|TOK:CMM|Sliver Army|||SliverArmyToken| +|Generate|TOK:CMM|Soldier|||SoldierToken| +|Generate|TOK:CMM|Spider|||SpiderToken| +|Generate|TOK:CMM|Spirit|1||UginTheIneffableToken| +|Generate|TOK:CMM|Spirit|2||SpiritWhiteToken| +|Generate|TOK:CMM|Spirit|3||WhiteBlackSpiritToken| +|Generate|TOK:CMM|Stoneforged Blade|||NahiriTheLithomancerEquipmentToken| +|Generate|TOK:CMM|Thopter|||ThopterColorlessToken| +|Generate|TOK:CMM|Thrull|||ThrullToken| +|Generate|TOK:CMM|Treasure|||TreasureToken| +// TODO: add Teyo, Geometric Tactician wall token when implemented +|Generate|TOK:CMM|Wizard|||CommodoreGuffToken| +|Generate|TOK:CMM|Wurm|||Wurm55Token| +|Generate|TOK:CMM|Zombie|1||ZombieToken| +|Generate|TOK:CMM|Zombie|2||StitcherGeralfZombieToken| +|Generate|TOK:CMM|Zombie Army|||ZombieArmyToken| \ No newline at end of file