From 0c1cccbd031db7c75c88ba5fc3a1d3adb46269fc Mon Sep 17 00:00:00 2001 From: North Date: Sat, 28 Apr 2012 11:26:09 +0300 Subject: [PATCH] Added Avacyn Restored set --- .../java/mage/client/cards/CardsStorage.java | 9 +- .../plugins/card/dl/sources/GathererSets.java | 6 +- .../dl/sources/MagicCardsImageSource.java | 4 +- .../dl/sources/WizardCardsImageSource.java | 8 +- Mage.Client/src/main/resources/avr.txt | 244 ++++++++++++++++++ Mage.Client/src/main/resources/dka.txt | 171 ------------ Mage.Sets/src/mage/sets/AvacynRestored.java | 56 ++++ Mage.Sets/src/mage/sets/Sets.java | 1 + Utils/known-sets.txt | 3 +- Utils/mtg-sets-data.txt | 25 +- 10 files changed, 327 insertions(+), 200 deletions(-) create mode 100644 Mage.Client/src/main/resources/avr.txt delete mode 100644 Mage.Client/src/main/resources/dka.txt create mode 100644 Mage.Sets/src/mage/sets/AvacynRestored.java diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsStorage.java b/Mage.Client/src/main/java/mage/client/cards/CardsStorage.java index 92970440bd..e7991fdb0d 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsStorage.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardsStorage.java @@ -1,15 +1,13 @@ package mage.client.cards; +import java.io.InputStream; +import java.util.*; import mage.Constants; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.ExpansionSet; import mage.sets.Sets; import mage.utils.CardUtil; - -import java.io.InputStream; -import java.util.*; - import org.apache.log4j.Logger; /** @@ -179,10 +177,9 @@ public class CardsStorage { readUnimplemented("ZEN", "/zen.txt", names, cards); readUnimplemented("WWK", "/wwk.txt", names, cards); readUnimplemented("ROE", "/roe.txt", names, cards); - readUnimplemented("DKA", "/dka.txt", names, cards); + readUnimplemented("AVR", "/avr.txt", names, cards); names.clear(); - names = null; } return cards; } diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GathererSets.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GathererSets.java index 7afa4cbdfb..3305f17a93 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GathererSets.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GathererSets.java @@ -1,12 +1,10 @@ package org.mage.plugins.card.dl.sources; -import org.mage.plugins.card.dl.DownloadJob; - import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; - +import org.mage.plugins.card.dl.DownloadJob; import static org.mage.plugins.card.dl.DownloadJob.fromURL; import static org.mage.plugins.card.dl.DownloadJob.toFile; @@ -17,7 +15,7 @@ public class GathererSets implements Iterable { private static File outDir = DEFAULT_OUT_DIR; private static final String[] symbols = {"10E", "HOP", "TMP", "INV", "PLS", "APC", "MRD", "DST", "5DN", "CHK", "BOK", "SOK", "RAV", "GPT", "DIS", "TSP", "TSB", "PLC", "FUT", "LRW", "MOR", "SHM", "EVE", "USG", "9ED", "8ED", "ONS"}; - private static final String[] withMythics = {"M10", "M11", "M12", "DDF", "ALA", "CFX", "ARB", "ZEN", "WWK", "ROE", "SOM", "MBS", "NPH", "ISD", "DKA"}; + private static final String[] withMythics = {"M10", "M11", "M12", "DDF", "ALA", "CFX", "ARB", "ZEN", "WWK", "ROE", "SOM", "MBS", "NPH", "ISD", "DKA", "AVR"}; private static final HashMap symbolsReplacements = new HashMap(); static { 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 9b5669e38b..d1ab4757e0 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 @@ -1,9 +1,8 @@ package org.mage.plugins.card.dl.sources; -import org.mage.plugins.card.utils.CardImageUtils; - import java.util.HashMap; import java.util.Map; +import org.mage.plugins.card.utils.CardImageUtils; /** * @@ -15,6 +14,7 @@ public class MagicCardsImageSource implements CardImageSource { private static final Map setNameReplacement = new HashMap() { { + put("AVR", "avacyn-restored"); put("DKA", "dark-ascension"); put("ISD", "innistrad"); put("DDH", "duel-decks-ajani-vs-nicol-bolas"); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java index b5230ec9c6..6649221447 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java @@ -1,12 +1,11 @@ package org.mage.plugins.card.dl.sources; -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.select.Elements; - import java.io.IOException; import java.util.HashMap; import java.util.Map; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.select.Elements; /** * @@ -28,6 +27,7 @@ public class WizardCardsImageSource implements CardImageSource { public WizardCardsImageSource() { sets = new HashMap(); setsAliases = new HashMap(); + setsAliases.put("AVR", "avacynrestored/cig"); setsAliases.put("DKA", "darkascension/cig"); setsAliases.put("ISD", "innistrad/cig"); setsAliases.put("M12", "magic2012/cig"); diff --git a/Mage.Client/src/main/resources/avr.txt b/Mage.Client/src/main/resources/avr.txt new file mode 100644 index 0000000000..c28558253b --- /dev/null +++ b/Mage.Client/src/main/resources/avr.txt @@ -0,0 +1,244 @@ +1|Angel of Glory's Rise +2|Angel of Jubilation +3|Angel's Mercy +4|Angelic Wall +5|Archangel +6|Avacyn, Angel of Hope +7|Banishing Stroke +8|Builder's Blessing +9|Call to Serve +10|Cathars' Crusade +11|Cathedral Sanctifier +12|Cloudshift +13|Commander's Authority +14|Cursebreak +15|Defang +16|Defy Death +17|Devout Chaplain +18|Divine Deflection +19|Emancipation Angel +20|Entreat the Angels +21|Farbog Explorer +22|Goldnight Commander +23|Goldnight Redeemer +24|Herald of War +25|Holy Justiciar +26|Leap of Faith +27|Midnight Duelist +28|Midvast Protector +29|Moonlight Geist +30|Moorland Inquisitor +31|Nearheath Pilgrim +32|Restoration Angel +33|Riders of Gavony +34|Righteous Blow +35|Seraph of Dawn +36|Silverblade Paladin +37|Spectral Gateguards +38|Terminus +39|Thraben Valiant +40|Voice of the Provinces +41|Zealous Strike +42|Alchemist's Apprentice +43|Amass the Components +44|Arcane Melee +45|Captain of the Mists +46|Crippling Chill +47|Deadeye Navigator +48|Devastation Tide +49|Dreadwaters +50|Elgaud Shieldmate +51|Favorable Winds +52|Fettergeist +53|Fleeting Distraction +54|Galvanic Alchemist +55|Geist Snatch +56|Ghostform +57|Ghostly Flicker +58|Ghostly Touch +59|Gryff Vanguard +60|Havengul Skaab +61|Infinite Reflection +62|Into the Void +63|Latch Seeker +64|Lone Revenant +65|Lunar Mystic +66|Mass Appeal +67|Mist Raven +68|Misthollow Griffin +69|Nephalia Smuggler +70|Outwit +71|Peel from Reality +72|Rotcrown Ghoul +73|Scrapskin Drake +74|Second Guess +75|Spectral Prison +76|Spirit Away +77|Stern Mentor +78|Stolen Goods +79|Tamiyo, the Moon Sage +80|Tandem Lookout +81|Temporal Mastery +82|Vanishment +83|Wingcrafter +84|Appetite for Brains +85|Barter in Blood +86|Blood Artist +87|Bloodflow Connoisseur +88|Bone Splinters +89|Butcher Ghoul +90|Corpse Traders +91|Crypt Creeper +92|Dark Impostor +93|Death Wind +94|Demonic Rising +95|Demonic Taskmaster +96|Demonlord of Ashmouth +97|Descent into Madness +98|Dread Slaver +99|Driver of the Dead +100|Essence Harvest +101|Evernight Shade +102|Exquisite Blood +103|Ghoulflesh +104|Gloom Surgeon +105|Grave Exchange +106|Griselbrand +107|Harvester of Souls +108|Homicidal Seclusion +109|Human Frailty +110|Hunted Ghoul +111|Killing Wave +112|Maalfeld Twins +113|Marrow Bats +114|Mental Agony +115|Necrobite +116|Polluted Dead +117|Predator's Gambit +118|Renegade Demon +119|Searchlight Geist +120|Soulcage Fiend +121|Treacherous Pit-Dweller +122|Triumph of Cruelty +123|Undead Executioner +124|Unhallowed Pact +125|Aggravate +126|Archwing Dragon +127|Banners Raised +128|Battle Hymn +129|Bonfire of the Damned +130|Burn at the Stake +131|Dangerous Wager +132|Demolish +133|Dual Casting +134|Falkenrath Exterminator +135|Fervent Cathar +136|Gang of Devils +137|Guise of Fire +138|Hanweir Lancer +139|Havengul Vampire +140|Heirs of Stromkirk +141|Hound of Griselbrand +142|Kessig Malcontents +143|Kruin Striker +144|Lightning Mauler +145|Lightning Prowess +146|Mad Prophet +147|Malicious Intent +148|Malignus +149|Pillar of Flame +150|Raging Poltergeist +151|Reforge the Soul +152|Riot Ringleader +153|Rite of Ruin +154|Rush of Blood +155|Scalding Devil +156|Somberwald Vigilante +157|Stonewright +158|Thatcher Revolt +159|Thunderbolt +160|Thunderous Wrath +161|Tibalt, the Fiend-Blooded +162|Tyrant of Discord +163|Uncanny Speed +164|Vexing Devil +165|Vigilante Justice +166|Zealous Conscripts +167|Abundant Growth +168|Blessings of Nature +169|Borderland Ranger +170|Bower Passage +171|Champion of Lambholt +172|Craterhoof Behemoth +173|Descendants' Path +174|Diregraf Escort +175|Druid's Familiar +176|Druids' Repository +177|Eaten by Spiders +178|Flowering Lumberknot +179|Geist Trappers +180|Gloomwidow +181|Grounded +182|Howlgeist +183|Joint Assault +184|Lair Delve +185|Natural End +186|Nettle Swine +187|Nightshade Peddler +188|Pathbreaker Wurm +189|Primal Surge +190|Rain of Thorns +191|Revenge of the Hunted +192|Sheltering Word +193|Snare the Skies +194|Somberwald Sage +195|Soul of the Harvest +196|Terrifying Presence +197|Timberland Guide +198|Triumph of Ferocity +199|Trusted Forcemage +200|Ulvenwald Tracker +201|Vorstclaw +202|Wandering Wolf +203|Wild Defiance +204|Wildwood Geist +205|Wolfir Avenger +206|Wolfir Silverheart +207|Yew Spirit +208|Bruna, Light of Alabaster +209|Gisela, Blade of Goldnight +210|Sigarda, Host of Herons +211|Angel's Tomb +212|Angelic Armaments +213|Bladed Bracers +214|Conjurer's Closet +215|Gallows at Willow Hill +216|Haunted Guardian +217|Moonsilver Spear +218|Narstad Scrapper +219|Otherworld Atlas +220|Scroll of Avacyn +221|Scroll of Griselbrand +222|Tormentor's Trident +223|Vanguard's Shield +224|Vessel of Endless Rest +225|Alchemist's Refuge +226|Cavern of Souls +227|Desolate Lighthouse +228|Seraph Sanctuary +229|Slayers' Stronghold +230|Plains +231|Plains +232|Plains +233|Island +234|Island +235|Island +236|Swamp +237|Swamp +238|Swamp +239|Mountain +240|Mountain +241|Mountain +242|Forest +243|Forest +244|Forest \ No newline at end of file diff --git a/Mage.Client/src/main/resources/dka.txt b/Mage.Client/src/main/resources/dka.txt deleted file mode 100644 index 020009871e..0000000000 --- a/Mage.Client/src/main/resources/dka.txt +++ /dev/null @@ -1,171 +0,0 @@ -1|Archangel's Light -2|Bar the Door -3|Break of Day -4|Burden of Guilt -5|Curse of Exhaustion -6|Elgaud Inquisitor -7|Faith's Shield -8|Gather the Townsfolk -9|Gavony Ironwright -10|Hollowhenge Spirit -11|Increasing Devotion -12|Lingering Souls -13a|Loyal Cathar -13b|Unhallowed Cathar -14|Midnight Guard -15|Niblis of the Mist -16|Niblis of the Urn -17|Ray of Revelation -18|Requiem Angel -19|Sanctuary Cat -20|Seance -21|Silverclaw Griffin -22|Skillful Lunge -23|Sudden Disappearance -24|Thalia, Guardian of Thraben -25|Thraben Doomsayer -26|Thraben Heretic -27|Artful Dodge -28|Beguiler of Wills -29|Bone to Ash -30|Call to the Kindred -31|Chant of the Skifsang -32|Chill of Foreboding -33|Counterlash -34|Curse of Echoes -35|Divination -36|Dungeon Geists -37|Geralf's Mindcrusher -38|Griptide -39|Havengul Runebinder -40|Headless Skaab -41|Increasing Confusion -42|Mystic Retrieval -43|Nephalia Seakite -44|Niblis of the Breath -45|Relentless Skaabs -46|Saving Grasp -47|Screeching Skaab -48|Secrets of the Dead -49|Shriekgeist -50a|Soul Seizer -50b|Ghastly Haunting -51|Stormbound Geist -52|Thought Scour -53|Tower Geist -54|Black Cat -55a|Chosen of Markov -55b|Markov's Servant -56|Curse of Misfortunes -57|Curse of Thirst -58|Deadly Allure -59|Death's Caress -60|Falkenrath Torturer -61|Farbog Boneflinger -62|Fiend of the Shadows -63|Geralf's Messenger -64|Gravecrawler -65|Gravepurge -66|Gruesome Discovery -67|Harrowing Journey -68|Highborn Ghoul -69|Increasing Ambition -70|Mikaeus, the Unhallowed -71a|Ravenous Demon -71b|Archdemon of Greed -72|Reap the Seagraf -73|Sightless Ghoul -74|Skirsdag Flayer -75|Spiteful Shadows -76|Tragic Slip -77|Undying Evil -78|Vengeful Vampire -79|Wakedancer -80|Zombie Apocalypse -81a|Afflicted Deserter -81b|Werewolf Ransacker -82|Alpha Brawl -83|Blood Feud -84|Burning Oil -85|Curse of Bloodletting -86|Erdwal Ripper -87|Faithless Looting -88|Fires of Undeath -89|Flayer of the Hatebound -90|Fling -91|Forge Devil -92|Heckling Fiends -93|Hellrider -94a|Hinterland Hermit -94b|Hinterland Scourge -95|Increasing Vengeance -96|Markov Blademaster -97|Markov Warlord -98a|Mondronen Shaman -98b|Tovolar's Magehunter -99|Moonveil Dragon -100|Nearheath Stalker -101|Pyreheart Wolf -102|Russet Wolves -103|Scorch the Fields -104|Shattered Perception -105|Talons of Falkenrath -106|Torch Fiend -107|Wrack with Madness -108|Briarpack Alpha -109|Clinging Mists -110|Crushing Vines -111|Dawntreader Elk -112|Deranged Outcast -113|Favor of the Woods -114|Feed the Pack -115|Ghoultree -116|Gravetiller Wurm -117|Grim Flowering -118|Hollowhenge Beast -119|Hunger of the Howlpack -120|Increasing Savagery -121|Kessig Recluse -122a|Lambholt Elder -122b|Silverpelt Werewolf -123|Lost in the Woods -124|Predator Ooze -125a|Scorned Villager -125b|Moonscarred Werewolf -126|Somberwald Dryad -127|Strangleroot Geist -128|Tracker's Instincts -129|Ulvenwald Bear -130|Village Survivors -131|Vorapede -132|Wild Hunger -133a|Wolfbitten Captive -133b|Krallenhorde Killer -134|Young Wolf -135|Diregraf Captain -136|Drogskol Captain -137|Drogskol Reaver -138|Falkenrath Aristocrat -139|Havengul Lich -140a|Huntmaster of the Fells -140b|Ravager of the Fells -141|Immerwolf -142|Sorin, Lord of Innistrad -143|Stromkirk Captain -144|Altar of the Lost -145|Avacyn's Collar -146a|Chalice of Life -146b|Chalice of Death -147a|Elbrus, the Binding Blade -147b|Withengar Unbound -148|Executioner's Hood -149|Grafdigger's Cage -150|Heavy Mattock -151|Helvault -152|Jar of Eyeballs -153|Warden of the Wall -154|Wolfhunter's Quiver -155|Evolving Wilds -156|Grim Backwoods -157|Haunted Fengraf -158|Vault of the Archangel \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/AvacynRestored.java b/Mage.Sets/src/mage/sets/AvacynRestored.java new file mode 100644 index 0000000000..d24c5c12f3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/AvacynRestored.java @@ -0,0 +1,56 @@ +/* + * Copyright 2011 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 mage.sets; + +import java.util.GregorianCalendar; +import mage.Constants.SetType; +import mage.cards.ExpansionSet; + +/** + * + * @author North + */ +public class AvacynRestored extends ExpansionSet { + + private static final AvacynRestored fINSTANCE = new AvacynRestored(); + + public static AvacynRestored getInstance() { + return fINSTANCE; + } + + private AvacynRestored() { + super("Avacyn Restored", "AVR", "seticon_mtgavr", "mage.sets.avacynrestored", new GregorianCalendar(2012, 4, 4).getTime(), SetType.EXPANSION); + this.blockName = "Innistrad"; + this.hasBoosters = true; + this.numBoosterLands = 1; + this.numBoosterCommon = 10; + this.numBoosterUncommon = 3; + this.numBoosterRare = 1; + this.ratioBoosterMythic = 8; + } +} diff --git a/Mage.Sets/src/mage/sets/Sets.java b/Mage.Sets/src/mage/sets/Sets.java index 5481cb9148..6d891ba1bc 100644 --- a/Mage.Sets/src/mage/sets/Sets.java +++ b/Mage.Sets/src/mage/sets/Sets.java @@ -69,6 +69,7 @@ public class Sets extends HashMap { creatureTypes = new TreeSet(); this.addSet(AlaraReborn.getInstance()); this.addSet(Apocalypse.getInstance()); + this.addSet(AvacynRestored.getInstance()); this.addSet(BetrayersOfKamigawa.getInstance()); this.addSet(ChampionsOfKamigawa.getInstance()); this.addSet(Conflux.getInstance()); diff --git a/Utils/known-sets.txt b/Utils/known-sets.txt index 5d9e1dad3d..facf3ab8c6 100644 --- a/Utils/known-sets.txt +++ b/Utils/known-sets.txt @@ -40,4 +40,5 @@ Scars of Mirrodin|scarsofmirrodin| Mirrodin Besieged|mirrodinbesieged| New Phyrexia|newphyrexia| Innistrad|innistrad| -Dark Ascension|darkascension| \ No newline at end of file +Dark Ascension|darkascension| +Avacyn Restored|avacynrestored| \ No newline at end of file diff --git a/Utils/mtg-sets-data.txt b/Utils/mtg-sets-data.txt index 86be42226c..3e04fa1029 100644 --- a/Utils/mtg-sets-data.txt +++ b/Utils/mtg-sets-data.txt @@ -1,4 +1,3 @@ -Tenth Edition|10E| Unlimited Edition|2ED| Revised Edition|3ED| Fourth Edition|4ED| @@ -7,12 +6,15 @@ Fifth Edition|5ED| Classic Sixth Edition|6ED| Seventh Edition|7ED| Eighth Edition|8ED| +Tenth Edition|10E| Alliances|ALL| Apocalypse|APC| Alara Reborn|ARB| Arabian Nights|ARN| Anthologies|ATH| Antiquities|ATQ| +Archenemy|ARC| +Avacyn Restored|AVR| Betrayers of Kamigawa|BOK| Battle Royale Box Set|BRB| Beatdown Box Set|BTD| @@ -26,6 +28,7 @@ Dissension|DIS| Deckmasters|DKM| The Dark|DRK| Duel Decks: Divine vs. Demonic|DVD| +Duel Decks: Elspeth vs. Tezzeret|DDF| Duel Decks: Elves vs. Goblins|EVG| Duel Decks: Garruk vs. Liliana|GVL| Duel Decks: Jace vs. Chandra|JVC| @@ -36,6 +39,7 @@ Fallen Empires|FEM| Future Sight|FUT| From the Vault: Dragons|FVD| From the Vault: Exiled|FVE| +From the Vault: Relics|FVR| Guildpact|GPT| Homelands|HML| Planechase|HOP| @@ -51,6 +55,7 @@ Lorwyn|LRW| Magic 2010|M10| Magic 2011|M11| Magic 2012|M12| +Magic: The Gathering-Commander|CMD| Masters Edition II|ME2| Masters Edition III|ME3| Masters Edition IV|ME4| @@ -59,6 +64,9 @@ Mirage|MIR| Mercadian Masques|MMQ| Morningtide|MOR| Mirrodin|MRD| +Mirrodin Besieged|MBS| +MTGO Vanguard|VGO| +New Phyrexia|NPH| Ninth Edition|9ED| Nemesis|NEM| Odyssey|ODY| @@ -73,12 +81,13 @@ Premium Deck Series: Fire and Lightning|PD2| Premium Deck Series: Slivers|PDS| Ravnica: City of Guilds|RAV| Rise of the Eldrazi|ROE| -Starter 2000|S00| -Starter 1999|S99| +Scars of Mirrodin|SOM| Scourge|SCG| Shadowmoor|SHM| Shards of Alara|ALA| Saviors of Kamigawa|SOK| +Starter 2000|S00| +Starter 1999|S99| Stronghold|STH| Tempest|TMP| Torment|TOR| @@ -93,15 +102,7 @@ Vanguard Set 1|VG1| Vanguard Set 2|VG2| Vanguard Set 3|VG3| Vanguard Set 4|VG4| -MTGO Vanguard|VGO| Visions|VIS| Weatherlight|WTH| Worldwake|WWK| -Zendikar|ZEN| -Archenemy|ARC| -Scars of Mirrodin|SOM| -From the Vault: Relics|FVR| -Duel Decks: Elspeth vs. Tezzeret|DDF| -Mirrodin Besieged|MBS| -New Phyrexia|NPH| -Magic: The Gathering-Commander|CMD| \ No newline at end of file +Zendikar|ZEN| \ No newline at end of file