diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Eternal.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Eternal.java
new file mode 100644
index 00000000000..85094dceb64
--- /dev/null
+++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Eternal.java
@@ -0,0 +1,662 @@
+/*
+* 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.deck;
+
+import mage.cards.decks.Constructed;
+
+/**
+ * This class implements the new casual format "Eternal", which is legacy with no reserved list cards legal.
+ * Banlist taken from
+ *
+ * @author marthinwurer@gmail.com
+ */
+public class Eternal extends Constructed {
+
+ public Eternal() {
+ super("Constructed - Eternal");
+
+ banned.add("Abeyance");
+ banned.add("Aboroth");
+ banned.add("Academy Rector");
+ banned.add("Acid Rain");
+ banned.add("Acidic Dagger");
+ banned.add("Adun Oakenshield");
+ banned.add("Advantageous Proclamation");
+ banned.add("Aegis of the Meek");
+ banned.add("Aeolipile");
+ banned.add("Afiya Grove");
+ banned.add("Aku Djinn");
+ banned.add("Al-abara's Carpet");
+ banned.add("Alchor's Tomb");
+ banned.add("Ali from Cairo");
+ banned.add("All Hallow's Eve");
+ banned.add("Altar of Bone");
+ banned.add("Aluren");
+ banned.add("Amulet of Quoz");
+ banned.add("Amulet of Unmaking");
+ banned.add("An-Zerrin Ruins");
+ banned.add("Anaba Ancestor");
+ banned.add("Anaba Spirit Crafter");
+ banned.add("Ancestral Knowledge");
+ banned.add("Ancestral Recall");
+ banned.add("Angus Mackenzie");
+ banned.add("Anvil of Bogardan");
+ banned.add("Apocalypse Chime");
+ banned.add("Apocalypse");
+ banned.add("Argivian Archaeologist");
+ banned.add("Argothian Wurm");
+ banned.add("Ashnod's Cylix");
+ banned.add("Asmira, Holy Avenger");
+ banned.add("Auspicious Ancestor");
+ banned.add("Autumn Willow");
+ banned.add("Avenging Angel");
+ banned.add("Avizoa");
+ banned.add("Aysen Crusader");
+ banned.add("Aysen Highway");
+ banned.add("Backup Plan");
+ banned.add("Badlands");
+ banned.add("Baki's Curse");
+ banned.add("Balance");
+ banned.add("Balduvian Hydra");
+ banned.add("Balduvian Trading Post");
+ banned.add("Balm of Restoration");
+ banned.add("Baron Sengir");
+ banned.add("Barreling Attack");
+ banned.add("Barrin, Master Wizard");
+ banned.add("Bartel Runeaxe");
+ banned.add("Bayou");
+ banned.add("Bazaar of Baghdad");
+ banned.add("Bazaar of Wonders");
+ banned.add("Beast Walkers");
+ banned.add("Benthic Djinn");
+ banned.add("Black Carriage");
+ banned.add("Black Lotus");
+ banned.add("Blaze of Glory");
+ banned.add("Blizzard");
+ banned.add("Bogardan Phoenix");
+ banned.add("Bone Dancer");
+ banned.add("Bone Mask");
+ banned.add("Boris Devilboon");
+ banned.add("Bosium Strip");
+ banned.add("Brago's Favor");
+ banned.add("Braingeyser");
+ banned.add("Brand of Ill Omen");
+ banned.add("Breathstealer's Crypt");
+ banned.add("Bronze Tablet");
+ banned.add("Brushwagg");
+ banned.add("Bubble Matrix");
+ banned.add("Cadaverous Bloom");
+ banned.add("Call to Arms");
+ banned.add("Candelabra of Tawnos");
+ banned.add("Canopy Dragon");
+ banned.add("Carnival of Souls");
+ banned.add("Carrion");
+ banned.add("Catacomb Dragon");
+ banned.add("Caverns of Despair");
+ banned.add("Chain Stasis");
+ banned.add("Chains of Mephistopheles");
+ banned.add("Channel");
+ banned.add("Chaos Harlequin");
+ banned.add("Chaos Orb");
+ banned.add("Chaosphere");
+ banned.add("Chromatic Armor");
+ banned.add("Chronatog");
+ banned.add("Circle of Despair");
+ banned.add("Citanul Centaurs");
+ banned.add("Citanul Druid");
+ banned.add("City in a Bottle");
+ banned.add("City of Shadows");
+ banned.add("City of Solitude");
+ banned.add("City of Traitors");
+ banned.add("Cleanse");
+ banned.add("Cleansing");
+ banned.add("Commander Greven il-Vec");
+ banned.add("Conch Horn");
+ banned.add("Contract from Below");
+ banned.add("Copy Artifact");
+ banned.add("Corpse Dance");
+ banned.add("Corrosion");
+ banned.add("Covetous Dragon");
+ banned.add("Crovax the Cursed");
+ banned.add("Cursed Scroll");
+ banned.add("Cycle of Life");
+ banned.add("Cyclopean Tomb");
+ banned.add("Damping Field");
+ banned.add("Darkpact");
+ banned.add("Daughter of Autumn");
+ banned.add("Debt of Loyalty");
+ banned.add("Delif's Cube");
+ banned.add("Demonic Attorney");
+ banned.add("Demonic Consultation");
+ banned.add("Demonic Hordes");
+ banned.add("Demonic Tutor");
+ banned.add("Deranged Hermit");
+ banned.add("Diamond Kaleidoscope");
+ banned.add("Diamond Valley");
+ banned.add("Didgeridoo");
+ banned.add("Dig Through Time");
+ banned.add("Discordant Spirit");
+ banned.add("Disharmony");
+ banned.add("Divine Intervention");
+ banned.add("Divine Retribution");
+ banned.add("Dominating Licid");
+ banned.add("Donate");
+ banned.add("Double Stroke");
+ banned.add("Draconian Cylix");
+ banned.add("Dream Halls");
+ banned.add("Drop of Honey");
+ banned.add("Dwarven Armorer");
+ banned.add("Dwarven Pony");
+ banned.add("Dwarven Sea Clan");
+ banned.add("Dwarven Thaumaturgist");
+ banned.add("Dystopia");
+ banned.add("Earthcraft");
+ banned.add("Earthlink");
+ banned.add("Ebon Praetor");
+ banned.add("Eladamri, Lord of Leaves");
+ banned.add("Elder Spawn");
+ banned.add("Elephant Graveyard");
+ banned.add("Elkin Lair");
+ banned.add("Elven Lyre");
+ banned.add("Elvish Farmer");
+ banned.add("Emberwilde Caliph");
+ banned.add("Emberwilde Djinn");
+ banned.add("Energy Bolt");
+ banned.add("Energy Storm");
+ banned.add("Energy Vortex");
+ banned.add("Equipoise");
+ banned.add("Ertai's Familiar");
+ banned.add("Ertai, Wizard Adept");
+ banned.add("Escaped Shapeshifter");
+ banned.add("Eternal Flame");
+ banned.add("Eureka");
+ banned.add("Exalted Dragon");
+ banned.add("Exorcist");
+ banned.add("Eye of Singularity");
+ banned.add("Faerie Noble");
+ banned.add("Falling Star");
+ banned.add("Farmstead");
+ banned.add("Fastbond");
+ banned.add("Fatal Lore");
+ banned.add("Femeref Enchantress");
+ banned.add("Field of Dreams");
+ banned.add("Firestorm Hellkite");
+ banned.add("Firestorm Phoenix");
+ banned.add("Firestorm");
+ banned.add("Flash");
+ banned.add("Flooded Shoreline");
+ banned.add("Floodwater Dam");
+ banned.add("Flow of Maggots");
+ banned.add("Forbidden Ritual");
+ banned.add("Forcefield");
+ banned.add("Forethought Amulet");
+ banned.add("Fork");
+ banned.add("Formation");
+ banned.add("Forsaken Wastes");
+ banned.add("Frankenstein's Monster");
+ banned.add("Frantic Search");
+ banned.add("Frenetic Efreet");
+ banned.add("Fungal Bloom");
+ banned.add("Fungus Elemental");
+ banned.add("Fyndhorn Pollen");
+ banned.add("Gaea's Avenger");
+ banned.add("Gaea's Cradle");
+ banned.add("Gallowbraid");
+ banned.add("Gargantuan Gorilla");
+ banned.add("Gate to Phyrexia");
+ banned.add("Gauntlet of Might");
+ banned.add("General Jarkeld");
+ banned.add("Gilded Drake");
+ banned.add("Glacial Crevasses");
+ banned.add("Goblin Bomb");
+ banned.add("Goblin Flotilla");
+ banned.add("Goblin Recruiter");
+ banned.add("Goblin Wizard");
+ banned.add("Golgothian Sylex");
+ banned.add("Gosta Dirk");
+ banned.add("Grandmother Sengir");
+ banned.add("Granite Gargoyle");
+ banned.add("Grave Robbers");
+ banned.add("Gravebind");
+ banned.add("Gravity Sphere");
+ banned.add("Great Whale");
+ banned.add("Griffin Canyon");
+ banned.add("Grim Feast");
+ banned.add("Grim Monolith");
+ banned.add("Guardian Beast");
+ banned.add("Guiding Spirit");
+ banned.add("Gush");
+ banned.add("Gustha's Scepter");
+ banned.add("Gwendlyn Di Corci");
+ banned.add("Hakim, Loreweaver");
+ banned.add("Halfdane");
+ banned.add("Hall of Gemstone");
+ banned.add("Halls of Mist");
+ banned.add("Hand of Justice");
+ banned.add("Harbinger of Night");
+ banned.add("Hatred");
+ banned.add("Haunting Wind");
+ banned.add("Hazduhr the Abbot");
+ banned.add("Hazezon Tamar");
+ banned.add("Heart Wolf");
+ banned.add("Heart of Bogardan");
+ banned.add("Heart of Yavimaya");
+ banned.add("Heat Stroke");
+ banned.add("Hellfire");
+ banned.add("Helm of Obedience");
+ banned.add("Herald of Serra");
+ banned.add("Hermit Druid");
+ banned.add("Hidden Path");
+ banned.add("Hivis of the Scale");
+ banned.add("Homarid Shaman");
+ banned.add("Hot Springs");
+ banned.add("Humility");
+ banned.add("Icatian Lieutenant");
+ banned.add("Icatian Skirmishers");
+ banned.add("Ice Cauldron");
+ banned.add("Ifh-Biff Efreet");
+ banned.add("Illusionary Mask");
+ banned.add("Illusionary Presence");
+ banned.add("Illusions of Grandeur");
+ banned.add("Immediate Action");
+ banned.add("Imperial Seal");
+ banned.add("Implements of Sacrifice");
+ banned.add("Imprison");
+ banned.add("In the Eye of Chaos");
+ banned.add("Infernal Denizen");
+ banned.add("Infernal Tribute");
+ banned.add("Infinite Authority");
+ banned.add("Inner Sanctum");
+ banned.add("Intuition");
+ banned.add("Invoke Prejudice");
+ banned.add("Island of Wak-Wak");
+ banned.add("Iterative Analysis");
+ banned.add("Ivory Gargoyle");
+ banned.add("Jabari's Influence");
+ banned.add("Jacques le Vert");
+ banned.add("Jester's Mask");
+ banned.add("Jeweled Bird");
+ banned.add("Jihad");
+ banned.add("Jovial Evil");
+ banned.add("Jungle Patrol");
+ banned.add("Juzam Djinn");
+ banned.add("Kaervek's Spite");
+ banned.add("Karn, Silver Golem");
+ banned.add("Katabatic Winds");
+ banned.add("Kaysa");
+ banned.add("Keeper of Tresserhorn");
+ banned.add("Khabal Ghoul");
+ banned.add("King Suleiman");
+ banned.add("Kjeldoran Knight");
+ banned.add("Kjeldoran Outpost");
+ banned.add("Kjeldoran Phalanx");
+ banned.add("Knights of Thorn");
+ banned.add("Knowledge Vault");
+ banned.add("Kobold Overlord");
+ banned.add("Kookus");
+ banned.add("Koskun Falls");
+ banned.add("Krovikan Horror");
+ banned.add("Kudzu");
+ banned.add("Kukemssa Pirates");
+ banned.add("Lady Caleria");
+ banned.add("Lady Evangela");
+ banned.add("Lake of the Dead");
+ banned.add("Land Cap");
+ banned.add("Land Equilibrium");
+ banned.add("Lava Tubes");
+ banned.add("Leeches");
+ banned.add("Leering Gargoyle");
+ banned.add("Library of Alexandria");
+ banned.add("Lich");
+ banned.add("Lichenthrope");
+ banned.add("Liege of the Hollows");
+ banned.add("Life Matrix");
+ banned.add("Lifeblood");
+ banned.add("Lifeline");
+ banned.add("Lightning Blow");
+ banned.add("Lightning Cloud");
+ banned.add("Lightning Dragon");
+ banned.add("Lion's Eye Diamond");
+ banned.add("Living Plane");
+ banned.add("Livonya Silone");
+ banned.add("Lodestone Bauble");
+ banned.add("Lord of Tresserhorn");
+ banned.add("Lotus Vale");
+ banned.add("Lure of Prey");
+ banned.add("Lurker");
+ banned.add("Malignant Growth");
+ banned.add("Mammoth Harness");
+ banned.add("Mana Crypt");
+ banned.add("Mana Drain");
+ banned.add("Mana Matrix");
+ banned.add("Mana Vault");
+ banned.add("Mana Vortex");
+ banned.add("Mana Web");
+ banned.add("Mangara's Tome");
+ banned.add("Maraxus of Keld");
+ banned.add("Marjhan");
+ banned.add("Marton Stromgald");
+ banned.add("Martyr's Cry");
+ banned.add("Martyrs of Korlis");
+ banned.add("Master of the Hunt");
+ banned.add("Masticore");
+ banned.add("Meditate");
+ banned.add("Memory Jar");
+ banned.add("Mental Misstep");
+ banned.add("Mercenaries");
+ banned.add("Merchant Ship");
+ banned.add("Mesmeric Trance");
+ banned.add("Metalworker");
+ banned.add("Mightstone");
+ banned.add("Mind Over Matter");
+ banned.add("Mind Twist");
+ banned.add("Mind's Desire");
+ banned.add("Mindbender Spores");
+ banned.add("Minion of Tevesh Szat");
+ banned.add("Mirror Universe");
+ banned.add("Misers' Cage");
+ banned.add("Misfortune");
+ banned.add("Mishra's Workshop");
+ banned.add("Mist Dragon");
+ banned.add("Moat");
+ banned.add("Mold Demon");
+ banned.add("Morinfen");
+ banned.add("Morphling");
+ banned.add("Mountain Titan");
+ banned.add("Mox Diamond");
+ banned.add("Mox Emerald");
+ banned.add("Mox Jet");
+ banned.add("Mox Pearl");
+ banned.add("Mox Ruby");
+ banned.add("Mox Sapphire");
+ banned.add("Mudslide");
+ banned.add("Multani, Maro-Sorcerer");
+ banned.add("Musician");
+ banned.add("Muzzio's Preparations");
+ banned.add("Mwonvuli Ooze");
+ banned.add("Mystic Decree");
+ banned.add("Mystic Might");
+ banned.add("Mystical Tutor");
+ banned.add("Nameless Race");
+ banned.add("Narwhal");
+ banned.add("Natural Balance");
+ banned.add("Natural Selection");
+ banned.add("Nature's Wrath");
+ banned.add("Necropotence");
+ banned.add("Nether Void");
+ banned.add("Niall Silvain");
+ banned.add("North Star");
+ banned.add("Nova Pentacle");
+ banned.add("Null Chamber");
+ banned.add("Null Rod");
+ banned.add("Oath of Druids");
+ banned.add("Oath of Ghouls");
+ banned.add("Ogre Enforcer");
+ banned.add("Old Man of the Sea");
+ banned.add("Omen of Fire");
+ banned.add("Opal Archangel");
+ banned.add("Opalescence");
+ banned.add("Orim, Samite Healer");
+ banned.add("Palinchron");
+ banned.add("Paradigm Shift");
+ banned.add("Paupers' Cage");
+ banned.add("Peacekeeper");
+ banned.add("Pendrell Mists");
+ banned.add("Phantasmal Sphere");
+ banned.add("Phelddagrif");
+ banned.add("Phyrexian Devourer");
+ banned.add("Phyrexian Dreadnought");
+ banned.add("Phyrexian Marauder");
+ banned.add("Phyrexian Negator");
+ banned.add("Phyrexian Portal");
+ banned.add("Phyrexian Purge");
+ banned.add("Phyrexian Tribute");
+ banned.add("Pillar Tombs of Aku");
+ banned.add("Pixie Queen");
+ banned.add("Planar Gate");
+ banned.add("Plateau (Brudi)");
+ banned.add("Plateau (Tucker)");
+ banned.add("Polar Kraken");
+ banned.add("Political Trickery");
+ banned.add("Powder Keg");
+ banned.add("Power Artifact");
+ banned.add("Power Play");
+ banned.add("Powerleech");
+ banned.add("Preacher");
+ banned.add("Preferred Selection");
+ banned.add("Prismatic Lace");
+ banned.add("Psychic Allergy");
+ banned.add("Psychic Vortex");
+ banned.add("Purgatory");
+ banned.add("Purraj of Urborg");
+ banned.add("Pygmy Hippo");
+ banned.add("Pyramids");
+ banned.add("Quarum Trench Gnomes");
+ banned.add("Quirion Druid");
+ banned.add("Radiant, Archangel");
+ banned.add("Raging River");
+ banned.add("Ragnar");
+ banned.add("Rainbow Efreet");
+ banned.add("Rainbow Vale");
+ banned.add("Ramses Overdark");
+ banned.add("Rapid Fire");
+ banned.add("Rashida Scalebane");
+ banned.add("Rasputin Dreamweaver");
+ banned.add("Razor Pendulum");
+ banned.add("Reality Twist");
+ banned.add("Rebirth");
+ banned.add("Recurring Nightmare");
+ banned.add("Recycle");
+ banned.add("Reflect Damage");
+ banned.add("Reparations");
+ banned.add("Replenish");
+ banned.add("Retribution of the Meek");
+ banned.add("Reveka, Wizard Savant");
+ banned.add("Reverberation");
+ banned.add("Righteous War");
+ banned.add("Ring of Gix");
+ banned.add("Ring of Immortals");
+ banned.add("Ring of Ma'ruf");
+ banned.add("Ring of Renewal");
+ banned.add("Ritual of Subdual");
+ banned.add("Ritual of the Machine");
+ banned.add("River Delta");
+ banned.add("River Merfolk");
+ banned.add("Roc of Kher Ridges");
+ banned.add("Rock Basilisk");
+ banned.add("Rock Hydra");
+ banned.add("Rofellos, Llanowar Emissary");
+ banned.add("Rogue Skycaptain");
+ banned.add("Rohgahh of Kher Keep");
+ banned.add("Royal Decree");
+ banned.add("Rysorian Badger");
+ banned.add("Sandals of Abdallah");
+ banned.add("Sands of Time");
+ banned.add("Sarcomancy");
+ banned.add("Savannah");
+ banned.add("Sawback Manticore");
+ banned.add("Scarwood Bandits");
+ banned.add("Scorched Ruins");
+ banned.add("Scrubland");
+ banned.add("Season of the Witch");
+ banned.add("Second Chance");
+ banned.add("Secret Summoning");
+ banned.add("Secrets of Paradise");
+ banned.add("Sedge Troll");
+ banned.add("Seeds of Innocence");
+ banned.add("Selenia, Dark Angel");
+ banned.add("Sentinel Dispatch");
+ banned.add("Serendib Djinn");
+ banned.add("Serra Aviary");
+ banned.add("Serra's Sanctum");
+ banned.add("Shahrazad");
+ banned.add("Shallow Grave");
+ banned.add("Shauku, Endbringer");
+ banned.add("Sheltered Valley");
+ banned.add("Shimmer");
+ banned.add("Sidar Jabari");
+ banned.add("Silver Wyvern");
+ banned.add("Singing Tree");
+ banned.add("Skeleton Ship");
+ banned.add("Skullclamp");
+ banned.add("Sliver Queen");
+ banned.add("Snowblind");
+ banned.add("Sol Ring");
+ banned.add("Soldevi Digger");
+ banned.add("Soldevi Excavations");
+ banned.add("Soldevi Golem");
+ banned.add("Soraya the Falconer");
+ banned.add("Sorrow's Path");
+ banned.add("Soul Echo");
+ banned.add("Spectral Guardian");
+ banned.add("Spinal Villain");
+ banned.add("Spirit Shield");
+ banned.add("Spirit of the Night");
+ banned.add("Spiritual Sanctuary");
+ banned.add("Splintering Wind");
+ banned.add("Spoils of Evil");
+ banned.add("Spoils of War");
+ banned.add("Squandered Resources");
+ banned.add("Stone Calendar");
+ banned.add("Storm Spirit");
+ banned.add("Storm World");
+ banned.add("Strip Mine");
+ banned.add("Su-Chi");
+ banned.add("Subterranean Spirit");
+ banned.add("Suleiman's Legacy");
+ banned.add("Survival of the Fittest");
+ banned.add("Sustaining Spirit");
+ banned.add("Sword of the Ages");
+ banned.add("Sworn Defender");
+ banned.add("Taiga");
+ banned.add("Tainted Specter");
+ banned.add("Taniwha");
+ banned.add("Tawnos's Coffin");
+ banned.add("Teeka's Dragon");
+ banned.add("Teferi's Imp");
+ banned.add("Teferi's Isle");
+ banned.add("Teferi's Realm");
+ banned.add("Telekinesis");
+ banned.add("Telim'Tor");
+ banned.add("Telim'Tor's Edict");
+ banned.add("Tempest Efreet");
+ banned.add("Temporal Aperture");
+ banned.add("Tetsuo Umezawa");
+ banned.add("Thawing Glaciers");
+ banned.add("The Abyss");
+ banned.add("The Tabernacle at Pendrell Vale");
+ banned.add("Thelon's Curse");
+ banned.add("Thelonite Monk");
+ banned.add("Thought Lash");
+ banned.add("Thran Tome");
+ banned.add("Three Wishes");
+ banned.add("Thrull Champion");
+ banned.add("Thunder Spirit");
+ banned.add("Tidal Control");
+ banned.add("Timberline Ridge");
+ banned.add("Time Spiral");
+ banned.add("Time Vault");
+ banned.add("Time Walk");
+ banned.add("Timetwister");
+ banned.add("Timetwister");
+ banned.add("Timmerian Fiends");
+ banned.add("Tinker");
+ banned.add("Tithe");
+ banned.add("Tolarian Academy");
+ banned.add("Tolarian Entrancer");
+ banned.add("Tolarian Serpent");
+ banned.add("Tombstone Stairwell");
+ banned.add("Tornado");
+ banned.add("Torrent of Lava");
+ banned.add("Tourach's Gate");
+ banned.add("Tracker");
+ banned.add("Trailblazer");
+ banned.add("Transmute Artifact");
+ banned.add("Treachery");
+ banned.add("Treasure Cruise");
+ banned.add("Triangle of War");
+ banned.add("Tropical Island");
+ banned.add("Tuknir Deathlock");
+ banned.add("Tundra");
+ banned.add("Two-Headed Giant of Foriys");
+ banned.add("Typhoon");
+ banned.add("Underground Sea");
+ banned.add("Undiscovered Paradise");
+ banned.add("Unexpected Potential");
+ banned.add("Unfulfilled Desires");
+ banned.add("Ur-Drago");
+ banned.add("Urborg Justice");
+ banned.add("Urborg Stalker");
+ banned.add("Urza's Miter");
+ banned.add("Vampiric Tutor");
+ banned.add("Varchild's War-Riders");
+ banned.add("Veldrane of Sengir");
+ banned.add("Veldt");
+ banned.add("Ventifact Bottle");
+ banned.add("Vesuvan Doppelganger");
+ banned.add("Veteran Bodyguard");
+ banned.add("Viashivan Dragon");
+ banned.add("Vodalian Knights");
+ banned.add("Vodalian War Machine");
+ banned.add("Volcanic Island");
+ banned.add("Volrath's Shapeshifter");
+ banned.add("Volrath's Stronghold");
+ banned.add("Wall of Kelp");
+ banned.add("Wandering Mage");
+ banned.add("Warping Wurm");
+ banned.add("Wave of Terror");
+ banned.add("Weakstone");
+ banned.add("Weatherseed Treefolk");
+ banned.add("Well of Knowledge");
+ banned.add("Wellspring");
+ banned.add("Wheel of Fortune");
+ banned.add("Willow Priestess");
+ banned.add("Willow Satyr");
+ banned.add("Windfall");
+ banned.add("Winding Canyons");
+ banned.add("Winter Sky");
+ banned.add("Winter's Chill");
+ banned.add("Winter's Night");
+ banned.add("Wood Elemental");
+ banned.add("Word of Command");
+ banned.add("Worldknit");
+ banned.add("Worms of the Earth");
+ banned.add("Wormwood Treefolk");
+ banned.add("Xanthic Statue");
+ banned.add("Yare");
+ banned.add("Yavimaya Hollow");
+ banned.add("Yawgmoth's Bargain");
+ banned.add("Yawgmoth's Will");
+ banned.add("Zelyon Sword");
+ banned.add("Zephid");
+ banned.add("Zhalfirin Crusader");
+ banned.add("Zirilan of the Claw");
+ banned.add("Zuberi, Golden Feather");
+ }
+}
diff --git a/Mage.Server/config/config.xml b/Mage.Server/config/config.xml
index 21e2db8e3fe..6aadb3d2ad9 100644
--- a/Mage.Server/config/config.xml
+++ b/Mage.Server/config/config.xml
@@ -110,6 +110,7 @@
+
diff --git a/Mage.Server/release/config/config.xml b/Mage.Server/release/config/config.xml
index 123ba8599f0..9b9598c07b4 100644
--- a/Mage.Server/release/config/config.xml
+++ b/Mage.Server/release/config/config.xml
@@ -107,6 +107,7 @@
+
diff --git a/Mage/src/main/java/mage/cards/decks/Constructed.java b/Mage/src/main/java/mage/cards/decks/Constructed.java
index c8c385e76d7..1c68d651c25 100644
--- a/Mage/src/main/java/mage/cards/decks/Constructed.java
+++ b/Mage/src/main/java/mage/cards/decks/Constructed.java
@@ -108,14 +108,16 @@ public class Constructed extends DeckValidator {
if (!rarities.isEmpty()) {
for (Card card : deck.getCards()) {
if (!rarities.contains(card.getRarity())) {
- invalid.put(card.getName(), "Invalid rarity: " + card.getRarity());
- valid = false;
+ if( !legalRarity(card) ){
+ valid = false;
+ }
}
}
for (Card card : deck.getSideboard()) {
if (!rarities.contains(card.getRarity())) {
- invalid.put(card.getName(), "Invalid rarity: " + card.getRarity());
- valid = false;
+ if( !legalRarity(card) ){
+ valid = false;
+ }
}
}
}
@@ -123,34 +125,14 @@ public class Constructed extends DeckValidator {
if (!setCodes.isEmpty()) {
for (Card card : deck.getCards()) {
if (!setCodes.contains(card.getExpansionSetCode())) {
- // check if card is legal if taken from other set
- boolean legal = false;
- List cardInfos = CardRepository.instance.findCards(card.getName());
- for (CardInfo cardInfo : cardInfos) {
- if (setCodes.contains(cardInfo.getSetCode())) {
- legal = true;
- break;
- }
- }
- if (!legal && !invalid.containsKey(card.getName())) {
- invalid.put(card.getName(), "Invalid set: " + card.getExpansionSetCode());
+ if( !legalSets(card) ){
valid = false;
}
}
}
for (Card card : deck.getSideboard()) {
if (!setCodes.contains(card.getExpansionSetCode())) {
- // check if card is legal if taken from other set
- boolean legal = false;
- List cardInfos = CardRepository.instance.findCards(card.getName());
- for (CardInfo cardInfo : cardInfos) {
- if (setCodes.contains(cardInfo.getSetCode())) {
- legal = true;
- break;
- }
- }
- if (!legal && !invalid.containsKey(card.getName())) {
- invalid.put(card.getName(), "Invalid set: " + card.getExpansionSetCode());
+ if( !legalSets(card) ){
valid = false;
}
}
@@ -159,5 +141,36 @@ public class Constructed extends DeckValidator {
logger.debug("DECK validate end: " + name + " deckname: " + deck.getName() + " invalids:" + invalid.size());
return valid;
}
+
+ protected boolean legalRarity(Card card){
+ // check if card is legal if taken from other set
+ boolean legal = false;
+ List cardInfos = CardRepository.instance.findCards(card.getName());
+ for (CardInfo cardInfo : cardInfos) {
+ if (rarities.contains(cardInfo.getRarity())) {
+ legal = true;
+ break;
+ }
+ }
+ if (!legal && !invalid.containsKey(card.getName())) {
+ invalid.put(card.getName(), "Invalid rarity: " + card.getRarity());
+ }
+ return legal;
+ }
+ protected boolean legalSets(Card card) {
+ // check if card is legal if taken from other set
+ boolean legal = false;
+ List cardInfos = CardRepository.instance.findCards(card.getName());
+ for (CardInfo cardInfo : cardInfos) {
+ if (setCodes.contains(cardInfo.getSetCode())) {
+ legal = true;
+ break;
+ }
+ }
+ if (!legal && !invalid.containsKey(card.getName())) {
+ invalid.put(card.getName(), "Invalid set: " + card.getExpansionSetCode());
+ }
+ return legal;
+ }
}