mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +00:00
Added Eternal format (Legacy without reserve list cards). Fixed Issues 1133 and 1521 (Pauper Deck legality check).
This commit is contained in:
parent
22c95f24a3
commit
d2fec6c61d
4 changed files with 703 additions and 26 deletions
|
@ -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 <https://www.reddit.com/r/mtgEternal/>
|
||||||
|
*
|
||||||
|
* @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");
|
||||||
|
}
|
||||||
|
}
|
|
@ -110,6 +110,7 @@
|
||||||
</draftCubes>
|
</draftCubes>
|
||||||
<deckTypes>
|
<deckTypes>
|
||||||
<deckType name="Constructed - Standard" jar="mage-deck-constructed.jar" className="mage.deck.Standard"/>
|
<deckType name="Constructed - Standard" jar="mage-deck-constructed.jar" className="mage.deck.Standard"/>
|
||||||
|
<deckType name="Constructed - Eternal" jar="mage-deck-constructed.jar" className="mage.deck.Eternal"/>
|
||||||
<deckType name="Constructed - Extended" jar="mage-deck-constructed.jar" className="mage.deck.Extended"/>
|
<deckType name="Constructed - Extended" jar="mage-deck-constructed.jar" className="mage.deck.Extended"/>
|
||||||
<deckType name="Constructed - Modern" jar="mage-deck-constructed.jar" className="mage.deck.Modern"/>
|
<deckType name="Constructed - Modern" jar="mage-deck-constructed.jar" className="mage.deck.Modern"/>
|
||||||
<deckType name="Constructed - Legacy" jar="mage-deck-constructed.jar" className="mage.deck.Legacy"/>
|
<deckType name="Constructed - Legacy" jar="mage-deck-constructed.jar" className="mage.deck.Legacy"/>
|
||||||
|
|
|
@ -107,6 +107,7 @@
|
||||||
</draftCubes>
|
</draftCubes>
|
||||||
<deckTypes>
|
<deckTypes>
|
||||||
<deckType name="Constructed - Standard" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Standard"/>
|
<deckType name="Constructed - Standard" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Standard"/>
|
||||||
|
<deckType name="Constructed - Eternal" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Eternal"/>
|
||||||
<deckType name="Constructed - Extended" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Extended"/>
|
<deckType name="Constructed - Extended" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Extended"/>
|
||||||
<deckType name="Constructed - Modern" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Modern"/>
|
<deckType name="Constructed - Modern" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Modern"/>
|
||||||
<deckType name="Constructed - Legacy" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Legacy"/>
|
<deckType name="Constructed - Legacy" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Legacy"/>
|
||||||
|
|
|
@ -108,14 +108,16 @@ public class Constructed extends DeckValidator {
|
||||||
if (!rarities.isEmpty()) {
|
if (!rarities.isEmpty()) {
|
||||||
for (Card card : deck.getCards()) {
|
for (Card card : deck.getCards()) {
|
||||||
if (!rarities.contains(card.getRarity())) {
|
if (!rarities.contains(card.getRarity())) {
|
||||||
invalid.put(card.getName(), "Invalid rarity: " + card.getRarity());
|
if( !legalRarity(card) ){
|
||||||
valid = false;
|
valid = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Card card : deck.getSideboard()) {
|
for (Card card : deck.getSideboard()) {
|
||||||
if (!rarities.contains(card.getRarity())) {
|
if (!rarities.contains(card.getRarity())) {
|
||||||
invalid.put(card.getName(), "Invalid rarity: " + card.getRarity());
|
if( !legalRarity(card) ){
|
||||||
valid = false;
|
valid = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,34 +125,14 @@ public class Constructed extends DeckValidator {
|
||||||
if (!setCodes.isEmpty()) {
|
if (!setCodes.isEmpty()) {
|
||||||
for (Card card : deck.getCards()) {
|
for (Card card : deck.getCards()) {
|
||||||
if (!setCodes.contains(card.getExpansionSetCode())) {
|
if (!setCodes.contains(card.getExpansionSetCode())) {
|
||||||
// check if card is legal if taken from other set
|
if( !legalSets(card) ){
|
||||||
boolean legal = false;
|
|
||||||
List<CardInfo> 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());
|
|
||||||
valid = false;
|
valid = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Card card : deck.getSideboard()) {
|
for (Card card : deck.getSideboard()) {
|
||||||
if (!setCodes.contains(card.getExpansionSetCode())) {
|
if (!setCodes.contains(card.getExpansionSetCode())) {
|
||||||
// check if card is legal if taken from other set
|
if( !legalSets(card) ){
|
||||||
boolean legal = false;
|
|
||||||
List<CardInfo> 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());
|
|
||||||
valid = false;
|
valid = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -159,5 +141,36 @@ public class Constructed extends DeckValidator {
|
||||||
logger.debug("DECK validate end: " + name + " deckname: " + deck.getName() + " invalids:" + invalid.size());
|
logger.debug("DECK validate end: " + name + " deckname: " + deck.getName() + " invalids:" + invalid.size());
|
||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean legalRarity(Card card){
|
||||||
|
// check if card is legal if taken from other set
|
||||||
|
boolean legal = false;
|
||||||
|
List<CardInfo> 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<CardInfo> 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue