diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java index 497bc1c1883..b84f07cc1ad 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/CardImageSource.java @@ -9,7 +9,7 @@ import org.mage.plugins.card.images.CardDownloadData; public interface CardImageSource { String generateURL(CardDownloadData card) throws Exception; - String generateTokenUrl(CardDownloadData card); + String generateTokenUrl(CardDownloadData card) throws Exception; String getSourceName(); Float getAverageSize(); } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java index 68877f48eb8..5b2ab1a20b1 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MagicCardsImageSource.java @@ -157,7 +157,12 @@ public class MagicCardsImageSource implements CardImageSource { @Override public String generateTokenUrl(CardDownloadData card) { - String name = card.getName().replaceAll(" ", "-").replace(",", "").toLowerCase(); + String name = card.getName(); + // add type to name if it's not 0 + if (card.getType() > 0) { + name = name + " " + card.getType(); + } + name = name.replaceAll(" ", "-").replace(",", "").toLowerCase(); String set = "not-supported-set"; if (setNameTokenReplacement.containsKey(card.getSet())) { set = setNameTokenReplacement.get(card.getSet()); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/TokensMtgImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/TokensMtgImageSource.java new file mode 100644 index 00000000000..fbdfb89d912 --- /dev/null +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/TokensMtgImageSource.java @@ -0,0 +1,324 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ + +package org.mage.plugins.card.dl.sources; + +import org.apache.log4j.Logger; +import org.mage.plugins.card.images.CardDownloadData; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * + * @author Quercitron + */ +public class TokensMtgImageSource implements CardImageSource { + + private static final Logger logger = Logger.getLogger(TokensMtgImageSource.class); + + private static CardImageSource instance = new TokensMtgImageSource(); + + public static CardImageSource getInstance() { + if (instance == null) { + instance = new TokensMtgImageSource(); + } + return instance; + } + + @Override + public String getSourceName() { + return "tokens.mtg.onl"; + } + + @Override + public Float getAverageSize() { + return 26.7f; + } + + @Override + public String generateURL(CardDownloadData card) throws Exception { + return null; + } + + private static final String[] EMBLEMS = { + "Ajani", + "Chandra", + "Dack", + "Daretti", + "Domri", + "Elspeth", + "Garruk", + "Gideon", + "Jace", + "Kiora", + "Koth", + "Liliana", + "Narset", + "Nixilis", + "Sarkhan", + "Sorin", + "Tamiyo", + "Teferi", + "Venser", + }; + + private static final Map SET_NAMES_REPLACEMENT = new HashMap() { + { + put("con", "CFX"); + put("fnmp", "FNM"); + } + }; + + @Override + public String generateTokenUrl(CardDownloadData card) throws IOException { + String name = card.getName(); + String set = card.getSet(); + int type = card.getType(); + + // handle emblems + if (name.toLowerCase().contains("emblem")) { + for (String emblem : EMBLEMS) { + if (name.toLowerCase().contains(emblem.toLowerCase())){ + name = emblem + " Emblem"; + break; + } + } + } + + // we should replace some set names + if (SET_NAMES_REPLACEMENT.containsKey(set.toLowerCase())) { + set = SET_NAMES_REPLACEMENT.get(set.toLowerCase()); + } + + // Image URL contains token number + // e.g. http://tokens.mtg.onl/tokens/ORI_010-Thopter.jpg -- token number 010 + // We don't know these numbers, but we can take them from a file + // with tokens information that can be downloaded from the site. + List tokensData = getTokensData(); + + if (tokensData.isEmpty()) { + return null; + } + + List matchedTokens = new ArrayList(); + for (TokenData token : tokensData) { + if (name.equalsIgnoreCase(token.getName()) && set.equalsIgnoreCase(token.getExpansionSetCode())) { + matchedTokens.add(token); + } + } + + if (matchedTokens.isEmpty()) { + logger.info("Could not find data for token " + name + ", set " + set + "."); + return null; + } + + TokenData tokenData; + if (type == 0) { + if (matchedTokens.size() > 1) { + logger.info("Multiple images were found for token " + name + ", set " + set + "."); + } + tokenData = matchedTokens.get(0); + } else { + if (type > matchedTokens.size()) { + logger.warn("Not enough images for token with type " + type + ", name " + name + ", set " + set + "."); + return null; + } + tokenData = matchedTokens.get(card.getType() - 1); + } + + String url = "http://tokens.mtg.onl/tokens/" + tokenData.getExpansionSetCode().trim() + "_" + + tokenData.getNumber().trim() + "-" + tokenData.getName().trim()+ ".jpg"; + url = url.replace(' ', '-'); + return url; + } + + private List tokensData; + + private final Object tokensDataSync = new Object(); + + private List getTokensData() throws IOException { + if (tokensData == null) { + synchronized (tokensDataSync) { + if (tokensData == null) { + tokensData = new ArrayList(); + + // get tokens data from resource file + InputStream inputStream = null; + try { + inputStream = this.getClass().getResourceAsStream("/tokens-mtg-onl-list.csv"); + List fileTokensData = parseTokensData(inputStream); + tokensData.addAll(fileTokensData); + } catch (Exception exception) { + logger.warn("Failed to get tokens description from resource file tokens-mtg-onl-list.csv", exception); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (Exception e) { + logger.error("Input stream close failed:", e); + } + } + } + + // description on site may contain new information + // try to add it + try { + URL url = new URL("http://tokens.mtg.onl/data/SetsWithTokens.csv"); + inputStream = url.openStream(); + List siteTokensData = parseTokensData(inputStream); + + List newTokensData = new ArrayList(); + for (TokenData siteData : siteTokensData) { + boolean isNew = true; + for (TokenData fileData : tokensData) { + if (siteData.getName().equalsIgnoreCase(fileData.getName()) + && siteData.getNumber().equalsIgnoreCase(fileData.getNumber()) + && siteData.getExpansionSetCode().equalsIgnoreCase(fileData.getExpansionSetCode())) { + isNew = false; + break; + } + } + if (isNew) { + newTokensData.add(siteData); + } + } + + tokensData.addAll(newTokensData); + } catch (Exception exception) { + logger.warn("Failed to get tokens description from tokens.mtg.onl", exception); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (Exception e) { + logger.error("Input stream close failed:", e); + } + } + } + } + } + } + + return tokensData; + } + + private List parseTokensData(InputStream inputStream) throws IOException { + List tokensData = new ArrayList(); + + InputStreamReader inputReader = null; + BufferedReader reader = null; + try { + // we have to specify encoding to read special comma + inputReader = new InputStreamReader(inputStream, "Cp1252"); + reader = new BufferedReader(inputReader); + + reader.readLine(); // skip header + String line = reader.readLine(); + // states + // 0 - wait set name + // 1 - wait cards + // 2 - process cards + int state = 0; + String set = null; + while (line != null) { + if (line.trim().isEmpty()) { + if (state == 2) { + state = 0; + } + } else { + if (state == 0) { + set = line.substring(0, 3); + state = 1; + } else { + if (state == 1) { + state = 2; + } + String[] split = line.split(","); + // replace special comma for cards like 'Ashaya‚ the Awoken World' + String name = split[0].replace('‚', ','); + String number = split[1]; + TokenData token = new TokenData(name, number, set); + tokensData.add(token); + } + } + + line = reader.readLine(); + } + } finally { + if (inputReader != null) { + try { + inputReader.close(); + } catch (Exception e) { + logger.error("Input reader close failed:", e); + } + } + if (reader != null) { + try { + reader.close(); + } catch (Exception e) { + logger.error("Buffered reader close failed:", e); + } + } + } + + return tokensData; + } + + final class TokenData { + final private String name; + final private String number; + final private String expansionSetCode; + + public TokenData(String name, String number, String expansionSetCode) { + this.name = name; + this.number = number; + this.expansionSetCode = expansionSetCode; + } + + public String getName() { + return name; + } + + public String getNumber() { + return number; + } + + public String getExpansionSetCode() { + return expansionSetCode; + } + } + +} diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java index 2423f215207..fae3f0ca071 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java @@ -54,10 +54,7 @@ import net.java.truevfs.access.TFileOutputStream; import net.java.truevfs.access.TVFS; import net.java.truevfs.kernel.spec.FsSyncException; import org.apache.log4j.Logger; -import org.mage.plugins.card.dl.sources.CardImageSource; -import org.mage.plugins.card.dl.sources.MagicCardsImageSource; -import org.mage.plugins.card.dl.sources.MythicspoilerComSource; -import org.mage.plugins.card.dl.sources.WizardCardsImageSource; +import org.mage.plugins.card.dl.sources.*; import org.mage.plugins.card.properties.SettingsManager; import org.mage.plugins.card.utils.CardImageUtils; @@ -138,7 +135,16 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab p0.add(jLabel1); p0.add(Box.createVerticalStrut(5)); - ComboBoxModel jComboBox1Model = new DefaultComboBoxModel(new String[] { "magiccards.info", "wizards.com", "mythicspoiler.com" /*, "mtgimage.com (HQ)" , "mtgathering.ru HQ", "mtgathering.ru MQ", "mtgathering.ru LQ"*/}); + ComboBoxModel jComboBox1Model = new DefaultComboBoxModel(new String[] { + "magiccards.info", + "wizards.com", + "mythicspoiler.com", + "tokens.mtg.onl", + //"mtgimage.com (HQ)", + //"mtgathering.ru HQ", + //"mtgathering.ru MQ", + //"mtgathering.ru LQ", + }); jComboBox1 = new JComboBox(); cardImageSource = MagicCardsImageSource.getInstance(); @@ -159,6 +165,9 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab case 2: cardImageSource = MythicspoilerComSource.getInstance(); break; + case 3: + cardImageSource = TokensMtgImageSource.getInstance(); + break; } int count = DownloadPictures.this.cards.size(); float mb = (count * cardImageSource.getAverageSize()) / 1024; @@ -361,23 +370,27 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab while (line != null) { line = line.trim(); if (line.startsWith("|")) { // new format - String[] params = line.split("\\|"); - if (params.length >= 4) { + String[] params = line.split("\\|", -1); + if (params.length >= 5) { + int type = 0; + if (params[4] != null && ! params[4].isEmpty()) { + type = Integer.parseInt(params[4].trim()); + } if (params[1].toLowerCase().equals("generate") && params[2].startsWith("TOK:")) { String set = params[2].substring(4); - CardDownloadData card = new CardDownloadData(params[3], set, 0, false, 0, "", true); + CardDownloadData card = new CardDownloadData(params[3], set, 0, false, type, "", true); list.add(card); } else if (params[1].toLowerCase().equals("generate") && params[2].startsWith("EMBLEM:")) { String set = params[2].substring(7); - CardDownloadData card = new CardDownloadData("Emblem " + params[3], set, 0, false,0, "", true); + CardDownloadData card = new CardDownloadData("Emblem " + params[3], set, 0, false, type, "", true); list.add(card); } else if (params[1].toLowerCase().equals("generate") && params[2].startsWith("EMBLEM-:")) { String set = params[2].substring(8); - CardDownloadData card = new CardDownloadData(params[3] + " Emblem", set, 0, false, 0, "", true); + CardDownloadData card = new CardDownloadData(params[3] + " Emblem", set, 0, false, type, "", true); list.add(card); } else if (params[1].toLowerCase().equals("generate") && params[2].startsWith("EMBLEM!:")) { String set = params[2].substring(8); - CardDownloadData card = new CardDownloadData(params[3], set, 0, false, 0, "", true); + CardDownloadData card = new CardDownloadData(params[3], set, 0, false, type, "", true); list.add(card); } } else { diff --git a/Mage.Client/src/main/resources/card-pictures-tok.txt b/Mage.Client/src/main/resources/card-pictures-tok.txt index b74ffe49982..0b57a3fd928 100644 --- a/Mage.Client/src/main/resources/card-pictures-tok.txt +++ b/Mage.Client/src/main/resources/card-pictures-tok.txt @@ -1,531 +1,531 @@ -#Generate|TOK:C15|Angel| -#Generate|TOK:C15|Bear| -#Generate|TOK:C15|Beast| -#Generate|TOK:C15|Cat| -#Generate|TOK:C15|Dragon| -#Generate|TOK:C15|Drake| -#Generate|TOK:C15|Elemental Shaman| -#Generate|TOK:C15|Elemental| -#Generate|TOK:C15|Elephant| -#Generate|TOK:C15|Frog Lizard| -#Generate|TOK:C15|Germ| -#Generate|TOK:C15|Gold| -#Generate|TOK:C15|Knight 1| -#Generate|TOK:C15|Knight 2| -#Generate|TOK:C15|Lightning Rager| -#Generate|TOK:C15|Saproling| -#Generate|TOK:C15|Shapeshifter| -#Generate|TOK:C15|Snake 1| -#Generate|TOK:C15|Snake 2| -#Generate|TOK:C15|Spider| -#Generate|TOK:C15|Spirit 1| -#Generate|TOK:C15|Spirit 2| -#Generate|TOK:C15|Wolf| -#Generate|TOK:C15|Zombie| - -|Generate|TOK:BFZ|Dragon| -|Generate|TOK:BFZ|Eldrazi| -|Generate|TOK:BFZ|Eldrazi Scion 1| -|Generate|TOK:BFZ|Eldrazi Scion 2| -|Generate|TOK:BFZ|Eldrazi Scion 3| -|Generate|TOK:BFZ|Elemental 1| -|Generate|TOK:BFZ|Elemental 2| -|Generate|TOK:BFZ|Knight Ally| -|Generate|TOK:BFZ|Kor Ally| -|Generate|TOK:BFZ|Octopus| -|Generate|TOK:BFZ|Plant| -#|Generate|EMBLEM!:BFZ|Emblem Gideon, Ally of Zendikar| -#|Generate|EMBLEM!:BFZ|Emblem Kiora, Master of the Depths| -#|Generate|EMBLEM!:BFZ|Emblem Ob Nixilis Reignited| - -|Generate|TOK:DDP|Eldrazi Spawn 1| -|Generate|TOK:DDP|Eldrazi Spawn 2| -|Generate|TOK:DDP|Eldrazi Spawn 3| -|Generate|TOK:DDP|Hellion| -|Generate|TOK:DDP|Plant| - -|Generate|TOK:MM2|Eldrazi Spawn 1| -|Generate|TOK:MM2|Eldrazi Spawn 2| -|Generate|TOK:MM2|Eldrazi Spawn 3| -|Generate|TOK:MM2|Elephant| -|Generate|TOK:MM2|Faerie Rogue| -|Generate|TOK:MM2|Germ| -|Generate|TOK:MM2|Golem| -|Generate|TOK:MM2|Insect| -|Generate|TOK:MM2|Myr| -|Generate|TOK:MM2|Saproling| -|Generate|TOK:MM2|Snake| -|Generate|TOK:MM2|Soldier| -|Generate|TOK:MM2|Spirit| -|Generate|TOK:MM2|Thrull| -|Generate|TOK:MM2|Wolf| -|Generate|TOK:MM2|Worm| - -#Generate|TOK:TPR|Goblin| -#Generate|TOK:TPR|Pegasus| -#Generate|TOK:TPR|Rat| -#Generate|TOK:TPR|Reflection| -#Generate|TOK:TPR|Saproling| -#Generate|TOK:TPR|Sliver| -#Generate|TOK:TPR|Spike| -#Generate|TOK:TPR|Spirit| -#Generate|TOK:TPR|Thopter| -#Generate|TOK:TPR|Zombie| - -|Generate|TOK:ORI|Ashaya, the Awoken World| -|Generate|TOK:ORI|Angel| -|Generate|TOK:ORI|Demon| -|Generate|TOK:ORI|Elemental| -|Generate|TOK:ORI|Elf Warrior| -|Generate|TOK:ORI|Goblin| -|Generate|TOK:ORI|Knight| -|Generate|TOK:ORI|Soldier| -|Generate|TOK:ORI|Thopter 1| -|Generate|TOK:ORI|Thopter 2| -|Generate|TOK:ORI|Zombie| -#|Generate|EMBLEM!:ORI|Emblem Chandra, Roaring Flame| -#|Generate|EMBLEM!:ORI|Emblem Jace, Telepath Unbound| -#|Generate|EMBLEM!:ORI|Emblem Liliana, Defiant Necromancer| - -#|Generate|TOK:PTC|Angel| -#|Generate|TOK:PTC|Avatar| -#|Generate|TOK:PTC|Beast| -#|Generate|TOK:PTC|Dragon| -#|Generate|TOK:PTC|Elemental| -#|Generate|TOK:PTC|Harpy| -#|Generate|TOK:PTC|Hippo| -#|Generate|TOK:PTC|Soldier| -#|Generate|TOK:PTC|Wolf| -#|Generate|TOK:PTC|Wurm| - -|Generate|TOK:DTK|Djinn Monk| -|Generate|TOK:DTK|Dragon| -|Generate|TOK:DTK|Goblin| -|Generate|TOK:DTK|Morph| -|Generate|TOK:DTK|Warrior| -|Generate|TOK:DTK|Zombie| -|Generate|TOK:DTK|Zombie Horror| -|Generate|EMBLEM!:DTK|Emblem Narset| - -|Generate|TOK:FRF|Monk| -|Generate|TOK:FRF|Spirit| -|Generate|TOK:FRF|Warrior| -|Generate|TOK:FRF|Manifest| - -#|Generate|TOK:GRC|Bird| -#|Generate|TOK:GRC|Golem| -#|Generate|TOK:GRC|Human| -#|Generate|TOK:GRC|Myr| -#|Generate|TOK:GRC|Saproling| - -#|Generate|TOK:MBP:Beast| -#|Generate|TOK:MBP|Cat| -#|Generate|TOK:MBP|Dragon| -#|Generate|TOK:MBP|Elephant| -#|Generate|TOK:MBP|Goblin| -#|Generate|TOK:MBP|Zombie| - -#|Generate|TOK:MLP|Thopter| - -#|Generate|TOK:WMCQ|Angel| - -#|Generate|TOK:GPX|Elephant| -#|Generate|TOK:GPX|Germ| - -#|Generate|TOK:JR|Angel| -#|Generate|TOK:JR|Faerie Rogue| -#|Generate|TOK:JR|Soldier| -#|Generate|TOK:JR|Squirrel| - -#|Generate|TOK:MGDC|Centaur| -#|Generate|TOK:MGDC|Knight| -#|Generate|TOK:MGDC|Rhino| -#|Generate|TOK:MGDC|Sliver| - -#|Generate|TOK:FNMP|Centaur| -|Generate|TOK:FNMP|Human| -|Generate|TOK:FNMP|Wolf| -#|Generate|TOK:FNMP|Wurm| - -|Generate|TOK:C14|Angel| -|Generate|TOK:C14|Cat| -|Generate|TOK:C14|Goat| -|Generate|TOK:C14|Kor Soldier| -|Generate|TOK:C14|Pegasus| -|Generate|TOK:C14|Soldier| -|Generate|TOK:C14|Spirit| -|Generate|TOK:C14|Fish| -|Generate|TOK:C14|Kraken| -|Generate|TOK:C14|Whale| -|Generate|TOK:C14|Zombie 1| -|Generate|TOK:C14|Demon 1| -|Generate|TOK:C14|Demon 2| -|Generate|TOK:C14|Germ| -|Generate|TOK:C14|Horror| -|Generate|TOK:C14|Zombie 2| -|Generate|TOK:C14|Goblin| -|Generate|TOK:C14|Ape| -|Generate|TOK:C14|Beast 1| -|Generate|TOK:C14|Beast 2| -|Generate|TOK:C14|Elemental| -|Generate|TOK:C14|Elephant| -|Generate|TOK:C14|Elf Druid| -|Generate|TOK:C14|Elf Warrior| -|Generate|TOK:C14|Treefolk| -|Generate|TOK:C14|Wolf| -|Generate|TOK:C14|Gargoyle| -|Generate|TOK:C14|Myr| -|Generate|TOK:C14|Pentavite| -|Generate|TOK:C14|Stoneforged Blade| -|Generate|TOK:C14|Tuktuk the Returned| -|Generate|TOK:C14|Wurm 1| -|Generate|TOK:C14|Wurm 2| -|Generate|EMBLEM!:C14|Emblem Teferi -|Generate|EMBLEM!:C14|Emblem Nixilis -|Generate|EMBLEM!:C14|Emblem Daretti - - -|Generate|TOK:DDN|Goblin| - -|Generate|TOK:KTK|Bear| -|Generate|TOK:KTK|Bird| -|Generate|TOK:KTK|Goblin| -|Generate|TOK:KTK|Morph| -|Generate|TOK:KTK|Snake| -|Generate|TOK:KTK|Spirit Warrior| -|Generate|TOK:KTK|Spirit| -|Generate|TOK:KTK|Vampire| -|Generate|TOK:KTK|Warrior 1| -|Generate|TOK:KTK|Warrior 2| -|Generate|TOK:KTK|Zombie| -|Generate|EMBLEM!:KTK|Emblem Sarkhan| -|Generate|EMBLEM!:KTK|Emblem Sorin| - -|Generate|TOK:M15|Sliver| -|Generate|TOK:M15|Soldier| -|Generate|TOK:M15|Zombie| -|Generate|TOK:M15|Goblin| -|Generate|TOK:M15|Beast 1| -|Generate|TOK:M15|Insect| -|Generate|TOK:M15|Spirit| -|Generate|TOK:M15|Squid| -|Generate|TOK:M15|Beast 2| -|Generate|TOK:M15|Dragon| -|Generate|TOK:M15|Treefolk Warrior| -|Generate|TOK:M15|Land Mine| -|Generate|EMBLEM!:M15|Emblem Ajani| -|Generate|EMBLEM!:M15|Emblem Garruk| - -|Generate|TOK:CNS|Zombie| -|Generate|TOK:CNS|Spirit| -|Generate|TOK:CNS|Demon| -|Generate|TOK:CNS|Ogre| -|Generate|TOK:CNS|Elephant| -|Generate|TOK:CNS|Squirrel| -|Generate|TOK:CNS|Wolf| -|Generate|TOK:CNS|Construct| -|Generate|EMBLEM!:CNS|Emblem Dack Fayden| - -|Generate|TOK:JOU|Sphinx| -|Generate|TOK:JOU|Zombie| -|Generate|TOK:JOU|Minotaur| -|Generate|TOK:JOU|Hydra| -|Generate|TOK:JOU|Spider| -|Generate|TOK:JOU|Snake| - -|Generate|TOK:DDM|Assassin| - -|Generate|TOK:BNG|Bird 1| -|Generate|TOK:BNG|Cat Soldier| -|Generate|TOK:BNG|Soldier| -|Generate|TOK:BNG|Bird 2| -|Generate|TOK:BNG|Kraken| -|Generate|TOK:BNG|Zombie| -|Generate|TOK:BNG|Elemental| -|Generate|TOK:BNG|Centaur| -|Generate|TOK:BNG|Wolf| -|Generate|TOK:BNG|Gold| -|Generate|EMBLEM:BNG|Kiora, the Crashing Wave| - -|Generate|TOK:M14|Sliver| -|Generate|TOK:M14|Angel| -|Generate|TOK:M14|Cat| -|Generate|TOK:M14|Goat| -|Generate|TOK:M14|Zombie| -|Generate|TOK:M14|Dragon| -|Generate|TOK:M14|Elemental 1| -|Generate|TOK:M14|Elemental 2| -|Generate|TOK:M14|Beast| -|Generate|TOK:M14|Saproling| -|Generate|TOK:M14|Wolf| -|Generate|EMBLEM:M14|Liliana of the Dark Realms| -|Generate|EMBLEM:M14|Garruk, Caller of Beasts| - -|Generate|TOK:THS|Cleric| -|Generate|TOK:THS|Soldier 1| -|Generate|TOK:THS|Soldier 2| -|Generate|TOK:THS|Bird| -|Generate|TOK:THS|Elemental| -|Generate|TOK:THS|Harpy| -|Generate|TOK:THS|Soldier 3| -|Generate|TOK:THS|Boar| -|Generate|TOK:THS|Satyr| -|Generate|TOK:THS|Golem| -|Generate|EMBLEM-:THS|Elspeth, Suns Champion| - -|Generate|TOK:DDL|Griffin| -|Generate|TOK:DDL|Beast| - -|Generate|TOK:MMA|Giant Warrior| -|Generate|TOK:MMA|Kithkin Soldier| -|Generate|TOK:MMA|Soldier| -|Generate|TOK:MMA|Illusion| -|Generate|TOK:MMA|Bat| -|Generate|TOK:MMA|Goblin Rogue| -|Generate|TOK:MMA|Spider| -|Generate|TOK:MMA|Zombie| -|Generate|TOK:MMA|Dragon| -|Generate|TOK:MMA|Goblin| -|Generate|TOK:MMA|Elemental| -|Generate|TOK:MMA|Saproling| -|Generate|TOK:MMA|Treefolk Shaman| -|Generate|TOK:MMA|Faerie Rogue| -|Generate|TOK:MMA|Worm| -|Generate|EMBLEM:MMA|Elspeth, Knight Errant| - -|Generate|TOK:DGM|Elemental| - -|Generate|TOK:DDK|Spirit| - -|Generate|TOK:GTC|Angel| -|Generate|TOK:GTC|Rat| -|Generate|TOK:GTC|Frog Lizard| -|Generate|TOK:GTC|Cleric| -|Generate|TOK:GTC|Horror| -|Generate|TOK:GTC|Soldier| -|Generate|TOK:GTC|Spirit| -|Generate|EMBLEM:GTC|Domri Rade| - -|Generate|TOK:RTR|Bird| -|Generate|TOK:RTR|Knight| -|Generate|TOK:RTR|Soldier| -|Generate|TOK:RTR|Assassin| -|Generate|TOK:RTR|Dragon| -|Generate|TOK:RTR|Goblin| -|Generate|TOK:RTR|Centaur 1| -|Generate|TOK:RTR|Ooze| -|Generate|TOK:RTR|Rhino| -|Generate|TOK:RTR|Saproling| -|Generate|TOK:RTR|Wurm| -|Generate|TOK:RTR|Elemental| -|Generate|TOK:RTR|Centaur 2| - -|Generate|EMBLEM-:M13|Liliana of the Dark Realms| - -|Generate|TOK:DDJ|Saproling| - -|Generate|TOK:M13|Cat| -|Generate|TOK:M13|Goat| -|Generate|TOK:M13|Soldier| -|Generate|TOK:M13|Drake| -|Generate|TOK:M13|Zombie| -|Generate|TOK:M13|Goblin| -|Generate|TOK:M13|Hellion| -|Generate|TOK:M13|Beast| -|Generate|TOK:M13|Saproling| -|Generate|TOK:M13|Wurm| - -|Generate|EMBLEM:AVR|Tamiyo, the Moon Sage| - -|Generate|TOK:AVR|Angel| -|Generate|TOK:AVR|Human 1| -|Generate|TOK:AVR|Spirit 1| -|Generate|TOK:AVR|Spirit 2| -|Generate|TOK:AVR|Demon| -|Generate|TOK:AVR|Zombie| -|Generate|TOK:AVR|Human 2| - -|Generate|EMBLEM:DDI|Venser, the Sojourner| -|Generate|EMBLEM:DDI|Koth of the Hammer| - -|Generate|TOK:DKA|Human| -|Generate|TOK:DKA|Vampire| - -|Generate|TOK:ISD|Angel| -|Generate|TOK:ISD|Spirit| -|Generate|TOK:ISD|Homunculus| -|Generate|TOK:ISD|Demon| -|Generate|TOK:ISD|Vampire| -|Generate|TOK:ISD|Wolf 1| -|Generate|TOK:ISD|Zombie 1| -|Generate|TOK:ISD|Zombie 2| -|Generate|TOK:ISD|Zombie 3| -|Generate|TOK:ISD|Ooze| -|Generate|TOK:ISD|Spider| -|Generate|TOK:ISD|Wolf 2| - -|Generate|TOK:DDH|Griffin| -|Generate|TOK:DDH|Saproling| - -|Generate|TOK:M12|Bird| -|Generate|TOK:M12|Soldier| -|Generate|TOK:M12|Zombie| -|Generate|TOK:M12|Beast| -|Generate|TOK:M12|Saproling| -|Generate|TOK:M12|Wurm| -|Generate|TOK:M12|Pentavite| - -|Generate|TOK:NPH|Beast| -|Generate|TOK:NPH|Beast| -|Generate|TOK:NPH|Goblin| -|Generate|TOK:NPH|Golem| -|Generate|TOK:NPH|Myr| - -|Generate|TOK:DDG|Goblin| - -|Generate|TOK:MBS|Germ| -|Generate|TOK:MBS|Zombie| -|Generate|TOK:MBS|Golem| -|Generate|TOK:MBS|Horror| -|Generate|TOK:MBS|Thopter| -|Generate|TOK:MBS|Zombie| -|Generate|TOK:MBS|Zombie| - -|Generate|TOK:DDF|Soldier| - -|Generate|TOK:SOM|Cat| -|Generate|TOK:SOM|Soldier| -|Generate|TOK:SOM|Goblin| -|Generate|TOK:SOM|Insect| -|Generate|TOK:SOM|Wolf| -|Generate|TOK:SOM|Golem| -|Generate|TOK:SOM|Myr| -|Generate|TOK:SOM|Wurm 1| -|Generate|TOK:SOM|Wurm 2| - -|Generate|TOK:M11|Avatar| -|Generate|TOK:M11|Bird| -|Generate|TOK:M11|Zombie| -|Generate|TOK:M11|Beast| -|Generate|TOK:M11|Ooze 1| -|Generate|TOK:M11|Ooze 2| - -|Generate|TOK:ROE|Eldrazi Spawn 1| -|Generate|TOK:ROE|Eldrazi Spawn 2| -|Generate|TOK:ROE|Eldrazi Spawn 3| -|Generate|TOK:ROE|Elemental| -|Generate|TOK:ROE|Ooze| -|Generate|TOK:ROE|Tuktuk the Returned| - -|Generate|TOK:DDE|Saproling| -|Generate|TOK:DDE|Hornet| -|Generate|TOK:DDE|Minion| - -|Generate|TOK:WWK|Soldier Ally| -|Generate|TOK:WWK|Dragon| -|Generate|TOK:WWK|Ogre| -|Generate|TOK:WWK|Elephant| -|Generate|TOK:WWK|Plant| -|Generate|TOK:WWK|Construct| - -|Generate|TOK:ZEN|Angel| -|Generate|TOK:ZEN|Bird| -|Generate|TOK:ZEN|Kor Soldier| -|Generate|TOK:ZEN|Illusion| -|Generate|TOK:ZEN|Merfolk| -|Generate|TOK:ZEN|Vampire| -|Generate|TOK:ZEN|Zombie Giant| -|Generate|TOK:ZEN|Elemental| -|Generate|TOK:ZEN|Beast| -|Generate|TOK:ZEN|Snake| -|Generate|TOK:ZEN|Wolf| - -|Generate|TOK:M10|Avatar| -|Generate|TOK:M10|Beast| -|Generate|TOK:M10|Gargoyle| -|Generate|TOK:M10|Goblin| -|Generate|TOK:M10|Insect| -|Generate|TOK:M10|Soldier| -|Generate|TOK:M10|Wolf| -|Generate|TOK:M10|Zombie| - -|Generate|TOK:DDD|Beast 1| -|Generate|TOK:DDD|Beast 2| -|Generate|TOK:DDD|Elephant| - -|Generate|TOK:ARB|Bird Soldier| -|Generate|TOK:ARB|Lizard| -|Generate|TOK:ARB|Dragon| -|Generate|TOK:ARB|Zombie Wizard| - -|Generate|TOK:DDC|Spirit| -|Generate|TOK:DDC|Demon| -|Generate|TOK:DDC|Thrull| - -|Generate|TOK:CON|Angel| -|Generate|TOK:CON|Elemental| - -|Generate|TOK:DD2|Elemental Shaman| - -|Generate|TOK:ALA|Soldier| -|Generate|TOK:ALA|Beast| -|Generate|TOK:ALA|Homunculus| -|Generate|TOK:ALA|Thopter| -|Generate|TOK:ALA|Skeleton| -|Generate|TOK:ALA|Zombie| -|Generate|TOK:ALA|Dragon| -|Generate|TOK:ALA|Goblin| -|Generate|TOK:ALA|Ooze| -|Generate|TOK:ALA|Saproling| - -|Generate|TOK:EVE|Goat| -|Generate|TOK:EVE|Bird| -|Generate|TOK:EVE|Beast| -|Generate|TOK:EVE|Spirit| -|Generate|TOK:EVE|Elemental| -|Generate|TOK:EVE|Worm| -|Generate|TOK:EVE|Goblin Soldier| - -|Generate|TOK:SHM|Kithkin Soldier| -|Generate|TOK:SHM|Spirit| -|Generate|TOK:SHM|Rat| -|Generate|TOK:SHM|Elemental 1| -|Generate|TOK:SHM|Elf Warrior 1| -|Generate|TOK:SHM|Spider| -|Generate|TOK:SHM|Wolf| -|Generate|TOK:SHM|Faerie Rogue| -|Generate|TOK:SHM|Elemental 2| -|Generate|TOK:SHM|Giant Warrior| -|Generate|TOK:SHM|Goblin Warrior| -|Generate|TOK:SHM|Elf Warrior 2| - -|Generate|TOK:EVG|Elemental| -|Generate|TOK:EVG|Elf Warrior| -|Generate|TOK:EVG|Goblin| - -|Generate|TOK:MOR|Giant Warrior| -|Generate|TOK:MOR|Faerie Rogue| -|Generate|TOK:MOR|Treefolk Shaman| - -|Generate|TOK:LRW|Avatar| -|Generate|TOK:LRW|Elemental 1| -|Generate|TOK:LRW|Kithkin Soldier| -|Generate|TOK:LRW|Merfolk Wizard| -|Generate|TOK:LRW|Goblin Rogue| -|Generate|TOK:LRW|Elemental Shaman| -|Generate|TOK:LRW|Beast| -|Generate|TOK:LRW|Elemental 2| -|Generate|TOK:LRW|Elf Warrior| -|Generate|TOK:LRW|Wolf| -|Generate|TOK:LRW|Shapeshifter| - -|Generate|TOK:10E|Soldier| -|Generate|TOK:10E|Zombie| -|Generate|TOK:10E|Dragon| -|Generate|TOK:10E|Goblin| -|Generate|TOK:10E|Saproling| -|Generate|TOK:10E|Wasp| - -|Generate|TOK:CSP|Marit Lage| - -#|Generate|TOK:CHK|Spirit| \ No newline at end of file +|Generate|TOK:C15|Angel|| +|Generate|TOK:C15|Bear|| +|Generate|TOK:C15|Beast|| +|Generate|TOK:C15|Cat|| +|Generate|TOK:C15|Dragon|| +|Generate|TOK:C15|Drake|| +|Generate|TOK:C15|Elemental Shaman|| +|Generate|TOK:C15|Elemental|| +|Generate|TOK:C15|Elephant|| +|Generate|TOK:C15|Frog Lizard|| +|Generate|TOK:C15|Germ|| +|Generate|TOK:C15|Gold|| +|Generate|TOK:C15|Knight|1| +|Generate|TOK:C15|Knight|2| +|Generate|TOK:C15|Lightning Rager|| +|Generate|TOK:C15|Saproling|| +|Generate|TOK:C15|Shapeshifter|| +|Generate|TOK:C15|Snake|1| +|Generate|TOK:C15|Snake|2| +|Generate|TOK:C15|Spider|| +|Generate|TOK:C15|Spirit|1| +|Generate|TOK:C15|Spirit|2| +|Generate|TOK:C15|Wolf|| +|Generate|TOK:C15|Zombie|| + +|Generate|TOK:BFZ|Dragon|| +|Generate|TOK:BFZ|Eldrazi|| +|Generate|TOK:BFZ|Eldrazi Scion|1| +|Generate|TOK:BFZ|Eldrazi Scion|2| +|Generate|TOK:BFZ|Eldrazi Scion|3| +|Generate|TOK:BFZ|Elemental|1| +|Generate|TOK:BFZ|Elemental|2| +|Generate|TOK:BFZ|Knight Ally|| +|Generate|TOK:BFZ|Kor Ally|| +|Generate|TOK:BFZ|Octopus|| +|Generate|TOK:BFZ|Plant|| +|Generate|EMBLEM!:BFZ|Emblem Gideon, Ally of Zendikar|| +|Generate|EMBLEM!:BFZ|Emblem Kiora, Master of the Depths|| +|Generate|EMBLEM!:BFZ|Emblem Ob Nixilis Reignited|| + +|Generate|TOK:DDP|Eldrazi Spawn|1| +|Generate|TOK:DDP|Eldrazi Spawn|2| +|Generate|TOK:DDP|Eldrazi Spawn|3| +|Generate|TOK:DDP|Hellion|| +|Generate|TOK:DDP|Plant|| + +|Generate|TOK:MM2|Eldrazi Spawn|1| +|Generate|TOK:MM2|Eldrazi Spawn|2| +|Generate|TOK:MM2|Eldrazi Spawn|3| +|Generate|TOK:MM2|Elephant|| +|Generate|TOK:MM2|Faerie Rogue|| +|Generate|TOK:MM2|Germ|| +|Generate|TOK:MM2|Golem|| +|Generate|TOK:MM2|Insect|| +|Generate|TOK:MM2|Myr|| +|Generate|TOK:MM2|Saproling|| +|Generate|TOK:MM2|Snake|| +|Generate|TOK:MM2|Soldier|| +|Generate|TOK:MM2|Spirit|| +|Generate|TOK:MM2|Thrull|| +|Generate|TOK:MM2|Wolf|| +|Generate|TOK:MM2|Worm|| + +#Generate|TOK:TPR|Goblin|| +#Generate|TOK:TPR|Pegasus|| +#Generate|TOK:TPR|Rat|| +#Generate|TOK:TPR|Reflection|| +#Generate|TOK:TPR|Saproling|| +#Generate|TOK:TPR|Sliver|| +#Generate|TOK:TPR|Spike|| +#Generate|TOK:TPR|Spirit|| +#Generate|TOK:TPR|Thopter|| +#Generate|TOK:TPR|Zombie|| + +|Generate|TOK:ORI|Ashaya, the Awoken World|| +|Generate|TOK:ORI|Angel|| +|Generate|TOK:ORI|Demon|| +|Generate|TOK:ORI|Elemental|| +|Generate|TOK:ORI|Elf Warrior|| +|Generate|TOK:ORI|Goblin|| +|Generate|TOK:ORI|Knight|| +|Generate|TOK:ORI|Soldier|| +|Generate|TOK:ORI|Thopter|1| +|Generate|TOK:ORI|Thopter|2| +|Generate|TOK:ORI|Zombie|| +|Generate|EMBLEM!:ORI|Emblem Chandra, Roaring Flame|| +|Generate|EMBLEM!:ORI|Emblem Jace, Telepath Unbound|| +|Generate|EMBLEM!:ORI|Emblem Liliana, Defiant Necromancer|| + +#|Generate|TOK:PTC|Angel|| +#|Generate|TOK:PTC|Avatar|| +#|Generate|TOK:PTC|Beast|| +#|Generate|TOK:PTC|Dragon|| +#|Generate|TOK:PTC|Elemental|| +#|Generate|TOK:PTC|Harpy|| +#|Generate|TOK:PTC|Hippo|| +#|Generate|TOK:PTC|Soldier|| +#|Generate|TOK:PTC|Wolf|| +#|Generate|TOK:PTC|Wurm|| + +|Generate|TOK:DTK|Djinn Monk|| +|Generate|TOK:DTK|Dragon|| +|Generate|TOK:DTK|Goblin|| +|Generate|TOK:DTK|Morph|| +|Generate|TOK:DTK|Warrior|| +|Generate|TOK:DTK|Zombie|| +|Generate|TOK:DTK|Zombie Horror|| +|Generate|EMBLEM!:DTK|Emblem Narset|| + +|Generate|TOK:FRF|Monk|| +|Generate|TOK:FRF|Spirit|| +|Generate|TOK:FRF|Warrior|| +|Generate|TOK:FRF|Manifest|| + +#|Generate|TOK:GRC|Bird|| +#|Generate|TOK:GRC|Golem|| +#|Generate|TOK:GRC|Human|| +#|Generate|TOK:GRC|Myr|| +#|Generate|TOK:GRC|Saproling|| + +#|Generate|TOK:MBP:Beast|| +#|Generate|TOK:MBP|Cat|| +#|Generate|TOK:MBP|Dragon|| +#|Generate|TOK:MBP|Elephant|| +#|Generate|TOK:MBP|Goblin|| +#|Generate|TOK:MBP|Zombie|| + +#|Generate|TOK:MLP|Thopter|| + +#|Generate|TOK:WMCQ|Angel|| + +#|Generate|TOK:GPX|Elephant|| +#|Generate|TOK:GPX|Germ|| + +#|Generate|TOK:JR|Angel|| +#|Generate|TOK:JR|Faerie Rogue|| +#|Generate|TOK:JR|Soldier|| +#|Generate|TOK:JR|Squirrel|| + +#|Generate|TOK:MGDC|Centaur|| +#|Generate|TOK:MGDC|Knight|| +#|Generate|TOK:MGDC|Rhino|| +#|Generate|TOK:MGDC|Sliver|| + +#|Generate|TOK:FNMP|Centaur|| +|Generate|TOK:FNMP|Human|| +|Generate|TOK:FNMP|Wolf|| +#|Generate|TOK:FNMP|Wurm|| + +|Generate|TOK:C14|Angel|| +|Generate|TOK:C14|Cat|| +|Generate|TOK:C14|Goat|| +|Generate|TOK:C14|Kor Soldier|| +|Generate|TOK:C14|Pegasus|| +|Generate|TOK:C14|Soldier|| +|Generate|TOK:C14|Spirit|| +|Generate|TOK:C14|Fish|| +|Generate|TOK:C14|Kraken|| +|Generate|TOK:C14|Whale|| +|Generate|TOK:C14|Zombie|1| +|Generate|TOK:C14|Demon|1| +|Generate|TOK:C14|Demon|2| +|Generate|TOK:C14|Germ|| +|Generate|TOK:C14|Horror|| +|Generate|TOK:C14|Zombie|2| +|Generate|TOK:C14|Goblin|| +|Generate|TOK:C14|Ape|| +|Generate|TOK:C14|Beast|1| +|Generate|TOK:C14|Beast|2| +|Generate|TOK:C14|Elemental|| +|Generate|TOK:C14|Elephant|| +|Generate|TOK:C14|Elf Druid|| +|Generate|TOK:C14|Elf Warrior|| +|Generate|TOK:C14|Treefolk|| +|Generate|TOK:C14|Wolf|| +|Generate|TOK:C14|Gargoyle|| +|Generate|TOK:C14|Myr|| +|Generate|TOK:C14|Pentavite|| +|Generate|TOK:C14|Stoneforged Blade|| +|Generate|TOK:C14|Tuktuk the Returned|| +|Generate|TOK:C14|Wurm|1| +|Generate|TOK:C14|Wurm|2| +|Generate|EMBLEM!:C14|Emblem Teferi| +|Generate|EMBLEM!:C14|Emblem Nixilis| +|Generate|EMBLEM!:C14|Emblem Daretti| + + +|Generate|TOK:DDN|Goblin|| + +|Generate|TOK:KTK|Bear|| +|Generate|TOK:KTK|Bird|| +|Generate|TOK:KTK|Goblin|| +|Generate|TOK:KTK|Morph|| +|Generate|TOK:KTK|Snake|| +|Generate|TOK:KTK|Spirit Warrior|| +|Generate|TOK:KTK|Spirit|| +|Generate|TOK:KTK|Vampire|| +|Generate|TOK:KTK|Warrior|1| +|Generate|TOK:KTK|Warrior|2| +|Generate|TOK:KTK|Zombie|| +|Generate|EMBLEM!:KTK|Emblem Sarkhan|| +|Generate|EMBLEM!:KTK|Emblem Sorin|| + +|Generate|TOK:M15|Sliver|| +|Generate|TOK:M15|Soldier|| +|Generate|TOK:M15|Zombie|| +|Generate|TOK:M15|Goblin|| +|Generate|TOK:M15|Beast|1| +|Generate|TOK:M15|Insect|| +|Generate|TOK:M15|Spirit|| +|Generate|TOK:M15|Squid|| +|Generate|TOK:M15|Beast|2| +|Generate|TOK:M15|Dragon|| +|Generate|TOK:M15|Treefolk Warrior|| +|Generate|TOK:M15|Land Mine|| +|Generate|EMBLEM!:M15|Emblem Ajani|| +|Generate|EMBLEM!:M15|Emblem Garruk|| + +|Generate|TOK:CNS|Zombie|| +|Generate|TOK:CNS|Spirit|| +|Generate|TOK:CNS|Demon|| +|Generate|TOK:CNS|Ogre|| +|Generate|TOK:CNS|Elephant|| +|Generate|TOK:CNS|Squirrel|| +|Generate|TOK:CNS|Wolf|| +|Generate|TOK:CNS|Construct|| +|Generate|EMBLEM!:CNS|Emblem Dack Fayden|| + +|Generate|TOK:JOU|Sphinx|| +|Generate|TOK:JOU|Zombie|| +|Generate|TOK:JOU|Minotaur|| +|Generate|TOK:JOU|Hydra|| +|Generate|TOK:JOU|Spider|| +|Generate|TOK:JOU|Snake|| + +|Generate|TOK:DDM|Assassin|| + +|Generate|TOK:BNG|Bird|1| +|Generate|TOK:BNG|Cat Soldier|| +|Generate|TOK:BNG|Soldier|| +|Generate|TOK:BNG|Bird|2| +|Generate|TOK:BNG|Kraken|| +|Generate|TOK:BNG|Zombie|| +|Generate|TOK:BNG|Elemental|| +|Generate|TOK:BNG|Centaur|| +|Generate|TOK:BNG|Wolf|| +|Generate|TOK:BNG|Gold|| +|Generate|EMBLEM:BNG|Kiora, the Crashing Wave|| + +|Generate|TOK:M14|Sliver|| +|Generate|TOK:M14|Angel|| +|Generate|TOK:M14|Cat|| +|Generate|TOK:M14|Goat|| +|Generate|TOK:M14|Zombie|| +|Generate|TOK:M14|Dragon|| +|Generate|TOK:M14|Elemental|1| +|Generate|TOK:M14|Elemental|2| +|Generate|TOK:M14|Beast|| +|Generate|TOK:M14|Saproling|| +|Generate|TOK:M14|Wolf|| +|Generate|EMBLEM:M14|Liliana of the Dark Realms|| +|Generate|EMBLEM:M14|Garruk, Caller of Beasts|| + +|Generate|TOK:THS|Cleric|| +|Generate|TOK:THS|Soldier|1| +|Generate|TOK:THS|Soldier|2| +|Generate|TOK:THS|Bird|| +|Generate|TOK:THS|Elemental|| +|Generate|TOK:THS|Harpy|| +|Generate|TOK:THS|Soldier|3| +|Generate|TOK:THS|Boar|| +|Generate|TOK:THS|Satyr|| +|Generate|TOK:THS|Golem|| +|Generate|EMBLEM-:THS|Elspeth, Suns Champion|| + +|Generate|TOK:DDL|Griffin|| +|Generate|TOK:DDL|Beast|| + +|Generate|TOK:MMA|Giant Warrior|| +|Generate|TOK:MMA|Kithkin Soldier|| +|Generate|TOK:MMA|Soldier|| +|Generate|TOK:MMA|Illusion|| +|Generate|TOK:MMA|Bat|| +|Generate|TOK:MMA|Goblin Rogue|| +|Generate|TOK:MMA|Spider|| +|Generate|TOK:MMA|Zombie|| +|Generate|TOK:MMA|Dragon|| +|Generate|TOK:MMA|Goblin|| +|Generate|TOK:MMA|Elemental|| +|Generate|TOK:MMA|Saproling|| +|Generate|TOK:MMA|Treefolk Shaman|| +|Generate|TOK:MMA|Faerie Rogue|| +|Generate|TOK:MMA|Worm|| +|Generate|EMBLEM:MMA|Elspeth, Knight Errant|| + +|Generate|TOK:DGM|Elemental|| + +|Generate|TOK:DDK|Spirit|| + +|Generate|TOK:GTC|Angel|| +|Generate|TOK:GTC|Rat|| +|Generate|TOK:GTC|Frog Lizard|| +|Generate|TOK:GTC|Cleric|| +|Generate|TOK:GTC|Horror|| +|Generate|TOK:GTC|Soldier|| +|Generate|TOK:GTC|Spirit|| +|Generate|EMBLEM:GTC|Domri Rade|| + +|Generate|TOK:RTR|Bird|| +|Generate|TOK:RTR|Knight|| +|Generate|TOK:RTR|Soldier|| +|Generate|TOK:RTR|Assassin|| +|Generate|TOK:RTR|Dragon|| +|Generate|TOK:RTR|Goblin|| +|Generate|TOK:RTR|Centaur|1| +|Generate|TOK:RTR|Ooze|| +|Generate|TOK:RTR|Rhino|| +|Generate|TOK:RTR|Saproling|| +|Generate|TOK:RTR|Wurm|| +|Generate|TOK:RTR|Elemental|| +|Generate|TOK:RTR|Centaur|2| + +|Generate|EMBLEM-:M13|Liliana of the Dark Realms|| + +|Generate|TOK:DDJ|Saproling|| + +|Generate|TOK:M13|Cat|| +|Generate|TOK:M13|Goat|| +|Generate|TOK:M13|Soldier|| +|Generate|TOK:M13|Drake|| +|Generate|TOK:M13|Zombie|| +|Generate|TOK:M13|Goblin|| +|Generate|TOK:M13|Hellion|| +|Generate|TOK:M13|Beast|| +|Generate|TOK:M13|Saproling|| +|Generate|TOK:M13|Wurm|| + +|Generate|EMBLEM:AVR|Tamiyo, the Moon Sage|| + +|Generate|TOK:AVR|Angel|| +|Generate|TOK:AVR|Human|1| +|Generate|TOK:AVR|Spirit|1| +|Generate|TOK:AVR|Spirit|2| +|Generate|TOK:AVR|Demon|| +|Generate|TOK:AVR|Zombie|| +|Generate|TOK:AVR|Human|2| + +|Generate|EMBLEM:DDI|Venser, the Sojourner|| +|Generate|EMBLEM:DDI|Koth of the Hammer|| + +|Generate|TOK:DKA|Human|| +|Generate|TOK:DKA|Vampire|| + +|Generate|TOK:ISD|Angel|| +|Generate|TOK:ISD|Spirit|| +|Generate|TOK:ISD|Homunculus|| +|Generate|TOK:ISD|Demon|| +|Generate|TOK:ISD|Vampire|| +|Generate|TOK:ISD|Wolf|1| +|Generate|TOK:ISD|Zombie|1| +|Generate|TOK:ISD|Zombie|2| +|Generate|TOK:ISD|Zombie|3| +|Generate|TOK:ISD|Ooze|| +|Generate|TOK:ISD|Spider|| +|Generate|TOK:ISD|Wolf|2| + +|Generate|TOK:DDH|Griffin|| +|Generate|TOK:DDH|Saproling|| + +|Generate|TOK:M12|Bird|| +|Generate|TOK:M12|Soldier|| +|Generate|TOK:M12|Zombie|| +|Generate|TOK:M12|Beast|| +|Generate|TOK:M12|Saproling|| +|Generate|TOK:M12|Wurm|| +|Generate|TOK:M12|Pentavite|| + +|Generate|TOK:NPH|Beast|| +|Generate|TOK:NPH|Beast|| +|Generate|TOK:NPH|Goblin|| +|Generate|TOK:NPH|Golem|| +|Generate|TOK:NPH|Myr|| + +|Generate|TOK:DDG|Goblin|| + +|Generate|TOK:MBS|Germ|| +|Generate|TOK:MBS|Zombie|| +|Generate|TOK:MBS|Golem|| +|Generate|TOK:MBS|Horror|| +|Generate|TOK:MBS|Thopter|| +|Generate|TOK:MBS|Zombie|| +|Generate|TOK:MBS|Zombie|| + +|Generate|TOK:DDF|Soldier|| + +|Generate|TOK:SOM|Cat|| +|Generate|TOK:SOM|Soldier|| +|Generate|TOK:SOM|Goblin|| +|Generate|TOK:SOM|Insect|| +|Generate|TOK:SOM|Wolf|| +|Generate|TOK:SOM|Golem|| +|Generate|TOK:SOM|Myr|| +|Generate|TOK:SOM|Wurm|1| +|Generate|TOK:SOM|Wurm|2| + +|Generate|TOK:M11|Avatar|| +|Generate|TOK:M11|Bird|| +|Generate|TOK:M11|Zombie|| +|Generate|TOK:M11|Beast|| +|Generate|TOK:M11|Ooze|1| +|Generate|TOK:M11|Ooze|2| + +|Generate|TOK:ROE|Eldrazi Spawn|1| +|Generate|TOK:ROE|Eldrazi Spawn|2| +|Generate|TOK:ROE|Eldrazi Spawn|3| +|Generate|TOK:ROE|Elemental|| +|Generate|TOK:ROE|Ooze|| +|Generate|TOK:ROE|Tuktuk the Returned|| + +|Generate|TOK:DDE|Saproling|| +|Generate|TOK:DDE|Hornet|| +|Generate|TOK:DDE|Minion|| + +|Generate|TOK:WWK|Soldier Ally|| +|Generate|TOK:WWK|Dragon|| +|Generate|TOK:WWK|Ogre|| +|Generate|TOK:WWK|Elephant|| +|Generate|TOK:WWK|Plant|| +|Generate|TOK:WWK|Construct|| + +|Generate|TOK:ZEN|Angel|| +|Generate|TOK:ZEN|Bird|| +|Generate|TOK:ZEN|Kor Soldier|| +|Generate|TOK:ZEN|Illusion|| +|Generate|TOK:ZEN|Merfolk|| +|Generate|TOK:ZEN|Vampire|| +|Generate|TOK:ZEN|Zombie Giant|| +|Generate|TOK:ZEN|Elemental|| +|Generate|TOK:ZEN|Beast|| +|Generate|TOK:ZEN|Snake|| +|Generate|TOK:ZEN|Wolf|| + +|Generate|TOK:M10|Avatar|| +|Generate|TOK:M10|Beast|| +|Generate|TOK:M10|Gargoyle|| +|Generate|TOK:M10|Goblin|| +|Generate|TOK:M10|Insect|| +|Generate|TOK:M10|Soldier|| +|Generate|TOK:M10|Wolf|| +|Generate|TOK:M10|Zombie|| + +|Generate|TOK:DDD|Beast|1| +|Generate|TOK:DDD|Beast|2| +|Generate|TOK:DDD|Elephant|| + +|Generate|TOK:ARB|Bird Soldier|| +|Generate|TOK:ARB|Lizard|| +|Generate|TOK:ARB|Dragon|| +|Generate|TOK:ARB|Zombie Wizard|| + +|Generate|TOK:DDC|Spirit|| +|Generate|TOK:DDC|Demon|| +|Generate|TOK:DDC|Thrull|| + +|Generate|TOK:CON|Angel|| +|Generate|TOK:CON|Elemental|| + +|Generate|TOK:DD2|Elemental Shaman|| + +|Generate|TOK:ALA|Soldier|| +|Generate|TOK:ALA|Beast|| +|Generate|TOK:ALA|Homunculus|| +|Generate|TOK:ALA|Thopter|| +|Generate|TOK:ALA|Skeleton|| +|Generate|TOK:ALA|Zombie|| +|Generate|TOK:ALA|Dragon|| +|Generate|TOK:ALA|Goblin|| +|Generate|TOK:ALA|Ooze|| +|Generate|TOK:ALA|Saproling|| + +|Generate|TOK:EVE|Goat|| +|Generate|TOK:EVE|Bird|| +|Generate|TOK:EVE|Beast|| +|Generate|TOK:EVE|Spirit|| +|Generate|TOK:EVE|Elemental|| +|Generate|TOK:EVE|Worm|| +|Generate|TOK:EVE|Goblin Soldier|| + +|Generate|TOK:SHM|Kithkin Soldier|| +|Generate|TOK:SHM|Spirit|| +|Generate|TOK:SHM|Rat|| +|Generate|TOK:SHM|Elemental|1| +|Generate|TOK:SHM|Elf Warrior|1| +|Generate|TOK:SHM|Spider|| +|Generate|TOK:SHM|Wolf|| +|Generate|TOK:SHM|Faerie Rogue|| +|Generate|TOK:SHM|Elemental|2| +|Generate|TOK:SHM|Giant Warrior|| +|Generate|TOK:SHM|Goblin Warrior|| +|Generate|TOK:SHM|Elf Warrior|2| + +|Generate|TOK:EVG|Elemental|| +|Generate|TOK:EVG|Elf Warrior|| +|Generate|TOK:EVG|Goblin|| + +|Generate|TOK:MOR|Giant Warrior|| +|Generate|TOK:MOR|Faerie Rogue|| +|Generate|TOK:MOR|Treefolk Shaman|| + +|Generate|TOK:LRW|Avatar|| +|Generate|TOK:LRW|Elemental|1| +|Generate|TOK:LRW|Kithkin Soldier|| +|Generate|TOK:LRW|Merfolk Wizard|| +|Generate|TOK:LRW|Goblin Rogue|| +|Generate|TOK:LRW|Elemental Shaman|| +|Generate|TOK:LRW|Beast|| +|Generate|TOK:LRW|Elemental|2| +|Generate|TOK:LRW|Elf Warrior|| +|Generate|TOK:LRW|Wolf|| +|Generate|TOK:LRW|Shapeshifter|| + +|Generate|TOK:10E|Soldier|| +|Generate|TOK:10E|Zombie|| +|Generate|TOK:10E|Dragon|| +|Generate|TOK:10E|Goblin|| +|Generate|TOK:10E|Saproling|| +|Generate|TOK:10E|Wasp|| + +|Generate|TOK:CSP|Marit Lage|| + +#|Generate|TOK:CHK|Spirit|| \ No newline at end of file diff --git a/Mage.Client/src/main/resources/tokens-mtg-onl-list.csv b/Mage.Client/src/main/resources/tokens-mtg-onl-list.csv new file mode 100644 index 00000000000..2a64a370e06 --- /dev/null +++ b/Mage.Client/src/main/resources/tokens-mtg-onl-list.csv @@ -0,0 +1,712 @@ +Token name, Number, Color, P/T, Promo, Type, Artist, Text + +UGL - Unglued (1998-08-11) + +Pegasus, 89, W, 1|1, -, Creature - Pegasus, Mark Zug, Flying +Soldier, 90, W, 1|1, -, Creature - Soldier, Daren Bader, - +Zombie, 91, B, 2|2, -, Creature - Zombie, Christopher Rush, - +Goblin, 92, R, 1|1, -, Creature - Goblin, Pete Venters, - +Sheep, 93, G, 1|1, -, Creature - Sheep, Kev Walker, - +Squirrel, 94, G, 1|1, -, Creature - Squirrel, Ron Spencer, - + +ATH - Anthologies (1998-11-01) + +Pegasus, 89, W, 1|1, -, Creature - Pegasus, Mark Zug, Flying +Goblin, 92, R, 1|1, -, Creature - Goblin, Pete Venters, - + +INV - Invasion (2000-10-02) + +Bird, T1, U, 1|1, Player Rewards, Creature - Bird, Michael Sutfin, Flying +Elephant, T2, G, 3|3, Player Rewards, Creature - Elephant, Terese Nielsen, - +Saproling, T3, G, 1|1, Player Rewards, Creature - Saproling, Jeff Laubenstein, - + +PLS - Planeshift (2001-02-05) + +Spirit, T1, W, 1|1, Player Rewards, Creature - Spirit, John Matson, Flying + +APC - Apocalypse (2001-06-04) + +Goblin Soldier, T1, R W, 1|1, Player Rewards, Creature - Goblin Soldier, Ron Spears, - + +ODY - Odyssey (2001-10-01) + +Bear, T1, G, 2|2, Player Rewards, Creature - Bear, Heather Hudson, - +Beast, T2, G, 4|4, Player Rewards, Creature - Beast, Larry Elmore, - +Elephant, T3, G, 3|3, Player Rewards, Creature - Elephant, Arnie Swekel, - +Squirrel, T4, G, 1|1, Player Rewards, Creature - Squirrel, Ron Spencer, - +Wurm, T5, G, 6|6, Player Rewards, Creature - Wurm, Alan Pollack, - +Zombie, T6, B, 2|2, Player Rewards, Creature - Zombie, Dana Knutson, - + +ONS - Onslaught (2002-10-07) + +Bear, T1, G, 2|2, Player Rewards, Creature - Bear, Glen Angus, - +Dragon, T2, R, 5|5, Player Rewards, Creature - Dragon, Glen Angus, Flying +Insect, T3, G, 1|1, Player Rewards, Creature - Insect, Anthony S. Waters, - +Soldier, T4, W, 1|1, Player Rewards, Creature - Soldier, Ron Spencer, - + +LGN - Legions (2003-02-03) + +Goblin, T1, R, 1|1, Player Rewards, Creature - Goblin, Darrell Riche, - +Sliver, T2, -, 1|1, Player Rewards, Creature - Sliver, Tony Szczudlo, - + +SCG - Scourge (2003-05-26) + +Angel, T1, W, 4|4, Player Rewards, Creature - Angel, Scott M. Fischer, Flying + +8ED - Eighth Edition (2003-07-28) + +Rukh, T1, R, 4|4, Player Rewards, Creature - Rukh, Edward P. Beard‚ Jr., Flying + +MRD - Mirrodin (2003-10-02) + +Demon, T1, B, *|*, Player Rewards, Creature - Demon, Pete Venters, - +Myr, T2, -, 1|1, Player Rewards, Creature - Myr, Wayne England, - +Pentavite, T3, -, 1|1, Player Rewards, Artifact Creature - Pentavite, Greg Staples, - + +DST - Darksteel (2004-02-06) + +Beast, T1, G, 3|3, Player Rewards, Creature - Beast, Edward P. Beard‚ Jr., - + +CHK - Champions of Kamigawa (2004-10-01) + +Spirit, T1, -, 1|1, Player Rewards, Creature - Spirit, Hugh Jamieson, - + +CSP - Coldsnap (2006-07-21) + +Marit Lage, T1, B, 20|20, Pre-Release, Creature - Avatar, Stephan Martiniere, Flying‚ indestructible + +10E - Tenth Edition (2007-07-13) + +Soldier, 1, W, 1|1, -, Creature - Soldier, Parente, - +Zombie, 2, B, 2|2, -, Creature - Zombie, Carl Critchlow, - +Dragon, 3, R, 5|5, -, Creature - Dragon, Jim Pavelec, Flying +Goblin, 4, R, 1|1, -, Creature - Goblin, Dave Kendall, - +Saproling, 5, G, 1|1, -, Creature - Saproling, Cyril Van Der Haegen, - +Wasp, 6, -, 1|1, -, Artifact Creature - Insect, Ron Spencer, Flying + +LRW - Lorwyn (2007-10-12) + +Avatar, 1, W, *|*, -, Creature - Avatar, Vance Kovacs, This creature's power and toughness are each equal to your life total. +Elemental, 2, W, 4|4, -, Creature - Elemental, Anthony S. Waters, Flying +Kithkin Soldier, 3, W, 1|1, -, Creature - Kithkin Soldier, Greg Hildebrandt, - +Merfolk Wizard, 4, U, 1|1, -, Creature - Merfolk Wizard, Mark Poole, - +Goblin Rogue, 5, B, 1|1, -, Creature - Goblin Rogue, Richard Sardinha, - +Elemental Shaman, 6, R, 3|1, -, Creature - Elemental Shaman, Jim Pavelec, - +Beast, 7, G, 3|3, -, Creature - Beast, John Donahue, - +Elemental, 8, G, 4|4, -, Creature - Elemental, Brandon Kitkouski, - +Elf Warrior, 9, G, 1|1, -, Creature - Elf Warrior, Dominick Domingo, - +Wolf, 10, G, 2|2, -, Creature - Wolf, Pete Venters, - +Shapeshifter, 11, -, 1|1, -, Creature - Shapeshifter, Franz Vohwinkel, Changeling + +EVG - Duel Decks: Elves vs. Goblins (2007-11-16) + +Elemental, T1, G, 7|7, -, Creature - Elemental, Anthony S. Waters, Trample +Elf Warrior, T2, G, 1|1, -, Creature - Elf Warrior, Dominick Domingo, - +Goblin, T3, R, 1|1, -, Creature - Goblin, Dave Kendall, - + +MOR - Morningtide (2008-02-01) + +Giant Warrior, 1, W, 5|5, -, Creature - Giant Warrior, Steve Ellis, - +Faerie Rogue, 2, B, 1|1, -, Creature - Faerie Rogue, Jim Nelson, Flying +Treefolk Shaman, 3, G, 2|5, -, Creature - Treefolk Shaman, Richard Sardinha, - + +SHM - Shadowmoor (2008-05-02) + +Kithkin Soldier, 1, W, 1|1, -, Creature - Kithkin Soldier, Randy Gallegos, - +Spirit, 2, W, 1|1, -, Creature - Spirit, Jeremy Enecio, Flying +Rat, 3, B, 1|1, -, Creature - Rat, Carl Critchlow, - +Elemental, 4, R, 1|1, -, Creature - Elemental, Cyril Van Der Haegen, Haste +Elf Warrior, 5, G, 1|1, -, Creature - Elf Warrior, William O'Connor, - +Spider, 6, G, 1|2, -, Creature - Spider, Thomas M. Baxa, Reach +Wolf, 7, G, 2|2, -, Creature - Wolf, Lars Grant-West, - +Faerie Rogue, 8, U B, 1|1, -, Creature - Faerie Rogue, E. M. Gist, Flying +Elemental, 9, B R, 5|5, -, Creature - Elemental, Dave Dorman, - +Giant Warrior, 10, R G, 4|4, -, Creature - Giant Warrior, Trevor Hairsine, Haste +Goblin Warrior, 11, R G, 1|1, -, Creature - Goblin Warrior, Dave Allsop, - +Elf Warrior, 12, G W, 1|1, -, Creature - Elf Warrior, Carl Frank, - + +EVE - Eventide (2008-07-25) + +Goat, 1, W, -, -, Creature - Goat, Terese Nielsen, - +Bird, 2, U, 1|1, -, Creature - Bird, Heather Hudson, Flying +Beast, 3, G, 3|3, -, Creature - Beast, William O'Connor, - +Spirit, 4, W B, 1|1, -, Creature - Spirit, Larry MacDougall, Flying +Elemental, 5, U R, 5|5, -, Creature - Elemental, Randy Gallegos, Flying +Worm, 6, B G, 1|1, -, Creature - Worm, Chuck Lukacs, - +Goblin Soldier, 7, R W, 1|1, -, Creature - Goblin Soldier, Jeff Miracola, - + +ALA - Shards of Alara (2008-10-03) + +Soldier, 1, W, 1|1, -, Creature - Soldier, Alan Pollack, - +Homunculus, 2, U, -, -, Artifact Creature - Homunculus, Howard Lyon, - +Thopter, 3, U, 1|1, -, Artifact Creature - Thopter, Andrew Murray, Flying +Skeleton, 4, B, 1|1, -, Creature - Skeleton, Thomas M. Baxa, {B}: Regenerate this creature. +Zombie, 5, B, 2|2, -, Creature - Zombie, Dave Kendall, - +Dragon, 6, R, 4|4, -, Creature - Dragon, Vance Kovacs, Flying +Goblin, 7, R, 1|1, -, Creature - Goblin, Brandon Kitkouski, - +Ooze, 8, G, *|*, -, Creature - Ooze, Anthony S. Waters, - +Saproling, 9, G, 1|1, -, Creature - Saproling, Trevor Claxton, - +Beast, 10, R G W, 8|8, -, Creature - Beast, Parente, - + +DD2 - Duel Decks: Jace vs. Chandra (2008-11-07) + +Elemental Shaman, T1, R, 3|1, -, Creature - Elemental Shaman, Jim Pavelec, - + +CFX - Conflux (2009-02-06) + +Angel, 1, W, 4|4, -, Creature - Angel, Cyril Van Der Haegen, Flying +Elemental, 2, R, 3|1, -, Creature - Elemental, Vance Kovacs, - + +DDC - Duel Decks: Divine vs. Demonic (2009-04-10) + +Spirit, T1, W, 1|1, -, Creature - Spirit, Luca Zontini, Flying +Demon, T2, B, *|*, -, Creature - Demon, Pete Venters, Flying +Thrull, T3, B, -, -, Creature - Thrull, Veronique Meignaud, - + +ARB - Alara Reborn (2009-04-30) + +Bird Soldier, 1, W, 1|1, -, Creature - Bird Soldier, Matt Cavotta, Flying +Lizard, 2, G, 2|2, -, Creature - Lizard, Anthony S. Waters, - +Dragon, 3, R G, 1|1, -, Creature - Dragon, Jaime Jones, Flying‚ devour 2 +Zombie Wizard, 4, U B, 1|1, -, Creature - Zombie Wizard, Dave Allsop, - + +M10 - Magic 2010 (2009-07-17) + +Avatar, 1, W, *|*, -, Creature - Avatar, Vance Kovacs, This creature's power and toughness are each equal to your life total. +Soldier, 2, W, 1|1, -, Creature - Soldier, Parente, - +Zombie, 3, B, 2|2, -, Creature - Zombie, Bud Cook, - +Goblin, 4, R, 1|1, -, Creature - Goblin, Dave Kendall, - +Beast, 5, G, 3|3, -, Creature - Beast, John Donahue, - +Insect, 6, G, 1|1, -, Creature - Insect, Ron Spencer, - +Wolf, 7, G, 2|2, -, Creature - Wolf, Lars Grant-West, - +Gargoyle, 8, -, 3|4, -, Artifact Creature - Gargoyle, Paul Bonner, Flying + +ZEN - Zendikar (2009-10-02) + +Angel, 1, W, 4|4, -, Creature - Angel, Adi Granov, Flying +Bird, 2, W, 1|1, -, Creature - Bird, Howard Lyon, Flying +Kor Soldier, 3, W, 1|1, -, Creature - Kor Soldier, Daren Bader, - +Illusion, 4, U, 2|2, -, Creature - Illusion, Cyril Van Der Haegen, - +Merfolk, 5, U, 1|1, -, Creature - Merfolk, Warren Mahy, - +Vampire, 6, B, *|*, -, Creature - Vampire, Kekai Kotaki, - +Zombie Giant, 7, B, 5|5, -, Creature - Zombie Giant, Igor Kieryluk, - +Elemental, 8, R, 7|1, -, Creature - Elemental, Anthony Francisco, Trample‚ haste +Beast, 9, G, 4|4, -, Creature - Beast, Steve Prescott, - +Snake, 10, G, 1|1, -, Creature - Snake, Austin Hsu, - +Wolf, 11, G, 2|2, -, Creature - Wolf, Daren Bader, - + +DDD - Duel Decks: Garruk vs. Liliana (2009-10-30) + +Beast, T1, G, 3|3, -, Creature - Beast, John Donahue, - +Beast, T2, G, 4|4, -, Creature - Beast, Steve Prescott, - +Elephant, T3, G, 3|3, -, Creature - Elephant, Arnie Swekel, - + +WWK - Worldwake (2010-02-05) + +Soldier Ally, 1, W, 1|1, -, Creature - Soldier Ally, Kekai Kotaki, - +Dragon, 2, R, 5|5, -, Creature - Dragon, Raymond Swanland, Flying +Ogre, 3, R, 3|3, -, Creature - Ogre, Paul Bonner, - +Elephant, 4, G, 3|3, -, Creature - Elephant, Lars Grant-West, - +Plant, 5, G, -, -, Creature - Plant, Daren Bader, - +Construct, 6, -, 6|12, -, Artifact Creature - Construct, Jung Park, Trample + +DDE - Duel Decks: Phyrexia vs. the Coalition (2010-03-19) + +Hornet, T1, -, 1|1, -, Artifact Creature - Insect, Ron Spencer, Flying‚ haste +Minion, T2, B, *|*, -, Creature - Minion, Dave Kendall, - +Saproling, T3, G, 1|1, -, Creature - Saproling, Warren Mahy, - + +ROE - Rise of the Eldrazi (2010-04-23) + +Eldrazi Spawn, 1a, -, -, -, Creature - Eldrazi Spawn, Aleksi Briclot, Sacrifice this creature: Add {1} to your mana pool. +Eldrazi Spawn, 1b, -, -, -, Creature - Eldrazi Spawn, Mark Tedin, Sacrifice this creature: Add {1} to your mana pool. +Eldrazi Spawn, 1c, -, -, -, Creature - Eldrazi Spawn, Veronique Meignaud, Sacrifice this creature: Add {1} to your mana pool. +Elemental, 2, R, *|*, -, Creature - Elemental, Jung Park, - +Hellion, 3, R, 4|4, -, Creature - Hellion, Anthony Francisco, - +Ooze, 4, G, *|*, -, Creature - Ooze, Daniel Ljunggren, - +Tuktuk The Returned, 5, -, 5|5, -, Legendary Artifact Creature - Goblin Golem, Franz Vohwinkel, - + +M11 - Magic 2011 (2010-07-16) + +Avatar, 1, W, *|*, -, Creature - Avatar, Vance Kovacs, This creature's power and toughness are each equal to your life total. +Bird, 2, W, 3|3, -, Creature - Bird, Paul Bonner, Flying +Zombie, 3, B, 2|2, -, Creature - Zombie, Bud Cook, - +Beast, 4, G, 3|3, -, Creature - Beast, John Donahue, - +Ooze, 5, G, 2|2, -, Creature - Ooze, Raymond Swanland, When this creature dies‚ put two 1/1 green Ooze creature tokens onto the battlefield. +Ooze, 6, G, 1|1, -, Creature - Ooze, Raymond Swanland, - + +DDF - Duel Decks: Elspeth vs. Tezzeret (2010-09-03) + +Soldier, T1, W, 1|1, -, Creature - Soldier, Parente, - + +SOM - Scars of Mirrodin (2010-10-01) + +Cat, 1, W, 2|2, -, Creature - Cat, Scott Chou, - +Soldier, 2, W, 1|1, -, Creature - Soldier, Goran Josic, - +Goblin, 3, R, 1|1, -, Creature - Goblin, Goran Josic, - +Insect, 4, G, 1|1, -, Creature - Insect, Adrian Smith, Infect +Wolf, 5, G, 2|2, -, Creature - Wolf, Chris Rahn, - +Golem, 6, -, 3|3, -, Artifact Creature - Golem, Nic Klein, - +Myr, 7, -, 1|1, -, Artifact Creature - Myr, Ryan Pancoast, - +Wurm, 8, -, 3|3, -, Artifact Creature - Wurm, Raymond Swanland, Deathtouch +Wurm, 9, -, 3|3, -, Artifact Creature - Wurm, Raymond Swanland, Lifelink +Poison Counter, -, -, -, -, Emblem, -, - + +MBS - Mirrodin Besieged (2011-02-04) + +Germ, 1, B, -, -, Creature - Germ, Igor Kieryluk, - +Zombie, 2, B, 2|2, -, Creature - Zombie, Dave Kendall, - +Golem, 3, -, 9|9, -, Artifact Creature - Golem, Svetlin Velinov, - +Horror, 4, -, *|*, -, Artifact Creature - Horror, Scott Chou, - +Thopter, 5, -, 1|1, -, Artifact Creature - Thopter, Volkan Baga, Flying +Poison Counter, -, -, -, -, Emblem, -, - + +DDG - Duel Decks: Knights vs. Dragons (2011-04-01) + +Goblin, T1, R, 1|1, -, Creature - Goblin, Brandon Kitkouski, - + +NPH - New Phyrexia (2011-05-13) + +Beast, 1, G, 3|3, -, Creature - Beast, Dave Allsop, - +Goblin, 2, R, 1|1, -, Creature - Goblin, Jaime Jones, - +Golem, 3, -, 3|3, -, Artifact Creature - Golem, Volkan Baga, - +Myr, 4, -, 1|1, -, Artifact Creature - Myr, Matt Stewart, - +Poison Counter, -, -, -, -, Emblem, -, - + +M12 - Magic 2012 (2011-07-15) + +Bird, 1, W, 3|3, -, Creature - Bird, Paul Bonner, Flying +Soldier, 2, W, 1|1, -, Creature - Soldier, Parente, - +Zombie, 3, B, 2|2, -, Creature - Zombie, Carl Critchlow, - +Beast, 4, G, 3|3, -, Creature - Beast, John Donahue, - +Saproling, 5, G, 1|1, -, Creature - Saproling, Cyril Van Der Haegen, - +Wurm, 6, G, 6|6, -, Creature - Wurm, Anthony Francisco, - +Pentavite, 7, -, 1|1, -, Artifact Creature - Pentavite, Greg Staples, Flying + +DDH - Duel Decks: Ajani vs. Nicol Bolas (2011-09-02) + +Griffin, T1, W, 2|2, -, Creature - Griffin, Jim Nelson, Flying +Saproling, T2, G, 1|1, -, Creature - Saproling, Cyril Van Der Haegen, - + +ISD - Innistrad (2011-09-30) + +Angel, 1, W, 4|4, -, Creature - Angel, Winona Nelson, Flying +Spirit, 2, W, 1|1, -, Creature - Spirit, Kev Walker, Flying +Homunculus, 3, U, 2|2, -, Creature - Homunculus, Johann Bodin, - +Demon, 4, B, 5|5, -, Creature - Demon, Kev Walker, Flying +Vampire, 5, B, 2|2, -, Creature - Vampire, Svetlin Velinov, Flying +Wolf, 6, B, 1|1, -, Creature - Wolf, Daniel Ljunggren, Deathtouch +Zombie, 7, B, 2|2, -, Creature - Zombie, Lucas Graciano, - +Zombie, 8, B, 2|2, -, Creature - Zombie, Christopher Moeller, - +Zombie, 9, B, 2|2, -, Creature - Zombie, Cynthia Sheppard, - +Ooze, 10, G, *|*, -, Creature - Ooze, Erica Yang, This creature's power and toughness are each equal to the number of slime counters on Gutter Grime. +Spider, 11, G, 1|2, -, Creature - Spider, Daniel Ljunggren, Reach +Wolf, 12, G, 2|2, -, Creature - Wolf, David Palumbo, - +Wolf, T12, G, 2|2, Judge, Creature - Wolf, David Palumbo, - + +DKA - Dark Ascension (2012-02-03) + +Human, 1, W, 1|1, -, Creature - Human, John Stanko, - +Vampire, 2, B, 1|1, -, Creature - Vampire, Peter Mohrbacher, Lifelink +Sorin Emblem, 3, -, -, -, Emblem - Sorin, Michael Komrack, Creatures you control get +1/+0. + +DDI - Duel Decks: Venser vs. Koth (2012-03-30) + +Koth Emblem, E1, -, -, -, Emblem - Koth, Eric Deschamps, Mountains you control have Tap: This land deals 1 damage to target creature or player.' +Venser Emblem, E2, -, -, -, Emblem - Venser, Eric Deschamps, Whenever you cast a spell‚ exile target permanent. + +FNM - Friday Night Magic (2012-04-01) + +Human, T1a, W, 1|1, Full Moon, Creature - Human, Lars Grant-West, - +Wolf, T1b, G, 2|2, Full Moon, Creature - Wolf, Lars Grant-West, - + +AVR - Avacyn Restored (2012-05-04) + +Angel, 1, W, 4|4, -, Creature - Angel, Anthony Palumbo, Flying +Human, 2, W, 1|1, -, Creature - Human, Michael C. Hayes, - +Spirit, 3, W, 1|1, -, Creature - Spirit, Ryan Yee, Flying +Spirit, 4, U, 1|1, -, Creature - Spirit, Dan Scott, Flying +Demon, 5, B, 5|5, -, Creature - Demon, Kev Walker, Flying +Zombie, 6, B, 2|2, -, Creature - Zombie, Lucas Graciano, - +Human, 7, R, 1|1, -, Creature - Human, Ryan Pancoast, Haste +Tamiyo Emblem, 8, -, -, -, Emblem - Tamiyo, Eric Deschamps, You have no maximum hand size. Whenever a card is put into your graveyard from anywhere‚ you may return it to your hand. +Angel, T1, W, 4|4, Pre-Release, Creature - Angel, James Ryman, Flying +Angel, T1F, W, 4|4, Pre-Release, Creature - Angel, James Ryman, Flying +Demon, T5, B, 5|5, Pre-Release, Creature - Demon, Karl Kopinski, Flying +Demon, T5F, B, 5|5, Pre-Release, Creature - Demon, Karl Kopinski, Flying + +M13 - Magic 2013 (2012-07-13) + +Goblin, 1, R, 1|1, League, Creature - Goblin, Jim Nelson, - +Cat, 1, W, 2|2, -, Creature - Cat, Jesper Ejsing, - +Goat, 2, W, -, -, Creature - Goat, Adam Paquette, - +Soldier, 3, W, 1|1, -, Creature - Soldier, Greg Staples, - +Drake, 4, U, 2|2, -, Creature - Drake, Svetlin Velinov, Flying +Zombie, 5, B, 2|2, -, Creature - Zombie, Lucas Graciano, - +Goblin, 6, R, 1|1, -, Creature - Goblin, Karl Kopinski, - +Hellion, 7, R, 4|4, -, Creature - Hellion, Anthony Francisco, - +Beast, 8, G, 3|3, -, Creature - Beast, John Donahue, - +Saproling, 9, G, 1|1, -, Creature - Saproling, Brad Rigney, - +Wurm, 10, G, 6|6, -, Creature - Wurm, Anthony Francisco, - +Liliana Emblem, 11, -, -, -, Emblem - Liliana, D. Alexander Gregory, Swamps you control have Tap: Add {B}{B}{B}{B} to your mana pool.' + +DDJ - Duel Decks: Izzet vs. Golgari (2012-09-07) + +Saproling, T1, G, 1|1, -, Creature - Saproling, Brad Rigney, - + +RTR - Return to Ravnica (2012-10-05) + +Centaur, 1, G, 3|3, Judge, Creature - Centaur, James Ryman, - +Knight, 1, W, 2|2, League, Creature - Knight, Lucas Graciano, Vigilance +Bird, 1, W, 1|1, -, Creature - Bird, James Ryman, Flying +Knight, 2, W, 2|2, -, Creature - Knight, Matt Stewart, Vigilance +Soldier, 3, W, 1|1, -, Creature - Soldier, Steve Prescott, - +Assassin, 4, B, 1|1, -, Creature - Assassin, Svetlin Velinov, Whenever this creature deals combat damage to a player‚ that player loses the game. +Dragon, 5, R, 6|6, -, Creature - Dragon, Mark Zug, Flying +Goblin, 6, R, 1|1, -, Creature - Goblin, Christopher Moeller, - +Centaur, 7, G, 3|3, -, Creature - Centaur, Slawomir Maniak, - +Ooze, 8, G, *|*, -, Creature - Ooze, Marco Nelor, - +Rhino, 9, G, 4|4, -, Creature - Rhino, Tomasz Jedruszek, Trample +Saproling, 10, G, 1|1, -, Creature - Saproling, Raoul Vitale, - +Wurm, 11, G, 5|5, -, Creature - Wurm, Anthony Palumbo, Trample +Elemental, 12, G W, 8|8, -, Creature - Elemental, Yeong-Hao Han, Vigilance + +GTC - Gatecrash (2013-02-01) + +Soldier, 1, R W, 1|1, League, Creature - Soldier, Zoltan Boros, Haste +Angel, 1, W, 4|4, -, Creature - Angel, Steve Argyle, Flying +Rat, 2, B, 1|1, -, Creature - Rat, Nils Hamm, - +Frog Lizard, 3, G, 3|3, -, Creature - Frog Lizard, Jack Wang, - +Cleric, 4, W B, 1|1, -, Creature - Cleric, Jason Chan, {3}{W}{B}{B}‚ {T}‚ Sacrifice this creature: Return a card named Deathpact Angel from your graveyard to the battlefield. +Horror, 5, U B, 1|1, -, Creature - Horror, Adam Paquette, Flying +Soldier, 6, R W, 1|1, -, Creature - Soldier, David Palumbo, Haste +Spirit, 7, W B, 1|1, -, Creature - Spirit, Cliff Childs, Flying +Domri Emblem, 8, -, -, -, Emblem - Domri, Tyler Jacobson, Creatures you control have double strike‚ trample‚ hexproof‚ and haste. + +DDK - Duel Decks: Sorin vs. Tibalt (2013-03-15) + +Spirit, T1, W, 1|1, -, Creature - Spirit, Ryan Yee, Flying + +DGM - Dragon's Maze (2013-05-03) + +Bird, 1, W, 1|1, League, Creature - Bird, Martina Pilcerova, Flying +Elemental, 1, G W, *|*, -, Creature - Elemental, Mark Winters, This creature's power and toughness are each equal to the number of creatures you control. + +MMA - Modern Masters (2013-06-07) + +Giant Warrior, 1, W, 5|5, -, Creature - Giant Warrior, Svetlin Velinov, - +Kithkin Soldier, 2, W, 1|1, -, Creature - Kithkin Soldier, Randy Gallegos, - +Soldier, 3, W, 1|1, -, Creature - Soldier, Goran Josic, - +Illusion, 4, U, 1|1, -, Creature - Illusion, Veronique Meignaud, - +Bat, 5, B, 1|1, -, Creature - Bat, Wayne Reynolds, Flying +Goblin Rogue, 6, B, 1|1, -, Creature - Goblin Rogue, Dave Kendall, - +Spider, 7, B, 2|4, -, Creature - Spider, Lars Grant-West, Reach +Zombie, 8, B, 2|2, -, Creature - Zombie, Bud Cook, - +Dragon, 9, R, 4|4, -, Creature - Dragon, Vance Kovacs, Flying +Goblin, 10, R, 1|1, -, Creature - Goblin, Dave Kendall, - +Elemental, 11, G, 4|4, -, Creature - Elemental, Brandon Kitkouski, - +Saproling, 12, G, 1|1, -, Creature - Saproling, Warren Mahy, - +Treefolk Shaman, 13, G, 2|5, -, Creature - Treefolk Shaman, Zack Stella, - +Faerie Rogue, 14, U B, 1|1, -, Creature - Faerie Rogue, E. M. Gist, Flying +Worm, 15, B G, 1|1, -, Creature - Worm, Chuck Lukacs, - +Elspeth Emblem, 16, -, -, -, Emblem - Elspeth, Volkan Baga, Artifacts‚ creatures‚ enchantments‚ and lands you control have indestructible. + +M14 - Magic 2014 Core Set (2013-07-19) + +Sliver, 1, -, 1|1, -, Creature - Sliver, Igor Kieryluk, - +Angel, 1, W, 4|4, -, Creature - Angel, James Ryman, Flying +Cat, 3, W, 2|2, -, Creature - Cat, Jesper Ejsing, - +Goat, 4, W, -, -, Creature - Goat, Adam Paquette, - +Zombie, 5, B, 2|2, -, Creature - Zombie, Lucas Graciano, - +Dragon, 6, R, 2|2, -, Creature - Dragon, Jack Wang, Flying {R}: This creature gets +1/+0 until end of turn. +Elemental, 7, R, 1|1, -, Creature - Elemental, Jaime Jones, - +Elemental, 8, R, 1|1, -, Creature - Elemental, Winona Nelson, - +Beast, 9, G, 3|3, -, Creature - Beast, John Donahue, - +Saproling, 10, G, 1|1, -, Creature - Saproling, Brad Rigney, - +Wolf, 11, G, 2|2, -, Creature - Wolf, Lars Grant-West, - +Liliana Emblem, 12, -, -, -, Emblem - Liliana, D. Alexander Gregory, Swamps you control have Tap: Add {B}{B}{B}{B} to your mana pool.' +Garruk Emblem, 13, -, -, -, Emblem - Garruk, Karl Kopinski, Whenever you cast a creature spell‚ you may search your library for a creature card‚ put it onto the battlefield‚ then shuffle your library. +Sliver, T1, -, 1|1, League, Creature - Sliver, Vincent Proce, - + +DDL - Duel Decks: Heroes vs. Monsters (2013-09-06) + +Griffin, T1, W, 2|2, -, Creature - Griffin, Johann Bodin, Flying +Beast, T2, G, 3|3, -, Creature - Beast, Jesper Ejsing, - + +THS - Theros (2013-09-27) + +Golem, 1, -, 3|3, Judge, Enchantment Artifact Creature - Golem, Yeong-Hao Han, - +Soldier, 1, W, 1|1, League, Creature - Soldier, Johann Bodin, - +Cleric, 1, W, 2|1, -, Enchantment Creature - Cleric, Johann Bodin, - +Soldier, 2, W, 1|1, -, Creature - Soldier, Seb McKinnon, - +Soldier, 3, W, 1|1, -, Creature - Soldier, Svetlin Velinov, - +Bird, 4, U, 2|2, -, Creature - Bird, Peter Mohrbacher, Flying +Elemental, 5, U, 1|0, -, Creature - Elemental, Karl Kopinski, - +Harpy, 6, B, 1|1, -, Creature - Harpy, Nils Hamm, Flying +Soldier, 7, R, 1|1, -, Creature - Soldier, Johann Bodin, - +Boar, 8, G, 2|2, -, Creature - Boar, James Ryman, - +Satyr, 9, R G, 2|2, -, Creature - Satyr, Johann Bodin, - +Golem, 10, -, 3|3, -, Enchantment Artifact Creature - Golem, Yeong-Hao Han, - +Elspeth Emblem, 11, -, -, -, Emblem - Elspeth, Eric Deschamps, Creatures you control get +2/+2 and have flying. + +BNG - Born of the Gods (2014-02-07) + +Soldier, 1, W, 1|1, League, Enchantment Creature - Soldier, Ryan Barger, - +Bird, 1, W, 1|1, -, Creature - Bird, Clint Cearly, Flying +Cat Soldier, 2, W, 1|1, -, Creature - Cat Soldier, Scott Chou, Vigilance +Soldier, 3, W, 1|1, -, Enchantment Creature - Soldier, David Palumbo, - +Bird, 4, U, 2|2, -, Enchantment Creature - Bird, Mike Sass, Flying +Kraken, 5, U, 9|9, -, Creature - Kraken, Dan Scott, - +Zombie, 6, B, 2|2, -, Enchantment Creature - Zombie, Winona Nelson, - +Elemental, 7, R, 3|1, -, Enchantment Creature - Elemental, Greg Staples, - +Centaur, 8, G, 3|3, -, Enchantment Creature - Centaur, Ryan Barger, - +Wolf, 9, G, 2|2, -, Creature - Wolf, Raoul Vitale, - +Gold, 10, -, -, -, Artifact, Richard Wright, Sacrifice this artifact: Add one mana of any color to your mana pool. +Kiora Emblem, 11, -, -, -, Emblem - Kiora, Scott M. Fischer, At the beginning of your end step‚ put a 9/9 blue Kraken creature token onto the battlefield. + +DDM - Duel Decks: Jace vs. Vraska (2014-03-14) + +Assassin, T1, B, 1|1, -, Creature - Assassin, Svetlin Velinov, Whenever this creature deals combat damage to a player‚ that player loses the game. + +JOU - Journey into Nyx (2014-05-02) + +Minotaur, 1, R, 2|3, League, Creature - Minotaur, Scott Murphy, - +Sphinx, 1, U, 4|4, -, Creature - Sphinx, Jesper Ejsing, Flying +Zombie, 2, B, *|*, -, Creature - Zombie, Zack Stella, - +Minotaur, 3, R, 2|3, -, Creature - Minotaur, Craig J Spearing, - +Hydra, 4, G, *|*, -, Creature - Hydra, Steve Prescott, - +Spider, 5, G, 1|3, -, Enchantment Creature - Spider, Yohann Schepacz, Reach +Snake, 6, G B, 1|1, -, Enchantment Creature - Snake, Greg Staples, Deathtouch + +MD1 - Modern Event Deck 2014 (2014-05-30) + +Soldier, 1, W, 1|1, -, Creature - Soldier, Goran Josic, - +Spirit, 2, W, 1|1, -, Creature - Spirit, Kev Walker, Flying +Myr, 3, -, 1|1, -, Artifact Creature - Myr, Matt Stewart, - +Elspeth Emblem, 4, -, -, -, Emblem - Elspeth, Volkan Baga, Artifacts‚ creatures‚ enchantments‚ and lands you control have indestructible. + +CNS - Conspiracy (2014-06-06) + +Spirit, 1, W, 1|1, -, Creature - Spirit, Jeff Simpson, Flying +Demon, 2, B, *|*, -, Creature - Demon, Evan Shipard, Flying +Zombie, 3, B, 2|2, -, Creature - Zombie, Lucas Graciano, - +Ogre, 4, R, 4|4, -, Creature - Ogre, Dave Kendall, - +Elephant, 5, G, 3|3, -, Creature - Elephant, Lars Grant-West, - +Squirrel, 6, G, 1|1, -, Creature - Squirrel, Daniel Ljunggren, - +Wolf, 7, G, 2|2, -, Creature - Wolf, Raoul Vitale, - +Construct, 8, -, 1|1, -, Artifact Creature - Construct, Adam Paquette, Defender +Dack Emblem, 9, -, -, -, Emblem - Dack, Eric Deschamps, Whenever you cast a spell that targets one or more permanents‚ gain control of those permanents. + +M15 - Magic 2015 Core Set (2014-07-18) + +Wolf, 001, G, 1|1, Pre-Release, Creature - Wolf, David Palumbo, - +Sliver, 001, -, 1|1, -, Creature - Sliver, Igor Kieryluk, - +Squid, 001, U, 1|1, League, Creature - Squid, Richard Wright, Islandwalk +Soldier, 002, W, 1|1, -, Creature - Soldier, Greg Staples, - +Spirit, 003, W, 1|1, -, Creature - Spirit, Mike Sass, Flying +Squid, 004, U, 1|1, -, Creature - Squid, Jack Wang, Islandwalk +Beast, 005, B, 3|3, -, Creature - Beast, John Donahue, Deathtouch +Zombie, 006, B, 2|2, -, Creature - Zombie, Lucas Graciano, - +Dragon, 007, R, 2|2, -, Creature - Dragon, Jack Wang, Flying {R}: This creature gets +1/+0 until end of turn. +Goblin, 008, R, 1|1, -, Creature - Goblin, Karl Kopinski, - +Beast, 009, G, 3|3, -, Creature - Beast, Dave Kendall, - +Insect, 010, G, 1|1, -, Creature - Insect, Martina Pilcerova, Flying‚ deathtouch +Treefolk Warrior, 011, G, *|*, -, Creature - Treefolk Warrior, Todd Lockwood, This creature's power and toughness are each equal to the number of Forests you control. +Land Mine, 012, -, -, -, Artifact, Kev Walker, {R}‚ Sacrifice this artifact: This artifact deals 2 damage to target attacking creature without flying. +Ajani Emblem, 013, -, -, -, Emblem - Ajani, Chris Rahn, If a source would deal damage to you or a planeswalker you control‚ prevent all but 1 of that damage. +Garruk Emblem, 014, -, -, -, Emblem - Garruk, Tyler Jacobson, Whenever a creature attacks you‚ it gets +5/+5 and gains trample until end of turn. + +DDN - Duel Decks: Speed vs. Cunning (2014-09-05) + +Goblin, 082, R, 1|1, -, Creature - Goblin, Karl Kopinski, - + +KTK - Khans of Tarkir (2014-09-26) + +Warrior, 001, W, 1|1, League, Creature - Warrior, Winona Nelson, - +Bird, 001, W, 3|4, -, Creature - Bird, Mark Zug, Flying +Spirit, 002, W, 1|1, -, Creature - Spirit, Mike Sass, Flying +Warrior, 003, W, 1|1, -, Creature - Warrior, Ryan Barger, - +Warrior, 004, W, 1|1, -, Creature - Warrior, Yefim Kligerman, - +Vampire, 005, B, 2|2, -, Creature - Vampire, Cynthia Sheppard, Flying +Zombie, 006, B, 2|2, -, Creature - Zombie, Wayne Reynolds, - +Goblin, 007, R, 1|1, -, Creature - Goblin, Kev Walker, - +Bear, 008, G, 4|4, -, Creature - Bear, Kev Walker, - +Snake, 009, G, 1|1, -, Creature - Snake, Lars Grant-West, - +Spirit Warrior, 010, B G, *|*, -, Creature - Spirit Warrior, Ryan Alexander Lee, - +Morph, 011, -, 2|2, -, Creature, Raymond Swanland, (You can cover a face-down creature with this reminder card. A card with morph can be turned face up any time for its morph cost.) +Sarkhan Emblem, 012, -, -, -, Emblem - Sarkhan, Daarken, At the beginning of your draw step‚ draw two additional cards. At the beginning of your end step‚ discard your hand. +Sorin Emblem, 013, -, -, -, Emblem - Sorin, Cynthia Sheppard, At the beginning of each opponent's upkeep‚ that player sacrifices a creature. + +C14 - Commander 2014 (2014-11-07) + +Angel, 001, W, 4|4, -, Creature - Angel, Anthony Palumbo, Flying +Cat, 002, W, 2|2, -, Creature - Cat, Scott Chou, - +Goat, 003, W, -, -, Creature - Goat, Adam Paquette, - +Kor Soldier, 004, W, 1|1, -, Creature - Kor Soldier, Daren Bader, - +Pegasus, 005, W, 1|1, -, Creature - Pegasus, Greg Hildebrandt, Flying +Soldier, 006, W, 1|1, -, Creature - Soldier, Goran Josic, - +Spirit, 007, W, 1|1, -, Creature - Spirit, Ryan Yee, Flying +Fish, 008, U, 3|3, -, Creature - Fish, Dan Scott, When this creature dies‚ put a 6/6 blue Whale creature token onto the battlefield with "When this creature dies‚ put a 9/9 blue Kraken creature token onto the battlefield." +Kraken, 009, U, 9|9, -, Creature - Kraken, Dan Scott, - +Whale, 010, U, 6|6, -, Creature - Whale, Dan Scott, When this creature dies‚ put a 9/9 blue Kraken creature token onto the battlefield. +Zombie, 011, U, *|*, -, Creature - Zombie, Dave Kendall, - +Demon, 012, B, *|*, -, Creature - Demon, Pete Venters, Flying +Demon, 013, B, 5|5, -, Creature - Demon, Kev Walker, Flying +Germ, 014, B, -, -, Creature - Germ, Igor Kieryluk, - +Horror, 015, B, *|*, -, Creature - Horror, Jason Felix, - +Zombie, 016, B, 2|2, -, Creature - Zombie, Lucas Graciano, - +Goblin, 017, R, 1|1, -, Creature - Goblin, Dave Kendall, - +Ape, 018, G, 3|3, -, Creature - Ape, Lars Grant-West, - +Beast, 019, G, 3|3, -, Creature - Beast, Dave Allsop, - +Beast, 020, G, 4|4, -, Creature - Beast, Steve Prescott, - +Elemental, 021, G, 5|3, -, Creature - Elemental, Nils Hamm, - +Elephant, 022, G, 3|3, -, Creature - Elephant, Lars Grant-West, - +Elf Druid, 023, G, 1|1, -, Creature - Elf Druid, Raymond Swanland, {T}: Add {G} to your mana pool. +Elf Warrior, 024, G, 1|1, -, Creature - Elf Warrior, William O'Connor, - +Treefolk, 025, G, *|*, -, Creature - Treefolk, Filip Burburan, - +Wolf, 026, G, 2|2, -, Creature - Wolf, Daren Bader, - +Gargoyle, 027, -, 3|4, -, Artifact Creature - Gargoyle, Paul Bonner, Flying +Myr, 028, -, 1|1, -, Artifact Creature - Myr, Ryan Pancoast, - +Pentavite, 029, -, 1|1, -, Artifact Creature - Pentavite, Greg Staples, Flying +Stoneforged Blade, 030, -, -, -, Artifact - Equipment, Eric Deschamps, Indestructible Equipped creature gets +5/+5 and has double strike. Equip {0} +Tuktuk The Returned, 031, -, 5|5, -, Legendary Artifact Creature - Goblin Golem, Franz Vohwinkel, - +Wurm, 032, -, 3|3, -, Artifact Creature - Wurm, Raymond Swanland, Deathtouch +Wurm, 033, -, 3|3, -, Artifact Creature - Wurm, Raymond Swanland, Lifelink +Teferi Emblem, 034, -, -, -, Emblem - Teferi, Tyler Jacobson, You may activate loyalty abilities of planeswalkers you control on any player's turn any time you could cast an instant. +Nixilis Emblem, 035, -, -, -, Emblem - Nixilis, Daarken, {1}{B}‚ Sacrifice a creature: You gain X life and draw X cards‚ where X is the sacrificed creature's power. +Daretti Emblem, 036, -, -, -, Emblem - Daretti, Dan Scott, Whenever an artifact is put into your graveyard from the battlefield‚ return that card to the battlefield at the beginning of the next end step. + +DD3_EVG - Duel Decks Anthology‚ Elves vs. Goblins (2014-12-05) + +Elemental, 001, G, 7|7, -, Creature - Elemental, Anthony S. Waters, Trample +Elf Warrior, 002, G, 1|1, -, Creature - Elf Warrior, Dominick Domingo, - +Goblin, 003, R, 1|1, -, Creature - Goblin, Dave Kendall, - + +DD3_JVC - Duel Decks Anthology‚ Jace vs. Chandra (2014-12-05) + +Elemental Shaman, 004, R, 3|1, -, Creature - Elemental Shaman, Jim Pavelec, - + +DD3_DVD - Duel Decks Anthology‚ Divine vs. Demonic (2014-12-05) + +Spirit, 005, W, 1|1, -, Creature - Spirit, Luca Zontini, Flying +Demon, 006, B, *|*, -, Creature - Demon, Pete Venters, Flying +Thrull, 007, B, -, -, Creature - Thrull, Veronique Meignaud, - + +DD3_GVL - Duel Decks Anthology‚ Garruk vs. Liliana (2014-12-05) + +Beast, 008, G, 3|3, -, Creature - Beast, John Donahue, - +Beast, 009, G, 4|4, -, Creature - Beast, Steve Prescott, - +Elephant, 010, G, 3|3, -, Creature - Elephant, Arnie Swekel, - +Bat, 011, B, 1|1, -, Creature - Bat, Wayne Reynolds, Flying + +FRF - Fate Reforged (2015-01-23) + +Monk, 001, W, 1|1, -, Creature - Monk, Steven Belledin, Prowess +Monk, 001T, W, 1|1, League, Creature - Monk, Magali Villeneuve, Prowess +Spirit, 002, W, 1|1, -, Creature - Spirit, Aaron Miller, Flying +Warrior, 003, B, 2|1, -, Creature - Warrior, Zoltan Boros, - +Manifest, 004, -, 2|2, -, Creature, Raymond Swanland, (You can cover a face-down manifested creature with this reminder card. A manifested creature card can be turned face up any time for its mana cost. A face-down card can also be turned face up for its morph cost.) + +DDO - Duel Decks: Elspeth vs. Kiora (2015-02-27) + +Soldier, 066, W, 1|1, -, Creature - Soldier, Svetlin Velinov, - +Kraken, 067, U, 9|9, -, Creature - Kraken, Dan Scott, - + +DTK - Dragons of Tarkir (2015-03-27) + +Warrior, 001, W, 1|1, -, Creature - Warrior, Aaron Miller, - +Djinn Monk, 002, U, 2|2, -, Creature - Djinn Monk, Izzy, Flying +Zombie, 003, B, 2|2, -, Creature - Zombie, Vincent Proce, - +Zombie Horror, 004, B, *|*, -, Creature - Zombie Horror, Nils Hamm, - +Dragon, 005, R, 4|4, -, Creature - Dragon, Gabor Szikszai, Flying +Goblin, 006, R, 1|1, -, Creature - Goblin, Mike Bierek, - +Morph, 007, -, 2|2, -, Creature, Raymond Swanland, (You can cover a face-down creature with this reminder card. A card with morph can be turned face up any time for its morph cost.) +Narset Emblem, 008, -, -, -, Emblem - Narset, Magali Villeneuve, Your opponents can't cast noncreature spells. + +MM2 - Modern Masters 2015 Edition (2015-05-22) + +Eldrazi Spawn, 001, -, -, -, Creature - Eldrazi Spawn, Aleksi Briclot, Sacrifice this creature: Add {1} to your mana pool. +Eldrazi Spawn, 002, -, -, -, Creature - Eldrazi Spawn, Mark Tedin, Sacrifice this creature: Add {1} to your mana pool. +Eldrazi Spawn, 003, -, -, -, Creature - Eldrazi Spawn, Veronique Meignaud, Sacrifice this creature: Add {1} to your mana pool. +Soldier, 004, W, 1|1, -, Creature - Soldier, Greg Staples, - +Spirit, 005, W, 1|1, -, Creature - Spirit, Mike Sass, Flying +Faerie Rogue, 006, B, 1|1, -, Creature - Faerie Rogue, Dave Allsop, Flying +Germ, 007, B, -, -, Creature - Germ, Igor Kieryluk, - +Thrull, 008, B, 1|1, -, Creature - Thrull, Mark Tedin, - +Elephant, 009, G, 3|3, -, Creature - Elephant, Lars Grant-West, - +Insect, 010, G, 1|1, -, Creature - Insect, Ron Spencer, - +Saproling, 011, G, 1|1, -, Creature - Saproling, Warren Mahy, - +Snake, 012, G, 1|1, -, Creature - Snake, Austin Hsu, - +Wolf, 013, G, 2|2, -, Creature - Wolf, Daren Bader, - +Worm, 014, B G, 1|1, -, Creature - Worm, Chuck Lukacs, - +Golem, 015, -, 3|3, -, Artifact Creature - Golem, Nic Klein, - +Myr, 016, -, 1|1, -, Artifact Creature - Myr, Ryan Pancoast, - + +ORI - Magic Origins (2015-07-17) + +Angel, 001, W, 4|4, -, Creature - Angel, Cyril Van Der Haegen, Flying +Knight, 002, W, 2|2, -, Creature - Knight, Matt Stewart, Vigilance +Soldier, 003, W, 1|1, -, Creature - Soldier, Steve Prescott, - +Demon, 004, B, 5|5, -, Creature - Demon, Kev Walker, Flying +Zombie, 005, B, 2|2, -, Creature - Zombie, Lucas Graciano, - +Goblin, 006, R, 1|1, -, Creature - Goblin, Brandon Kitkouski, - +Ashaya‚ the Awoken World, 007, G, 4|4, -, Legendary Creature - Elemental, Raymond Swanland, - +Elemental, 008, G, 2|2, -, Creature - Elemental, Marco Nelor, - +Elf Warrior, 009, G, 1|1, -, Creature - Elf Warrior, William O'Connor, - +Thopter, 010, -, 1|1, -, Artifact Creature - Thopter, Adam Paquette, Flying +Thopter, 011, -, 1|1, -, Artifact Creature - Thopter, Svetlin Velinov, Flying +Jace Emblem, 012, -, -, -, Emblem - Jace, Jaime Jones, Whenever you cast a spell‚ target opponent puts the top five cards of his or her library into his or her graveyard. +Liliana Emblem, 013, -, -, -, Emblem - Liliana, Karla Ortiz, Whenever a creature dies‚ return it to the battlefield under your control at the beginning of the next end step. +Chandra Emblem, 014, -, -, -, Emblem - Chandra, Eric Deschamps, At the beginning of your upkeep‚ this emblem deals 3 damage to you. + +DDP - Duel Decks: Zendikar vs. Eldrazi (2015-08-28) + +Eldrazi Spawn, 076, -, -, -, Creature - Eldrazi Spawn, Aleksi Briclot, Sacrifice this creature: Add {1} to your mana pool. +Eldrazi Spawn, 077, -, -, -, Creature - Eldrazi Spawn, Veronique Meignaud, Sacrifice this creature: Add {1} to your mana pool. +Eldrazi Spawn, 078, -, -, -, Creature - Eldrazi Spawn, Mark Tedin, Sacrifice this creature: Add {1} to your mana pool. +Hellion, 079, R, 4|4, -, Creature - Hellion, Anthony Francisco, - +Plant, 080, G, -, -, Creature - Plant, Daren Bader, - + +BFZ - Battle for Zendikar (2015-10-09) + +Eldrazi, 001, -, 10|10, -, Creature - Eldrazi, Jack Wang, - +Eldrazi Scion, 002, -, 1|1, -, Creature - Eldrazi Scion, Izzy, Sacrifice this creature: Add {1} to your mana pool. +Eldrazi Scion, 003, -, 1|1, -, Creature - Eldrazi Scion, Winona Nelson, Sacrifice this creature: Add {1} to your mana pool. +Eldrazi Scion, 004, -, 1|1, -, Creature - Eldrazi Scion, Svetlin Velinov, Sacrifice this creature: Add {1} to your mana pool. +Knight Ally, 005, W, 2|2, -, Creature - Knight Ally, Josu Hernaiz, - +Kor Ally, 006, W, 1|1, -, Creature - Kor Ally, Jeremy Wilson, - +Octopus, 007, U, 8|8, -, Creature - Octopus, Craig J Spearing, - +Dragon, 008, R, 5|5, -, Creature - Dragon, Raymond Swanland, Flying +Plant, 009, G, 1|1, -, Creature - Plant, Sam Burley, - +Elemental, 009, R, 3|1, -, Creature - Elemental, Victor Adame Minguez, Trample‚ Haste +Elemental, 011, G R, 5|5, -, Creature - Elemental, Brad Rigney, - +Gideon Emblem, 012, -, -, -, Emblem - Gideon, Eric Deschamps, - +Nixilis Emblem, 013, -, -, -, Emblem - Nixilis, Chris Rahn, - +Kiora Emblem, 014, -, -, -, Emblem - Kiora, Jason Chan, - + +C15 - Commander 2015 (2015-11-13) + +Shapeshifter, 001, -, 1|1, -, Creature - Shapeshifter, Franz Vohwinkel, Changeling +Angel, 002, W, 4|4, -, Creature - Angel, Cyril Van Der Haegen, Flying +Cat, 003, W, 2|2, -, Creature - Cat, Jesper Ejsing, - +Knight, 004, W, 2|2, -, Creature - Knight, Hideaki Takamura, First strike +Knight, 005, W, 2|2, -, Creature - Knight, Matt Stewart, Vigilance +Drake, 006, U, 2|2, -, Creature - Drake, Svetlin Velinov, Flying +Germ, 007, B, -, -, Creature - Germ, Igor Kieryluk, - +Zombie, 008, B, 2|2, -, Creature - Zombie, Lucas Graciano, - +Dragon, 009, R, 5|5, -, Creature - Dragon, Jim Pavelec, Flying +Elemental Shaman, 010, R, 3|1, -, Creature - Elemental Shaman, Jim Pavelec, - +Lightning Rager, 011, R, 5|1, -, Creature - Elemental, Svetlin Velinov, Trample‚ Haste At the beginning of your end step‚ sacrifice this creature. +Bear, 012, G, 2|2, -, Creature - Bear, Heather Hudson, - +Beast, 013, G, 4|4, -, Creature - Beast, Svetlin Velinov, - +Elephant, 014, G, 3|3, -, Creature - Elephant, Lars Grant-West, - +Frog Lizard, 015, G, 3|3, -, Creature - Frog Lizard, Jack Wang, - +Saproling, 016, G, 1|1, -, Creature - Saproling, Brad Rigney, - +Snake, 017, G, 1|1, -, Creature - Snake, Dan Scott, - +Spider, 018, G, 1|2, -, Creature - Spider, Daniel Ljunggren, Reach +Wolf, 019, G, 2|2, -, Creature - Wolf, David Palumbo, - +Elemental, 020, U R, 5|5, -, Creature - Elemental, Randy Gallegos, Flying +Snake, 021, G U, 1|1, -, Creature - Snake, Christopher Moeller, - +Spirit, 022, W B, 1|1, -, Creature - Spirit, Cliff Childs, Flying +Spirit, 023, -, *|*, -, Enchantment Creature - Spirit, Adam Paquette, This creature's power and toughness are each equal to the number of experience counters you have. +Gold, 024, -, -, -, Artifact, Richard Wright, Sacrifice this artifact: Add one mana of any color to your mana pool. diff --git a/Mage.Client/src/test/java/mage/client/game/TokensMtgImageSourceTest.java b/Mage.Client/src/test/java/mage/client/game/TokensMtgImageSourceTest.java new file mode 100644 index 00000000000..b33b81d0b99 --- /dev/null +++ b/Mage.Client/src/test/java/mage/client/game/TokensMtgImageSourceTest.java @@ -0,0 +1,32 @@ +package mage.client.game; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; +import org.mage.plugins.card.dl.sources.CardImageSource; +import org.mage.plugins.card.dl.sources.TokensMtgImageSource; +import org.mage.plugins.card.images.CardDownloadData; + +/** + * + * @author Quercitron + */ +@Ignore +public class TokensMtgImageSourceTest { + + @Test + public void generateTokenUrlTest() throws Exception { + CardImageSource imageSource = TokensMtgImageSource.getInstance(); + + String url = imageSource.generateTokenUrl(new CardDownloadData("Thopter", "ORI", 0, false, 1, "ORI")); + Assert.assertEquals("http://tokens.mtg.onl/tokens/ORI_010-Thopter.jpg", url); + url = imageSource.generateTokenUrl(new CardDownloadData("Thopter", "ORI", 0, false, 2, "ORI")); + Assert.assertEquals("http://tokens.mtg.onl/tokens/ORI_011-Thopter.jpg", url); + + url = imageSource.generateTokenUrl(new CardDownloadData("Ashaya, the Awoken World", "ORI", 0, false, 0, "ORI")); + Assert.assertEquals("http://tokens.mtg.onl/tokens/ORI_007-Ashaya,-the-Awoken-World.jpg", url); + + url = imageSource.generateTokenUrl(new CardDownloadData("Emblem Gideon, Ally of Zendikar", "BFZ", 0, false, 0, null)); + Assert.assertEquals("http://tokens.mtg.onl/tokens/BFZ_012-Gideon-Emblem.jpg", url); + } +}