deck: updated Legacy Cube to latest version, removed outdated cubes, improved last update info (part of #13705)

This commit is contained in:
Oleg Agafonov 2025-05-31 23:11:44 +04:00
parent a7dcd6988f
commit eba4d0276d
6 changed files with 269 additions and 395 deletions

View file

@ -3,613 +3,619 @@ package mage.tournament.cubes;
import mage.game.draft.DraftCube; import mage.game.draft.DraftCube;
/** /**
* Legacy cube stop updates after 2021
* <p>
* Data source:
* - <a href="https://www.mtgo.com/legacy-cube-cardlist">official</a>
* - <a href="https://scryfall.com/cubes/legacy">scryfall</a>
*
* @author LevelX2 * @author LevelX2
*/ */
public class LegacyCube extends DraftCube { public class LegacyCube extends DraftCube {
public LegacyCube() { public LegacyCube() {
super("MTGO Legacy Cube"); super("MTGO Legacy Cube", "", 2021, 8, 19);
cubeCards.add(new CardIdentity("Accorder Paladin", "")); cubeCards.add(new CardIdentity("Abbot of Keral Keep", ""));
cubeCards.add(new CardIdentity("Abrade", ""));
cubeCards.add(new CardIdentity("Abrupt Decay", "")); cubeCards.add(new CardIdentity("Abrupt Decay", ""));
cubeCards.add(new CardIdentity("Acidic Slime", "")); cubeCards.add(new CardIdentity("Acidic Slime", ""));
cubeCards.add(new CardIdentity("Act of Aggression", "")); cubeCards.add(new CardIdentity("Aethersphere Harvester", ""));
cubeCards.add(new CardIdentity("Adarkar Wastes", ""));
cubeCards.add(new CardIdentity("Aether Vial", ""));
cubeCards.add(new CardIdentity("Ajani Goldmane", ""));
cubeCards.add(new CardIdentity("Ajani Steadfast", ""));
cubeCards.add(new CardIdentity("Ajani Vengeant", "")); cubeCards.add(new CardIdentity("Ajani Vengeant", ""));
cubeCards.add(new CardIdentity("Ajani, Caller of the Pride", "")); cubeCards.add(new CardIdentity("All Is Dust", ""));
cubeCards.add(new CardIdentity("Ajani, Mentor of Heroes", "")); cubeCards.add(new CardIdentity("Anafenza, Kin-Tree Spirit", ""));
cubeCards.add(new CardIdentity("Ancestral Vision", "")); cubeCards.add(new CardIdentity("Ancestral Vision", ""));
cubeCards.add(new CardIdentity("Ancient Grudge", "")); cubeCards.add(new CardIdentity("Ancient Grudge", ""));
cubeCards.add(new CardIdentity("Ancient Tomb", "")); cubeCards.add(new CardIdentity("Ancient Tomb", ""));
cubeCards.add(new CardIdentity("Angel of Serenity", "")); cubeCards.add(new CardIdentity("Angel of Invention", ""));
cubeCards.add(new CardIdentity("Angelic Destiny", ""));
cubeCards.add(new CardIdentity("Anger of the Gods", "")); cubeCards.add(new CardIdentity("Anger of the Gods", ""));
cubeCards.add(new CardIdentity("Angrath's Rampage", ""));
cubeCards.add(new CardIdentity("Angrath, the Flame-Chained", ""));
cubeCards.add(new CardIdentity("Anguished Unmaking", ""));
cubeCards.add(new CardIdentity("Animate Dead", "")); cubeCards.add(new CardIdentity("Animate Dead", ""));
cubeCards.add(new CardIdentity("Approach of the Second Sun", ""));
cubeCards.add(new CardIdentity("Arbor Elf", "")); cubeCards.add(new CardIdentity("Arbor Elf", ""));
cubeCards.add(new CardIdentity("Arc Trail", "")); cubeCards.add(new CardIdentity("Arcane Artisan", ""));
cubeCards.add(new CardIdentity("Archangel of Thune", "")); cubeCards.add(new CardIdentity("Archangel Avacyn", ""));
cubeCards.add(new CardIdentity("Arid Mesa", "")); cubeCards.add(new CardIdentity("Arid Mesa", ""));
cubeCards.add(new CardIdentity("Armageddon", "")); cubeCards.add(new CardIdentity("Armageddon", ""));
cubeCards.add(new CardIdentity("Ashcloud Phoenix", ""));
cubeCards.add(new CardIdentity("Ashiok, Nightmare Weaver", "")); cubeCards.add(new CardIdentity("Ashiok, Nightmare Weaver", ""));
cubeCards.add(new CardIdentity("Assassin's Trophy", ""));
cubeCards.add(new CardIdentity("Augur of Bolas", "")); cubeCards.add(new CardIdentity("Augur of Bolas", ""));
cubeCards.add(new CardIdentity("Aurelia, Exemplar of Justice", ""));
cubeCards.add(new CardIdentity("Avacyn's Pilgrim", "")); cubeCards.add(new CardIdentity("Avacyn's Pilgrim", ""));
cubeCards.add(new CardIdentity("Avalanche Riders", "")); cubeCards.add(new CardIdentity("Avalanche Riders", ""));
cubeCards.add(new CardIdentity("Avenger of Zendikar", "")); cubeCards.add(new CardIdentity("Avenger of Zendikar", ""));
cubeCards.add(new CardIdentity("Awakening Zone", "")); cubeCards.add(new CardIdentity("Awakening Zone", ""));
cubeCards.add(new CardIdentity("Bad Moon", ""));
cubeCards.add(new CardIdentity("Badlands", "")); cubeCards.add(new CardIdentity("Badlands", ""));
cubeCards.add(new CardIdentity("Baleful Strix", "")); cubeCards.add(new CardIdentity("Baleful Strix", ""));
cubeCards.add(new CardIdentity("Banefire", ""));
cubeCards.add(new CardIdentity("Baneslayer Angel", "")); cubeCards.add(new CardIdentity("Baneslayer Angel", ""));
cubeCards.add(new CardIdentity("Banisher Priest", ""));
cubeCards.add(new CardIdentity("Banishing Light", "")); cubeCards.add(new CardIdentity("Banishing Light", ""));
cubeCards.add(new CardIdentity("Baral, Chief of Compliance", ""));
cubeCards.add(new CardIdentity("Basalt Monolith", "")); cubeCards.add(new CardIdentity("Basalt Monolith", ""));
cubeCards.add(new CardIdentity("Basilisk Collar", ""));
cubeCards.add(new CardIdentity("Batterskull", "")); cubeCards.add(new CardIdentity("Batterskull", ""));
cubeCards.add(new CardIdentity("Battlefield Forge", ""));
cubeCards.add(new CardIdentity("Bayou", "")); cubeCards.add(new CardIdentity("Bayou", ""));
cubeCards.add(new CardIdentity("Bazaar Trademage", ""));
cubeCards.add(new CardIdentity("Beast Whisperer", ""));
cubeCards.add(new CardIdentity("Beast Within", "")); cubeCards.add(new CardIdentity("Beast Within", ""));
cubeCards.add(new CardIdentity("Beetleback Chief", "")); cubeCards.add(new CardIdentity("Bedevil", ""));
cubeCards.add(new CardIdentity("Bident of Thassa", "")); cubeCards.add(new CardIdentity("Bedlam Reveler", ""));
cubeCards.add(new CardIdentity("Biogenic Ooze", ""));
cubeCards.add(new CardIdentity("Birds of Paradise", "")); cubeCards.add(new CardIdentity("Birds of Paradise", ""));
cubeCards.add(new CardIdentity("Birthing Pod", "")); cubeCards.add(new CardIdentity("Birthing Pod", ""));
cubeCards.add(new CardIdentity("Bitterblossom", "")); cubeCards.add(new CardIdentity("Bitterblossom", ""));
cubeCards.add(new CardIdentity("Black Sun's Zenith", "")); cubeCards.add(new CardIdentity("Blackcleave Cliffs", ""));
cubeCards.add(new CardIdentity("Blade Splicer", "")); cubeCards.add(new CardIdentity("Blade Splicer", ""));
cubeCards.add(new CardIdentity("Blessed Alliance", ""));
cubeCards.add(new CardIdentity("Blood Crypt", "")); cubeCards.add(new CardIdentity("Blood Crypt", ""));
cubeCards.add(new CardIdentity("Bloodbraid Elf", "")); cubeCards.add(new CardIdentity("Bloodbraid Elf", ""));
cubeCards.add(new CardIdentity("Bloodghast", "")); cubeCards.add(new CardIdentity("Bloodghast", ""));
cubeCards.add(new CardIdentity("Bloodline Keeper", "")); cubeCards.add(new CardIdentity("Bloodline Keeper", ""));
cubeCards.add(new CardIdentity("Bloodsoaked Champion", ""));
cubeCards.add(new CardIdentity("Bloodstained Mire", "")); cubeCards.add(new CardIdentity("Bloodstained Mire", ""));
cubeCards.add(new CardIdentity("Blooming Marsh", ""));
cubeCards.add(new CardIdentity("Bogardan Hellkite", ""));
cubeCards.add(new CardIdentity("Bomat Courier", ""));
cubeCards.add(new CardIdentity("Bone Shredder", "")); cubeCards.add(new CardIdentity("Bone Shredder", ""));
cubeCards.add(new CardIdentity("Bonesplitter", ""));
cubeCards.add(new CardIdentity("Bonfire of the Damned", "")); cubeCards.add(new CardIdentity("Bonfire of the Damned", ""));
cubeCards.add(new CardIdentity("Boon Satyr", "")); cubeCards.add(new CardIdentity("Botanical Sanctum", ""));
cubeCards.add(new CardIdentity("Borderland Marauder", ""));
cubeCards.add(new CardIdentity("Boros Charm", ""));
cubeCards.add(new CardIdentity("Boros Elite", ""));
cubeCards.add(new CardIdentity("Boros Reckoner", ""));
cubeCards.add(new CardIdentity("Brago, King Eternal", ""));
cubeCards.add(new CardIdentity("Brain Maggot", "")); cubeCards.add(new CardIdentity("Brain Maggot", ""));
cubeCards.add(new CardIdentity("Brainstorm", "")); cubeCards.add(new CardIdentity("Brainstorm", ""));
cubeCards.add(new CardIdentity("Breeding Pool", "")); cubeCards.add(new CardIdentity("Breeding Pool", ""));
cubeCards.add(new CardIdentity("Brightling", ""));
cubeCards.add(new CardIdentity("Brimaz, King of Oreskos", "")); cubeCards.add(new CardIdentity("Brimaz, King of Oreskos", ""));
cubeCards.add(new CardIdentity("Brimstone Volley", "")); cubeCards.add(new CardIdentity("Buried Alive", ""));
cubeCards.add(new CardIdentity("Brushland", ""));
cubeCards.add(new CardIdentity("Burning-Tree Emissary", ""));
cubeCards.add(new CardIdentity("Burst Lightning", "")); cubeCards.add(new CardIdentity("Burst Lightning", ""));
cubeCards.add(new CardIdentity("Call of the Herd", "")); cubeCards.add(new CardIdentity("Careful Consideration", ""));
cubeCards.add(new CardIdentity("Carnophage", "")); cubeCards.add(new CardIdentity("Carnage Tyrant", ""));
cubeCards.add(new CardIdentity("Caves of Koilos", "")); cubeCards.add(new CardIdentity("Cast Out", ""));
cubeCards.add(new CardIdentity("Casualties of War", ""));
cubeCards.add(new CardIdentity("Cavalier of Night", ""));
cubeCards.add(new CardIdentity("Celestial Colonnade", ""));
cubeCards.add(new CardIdentity("Chain Lightning", "")); cubeCards.add(new CardIdentity("Chain Lightning", ""));
cubeCards.add(new CardIdentity("Chainer's Edict", "")); cubeCards.add(new CardIdentity("Champion of Wits", ""));
cubeCards.add(new CardIdentity("Chameleon Colossus", ""));
cubeCards.add(new CardIdentity("Champion of the Parish", ""));
cubeCards.add(new CardIdentity("Chandra, Pyromaster", ""));
cubeCards.add(new CardIdentity("Chandra's Phoenix", "")); cubeCards.add(new CardIdentity("Chandra's Phoenix", ""));
cubeCards.add(new CardIdentity("Chandra, Acolyte of Flame", ""));
cubeCards.add(new CardIdentity("Chandra, Awakened Inferno", ""));
cubeCards.add(new CardIdentity("Chandra, Torch of Defiance", ""));
cubeCards.add(new CardIdentity("Char", "")); cubeCards.add(new CardIdentity("Char", ""));
cubeCards.add(new CardIdentity("Chasm Skulker", "")); cubeCards.add(new CardIdentity("Chart a Course", ""));
cubeCards.add(new CardIdentity("Chord of Calling", "")); cubeCards.add(new CardIdentity("Chord of Calling", ""));
cubeCards.add(new CardIdentity("Chrome Mox", "")); cubeCards.add(new CardIdentity("Chromatic Lantern", ""));
cubeCards.add(new CardIdentity("City of Brass", "")); cubeCards.add(new CardIdentity("City of Brass", ""));
cubeCards.add(new CardIdentity("Clifftop Retreat", "")); cubeCards.add(new CardIdentity("Clifftop Retreat", ""));
cubeCards.add(new CardIdentity("Cloudfin Raptor", ""));
cubeCards.add(new CardIdentity("Cloudgoat Ranger", "")); cubeCards.add(new CardIdentity("Cloudgoat Ranger", ""));
cubeCards.add(new CardIdentity("Coalition Relic", "")); cubeCards.add(new CardIdentity("Coalition Relic", ""));
cubeCards.add(new CardIdentity("Commune with the Gods", "")); cubeCards.add(new CardIdentity("Coercive Portal", ""));
cubeCards.add(new CardIdentity("Coldsteel Heart", ""));
cubeCards.add(new CardIdentity("Collective Brutality", ""));
cubeCards.add(new CardIdentity("Collective Defiance", ""));
cubeCards.add(new CardIdentity("Compulsive Research", "")); cubeCards.add(new CardIdentity("Compulsive Research", ""));
cubeCards.add(new CardIdentity("Concealed Courtyard", ""));
cubeCards.add(new CardIdentity("Conclave Tribunal", ""));
cubeCards.add(new CardIdentity("Condemn", "")); cubeCards.add(new CardIdentity("Condemn", ""));
cubeCards.add(new CardIdentity("Condescend", ""));
cubeCards.add(new CardIdentity("Consecrated Sphinx", "")); cubeCards.add(new CardIdentity("Consecrated Sphinx", ""));
cubeCards.add(new CardIdentity("Consuming Vapors", "")); cubeCards.add(new CardIdentity("Containment Priest", ""));
cubeCards.add(new CardIdentity("Control Magic", "")); cubeCards.add(new CardIdentity("Control Magic", ""));
cubeCards.add(new CardIdentity("Coralhelm Commander", "")); cubeCards.add(new CardIdentity("Copperline Gorge", ""));
cubeCards.add(new CardIdentity("Corrupt", ""));
cubeCards.add(new CardIdentity("Council's Judgment", "")); cubeCards.add(new CardIdentity("Council's Judgment", ""));
cubeCards.add(new CardIdentity("Counterspell", "")); cubeCards.add(new CardIdentity("Counterspell", ""));
cubeCards.add(new CardIdentity("Courser of Kruphix", "")); cubeCards.add(new CardIdentity("Courser of Kruphix", ""));
cubeCards.add(new CardIdentity("Crater's Claws", ""));
cubeCards.add(new CardIdentity("Craterhoof Behemoth", "")); cubeCards.add(new CardIdentity("Craterhoof Behemoth", ""));
cubeCards.add(new CardIdentity("Crusade", "")); cubeCards.add(new CardIdentity("Creeping Tar Pit", ""));
cubeCards.add(new CardIdentity("Crucible of Worlds", ""));
cubeCards.add(new CardIdentity("Cryptbreaker", ""));
cubeCards.add(new CardIdentity("Cryptic Command", "")); cubeCards.add(new CardIdentity("Cryptic Command", ""));
cubeCards.add(new CardIdentity("Cultivate", "")); cubeCards.add(new CardIdentity("Cultivate", ""));
cubeCards.add(new CardIdentity("Cunning Sparkmage", ""));
cubeCards.add(new CardIdentity("Curse of Predation", ""));
cubeCards.add(new CardIdentity("Cursed Scroll", ""));
cubeCards.add(new CardIdentity("Cyclonic Rift", "")); cubeCards.add(new CardIdentity("Cyclonic Rift", ""));
cubeCards.add(new CardIdentity("Dack Fayden", ""));
cubeCards.add(new CardIdentity("Damnation", "")); cubeCards.add(new CardIdentity("Damnation", ""));
cubeCards.add(new CardIdentity("Dark Confidant", "")); cubeCards.add(new CardIdentity("Dark Confidant", ""));
cubeCards.add(new CardIdentity("Dark Ritual", "")); cubeCards.add(new CardIdentity("Dark Ritual", ""));
cubeCards.add(new CardIdentity("Darkblast", "")); cubeCards.add(new CardIdentity("Darkslick Shores", ""));
cubeCards.add(new CardIdentity("Day of Judgment", "")); cubeCards.add(new CardIdentity("Day of Judgment", ""));
cubeCards.add(new CardIdentity("Daze", "")); cubeCards.add(new CardIdentity("Daze", ""));
cubeCards.add(new CardIdentity("Deafening Clarion", ""));
cubeCards.add(new CardIdentity("Deceiver Exarch", "")); cubeCards.add(new CardIdentity("Deceiver Exarch", ""));
cubeCards.add(new CardIdentity("Deep Analysis", "")); cubeCards.add(new CardIdentity("Deep Analysis", ""));
cubeCards.add(new CardIdentity("Deep Forest Hermit", ""));
cubeCards.add(new CardIdentity("Delver of Secrets", "")); cubeCards.add(new CardIdentity("Delver of Secrets", ""));
cubeCards.add(new CardIdentity("Demonlord Belzenlok", ""));
cubeCards.add(new CardIdentity("Den Protector", ""));
cubeCards.add(new CardIdentity("Deranged Hermit", "")); cubeCards.add(new CardIdentity("Deranged Hermit", ""));
cubeCards.add(new CardIdentity("Desecration Demon", ""));
cubeCards.add(new CardIdentity("Detention Sphere", ""));
cubeCards.add(new CardIdentity("Devil's Play", "")); cubeCards.add(new CardIdentity("Devil's Play", ""));
cubeCards.add(new CardIdentity("Diabolic Servitude", "")); cubeCards.add(new CardIdentity("Devoted Druid", ""));
cubeCards.add(new CardIdentity("Dictate of Heliod", ""));
cubeCards.add(new CardIdentity("Dig Through Time", ""));
cubeCards.add(new CardIdentity("Diregraf Ghoul", ""));
cubeCards.add(new CardIdentity("Disciple of Bolas", ""));
cubeCards.add(new CardIdentity("Disenchant", ""));
cubeCards.add(new CardIdentity("Disfigure", ""));
cubeCards.add(new CardIdentity("Dismember", "")); cubeCards.add(new CardIdentity("Dismember", ""));
cubeCards.add(new CardIdentity("Dismiss", "")); cubeCards.add(new CardIdentity("Dismissive Pyromancer", ""));
cubeCards.add(new CardIdentity("Dissolve", ""));
cubeCards.add(new CardIdentity("Domri Rade", ""));
cubeCards.add(new CardIdentity("Doom Blade", "")); cubeCards.add(new CardIdentity("Doom Blade", ""));
cubeCards.add(new CardIdentity("Doomed Traveler", "")); cubeCards.add(new CardIdentity("Dragonlord Atarka", ""));
cubeCards.add(new CardIdentity("Dragon Fodder", "")); cubeCards.add(new CardIdentity("Dragonlord Silumgar", ""));
cubeCards.add(new CardIdentity("Dragonskull Summit", "")); cubeCards.add(new CardIdentity("Dragonskull Summit", ""));
cubeCards.add(new CardIdentity("Drana, Liberator of Malakir", ""));
cubeCards.add(new CardIdentity("Dread Return", "")); cubeCards.add(new CardIdentity("Dread Return", ""));
cubeCards.add(new CardIdentity("Dreadbore", "")); cubeCards.add(new CardIdentity("Dread Wanderer", ""));
cubeCards.add(new CardIdentity("Dreadhorde Arcanist", ""));
cubeCards.add(new CardIdentity("Drowned Catacomb", "")); cubeCards.add(new CardIdentity("Drowned Catacomb", ""));
cubeCards.add(new CardIdentity("Dualcaster Mage", "")); cubeCards.add(new CardIdentity("Dualcaster Mage", ""));
cubeCards.add(new CardIdentity("Dungeon Geists", ""));
cubeCards.add(new CardIdentity("Duplicant", "")); cubeCards.add(new CardIdentity("Duplicant", ""));
cubeCards.add(new CardIdentity("Duress", "")); cubeCards.add(new CardIdentity("Duress", ""));
cubeCards.add(new CardIdentity("Edric, Spymaster of Trest", "")); cubeCards.add(new CardIdentity("Edric, Spymaster of Trest", ""));
cubeCards.add(new CardIdentity("Eight-and-a-Half-Tails", ""));
cubeCards.add(new CardIdentity("Electrolyze", "")); cubeCards.add(new CardIdentity("Electrolyze", ""));
cubeCards.add(new CardIdentity("Elesh Norn, Grand Cenobite", "")); cubeCards.add(new CardIdentity("Elesh Norn, Grand Cenobite", ""));
cubeCards.add(new CardIdentity("Elite Vanguard", ""));
cubeCards.add(new CardIdentity("Elspeth Tirel", ""));
cubeCards.add(new CardIdentity("Elspeth, Knight-Errant", "")); cubeCards.add(new CardIdentity("Elspeth, Knight-Errant", ""));
cubeCards.add(new CardIdentity("Elspeth, Sun's Champion", "")); cubeCards.add(new CardIdentity("Elspeth, Sun's Champion", ""));
cubeCards.add(new CardIdentity("Elves of Deep Shadow", "")); cubeCards.add(new CardIdentity("Elves of Deep Shadow", ""));
cubeCards.add(new CardIdentity("Elvish Mystic", "")); cubeCards.add(new CardIdentity("Elvish Mystic", ""));
cubeCards.add(new CardIdentity("Emeria Angel", "")); cubeCards.add(new CardIdentity("Emeria Angel", ""));
cubeCards.add(new CardIdentity("Emrakul, the Aeons Torn", "")); cubeCards.add(new CardIdentity("Emrakul, the Aeons Torn", ""));
cubeCards.add(new CardIdentity("Emrakul, the Promised End", ""));
cubeCards.add(new CardIdentity("Engineered Explosives", ""));
cubeCards.add(new CardIdentity("Entomb", "")); cubeCards.add(new CardIdentity("Entomb", ""));
cubeCards.add(new CardIdentity("Entreat the Angels", "")); cubeCards.add(new CardIdentity("Entreat the Angels", ""));
cubeCards.add(new CardIdentity("Essence Scatter", ""));
cubeCards.add(new CardIdentity("Eternal Dragon", ""));
cubeCards.add(new CardIdentity("Eternal Witness", "")); cubeCards.add(new CardIdentity("Eternal Witness", ""));
cubeCards.add(new CardIdentity("Eureka", ""));
cubeCards.add(new CardIdentity("Everflowing Chalice", "")); cubeCards.add(new CardIdentity("Everflowing Chalice", ""));
cubeCards.add(new CardIdentity("Exalted Angel", "")); cubeCards.add(new CardIdentity("Evolving Wilds", ""));
cubeCards.add(new CardIdentity("Exhume", "")); cubeCards.add(new CardIdentity("Exhume", ""));
cubeCards.add(new CardIdentity("Expansion // Explosion", ""));
cubeCards.add(new CardIdentity("Experimental Frenzy", ""));
cubeCards.add(new CardIdentity("Explore", "")); cubeCards.add(new CardIdentity("Explore", ""));
cubeCards.add(new CardIdentity("Exquisite Firecraft", ""));
cubeCards.add(new CardIdentity("Fact or Fiction", "")); cubeCards.add(new CardIdentity("Fact or Fiction", ""));
cubeCards.add(new CardIdentity("Fairgrounds Warden", ""));
cubeCards.add(new CardIdentity("Faith's Fetters", "")); cubeCards.add(new CardIdentity("Faith's Fetters", ""));
cubeCards.add(new CardIdentity("Faithless Looting", ""));
cubeCards.add(new CardIdentity("Falkenrath Aristocrat", "")); cubeCards.add(new CardIdentity("Falkenrath Aristocrat", ""));
cubeCards.add(new CardIdentity("Far // Away", "")); cubeCards.add(new CardIdentity("Falkenrath Gorger", ""));
cubeCards.add(new CardIdentity("Farseek", "")); cubeCards.add(new CardIdentity("Farseek", ""));
cubeCards.add(new CardIdentity("Fatal Push", ""));
cubeCards.add(new CardIdentity("Fauna Shaman", "")); cubeCards.add(new CardIdentity("Fauna Shaman", ""));
cubeCards.add(new CardIdentity("Fblthp, the Lost", ""));
cubeCards.add(new CardIdentity("Fertile Ground", ""));
cubeCards.add(new CardIdentity("Field of Ruin", ""));
cubeCards.add(new CardIdentity("Fiery Confluence", ""));
cubeCards.add(new CardIdentity("Fight with Fire", ""));
cubeCards.add(new CardIdentity("Figure of Destiny", "")); cubeCards.add(new CardIdentity("Figure of Destiny", ""));
cubeCards.add(new CardIdentity("Fire // Ice", "")); cubeCards.add(new CardIdentity("Fire // Ice", ""));
cubeCards.add(new CardIdentity("Fireblast", ""));
cubeCards.add(new CardIdentity("Firebolt", "")); cubeCards.add(new CardIdentity("Firebolt", ""));
cubeCards.add(new CardIdentity("Firedrinker Satyr", "")); cubeCards.add(new CardIdentity("Firedrinker Satyr", ""));
cubeCards.add(new CardIdentity("Firefist Striker", ""));
cubeCards.add(new CardIdentity("Flame Slash", "")); cubeCards.add(new CardIdentity("Flame Slash", ""));
cubeCards.add(new CardIdentity("Flametongue Kavu", "")); cubeCards.add(new CardIdentity("Flametongue Kavu", ""));
cubeCards.add(new CardIdentity("Fleecemane Lion", ""));
cubeCards.add(new CardIdentity("Flickerwisp", "")); cubeCards.add(new CardIdentity("Flickerwisp", ""));
cubeCards.add(new CardIdentity("Flooded Strand", "")); cubeCards.add(new CardIdentity("Flooded Strand", ""));
cubeCards.add(new CardIdentity("Forbid", "")); cubeCards.add(new CardIdentity("Forbid", ""));
cubeCards.add(new CardIdentity("Forbidden Alchemy", "")); cubeCards.add(new CardIdentity("Force of Negation", ""));
cubeCards.add(new CardIdentity("Force of Will", "")); cubeCards.add(new CardIdentity("Force of Will", ""));
cubeCards.add(new CardIdentity("Force Spike", "")); cubeCards.add(new CardIdentity("Forsake the Worldly", ""));
cubeCards.add(new CardIdentity("Frenzied Goblin", "")); cubeCards.add(new CardIdentity("Fractured Identity", ""));
cubeCards.add(new CardIdentity("Freyalise, Llanowar's Fury", ""));
cubeCards.add(new CardIdentity("Frontline Medic", ""));
cubeCards.add(new CardIdentity("Frost Titan", "")); cubeCards.add(new CardIdentity("Frost Titan", ""));
cubeCards.add(new CardIdentity("Future Sight", "")); cubeCards.add(new CardIdentity("Fumigate", ""));
cubeCards.add(new CardIdentity("Fyndhorn Elves", "")); cubeCards.add(new CardIdentity("Fyndhorn Elves", ""));
cubeCards.add(new CardIdentity("Gaea's Cradle", "")); cubeCards.add(new CardIdentity("Gaea's Cradle", ""));
cubeCards.add(new CardIdentity("Garruk Relentless", "")); cubeCards.add(new CardIdentity("Garruk Relentless", ""));
cubeCards.add(new CardIdentity("Garruk Wildspeaker", "")); cubeCards.add(new CardIdentity("Garruk Wildspeaker", ""));
cubeCards.add(new CardIdentity("Garruk, Apex Predator", "")); cubeCards.add(new CardIdentity("Garruk, Apex Predator", ""));
cubeCards.add(new CardIdentity("Garruk, Caller of Beasts", ""));
cubeCards.add(new CardIdentity("Garruk, Primal Hunter", "")); cubeCards.add(new CardIdentity("Garruk, Primal Hunter", ""));
cubeCards.add(new CardIdentity("Gatekeeper of Malakir", "")); cubeCards.add(new CardIdentity("Gatekeeper of Malakir", ""));
cubeCards.add(new CardIdentity("Gather the Townsfolk", ""));
cubeCards.add(new CardIdentity("Geist of Saint Traft", "")); cubeCards.add(new CardIdentity("Geist of Saint Traft", ""));
cubeCards.add(new CardIdentity("Genesis Wave", "")); cubeCards.add(new CardIdentity("Genesis Wave", ""));
cubeCards.add(new CardIdentity("Geralf's Messenger", "")); cubeCards.add(new CardIdentity("Geralf's Messenger", ""));
cubeCards.add(new CardIdentity("Gerrard's Verdict", "")); cubeCards.add(new CardIdentity("Gideon Blackblade", ""));
cubeCards.add(new CardIdentity("Ghor-Clan Rampager", ""));
cubeCards.add(new CardIdentity("Gideon Jura", "")); cubeCards.add(new CardIdentity("Gideon Jura", ""));
cubeCards.add(new CardIdentity("Gideon, Ally of Zendikar", ""));
cubeCards.add(new CardIdentity("Gifts Ungiven", "")); cubeCards.add(new CardIdentity("Gifts Ungiven", ""));
cubeCards.add(new CardIdentity("Gilded Lotus", "")); cubeCards.add(new CardIdentity("Gilded Lotus", ""));
cubeCards.add(new CardIdentity("Giver of Runes", ""));
cubeCards.add(new CardIdentity("Glacial Fortress", "")); cubeCards.add(new CardIdentity("Glacial Fortress", ""));
cubeCards.add(new CardIdentity("Glen Elendra Archmage", "")); cubeCards.add(new CardIdentity("Glen Elendra Archmage", ""));
cubeCards.add(new CardIdentity("Glorious Anthem", "")); cubeCards.add(new CardIdentity("Glorious Anthem", ""));
cubeCards.add(new CardIdentity("Gnarled Scarhide", "")); cubeCards.add(new CardIdentity("Glorybringer", ""));
cubeCards.add(new CardIdentity("Go for the Throat", "")); cubeCards.add(new CardIdentity("Go for the Throat", ""));
cubeCards.add(new CardIdentity("Goblin Bombardment", "")); cubeCards.add(new CardIdentity("Goblin Cratermaker", ""));
cubeCards.add(new CardIdentity("Goblin Bushwhacker", "")); cubeCards.add(new CardIdentity("Goblin Dark-Dwellers", ""));
cubeCards.add(new CardIdentity("Goblin Electromancer", ""));
cubeCards.add(new CardIdentity("Goblin Guide", "")); cubeCards.add(new CardIdentity("Goblin Guide", ""));
cubeCards.add(new CardIdentity("Goblin Rabblemaster", "")); cubeCards.add(new CardIdentity("Goblin Rabblemaster", ""));
cubeCards.add(new CardIdentity("Goblin Wardriver", ""));
cubeCards.add(new CardIdentity("Godless Shrine", "")); cubeCards.add(new CardIdentity("Godless Shrine", ""));
cubeCards.add(new CardIdentity("Gore-House Chainwalker", "")); cubeCards.add(new CardIdentity("Gonti, Lord of Luxury", ""));
cubeCards.add(new CardIdentity("Grafted Wargear", ""));
cubeCards.add(new CardIdentity("Grave Titan", "")); cubeCards.add(new CardIdentity("Grave Titan", ""));
cubeCards.add(new CardIdentity("Graveborn Muse", ""));
cubeCards.add(new CardIdentity("Gravecrawler", "")); cubeCards.add(new CardIdentity("Gravecrawler", ""));
cubeCards.add(new CardIdentity("Gray Merchant of Asphodel", "")); cubeCards.add(new CardIdentity("Gray Merchant of Asphodel", ""));
cubeCards.add(new CardIdentity("Greater Gargadon", "")); cubeCards.add(new CardIdentity("Greater Gargadon", ""));
cubeCards.add(new CardIdentity("Green Sun's Zenith", "")); cubeCards.add(new CardIdentity("Green Sun's Zenith", ""));
cubeCards.add(new CardIdentity("Greenwarden of Murasa", ""));
cubeCards.add(new CardIdentity("Grim Lavamancer", "")); cubeCards.add(new CardIdentity("Grim Lavamancer", ""));
cubeCards.add(new CardIdentity("Grim Monolith", "")); cubeCards.add(new CardIdentity("Grim Monolith", ""));
cubeCards.add(new CardIdentity("Griselbrand", "")); cubeCards.add(new CardIdentity("Griselbrand", ""));
cubeCards.add(new CardIdentity("Grisly Salvage", "")); cubeCards.add(new CardIdentity("Gutterbones", ""));
cubeCards.add(new CardIdentity("Guttersnipe", ""));
cubeCards.add(new CardIdentity("Hall of Triumph", ""));
cubeCards.add(new CardIdentity("Hallowed Fountain", "")); cubeCards.add(new CardIdentity("Hallowed Fountain", ""));
cubeCards.add(new CardIdentity("Hallowed Spiritkeeper", "")); cubeCards.add(new CardIdentity("Hallowed Spiritkeeper", ""));
cubeCards.add(new CardIdentity("Hammer of Purphoros", "")); cubeCards.add(new CardIdentity("Hangarback Walker", ""));
cubeCards.add(new CardIdentity("Harmonize", "")); cubeCards.add(new CardIdentity("Harmonize", ""));
cubeCards.add(new CardIdentity("Hazoret the Fervent", ""));
cubeCards.add(new CardIdentity("Hedron Archive", ""));
cubeCards.add(new CardIdentity("Hellrider", "")); cubeCards.add(new CardIdentity("Hellrider", ""));
cubeCards.add(new CardIdentity("Herald of Torment", ""));
cubeCards.add(new CardIdentity("Hero of Bladehold", "")); cubeCards.add(new CardIdentity("Hero of Bladehold", ""));
cubeCards.add(new CardIdentity("Hero of Oxid Ridge", "")); cubeCards.add(new CardIdentity("Hero of Precinct One", ""));
cubeCards.add(new CardIdentity("Hero's Downfall", "")); cubeCards.add(new CardIdentity("Hero's Downfall", ""));
cubeCards.add(new CardIdentity("Hexdrinker", ""));
cubeCards.add(new CardIdentity("Hinterland Harbor", "")); cubeCards.add(new CardIdentity("Hinterland Harbor", ""));
cubeCards.add(new CardIdentity("Hissing Quagmire", ""));
cubeCards.add(new CardIdentity("History of Benalia", ""));
cubeCards.add(new CardIdentity("Honor of the Pure", "")); cubeCards.add(new CardIdentity("Honor of the Pure", ""));
cubeCards.add(new CardIdentity("Hordeling Outburst", "")); cubeCards.add(new CardIdentity("Horizon Canopy", ""));
cubeCards.add(new CardIdentity("Hornet Queen", "")); cubeCards.add(new CardIdentity("Hornet Queen", ""));
cubeCards.add(new CardIdentity("Hostage Taker", ""));
cubeCards.add(new CardIdentity("Hour of Devastation", ""));
cubeCards.add(new CardIdentity("Huntmaster of the Fells", "")); cubeCards.add(new CardIdentity("Huntmaster of the Fells", ""));
cubeCards.add(new CardIdentity("Hydroid Krasis", ""));
cubeCards.add(new CardIdentity("Hymn to Tourach", "")); cubeCards.add(new CardIdentity("Hymn to Tourach", ""));
cubeCards.add(new CardIdentity("Hypnotic Specter", "")); cubeCards.add(new CardIdentity("Hypnotic Specter", ""));
cubeCards.add(new CardIdentity("Ilharg, the Raze-Boar", ""));
cubeCards.add(new CardIdentity("Imperial Recruiter", "")); cubeCards.add(new CardIdentity("Imperial Recruiter", ""));
cubeCards.add(new CardIdentity("Imposing Sovereign", ""));
cubeCards.add(new CardIdentity("Impulse", "")); cubeCards.add(new CardIdentity("Impulse", ""));
cubeCards.add(new CardIdentity("Incinerate", "")); cubeCards.add(new CardIdentity("Incinerate", ""));
cubeCards.add(new CardIdentity("Indrik Stomphowler", "")); cubeCards.add(new CardIdentity("Incubation Druid", ""));
cubeCards.add(new CardIdentity("Inferno Titan", "")); cubeCards.add(new CardIdentity("Inferno Titan", ""));
cubeCards.add(new CardIdentity("Inquisition of Kozilek", "")); cubeCards.add(new CardIdentity("Inquisition of Kozilek", ""));
cubeCards.add(new CardIdentity("Inspiring Vantage", ""));
cubeCards.add(new CardIdentity("Into the Roil", "")); cubeCards.add(new CardIdentity("Into the Roil", ""));
cubeCards.add(new CardIdentity("Intuition", "")); cubeCards.add(new CardIdentity("Iona, Shield of Emeria", ""));
cubeCards.add(new CardIdentity("Isamaru, Hound of Konda", "")); cubeCards.add(new CardIdentity("Isamaru, Hound of Konda", ""));
cubeCards.add(new CardIdentity("Isochron Scepter", ""));
cubeCards.add(new CardIdentity("Isolated Chapel", "")); cubeCards.add(new CardIdentity("Isolated Chapel", ""));
cubeCards.add(new CardIdentity("Izzet Charm", ""));
cubeCards.add(new CardIdentity("Jace Beleren", "")); cubeCards.add(new CardIdentity("Jace Beleren", ""));
cubeCards.add(new CardIdentity("Jace, Architect of Thought", ""));
cubeCards.add(new CardIdentity("Jace, the Mind Sculptor", "")); cubeCards.add(new CardIdentity("Jace, the Mind Sculptor", ""));
cubeCards.add(new CardIdentity("Jackal Pup", "")); cubeCards.add(new CardIdentity("Jace, Vryn's Prodigy", ""));
cubeCards.add(new CardIdentity("Jadelight Ranger", ""));
cubeCards.add(new CardIdentity("Joraga Treespeaker", "")); cubeCards.add(new CardIdentity("Joraga Treespeaker", ""));
cubeCards.add(new CardIdentity("Journey to Nowhere", "")); cubeCards.add(new CardIdentity("Journey to Nowhere", ""));
cubeCards.add(new CardIdentity("Kami of Ancient Law", "")); cubeCards.add(new CardIdentity("Kalitas, Traitor of Ghet", ""));
cubeCards.add(new CardIdentity("Karmic Guide", "")); cubeCards.add(new CardIdentity("Karakas", ""));
cubeCards.add(new CardIdentity("Karn Liberated", "")); cubeCards.add(new CardIdentity("Karn Liberated", ""));
cubeCards.add(new CardIdentity("Karplusan Forest", "")); cubeCards.add(new CardIdentity("Karn, Scion of Urza", ""));
cubeCards.add(new CardIdentity("Keiga, the Tide Star", ""));
cubeCards.add(new CardIdentity("Keranos, God of Storms", ""));
cubeCards.add(new CardIdentity("Kiki-Jiki, Mirror Breaker", "")); cubeCards.add(new CardIdentity("Kiki-Jiki, Mirror Breaker", ""));
cubeCards.add(new CardIdentity("Kiln Fiend", ""));
cubeCards.add(new CardIdentity("Kiora, the Crashing Wave", ""));
cubeCards.add(new CardIdentity("Kira, Great Glass-Spinner", "")); cubeCards.add(new CardIdentity("Kira, Great Glass-Spinner", ""));
cubeCards.add(new CardIdentity("Kitchen Finks", "")); cubeCards.add(new CardIdentity("Kitchen Finks", ""));
cubeCards.add(new CardIdentity("Knight of Infamy", "")); cubeCards.add(new CardIdentity("Kitesail Freebooter", ""));
cubeCards.add(new CardIdentity("Knight of Autumn", ""));
cubeCards.add(new CardIdentity("Kodama's Reach", "")); cubeCards.add(new CardIdentity("Kodama's Reach", ""));
cubeCards.add(new CardIdentity("Kokusho, the Evening Star", "")); cubeCards.add(new CardIdentity("Kolaghan's Command", ""));
cubeCards.add(new CardIdentity("Kor Skyfisher", ""));
cubeCards.add(new CardIdentity("Koth of the Hammer", "")); cubeCards.add(new CardIdentity("Koth of the Hammer", ""));
cubeCards.add(new CardIdentity("Kozilek, Butcher of Truth", "")); cubeCards.add(new CardIdentity("Kozilek, Butcher of Truth", ""));
cubeCards.add(new CardIdentity("Krenko's Command", "")); cubeCards.add(new CardIdentity("Kytheon, Hero of Akros", ""));
cubeCards.add(new CardIdentity("Krosan Grip", ""));
cubeCards.add(new CardIdentity("Land Tax", "")); cubeCards.add(new CardIdentity("Land Tax", ""));
cubeCards.add(new CardIdentity("Legacy's Allure", "")); cubeCards.add(new CardIdentity("Languish", ""));
cubeCards.add(new CardIdentity("Lifebane Zombie", "")); cubeCards.add(new CardIdentity("Lava Coil", ""));
cubeCards.add(new CardIdentity("Lavaclaw Reaches", ""));
cubeCards.add(new CardIdentity("Legion Warboss", ""));
cubeCards.add(new CardIdentity("Legion's Landing", ""));
cubeCards.add(new CardIdentity("Lightning Bolt", "")); cubeCards.add(new CardIdentity("Lightning Bolt", ""));
cubeCards.add(new CardIdentity("Lightning Greaves", "")); cubeCards.add(new CardIdentity("Lightning Greaves", ""));
cubeCards.add(new CardIdentity("Lightning Helix", "")); cubeCards.add(new CardIdentity("Lightning Helix", ""));
cubeCards.add(new CardIdentity("Lightning Mauler", ""));
cubeCards.add(new CardIdentity("Lightning Strike", "")); cubeCards.add(new CardIdentity("Lightning Strike", ""));
cubeCards.add(new CardIdentity("Liliana of the Veil", "")); cubeCards.add(new CardIdentity("Liliana of the Veil", ""));
cubeCards.add(new CardIdentity("Liliana Vess", "")); cubeCards.add(new CardIdentity("Liliana's Triumph", ""));
cubeCards.add(new CardIdentity("Liliana, Dreadhorde General", ""));
cubeCards.add(new CardIdentity("Liliana, the Last Hope", ""));
cubeCards.add(new CardIdentity("Lingering Souls", "")); cubeCards.add(new CardIdentity("Lingering Souls", ""));
cubeCards.add(new CardIdentity("Linvala, Keeper of Silence", ""));
cubeCards.add(new CardIdentity("Living Death", "")); cubeCards.add(new CardIdentity("Living Death", ""));
cubeCards.add(new CardIdentity("Llanowar Elves", "")); cubeCards.add(new CardIdentity("Llanowar Elves", ""));
cubeCards.add(new CardIdentity("Llanowar Wastes", ""));
cubeCards.add(new CardIdentity("Looter il-Kor", "")); cubeCards.add(new CardIdentity("Looter il-Kor", ""));
cubeCards.add(new CardIdentity("Lotleth Troll", ""));
cubeCards.add(new CardIdentity("Lotus Cobra", "")); cubeCards.add(new CardIdentity("Lotus Cobra", ""));
cubeCards.add(new CardIdentity("Loxodon Warhammer", "")); cubeCards.add(new CardIdentity("Lumbering Falls", ""));
cubeCards.add(new CardIdentity("Madcap Skills", "")); cubeCards.add(new CardIdentity("Lyra Dawnbringer", ""));
cubeCards.add(new CardIdentity("Maelstrom Pulse", "")); cubeCards.add(new CardIdentity("Magister of Worth", ""));
cubeCards.add(new CardIdentity("Magma Jet", "")); cubeCards.add(new CardIdentity("Magma Jet", ""));
cubeCards.add(new CardIdentity("Makeshift Mannequin", ""));
cubeCards.add(new CardIdentity("Malicious Affliction", ""));
cubeCards.add(new CardIdentity("Man-o'-War", "")); cubeCards.add(new CardIdentity("Man-o'-War", ""));
cubeCards.add(new CardIdentity("Mana Confluence", "")); cubeCards.add(new CardIdentity("Mana Confluence", ""));
cubeCards.add(new CardIdentity("Mana Leak", "")); cubeCards.add(new CardIdentity("Mana Leak", ""));
cubeCards.add(new CardIdentity("Mana Tithe", "")); cubeCards.add(new CardIdentity("Mana Tithe", ""));
cubeCards.add(new CardIdentity("Manic Vandal", ""));
cubeCards.add(new CardIdentity("Marsh Flats", "")); cubeCards.add(new CardIdentity("Marsh Flats", ""));
cubeCards.add(new CardIdentity("Martial Coup", "")); cubeCards.add(new CardIdentity("Martial Coup", ""));
cubeCards.add(new CardIdentity("Mass Manipulation", ""));
cubeCards.add(new CardIdentity("Massacre Wurm", "")); cubeCards.add(new CardIdentity("Massacre Wurm", ""));
cubeCards.add(new CardIdentity("Master of the Feast", ""));
cubeCards.add(new CardIdentity("Master of the Wild Hunt", "")); cubeCards.add(new CardIdentity("Master of the Wild Hunt", ""));
cubeCards.add(new CardIdentity("Master of Waves", "")); cubeCards.add(new CardIdentity("Maze of Ith", ""));
cubeCards.add(new CardIdentity("Meloku the Clouded Mirror", "")); cubeCards.add(new CardIdentity("Meloku the Clouded Mirror", ""));
cubeCards.add(new CardIdentity("Mentor of the Meek", "")); cubeCards.add(new CardIdentity("Mentor of the Meek", ""));
cubeCards.add(new CardIdentity("Meren of Clan Nel Toth", ""));
cubeCards.add(new CardIdentity("Merfolk Looter", "")); cubeCards.add(new CardIdentity("Merfolk Looter", ""));
cubeCards.add(new CardIdentity("Mesmeric Fiend", "")); cubeCards.add(new CardIdentity("Midnight Reaper", ""));
cubeCards.add(new CardIdentity("Mimic Vat", ""));
cubeCards.add(new CardIdentity("Mind Shatter", ""));
cubeCards.add(new CardIdentity("Mind Stone", "")); cubeCards.add(new CardIdentity("Mind Stone", ""));
cubeCards.add(new CardIdentity("Mindslaver", ""));
cubeCards.add(new CardIdentity("Mirari's Wake", "")); cubeCards.add(new CardIdentity("Mirari's Wake", ""));
cubeCards.add(new CardIdentity("Mirran Crusader", ""));
cubeCards.add(new CardIdentity("Miscalculation", "")); cubeCards.add(new CardIdentity("Miscalculation", ""));
cubeCards.add(new CardIdentity("Mishra's Factory", "")); cubeCards.add(new CardIdentity("Mishra's Factory", ""));
cubeCards.add(new CardIdentity("Misty Rainforest", "")); cubeCards.add(new CardIdentity("Misty Rainforest", ""));
cubeCards.add(new CardIdentity("Mizzium Mortars", "")); cubeCards.add(new CardIdentity("Mizzium Mortars", ""));
cubeCards.add(new CardIdentity("Mogg Fanatic", "")); cubeCards.add(new CardIdentity("Monastery Mentor", ""));
cubeCards.add(new CardIdentity("Mogg War Marshal", "")); cubeCards.add(new CardIdentity("Monastery Swiftspear", ""));
cubeCards.add(new CardIdentity("Molten Rain", ""));
cubeCards.add(new CardIdentity("Molten-Tail Masticore", ""));
cubeCards.add(new CardIdentity("Momentary Blink", ""));
cubeCards.add(new CardIdentity("Mother of Runes", "")); cubeCards.add(new CardIdentity("Mother of Runes", ""));
cubeCards.add(new CardIdentity("Mox Diamond", ""));
cubeCards.add(new CardIdentity("Mulch", ""));
cubeCards.add(new CardIdentity("Mulldrifter", "")); cubeCards.add(new CardIdentity("Mulldrifter", ""));
cubeCards.add(new CardIdentity("Murderous Cut", "")); cubeCards.add(new CardIdentity("Murderous Cut", ""));
cubeCards.add(new CardIdentity("Murderous Redcap", "")); cubeCards.add(new CardIdentity("Murderous Redcap", ""));
cubeCards.add(new CardIdentity("Mutagenic Growth", "")); cubeCards.add(new CardIdentity("Murmuring Mystic", ""));
cubeCards.add(new CardIdentity("Mutavault", "")); cubeCards.add(new CardIdentity("Mutavault", ""));
cubeCards.add(new CardIdentity("Myr Battlesphere", "")); cubeCards.add(new CardIdentity("Myr Battlesphere", ""));
cubeCards.add(new CardIdentity("Mystic Confluence", ""));
cubeCards.add(new CardIdentity("Mystic Snake", "")); cubeCards.add(new CardIdentity("Mystic Snake", ""));
cubeCards.add(new CardIdentity("Mystical Teachings", "")); cubeCards.add(new CardIdentity("Nahiri, the Harbinger", ""));
cubeCards.add(new CardIdentity("Nantuko Shade", "")); cubeCards.add(new CardIdentity("Narset, Parter of Veils", ""));
cubeCards.add(new CardIdentity("Natural Order", "")); cubeCards.add(new CardIdentity("Natural Order", ""));
cubeCards.add(new CardIdentity("Naturalize", "")); cubeCards.add(new CardIdentity("Necromancy", ""));
cubeCards.add(new CardIdentity("Needle Spires", ""));
cubeCards.add(new CardIdentity("Negate", "")); cubeCards.add(new CardIdentity("Negate", ""));
cubeCards.add(new CardIdentity("Nekrataal", "")); cubeCards.add(new CardIdentity("Nekrataal", ""));
cubeCards.add(new CardIdentity("Never // Return", ""));
cubeCards.add(new CardIdentity("Nicol Bolas, Dragon-God", ""));
cubeCards.add(new CardIdentity("Nicol Bolas, Planeswalker", "")); cubeCards.add(new CardIdentity("Nicol Bolas, Planeswalker", ""));
cubeCards.add(new CardIdentity("Night's Whisper", "")); cubeCards.add(new CardIdentity("Night's Whisper", ""));
cubeCards.add(new CardIdentity("Nighthowler", "")); cubeCards.add(new CardIdentity("Nimble Obstructionist", ""));
cubeCards.add(new CardIdentity("Nightveil Specter", "")); cubeCards.add(new CardIdentity("Nissa, Vastwood Seer", ""));
cubeCards.add(new CardIdentity("Nissa, Worldwaker", "")); cubeCards.add(new CardIdentity("Nissa, Who Shakes the World", ""));
cubeCards.add(new CardIdentity("Niv-Mizzet, Parun", ""));
cubeCards.add(new CardIdentity("Noble Hierarch", "")); cubeCards.add(new CardIdentity("Noble Hierarch", ""));
cubeCards.add(new CardIdentity("Nykthos, Shrine to Nyx", "")); cubeCards.add(new CardIdentity("Nykthos, Shrine to Nyx", ""));
cubeCards.add(new CardIdentity("Ob Nixilis Reignited", ""));
cubeCards.add(new CardIdentity("Oblivion Ring", "")); cubeCards.add(new CardIdentity("Oblivion Ring", ""));
cubeCards.add(new CardIdentity("Oblivion Stone", ""));
cubeCards.add(new CardIdentity("Obstinate Baloth", "")); cubeCards.add(new CardIdentity("Obstinate Baloth", ""));
cubeCards.add(new CardIdentity("Old Man of the Sea", "")); cubeCards.add(new CardIdentity("Oona's Prowler", ""));
cubeCards.add(new CardIdentity("Olivia Voldaren", ""));
cubeCards.add(new CardIdentity("Ophiomancer", "")); cubeCards.add(new CardIdentity("Ophiomancer", ""));
cubeCards.add(new CardIdentity("Opposition", "")); cubeCards.add(new CardIdentity("Opposition", ""));
cubeCards.add(new CardIdentity("Opt", ""));
cubeCards.add(new CardIdentity("Oracle of Mul Daya", "")); cubeCards.add(new CardIdentity("Oracle of Mul Daya", ""));
cubeCards.add(new CardIdentity("Oust", "")); cubeCards.add(new CardIdentity("Oust", ""));
cubeCards.add(new CardIdentity("Outpost Siege", ""));
cubeCards.add(new CardIdentity("Overgrown Battlement", "")); cubeCards.add(new CardIdentity("Overgrown Battlement", ""));
cubeCards.add(new CardIdentity("Overgrown Tomb", "")); cubeCards.add(new CardIdentity("Overgrown Tomb", ""));
cubeCards.add(new CardIdentity("Pack Rat", ""));
cubeCards.add(new CardIdentity("Pact of Negation", "")); cubeCards.add(new CardIdentity("Pact of Negation", ""));
cubeCards.add(new CardIdentity("Pain Seer", ""));
cubeCards.add(new CardIdentity("Parallax Wave", "")); cubeCards.add(new CardIdentity("Parallax Wave", ""));
cubeCards.add(new CardIdentity("Path to Exile", "")); cubeCards.add(new CardIdentity("Path to Exile", ""));
cubeCards.add(new CardIdentity("Pestermite", "")); cubeCards.add(new CardIdentity("Pestermite", ""));
cubeCards.add(new CardIdentity("Phantasmal Image", "")); cubeCards.add(new CardIdentity("Phantasmal Image", ""));
cubeCards.add(new CardIdentity("Phantom Centaur", ""));
cubeCards.add(new CardIdentity("Phyrexian Arena", "")); cubeCards.add(new CardIdentity("Phyrexian Arena", ""));
cubeCards.add(new CardIdentity("Phyrexian Metamorph", "")); cubeCards.add(new CardIdentity("Phyrexian Metamorph", ""));
cubeCards.add(new CardIdentity("Phyrexian Obliterator", "")); cubeCards.add(new CardIdentity("Phyrexian Obliterator", ""));
cubeCards.add(new CardIdentity("Phyrexian Revoker", "")); cubeCards.add(new CardIdentity("Phyrexian Revoker", ""));
cubeCards.add(new CardIdentity("Pillar of Flame", "")); cubeCards.add(new CardIdentity("Pia and Kiran Nalaar", ""));
cubeCards.add(new CardIdentity("Pia Nalaar", ""));
cubeCards.add(new CardIdentity("Plateau", "")); cubeCards.add(new CardIdentity("Plateau", ""));
cubeCards.add(new CardIdentity("Plow Under", "")); cubeCards.add(new CardIdentity("Plow Under", ""));
cubeCards.add(new CardIdentity("Polluted Delta", "")); cubeCards.add(new CardIdentity("Polluted Delta", ""));
cubeCards.add(new CardIdentity("Polukranos, World Eater", "")); cubeCards.add(new CardIdentity("Polukranos, World Eater", ""));
cubeCards.add(new CardIdentity("Ponder", "")); cubeCards.add(new CardIdentity("Ponder", ""));
cubeCards.add(new CardIdentity("Porcelain Legionnaire", "")); cubeCards.add(new CardIdentity("Porcelain Legionnaire", ""));
cubeCards.add(new CardIdentity("Precinct Captain", ""));
cubeCards.add(new CardIdentity("Precursor Golem", ""));
cubeCards.add(new CardIdentity("Preordain", "")); cubeCards.add(new CardIdentity("Preordain", ""));
cubeCards.add(new CardIdentity("Primal Command", "")); cubeCards.add(new CardIdentity("Primal Command", ""));
cubeCards.add(new CardIdentity("Prime Speaker Zegana", "")); cubeCards.add(new CardIdentity("Prime Speaker Vannifar", ""));
cubeCards.add(new CardIdentity("Primeval Titan", "")); cubeCards.add(new CardIdentity("Primeval Titan", ""));
cubeCards.add(new CardIdentity("Prismatic Lens", ""));
cubeCards.add(new CardIdentity("Profane Command", "")); cubeCards.add(new CardIdentity("Profane Command", ""));
cubeCards.add(new CardIdentity("Progenitus", "")); cubeCards.add(new CardIdentity("Pteramander", ""));
cubeCards.add(new CardIdentity("Prophetic Bolt", "")); cubeCards.add(new CardIdentity("Pyroclasm", ""));
cubeCards.add(new CardIdentity("Prophetic Flamespeaker", "")); cubeCards.add(new CardIdentity("Raging Ravine", ""));
cubeCards.add(new CardIdentity("Psychatog", "")); cubeCards.add(new CardIdentity("Rampaging Baloths", ""));
cubeCards.add(new CardIdentity("Purphoros, God of the Forge", "")); cubeCards.add(new CardIdentity("Rampaging Ferocidon", ""));
cubeCards.add(new CardIdentity("Qasali Pridemage", ""));
cubeCards.add(new CardIdentity("Raise the Alarm", ""));
cubeCards.add(new CardIdentity("Rakdos Cackler", ""));
cubeCards.add(new CardIdentity("Ral Zarek", ""));
cubeCards.add(new CardIdentity("Rampant Growth", "")); cubeCards.add(new CardIdentity("Rampant Growth", ""));
cubeCards.add(new CardIdentity("Rancor", "")); cubeCards.add(new CardIdentity("Ramunap Excavator", ""));
cubeCards.add(new CardIdentity("Ranger of Eos", "")); cubeCards.add(new CardIdentity("Ranger-Captain of Eos", ""));
cubeCards.add(new CardIdentity("Rattleclaw Mystic", ""));
cubeCards.add(new CardIdentity("Ravages of War", "")); cubeCards.add(new CardIdentity("Ravages of War", ""));
cubeCards.add(new CardIdentity("Ravenous Chupacabra", ""));
cubeCards.add(new CardIdentity("Read the Bones", ""));
cubeCards.add(new CardIdentity("Reanimate", "")); cubeCards.add(new CardIdentity("Reanimate", ""));
cubeCards.add(new CardIdentity("Reclamation Sage", "")); cubeCards.add(new CardIdentity("Reclamation Sage", ""));
cubeCards.add(new CardIdentity("Recruiter of the Guard", ""));
cubeCards.add(new CardIdentity("Recurring Nightmare", "")); cubeCards.add(new CardIdentity("Recurring Nightmare", ""));
cubeCards.add(new CardIdentity("Reflecting Pool", "")); cubeCards.add(new CardIdentity("Rekindling Phoenix", ""));
cubeCards.add(new CardIdentity("Regrowth", "")); cubeCards.add(new CardIdentity("Relic of Progenitus", ""));
cubeCards.add(new CardIdentity("Remand", "")); cubeCards.add(new CardIdentity("Remand", ""));
cubeCards.add(new CardIdentity("Remorseful Cleric", ""));
cubeCards.add(new CardIdentity("Remove Soul", "")); cubeCards.add(new CardIdentity("Remove Soul", ""));
cubeCards.add(new CardIdentity("Repeal", "")); cubeCards.add(new CardIdentity("Repeal", ""));
cubeCards.add(new CardIdentity("Restoration Angel", "")); cubeCards.add(new CardIdentity("Restoration Angel", ""));
cubeCards.add(new CardIdentity("Reveillark", "")); cubeCards.add(new CardIdentity("Reveillark", ""));
cubeCards.add(new CardIdentity("Rift Bolt", "")); cubeCards.add(new CardIdentity("Rift Bolt", ""));
cubeCards.add(new CardIdentity("Riftwing Cloudskate", "")); cubeCards.add(new CardIdentity("Riftwing Cloudskate", ""));
cubeCards.add(new CardIdentity("Riptide Laboratory", ""));
cubeCards.add(new CardIdentity("Rishadan Port", "")); cubeCards.add(new CardIdentity("Rishadan Port", ""));
cubeCards.add(new CardIdentity("Rix Maadi Reveler", ""));
cubeCards.add(new CardIdentity("Roalesk, Apex Hybrid", ""));
cubeCards.add(new CardIdentity("Roast", ""));
cubeCards.add(new CardIdentity("Rofellos, Llanowar Emissary", "")); cubeCards.add(new CardIdentity("Rofellos, Llanowar Emissary", ""));
cubeCards.add(new CardIdentity("Rootbound Crag", "")); cubeCards.add(new CardIdentity("Rootbound Crag", ""));
cubeCards.add(new CardIdentity("Rotting Regisaur", ""));
cubeCards.add(new CardIdentity("Runaway Steam-Kin", ""));
cubeCards.add(new CardIdentity("Ruric Thar, the Unbowed", ""));
cubeCards.add(new CardIdentity("Sacred Foundry", "")); cubeCards.add(new CardIdentity("Sacred Foundry", ""));
cubeCards.add(new CardIdentity("Sakashima's Student", ""));
cubeCards.add(new CardIdentity("Sakura-Tribe Elder", "")); cubeCards.add(new CardIdentity("Sakura-Tribe Elder", ""));
cubeCards.add(new CardIdentity("Sarcomancy", ""));
cubeCards.add(new CardIdentity("Sarkhan, the Dragonspeaker", ""));
cubeCards.add(new CardIdentity("Satyr Wayfinder", "")); cubeCards.add(new CardIdentity("Satyr Wayfinder", ""));
cubeCards.add(new CardIdentity("Savannah", "")); cubeCards.add(new CardIdentity("Savannah", ""));
cubeCards.add(new CardIdentity("Savannah Lions", ""));
cubeCards.add(new CardIdentity("Scalding Tarn", "")); cubeCards.add(new CardIdentity("Scalding Tarn", ""));
cubeCards.add(new CardIdentity("Scavenging Ooze", "")); cubeCards.add(new CardIdentity("Scavenging Ooze", ""));
cubeCards.add(new CardIdentity("Scorched Rusalka", ""));
cubeCards.add(new CardIdentity("Scrubland", "")); cubeCards.add(new CardIdentity("Scrubland", ""));
cubeCards.add(new CardIdentity("Sea Gate Oracle", "")); cubeCards.add(new CardIdentity("Seachrome Coast", ""));
cubeCards.add(new CardIdentity("Seal of Cleansing", "")); cubeCards.add(new CardIdentity("Search for Azcanta", ""));
cubeCards.add(new CardIdentity("Seal of Fire", ""));
cubeCards.add(new CardIdentity("Search for Tomorrow", "")); cubeCards.add(new CardIdentity("Search for Tomorrow", ""));
cubeCards.add(new CardIdentity("Searing Blaze", ""));
cubeCards.add(new CardIdentity("Searing Blood", ""));
cubeCards.add(new CardIdentity("Searing Spear", "")); cubeCards.add(new CardIdentity("Searing Spear", ""));
cubeCards.add(new CardIdentity("Seasoned Pyromancer", ""));
cubeCards.add(new CardIdentity("Seeker of the Way", "")); cubeCards.add(new CardIdentity("Seeker of the Way", ""));
cubeCards.add(new CardIdentity("Sensei's Divining Top", "")); cubeCards.add(new CardIdentity("Selfless Spirit", ""));
cubeCards.add(new CardIdentity("Serendib Efreet", "")); cubeCards.add(new CardIdentity("Seraph of the Scales", ""));
cubeCards.add(new CardIdentity("Serra the Benevolent", ""));
cubeCards.add(new CardIdentity("Serum Visions", "")); cubeCards.add(new CardIdentity("Serum Visions", ""));
cubeCards.add(new CardIdentity("Setessan Tactics", "")); cubeCards.add(new CardIdentity("Shambling Vent", ""));
cubeCards.add(new CardIdentity("Shadowmage Infiltrator", ""));
cubeCards.add(new CardIdentity("Shardless Agent", "")); cubeCards.add(new CardIdentity("Shardless Agent", ""));
cubeCards.add(new CardIdentity("Shelldock Isle", ""));
cubeCards.add(new CardIdentity("Sheoldred, Whispering One", "")); cubeCards.add(new CardIdentity("Sheoldred, Whispering One", ""));
cubeCards.add(new CardIdentity("Shivan Reef", "")); cubeCards.add(new CardIdentity("Shivan Fire", ""));
cubeCards.add(new CardIdentity("Show and Tell", "")); cubeCards.add(new CardIdentity("Show and Tell", ""));
cubeCards.add(new CardIdentity("Shriekmaw", "")); cubeCards.add(new CardIdentity("Shriekmaw", ""));
cubeCards.add(new CardIdentity("Shrine of Burning Rage", ""));
cubeCards.add(new CardIdentity("Siege-Gang Commander", "")); cubeCards.add(new CardIdentity("Siege-Gang Commander", ""));
cubeCards.add(new CardIdentity("Silverblade Paladin", "")); cubeCards.add(new CardIdentity("Sigarda, Host of Herons", ""));
cubeCards.add(new CardIdentity("Sin Collector", "")); cubeCards.add(new CardIdentity("Sin Collector", ""));
cubeCards.add(new CardIdentity("Sinkhole", "")); cubeCards.add(new CardIdentity("Skysovereign, Consul Flagship", ""));
cubeCards.add(new CardIdentity("Skinrender", ""));
cubeCards.add(new CardIdentity("Skullcrack", ""));
cubeCards.add(new CardIdentity("Slagstorm", ""));
cubeCards.add(new CardIdentity("Slaughter Pact", "")); cubeCards.add(new CardIdentity("Slaughter Pact", ""));
cubeCards.add(new CardIdentity("Smash to Smithereens", "")); cubeCards.add(new CardIdentity("Smiting Helix", ""));
cubeCards.add(new CardIdentity("Smuggler's Copter", ""));
cubeCards.add(new CardIdentity("Snapcaster Mage", "")); cubeCards.add(new CardIdentity("Snapcaster Mage", ""));
cubeCards.add(new CardIdentity("Sneak Attack", "")); cubeCards.add(new CardIdentity("Sneak Attack", ""));
cubeCards.add(new CardIdentity("Soldier of the Pantheon", ""));
cubeCards.add(new CardIdentity("Solemn Simulacrum", "")); cubeCards.add(new CardIdentity("Solemn Simulacrum", ""));
cubeCards.add(new CardIdentity("Song of the Dryads", ""));
cubeCards.add(new CardIdentity("Sorin Markov", ""));
cubeCards.add(new CardIdentity("Sorin, Lord of Innistrad", ""));
cubeCards.add(new CardIdentity("Sorin, Solemn Visitor", "")); cubeCards.add(new CardIdentity("Sorin, Solemn Visitor", ""));
cubeCards.add(new CardIdentity("Soul of Innistrad", ""));
cubeCards.add(new CardIdentity("Sower of Temptation", "")); cubeCards.add(new CardIdentity("Sower of Temptation", ""));
cubeCards.add(new CardIdentity("Spawn of Mayhem", ""));
cubeCards.add(new CardIdentity("Spear of Heliod", "")); cubeCards.add(new CardIdentity("Spear of Heliod", ""));
cubeCards.add(new CardIdentity("Spectral Procession", "")); cubeCards.add(new CardIdentity("Spectral Procession", ""));
cubeCards.add(new CardIdentity("Spellseeker", ""));
cubeCards.add(new CardIdentity("Spellskite", "")); cubeCards.add(new CardIdentity("Spellskite", ""));
cubeCards.add(new CardIdentity("Sphere of the Suns", ""));
cubeCards.add(new CardIdentity("Sphinx's Revelation", "")); cubeCards.add(new CardIdentity("Sphinx's Revelation", ""));
cubeCards.add(new CardIdentity("Spikeshot Elder", "")); cubeCards.add(new CardIdentity("Spirebluff Canal", ""));
cubeCards.add(new CardIdentity("Spiteful Returned", ""));
cubeCards.add(new CardIdentity("Splinter Twin", "")); cubeCards.add(new CardIdentity("Splinter Twin", ""));
cubeCards.add(new CardIdentity("Staggershock", "")); cubeCards.add(new CardIdentity("Star of Extinction", ""));
cubeCards.add(new CardIdentity("Steam Vents", "")); cubeCards.add(new CardIdentity("Steam Vents", ""));
cubeCards.add(new CardIdentity("Stinkweed Imp", "")); cubeCards.add(new CardIdentity("Steel Hellkite", ""));
cubeCards.add(new CardIdentity("Stirring Wildwood", ""));
cubeCards.add(new CardIdentity("Stoke the Flames", "")); cubeCards.add(new CardIdentity("Stoke the Flames", ""));
cubeCards.add(new CardIdentity("Stomping Ground", "")); cubeCards.add(new CardIdentity("Stomping Ground", ""));
cubeCards.add(new CardIdentity("Stormbreath Dragon", "")); cubeCards.add(new CardIdentity("Stoneforge Mystic", ""));
cubeCards.add(new CardIdentity("Stroke of Genius", "")); cubeCards.add(new CardIdentity("Stratus Dancer", ""));
cubeCards.add(new CardIdentity("Stromkirk Noble", ""));
cubeCards.add(new CardIdentity("Student of Warfare", "")); cubeCards.add(new CardIdentity("Student of Warfare", ""));
cubeCards.add(new CardIdentity("Sublime Archangel", "")); cubeCards.add(new CardIdentity("Sublime Archangel", ""));
cubeCards.add(new CardIdentity("Sulfur Falls", "")); cubeCards.add(new CardIdentity("Sulfur Falls", ""));
cubeCards.add(new CardIdentity("Sulfuric Vortex", ""));
cubeCards.add(new CardIdentity("Sulfurous Springs", ""));
cubeCards.add(new CardIdentity("Summoning Trap", ""));
cubeCards.add(new CardIdentity("Sun Titan", "")); cubeCards.add(new CardIdentity("Sun Titan", ""));
cubeCards.add(new CardIdentity("Sundering Titan", "")); cubeCards.add(new CardIdentity("Sundering Titan", ""));
cubeCards.add(new CardIdentity("Sunpetal Grove", "")); cubeCards.add(new CardIdentity("Sunpetal Grove", ""));
cubeCards.add(new CardIdentity("Supreme Verdict", "")); cubeCards.add(new CardIdentity("Supreme Verdict", ""));
cubeCards.add(new CardIdentity("Supreme Will", ""));
cubeCards.add(new CardIdentity("Sweltering Suns", ""));
cubeCards.add(new CardIdentity("Sword of Body and Mind", ""));
cubeCards.add(new CardIdentity("Sword of Feast and Famine", ""));
cubeCards.add(new CardIdentity("Sword of Fire and Ice", ""));
cubeCards.add(new CardIdentity("Sword of Light and Shadow", ""));
cubeCards.add(new CardIdentity("Sword of Sinew and Steel", ""));
cubeCards.add(new CardIdentity("Sword of War and Peace", ""));
cubeCards.add(new CardIdentity("Swords to Plowshares", "")); cubeCards.add(new CardIdentity("Swords to Plowshares", ""));
cubeCards.add(new CardIdentity("Sylvan Caryatid", "")); cubeCards.add(new CardIdentity("Sylvan Caryatid", ""));
cubeCards.add(new CardIdentity("Sylvan Library", "")); cubeCards.add(new CardIdentity("Sylvan Library", ""));
cubeCards.add(new CardIdentity("Taiga", "")); cubeCards.add(new CardIdentity("Taiga", ""));
cubeCards.add(new CardIdentity("Tale's End", ""));
cubeCards.add(new CardIdentity("Talrand, Sky Summoner", "")); cubeCards.add(new CardIdentity("Talrand, Sky Summoner", ""));
cubeCards.add(new CardIdentity("Tamiyo, the Moon Sage", "")); cubeCards.add(new CardIdentity("Tamiyo, the Moon Sage", ""));
cubeCards.add(new CardIdentity("Tangle Wire", "")); cubeCards.add(new CardIdentity("Tangle Wire", ""));
cubeCards.add(new CardIdentity("Tarmogoyf", "")); cubeCards.add(new CardIdentity("Tasigur, the Golden Fang", ""));
cubeCards.add(new CardIdentity("Tectonic Edge", "")); cubeCards.add(new CardIdentity("Tectonic Edge", ""));
cubeCards.add(new CardIdentity("Teetering Peaks", "")); cubeCards.add(new CardIdentity("Teferi, Hero of Dominaria", ""));
cubeCards.add(new CardIdentity("Teferi, Mage of Zhalfir", "")); cubeCards.add(new CardIdentity("Teferi, Time Raveler", ""));
cubeCards.add(new CardIdentity("Temple Garden", "")); cubeCards.add(new CardIdentity("Temple Garden", ""));
cubeCards.add(new CardIdentity("Temple of Abandon", "")); cubeCards.add(new CardIdentity("Temporal Mastery", ""));
cubeCards.add(new CardIdentity("Temple of Deceit", ""));
cubeCards.add(new CardIdentity("Temple of Enlightenment", ""));
cubeCards.add(new CardIdentity("Temple of Epiphany", ""));
cubeCards.add(new CardIdentity("Temple of Malady", ""));
cubeCards.add(new CardIdentity("Temple of Malice", ""));
cubeCards.add(new CardIdentity("Temple of Mystery", ""));
cubeCards.add(new CardIdentity("Temple of Plenty", ""));
cubeCards.add(new CardIdentity("Temple of Silence", ""));
cubeCards.add(new CardIdentity("Temple of Triumph", ""));
cubeCards.add(new CardIdentity("Tempt with Vengeance", ""));
cubeCards.add(new CardIdentity("Tendrils of Corruption", ""));
cubeCards.add(new CardIdentity("Terastodon", "")); cubeCards.add(new CardIdentity("Terastodon", ""));
cubeCards.add(new CardIdentity("Terminate", ""));
cubeCards.add(new CardIdentity("Terminus", "")); cubeCards.add(new CardIdentity("Terminus", ""));
cubeCards.add(new CardIdentity("Thalia, Guardian of Thraben", "")); cubeCards.add(new CardIdentity("Thalia, Guardian of Thraben", ""));
cubeCards.add(new CardIdentity("Thassa, God of the Sea", "")); cubeCards.add(new CardIdentity("Thalia, Heretic Cathar", ""));
cubeCards.add(new CardIdentity("Think Twice", "")); cubeCards.add(new CardIdentity("The Immortal Sun", ""));
cubeCards.add(new CardIdentity("The Scarab God", ""));
cubeCards.add(new CardIdentity("Thief of Sanity", ""));
cubeCards.add(new CardIdentity("Thing in the Ice", ""));
cubeCards.add(new CardIdentity("Thirst for Knowledge", ""));
cubeCards.add(new CardIdentity("Thoughtseize", "")); cubeCards.add(new CardIdentity("Thoughtseize", ""));
cubeCards.add(new CardIdentity("Thraben Inspector", ""));
cubeCards.add(new CardIdentity("Thragtusk", "")); cubeCards.add(new CardIdentity("Thragtusk", ""));
cubeCards.add(new CardIdentity("Thran Dynamo", "")); cubeCards.add(new CardIdentity("Thran Dynamo", ""));
cubeCards.add(new CardIdentity("Thrashing Brontodon", ""));
cubeCards.add(new CardIdentity("Through the Breach", "")); cubeCards.add(new CardIdentity("Through the Breach", ""));
cubeCards.add(new CardIdentity("Thrun, the Last Troll", "")); cubeCards.add(new CardIdentity("Thrun, the Last Troll", ""));
cubeCards.add(new CardIdentity("Thunderbreak Regent", ""));
cubeCards.add(new CardIdentity("Thundermaw Hellkite", "")); cubeCards.add(new CardIdentity("Thundermaw Hellkite", ""));
cubeCards.add(new CardIdentity("Tidehollow Sculler", ""));
cubeCards.add(new CardIdentity("Time Warp", "")); cubeCards.add(new CardIdentity("Time Warp", ""));
cubeCards.add(new CardIdentity("Tireless Tracker", ""));
cubeCards.add(new CardIdentity("Tithe Taker", ""));
cubeCards.add(new CardIdentity("Tooth and Nail", "")); cubeCards.add(new CardIdentity("Tooth and Nail", ""));
cubeCards.add(new CardIdentity("Tormenting Voice", ""));
cubeCards.add(new CardIdentity("Torrential Gearhulk", ""));
cubeCards.add(new CardIdentity("Toxic Deluge", "")); cubeCards.add(new CardIdentity("Toxic Deluge", ""));
cubeCards.add(new CardIdentity("Tracker's Instincts", ""));
cubeCards.add(new CardIdentity("Tradewind Rider", ""));
cubeCards.add(new CardIdentity("Treachery", "")); cubeCards.add(new CardIdentity("Treachery", ""));
cubeCards.add(new CardIdentity("Troll Ascetic", "")); cubeCards.add(new CardIdentity("Treasure Map", ""));
cubeCards.add(new CardIdentity("Treetop Village", ""));
cubeCards.add(new CardIdentity("Tropical Island", "")); cubeCards.add(new CardIdentity("Tropical Island", ""));
cubeCards.add(new CardIdentity("Trygon Predator", "")); cubeCards.add(new CardIdentity("Trostani Discordant", ""));
cubeCards.add(new CardIdentity("Tundra", "")); cubeCards.add(new CardIdentity("Tundra", ""));
cubeCards.add(new CardIdentity("Ugin, the Spirit Dragon", ""));
cubeCards.add(new CardIdentity("Ulamog, the Ceaseless Hunger", ""));
cubeCards.add(new CardIdentity("Ulamog, the Infinite Gyre", "")); cubeCards.add(new CardIdentity("Ulamog, the Infinite Gyre", ""));
cubeCards.add(new CardIdentity("Ultimate Price", "")); cubeCards.add(new CardIdentity("Ultimate Price", ""));
cubeCards.add(new CardIdentity("Umezawa's Jitte", "")); cubeCards.add(new CardIdentity("Umezawa's Jitte", ""));
cubeCards.add(new CardIdentity("Unburial Rites", "")); cubeCards.add(new CardIdentity("Unburial Rites", ""));
cubeCards.add(new CardIdentity("Underground River", ""));
cubeCards.add(new CardIdentity("Underground Sea", "")); cubeCards.add(new CardIdentity("Underground Sea", ""));
cubeCards.add(new CardIdentity("Underworld Connections", ""));
cubeCards.add(new CardIdentity("Unexpectedly Absent", "")); cubeCards.add(new CardIdentity("Unexpectedly Absent", ""));
cubeCards.add(new CardIdentity("Upheaval", "")); cubeCards.add(new CardIdentity("Upheaval", ""));
cubeCards.add(new CardIdentity("Urza, Lord High Artificer", ""));
cubeCards.add(new CardIdentity("Utopia Sprawl", ""));
cubeCards.add(new CardIdentity("Vampire Hexmage", "")); cubeCards.add(new CardIdentity("Vampire Hexmage", ""));
cubeCards.add(new CardIdentity("Vampire Lacerator", ""));
cubeCards.add(new CardIdentity("Vampire Nighthawk", "")); cubeCards.add(new CardIdentity("Vampire Nighthawk", ""));
cubeCards.add(new CardIdentity("Vedalken Shackles", ""));
cubeCards.add(new CardIdentity("Vendilion Clique", "")); cubeCards.add(new CardIdentity("Vendilion Clique", ""));
cubeCards.add(new CardIdentity("Vengevine", "")); cubeCards.add(new CardIdentity("Venerated Loxodon", ""));
cubeCards.add(new CardIdentity("Venser, Shaper Savant", "")); cubeCards.add(new CardIdentity("Venser, Shaper Savant", ""));
cubeCards.add(new CardIdentity("Venser, the Sojourner", ""));
cubeCards.add(new CardIdentity("Verdant Catacombs", "")); cubeCards.add(new CardIdentity("Verdant Catacombs", ""));
cubeCards.add(new CardIdentity("Vindicate", "")); cubeCards.add(new CardIdentity("Vindicate", ""));
cubeCards.add(new CardIdentity("Visara the Dreadful", "")); cubeCards.add(new CardIdentity("Vivien Reid", ""));
cubeCards.add(new CardIdentity("Voice of Resurgence", "")); cubeCards.add(new CardIdentity("Voice of Resurgence", ""));
cubeCards.add(new CardIdentity("Volcanic Island", "")); cubeCards.add(new CardIdentity("Volcanic Island", ""));
cubeCards.add(new CardIdentity("Volrath's Stronghold", "")); cubeCards.add(new CardIdentity("Volrath's Stronghold", ""));
cubeCards.add(new CardIdentity("Vraska the Unseen", "")); cubeCards.add(new CardIdentity("Vraska's Contempt", ""));
cubeCards.add(new CardIdentity("Vraska, Relic Seeker", ""));
cubeCards.add(new CardIdentity("Wake Thrasher", "")); cubeCards.add(new CardIdentity("Wake Thrasher", ""));
cubeCards.add(new CardIdentity("Walking Ballista", ""));
cubeCards.add(new CardIdentity("Wall of Blossoms", "")); cubeCards.add(new CardIdentity("Wall of Blossoms", ""));
cubeCards.add(new CardIdentity("Wall of Omens", "")); cubeCards.add(new CardIdentity("Wall of Omens", ""));
cubeCards.add(new CardIdentity("Wall of Roots", "")); cubeCards.add(new CardIdentity("Wandering Fumarole", ""));
cubeCards.add(new CardIdentity("Warleader's Helix", ""));
cubeCards.add(new CardIdentity("Wasteland", "")); cubeCards.add(new CardIdentity("Wasteland", ""));
cubeCards.add(new CardIdentity("Waterfront Bouncer", ""));
cubeCards.add(new CardIdentity("Watery Grave", "")); cubeCards.add(new CardIdentity("Watery Grave", ""));
cubeCards.add(new CardIdentity("Whip of Erebos", "")); cubeCards.add(new CardIdentity("Whip of Erebos", ""));
cubeCards.add(new CardIdentity("Wild Mongrel", "")); cubeCards.add(new CardIdentity("Whirler Rogue", ""));
cubeCards.add(new CardIdentity("Whisperwood Elemental", ""));
cubeCards.add(new CardIdentity("Wickerbough Elder", ""));
cubeCards.add(new CardIdentity("Windbrisk Heights", "")); cubeCards.add(new CardIdentity("Windbrisk Heights", ""));
cubeCards.add(new CardIdentity("Windswept Heath", "")); cubeCards.add(new CardIdentity("Windswept Heath", ""));
cubeCards.add(new CardIdentity("Winter Orb", ""));
cubeCards.add(new CardIdentity("Wolfir Silverheart", ""));
cubeCards.add(new CardIdentity("Wood Elves", "")); cubeCards.add(new CardIdentity("Wood Elves", ""));
cubeCards.add(new CardIdentity("Wooded Foothills", "")); cubeCards.add(new CardIdentity("Wooded Foothills", ""));
cubeCards.add(new CardIdentity("Woodfall Primus", "")); cubeCards.add(new CardIdentity("Woodfall Primus", ""));
cubeCards.add(new CardIdentity("Woodland Cemetery", "")); cubeCards.add(new CardIdentity("Woodland Cemetery", ""));
cubeCards.add(new CardIdentity("Worn Powerstone", "")); cubeCards.add(new CardIdentity("Worn Powerstone", ""));
cubeCards.add(new CardIdentity("Wrath of God", "")); cubeCards.add(new CardIdentity("Wrath of God", ""));
cubeCards.add(new CardIdentity("Wrenn and Six", ""));
cubeCards.add(new CardIdentity("Wretched Confluence", ""));
cubeCards.add(new CardIdentity("Wurmcoil Engine", "")); cubeCards.add(new CardIdentity("Wurmcoil Engine", ""));
cubeCards.add(new CardIdentity("Xathrid Necromancer", ""));
cubeCards.add(new CardIdentity("Xenagos, the Reveler", "")); cubeCards.add(new CardIdentity("Xenagos, the Reveler", ""));
cubeCards.add(new CardIdentity("Yavimaya Coast", ""));
cubeCards.add(new CardIdentity("Yavimaya Elder", "")); cubeCards.add(new CardIdentity("Yavimaya Elder", ""));
cubeCards.add(new CardIdentity("Yosei, the Morning Star", "")); cubeCards.add(new CardIdentity("Yawgmoth, Thran Physician", ""));
cubeCards.add(new CardIdentity("Young Pyromancer", "")); cubeCards.add(new CardIdentity("Young Pyromancer", ""));
cubeCards.add(new CardIdentity("Zealous Conscripts", "")); cubeCards.add(new CardIdentity("Zealous Conscripts", ""));
cubeCards.add(new CardIdentity("Zurgo Bellstriker", ""));
} }
} }

View file

@ -9,9 +9,9 @@ import mage.game.draft.DraftCube;
* *
* @author JayDi85 * @author JayDi85
*/ */
public class MTGOVintageCube extends DraftCube { public class VintageCube extends DraftCube {
public MTGOVintageCube() { public VintageCube() {
super("MTGO Vintage Cube", "", 2025, 4, 23); super("MTGO Vintage Cube", "", 2025, 4, 23);
cubeCards.add(new CardIdentity("\"Name Sticker\" Goblin", "")); cubeCards.add(new CardIdentity("\"Name Sticker\" Goblin", ""));

View file

@ -128,6 +128,8 @@
<draftCube name="MTGO Khans Expanded Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.KhansExpandedCube"/> <draftCube name="MTGO Khans Expanded Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.KhansExpandedCube"/>
<draftCube name="MTGO Cube March 2014" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.MTGOMarchCube2014"/> <draftCube name="MTGO Cube March 2014" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.MTGOMarchCube2014"/>
<draftCube name="MTGO Legacy Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCube"/> <draftCube name="MTGO Legacy Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCube"/>
<!-- outdated cubes - will be removed on next releases -->
<!--
<draftCube name="MTGO Legacy Cube 2015 March" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeMarch2015"/> <draftCube name="MTGO Legacy Cube 2015 March" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeMarch2015"/>
<draftCube name="MTGO Legacy Cube 2015 September" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeSeptember2015"/> <draftCube name="MTGO Legacy Cube 2015 September" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeSeptember2015"/>
<draftCube name="MTGO Legacy Cube 2016 January" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeJanuary2016"/> <draftCube name="MTGO Legacy Cube 2016 January" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeJanuary2016"/>
@ -137,10 +139,11 @@
<draftCube name="MTGO Legacy Cube 2018 February" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCube2018February"/> <draftCube name="MTGO Legacy Cube 2018 February" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCube2018February"/>
<draftCube name="MTGO Legacy Cube 2019 July" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeJuly2019"/> <draftCube name="MTGO Legacy Cube 2019 July" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeJuly2019"/>
<draftCube name="MTGO Legacy Cube 2021 May" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeMay2021"/> <draftCube name="MTGO Legacy Cube 2021 May" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeMay2021"/>
-->
<draftCube name="MTGO Legendary Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegendaryCube"/> <draftCube name="MTGO Legendary Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegendaryCube"/>
<draftCube name="MTGO Legendary Cube April 2016" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegendaryCubeApril2016"/> <draftCube name="MTGO Legendary Cube April 2016" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegendaryCubeApril2016"/>
<draftCube name="MTGO Modern Cube 2017" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.ModernCube2017"/> <draftCube name="MTGO Modern Cube 2017" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.ModernCube2017"/>
<draftCube name="MTGO Vintage Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.MTGOVintageCube"/> <draftCube name="MTGO Vintage Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCube"/>
<!-- outdated cubes - will be removed on next releases --> <!-- outdated cubes - will be removed on next releases -->
<!-- <!--
<draftCube name="MTGO Vintage Cube 2013" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCube2013"/> <draftCube name="MTGO Vintage Cube 2013" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCube2013"/>

View file

@ -122,6 +122,8 @@
<draftCube name="MTGO Khans Expanded Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.KhansExpandedCube"/> <draftCube name="MTGO Khans Expanded Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.KhansExpandedCube"/>
<draftCube name="MTGO Cube March 2014" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.MTGOMarchCube2014"/> <draftCube name="MTGO Cube March 2014" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.MTGOMarchCube2014"/>
<draftCube name="MTGO Legacy Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCube"/> <draftCube name="MTGO Legacy Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCube"/>
<!-- outdated cubes - will be removed on next releases -->
<!--
<draftCube name="MTGO Legacy Cube 2015 March" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeMarch2015"/> <draftCube name="MTGO Legacy Cube 2015 March" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeMarch2015"/>
<draftCube name="MTGO Legacy Cube 2015 September" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeSeptember2015"/> <draftCube name="MTGO Legacy Cube 2015 September" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeSeptember2015"/>
<draftCube name="MTGO Legacy Cube 2016 January" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeJanuary2016"/> <draftCube name="MTGO Legacy Cube 2016 January" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeJanuary2016"/>
@ -131,10 +133,11 @@
<draftCube name="MTGO Legacy Cube 2018 February" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCube2018February"/> <draftCube name="MTGO Legacy Cube 2018 February" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCube2018February"/>
<draftCube name="MTGO Legacy Cube 2019 July" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeJuly2019"/> <draftCube name="MTGO Legacy Cube 2019 July" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeJuly2019"/>
<draftCube name="MTGO Legacy Cube 2021 May" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeMay2021"/> <draftCube name="MTGO Legacy Cube 2021 May" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegacyCubeMay2021"/>
-->
<draftCube name="MTGO Legendary Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegendaryCube"/> <draftCube name="MTGO Legendary Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegendaryCube"/>
<draftCube name="MTGO Legendary Cube April 2016" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegendaryCubeApril2016"/> <draftCube name="MTGO Legendary Cube April 2016" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.LegendaryCubeApril2016"/>
<draftCube name="MTGO Modern Cube 2017" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.ModernCube2017"/> <draftCube name="MTGO Modern Cube 2017" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.ModernCube2017"/>
<draftCube name="MTGO Vintage Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.MTGOVintageCube"/> <draftCube name="MTGO Vintage Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.VintageCube"/>
<!-- outdated cubes - will be removed on next releases --> <!-- outdated cubes - will be removed on next releases -->
<!-- <!--
<draftCube name="MTGO Vintage Cube 2013" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.VintageCube2013"/> <draftCube name="MTGO Vintage Cube 2013" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.VintageCube2013"/>

View file

@ -32,152 +32,17 @@
/> />
<playerTypes> <playerTypes>
<playerType name="Human" jar="mage-player-human.jar" className="mage.player.human.HumanPlayer"/> <playerType name="Human" jar="mage-player-human.jar" className="mage.player.human.HumanPlayer"/>
<playerType name="Computer - mad" jar="mage-player-ai-ma.jar" className="mage.player.ai.ComputerPlayerControllableProxy"/>
<playerType name="Computer - monte carlo" jar="mage-player-aimcts.jar" className="mage.player.ai.ComputerPlayerMCTS"/>
<playerType name="Computer - draftbot" jar="mage-player-ai-draft-bot.jar" className="mage.player.ai.ComputerDraftPlayer"/>
</playerTypes> </playerTypes>
<gameTypes> <gameTypes>
<gameType name="Two Player Duel" jar="mage-game-twoplayerduel.jar" className="mage.game.TwoPlayerMatch" typeName="mage.game.TwoPlayerDuelType"/> <gameType name="Two Player Duel" jar="mage-game-twoplayerduel.jar" className="mage.game.TwoPlayerMatch" typeName="mage.game.TwoPlayerDuelType"/>
<gameType name="Free For All" jar="mage-game-freeforall.jar" className="mage.game.FreeForAllMatch" typeName="mage.game.FreeForAllType"/>
<gameType name="Commander Two Player Duel" jar="mage-game-commanderduel.jar" className="mage.game.CommanderDuelMatch" typeName="mage.game.CommanderDuelType"/>
<gameType name="Commander Free For All" jar="mage-game-commanderfreeforall.jar" className="mage.game.CommanderFreeForAllMatch" typeName="mage.game.CommanderFreeForAllType"/>
<gameType name="Tiny Leaders Two Player Duel" jar="mage-game-tinyleadersduel.jar" className="mage.game.TinyLeadersDuelMatch" typeName="mage.game.TinyLeadersDuelType"/>
<gameType name="Canadian Highlander Two Player Duel" jar="mage-game-canadianhighlanderduel.jar" className="mage.game.CanadianHighlanderDuelMatch" typeName="mage.game.CanadianHighlanderDuelType"/>
<gameType name="Penny Dreadful Commander Free For All" jar="mage-game-pennydreadfulcommanderfreeforall.jar" className="mage.game.PennyDreadfulCommanderFreeForAllMatch" typeName="mage.game.PennyDreadfulCommanderFreeForAllType"/>
<gameType name="Freeform Commander Two Player Duel" jar="mage-game-freeformcommanderduel.jar" className="mage.game.FreeformCommanderDuelMatch" typeName="mage.game.FreeformCommanderDuelType"/>
<gameType name="Freeform Commander Free For All" jar="mage-game-freeformcommanderfreeforall.jar" className="mage.game.FreeformCommanderFreeForAllMatch" typeName="mage.game.FreeformCommanderFreeForAllType"/>
<gameType name="Freeform Unlimited Commander" jar="mage-game-freeformunlimitedcommander.jar" className="mage.game.FreeformUnlimitedCommanderMatch" typeName="mage.game.FreeformUnlimitedCommanderType"/>
<gameType name="Custom Pillar of the Paruns Two Player Duel" jar="mage-game-custompillaroftheparunsduel.jar" className="mage.game.CustomPillarOfTheParunsDuelMatch" typeName="mage.game.CustomPillarOfTheParunsDuelType"/>
<gameType name="Oathbreaker Two Player Duel" jar="mage-game-oathbreakerduel.jar" className="mage.game.OathbreakerDuelMatch" typeName="mage.game.OathbreakerDuelType"/>
<gameType name="Oathbreaker Free For All" jar="mage-game-oathbreakerfreeforall.jar" className="mage.game.OathbreakerFreeForAllMatch" typeName="mage.game.OathbreakerFreeForAllType"/>
<gameType name="Brawl Two Player Duel" jar="mage-game-brawlduel.jar" className="mage.game.BrawlDuelMatch" typeName="mage.game.BrawlDuelType"/>
<gameType name="Brawl Free For All" jar="mage-game-brawlfreeforall.jar" className="mage.game.BrawlFreeForAllMatch" typeName="mage.game.BrawlFreeForAllType"/>
<gameType name="Momir Basic Two Player Duel" jar="mage-game-momirduel.jar" className="mage.game.MomirDuelMatch" typeName="mage.game.MomirDuelType"/>
<gameType name="Momir Basic Free For All" jar="mage-game-momir.jar" className="mage.game.MomirFreeForAllMatch" typeName="mage.game.MomirFreeForAllType"/>
</gameTypes> </gameTypes>
<tournamentTypes> <tournamentTypes>
<tournamentType name="Constructed Elimination" jar="mage-tournament-constructed.jar" className="mage.tournament.ConstructedEliminationTournament" typeName="mage.tournament.ConstructedEliminationTournamentType"/> <tournamentType name="Constructed Elimination" jar="mage-tournament-constructed.jar" className="mage.tournament.ConstructedEliminationTournament" typeName="mage.tournament.ConstructedEliminationTournamentType"/>
<tournamentType name="Constructed Swiss" jar="mage-tournament-constructed.jar" className="mage.tournament.ConstructedSwissTournament" typeName="mage.tournament.ConstructedSwissTournamentType"/>
<tournamentType name="Booster Draft Elimination" jar="mage-tournament-booster-draft.jar" className="mage.tournament.BoosterDraftEliminationTournament" typeName="mage.tournament.BoosterDraftEliminationTournamentType"/>
<tournamentType name="Booster Draft Elimination (Cube)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.BoosterDraftEliminationTournament" typeName="mage.tournament.BoosterDraftEliminationCubeTournamentType"/>
<tournamentType name="Booster Draft Elimination (Random)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.RandomBoosterDraftEliminationTournament" typeName="mage.tournament.RandomBoosterDraftEliminationTournamentType"/>
<tournamentType name="Booster Draft Elimination (Reshuffled)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.ReshuffledBoosterDraftEliminationTournament" typeName="mage.tournament.ReshuffledBoosterDraftEliminationTournamentType"/>
<tournamentType name="Booster Draft Elimination (Rich Man)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.RichManDraftEliminationTournament" typeName="mage.tournament.RichManDraftEliminationTournamentType"/>
<tournamentType name="Booster Draft Elimination (Rich Man Cube)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.RichManCubeDraftEliminationTournament" typeName="mage.tournament.RichManCubeDraftEliminationTournamentType"/>
<tournamentType name="Booster Draft Swiss" jar="mage-tournament-booster-draft.jar" className="mage.tournament.BoosterDraftSwissTournament" typeName="mage.tournament.BoosterDraftSwissTournamentType"/>
<tournamentType name="Booster Draft Swiss (Cube)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.BoosterDraftSwissTournament" typeName="mage.tournament.BoosterDraftSwissCubeTournamentType"/>
<tournamentType name="Booster Draft Swiss (Random)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.RandomBoosterDraftSwissTournament" typeName="mage.tournament.RandomBoosterDraftSwissTournamentType"/>
<tournamentType name="Booster Draft Swiss (Reshuffled)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.ReshuffledBoosterDraftSwissTournament" typeName="mage.tournament.ReshuffledBoosterDraftSwissTournamentType"/>
<tournamentType name="Booster Draft Swiss (Rich Man)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.RichManDraftSwissTournament" typeName="mage.tournament.RichManDraftSwissTournamentType"/>
<tournamentType name="Booster Draft Swiss (Rich Man Cube)" jar="mage-tournament-booster-draft.jar" className="mage.tournament.RichManCubeDraftSwissTournament" typeName="mage.tournament.RichManCubeDraftSwissTournamentType"/>
<tournamentType name="Sealed Elimination" jar="mage-tournament-sealed.jar" className="mage.tournament.SealedEliminationTournament" typeName="mage.tournament.SealedEliminationTournamentType"/>
<tournamentType name="Sealed Elimination (Cube)" jar="mage-tournament-sealed.jar" className="mage.tournament.SealedEliminationTournament" typeName="mage.tournament.SealedEliminationCubeTournamentType"/>
<tournamentType name="Sealed Swiss" jar="mage-tournament-sealed.jar" className="mage.tournament.SealedSwissTournament" typeName="mage.tournament.SealedSwissTournamentType"/>
<tournamentType name="Sealed Swiss (Cube)" jar="mage-tournament-sealed.jar" className="mage.tournament.SealedSwissTournament" typeName="mage.tournament.SealedSwissCubeTournamentType"/>
<tournamentType name="Jumpstart Elimination" jar="mage-tournament-sealed.jar" className="mage.tournament.JumpstartEliminationTournament" typeName="mage.tournament.JumpstartEliminationTournamentType"/>
<tournamentType name="Jumpstart Swiss" jar="mage-tournament-sealed.jar" className="mage.tournament.JumpstartSwissTournament" typeName="mage.tournament.JumpstartSwissTournamentType"/>
<tournamentType name="Jumpstart Elimination (Custom)" jar="mage-tournament-sealed.jar" className="mage.tournament.JumpstartCustomEliminationTournament" typeName="mage.tournament.JumpstartCustomEliminationTournamentType"/>
</tournamentTypes> </tournamentTypes>
<draftCubes> <draftCubes>
<draftCube name="Adam Styborski's Pauper Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.AdamStyborskisPauperCube"/> <draftCube name="Adam Styborski's Pauper Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.AdamStyborskisPauperCube"/>
<draftCube name="Ben's Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.BensCube"/>
<draftCube name="Cube Tutor 360 Pauper" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.CubeTutor360Pauper"/>
<draftCube name="Cube Tutor 720" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.CubeTutor720"/>
<draftCube name="Eric Klug's Pro Tour Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.EricKlugsProTourCube"/>
<draftCube name="Guillaume Matignon's Jenny's/Johnny's Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.GuillaumeMatignonsJennysJohnnysCube"/>
<draftCube name="Jim Davis's Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.JimDavisCube"/>
<draftCube name="Joseph Vasoli's Peasant Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.JosephVasolisPeasantCube"/>
<draftCube name="Mono Blue Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.MonoBlueCube"/>
<draftCube name="Sam Black's No Search Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.SamBlacksCube"/>
<draftCube name="Timothee Simonot's Twisted Color Pie Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.TimotheeSimonotsTwistedColorPieCube"/>
<draftCube name="MTGA Cube 2020 April" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.MTGACube2020April"/>
<draftCube name="MTGO Khans Expanded Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.KhansExpandedCube"/>
<draftCube name="MTGO Cube March 2014" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.MTGOMarchCube2014"/>
<draftCube name="MTGO Legacy Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCube"/>
<draftCube name="MTGO Legacy Cube 2015 March" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeMarch2015"/>
<draftCube name="MTGO Legacy Cube 2015 September" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeSeptember2015"/>
<draftCube name="MTGO Legacy Cube 2016 January" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeJanuary2016"/>
<draftCube name="MTGO Legacy Cube 2016 September" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeSeptember2016"/>
<draftCube name="MTGO Legacy Cube 2017 January" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeJanuary2017"/>
<draftCube name="MTGO Legacy Cube 2017 April" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeApril2017"/>
<draftCube name="MTGO Legacy Cube 2018 February" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCube2018February"/>
<draftCube name="MTGO Legacy Cube 2019 July" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegacyCubeJuly2019"/>
<draftCube name="MTGO Legendary Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegendaryCube"/>
<draftCube name="MTGO Legendary Cube April 2016" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.LegendaryCubeApril2016"/>
<draftCube name="MTGO Modern Cube 2017" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.ModernCube2017"/>
<draftCube name="MTGO Vintage Cube" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.MTGOVintageCube"/>
<!-- outdated cubes - will be removed on next releases -->
<!--
<draftCube name="MTGO Vintage Cube 2013" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCube2013"/>
<draftCube name="MTGO Vintage Cube 2014" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCube2014"/>
<draftCube name="MTGO Vintage Cube 2015" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCube2015"/>
<draftCube name="MTGO Vintage Cube 2016" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCube2016"/>
<draftCube name="MTGO Vintage Cube June 2016" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeJune2016"/>
<draftCube name="MTGO Vintage Cube November 2016" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeNovember2016"/>
<draftCube name="MTGO Vintage Cube June 2017" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeJune2017"/>
<draftCube name="MTGO Vintage Cube December 2017" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeDecember2017"/>
<draftCube name="MTGO Vintage Cube June 2018" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeJune2018"/>
<draftCube name="MTGO Vintage Cube December 2018" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeDecember2018"/>
<draftCube name="MTGO Vintage Cube June 2019" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeJune2019"/>
<draftCube name="MTGO Vintage Cube December 2019" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeDecember2019"/>
<draftCube name="MTGO Vintage Cube April 2020" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeApril2020"/>
<draftCube name="MTGO Vintage Cube July 2020" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.VintageCubeJuly2020"/>
-->
<draftCube name="SCG Con Cube 2018 December" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.ScgConCube2018December"/>
<draftCube name="The Peasant's Toolbox" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.PeasantsToolboxCube"/>
<draftCube name="www.MTGCube.com" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.MTGCube"/>
<draftCube name="Cube From Deck" jar="mage-tournament-booster-draft.jar" className="mage.tournament.cubes.CubeFromDeck"/>
</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 - Extended" jar="mage-deck-constructed.jar" className="mage.deck.Extended"/>
<deckType name="Constructed - Frontier" jar="mage-deck-constructed.jar" className="mage.deck.Frontier"/>
<deckType name="Constructed - Pioneer" jar="mage-deck-constructed.jar" className="mage.deck.Pioneer"/>
<deckType name="Constructed - Modern" jar="mage-deck-constructed.jar" className="mage.deck.Modern"/>
<deckType name="Constructed - Modern - No Banned List" jar="mage-deck-constructed.jar" className="mage.deck.ModernNoBannedList"/>
<deckType name="Constructed - Eternal" jar="mage-deck-constructed.jar" className="mage.deck.Eternal"/>
<deckType name="Constructed - Legacy" jar="mage-deck-constructed.jar" className="mage.deck.Legacy"/>
<deckType name="Constructed - Vintage" jar="mage-deck-constructed.jar" className="mage.deck.Vintage"/>
<deckType name="Constructed - Pauper" jar="mage-deck-constructed.jar" className="mage.deck.Pauper"/>
<deckType name="Constructed - Historic" jar="mage-deck-constructed.jar" className="mage.deck.Historic"/>
<deckType name="Constructed - Historical Type 2" jar="mage-deck-constructed.jar" className="mage.deck.HistoricalType2"/>
<deckType name="Constructed - Super Type 2" jar="mage-deck-constructed.jar" className="mage.deck.SuperType2"/>
<deckType name="Constructed - Australian Highlander" jar="mage-deck-constructed.jar" className="mage.deck.AusHighlander"/>
<deckType name="Constructed - Canadian Highlander" jar="mage-deck-constructed.jar" className="mage.deck.CanadianHighlander"/>
<deckType name="Constructed - Old School 93/94" jar="mage-deck-constructed.jar" className="mage.deck.OldSchool9394"/>
<deckType name="Constructed - Old School 93/94 - Italian Rules" jar="mage-deck-constructed.jar" className="mage.deck.OldSchool9394Italian"/>
<deckType name="Constructed - Old School 93/94 - Channel Fireball Rules" jar="mage-deck-constructed.jar" className="mage.deck.OldSchool9394CFB"/>
<deckType name="Constructed - Old School 93/94 - EudoGames Rules" jar="mage-deck-constructed.jar" className="mage.deck.OldSchool9394EG"/>
<deckType name="Constructed - Old School 93/94 - EC Rules" jar="mage-deck-constructed.jar" className="mage.deck.OldSchool9394EC"/>
<deckType name="Constructed - Premodern" jar="mage-deck-constructed.jar" className="mage.deck.Premodern"/>
<deckType name="Constructed - Freeform" jar="mage-deck-constructed.jar" className="mage.deck.Freeform"/>
<deckType name="Variant Magic - Commander" jar="mage-deck-constructed.jar" className="mage.deck.Commander"/>
<deckType name="Variant Magic - Duel Commander" jar="mage-deck-constructed.jar" className="mage.deck.DuelCommander"/>
<deckType name="Variant Magic - MTGO 1v1 Commander" jar="mage-deck-constructed.jar" className="mage.deck.MTGO1v1Commander"/>
<deckType name="Variant Magic - Centurion Commander" jar="mage-deck-constructed.jar" className="mage.deck.CenturionCommander"/>
<deckType name="Variant Magic - Tiny Leaders" jar="mage-deck-constructed.jar" className="mage.deck.TinyLeaders"/>
<deckType name="Variant Magic - Momir Basic" jar="mage-deck-constructed.jar" className="mage.deck.Momir"/>
<deckType name="Variant Magic - Penny Dreadful Commander" jar="mage-deck-constructed.jar" className="mage.deck.PennyDreadfulCommander"/>
<deckType name="Variant Magic - Freeform Commander" jar="mage-deck-constructed.jar" className="mage.deck.FreeformCommander"/>
<deckType name="Variant Magic - Freeform Unlimited Commander" jar="mage-deck-constructed.jar" className="mage.deck.FreeformUnlimitedCommander"/>
<deckType name="Variant Magic - Brawl" jar="mage-deck-constructed.jar" className="mage.deck.Brawl"/>
<deckType name="Variant Magic - Oathbreaker" jar="mage-deck-constructed.jar" className="mage.deck.Oathbreaker"/>
<deckType name="Block Constructed - Amonkhet" jar="mage-deck-constructed.jar" className="mage.deck.AmonkhetBlock"/>
<deckType name="Block Constructed - Battle for Zendikar" jar="mage-deck-constructed.jar" className="mage.deck.BattleForZendikarBlock"/>
<deckType name="Block Constructed - Innistrad" jar="mage-deck-constructed.jar" className="mage.deck.InnistradBlock"/>
<deckType name="Block Constructed - Ixalan" jar="mage-deck-constructed.jar" className="mage.deck.IxalanBlock"/>
<deckType name="Block Constructed - Kaladesh" jar="mage-deck-constructed.jar" className="mage.deck.KaladeshBlock"/>
<deckType name="Block Constructed - Kamigawa" jar="mage-deck-constructed.jar" className="mage.deck.KamigawaBlock"/>
<deckType name="Block Constructed - Khans of Tarkir" jar="mage-deck-constructed.jar" className="mage.deck.KhansOfTarkirBlock"/>
<deckType name="Block Constructed - Lorwyn" jar="mage-deck-constructed.jar" className="mage.deck.LorwynBlock"/>
<deckType name="Block Constructed - Return to Ravnica" jar="mage-deck-constructed.jar" className="mage.deck.ReturnToRavnicaBlock"/>
<deckType name="Block Constructed - Scars of Mirrodin" jar="mage-deck-constructed.jar" className="mage.deck.ScarsOfMirrodinBlock"/>
<deckType name="Block Constructed - Shadowmoor" jar="mage-deck-constructed.jar" className="mage.deck.ShadowmoorBlock"/>
<deckType name="Block Constructed - Shadows over Innistrad" jar="mage-deck-constructed.jar" className="mage.deck.ShadowsOverInnistradBlock"/>
<deckType name="Block Constructed - Shards of Alara" jar="mage-deck-constructed.jar" className="mage.deck.ShardsOfAlaraBlock"/>
<deckType name="Block Constructed - Theros" jar="mage-deck-constructed.jar" className="mage.deck.TherosBlock"/>
<deckType name="Block Constructed - Zendikar" jar="mage-deck-constructed.jar" className="mage.deck.ZendikarBlock"/>
<deckType name="Block Constructed Custom - Star Wars" jar="mage-deck-constructed.jar" className="mage.deck.StarWarsBlock"/>
<deckType name="Limited" jar="mage-deck-limited.jar" className="mage.deck.Limited"/>
</deckTypes> </deckTypes>
</config> </config>

View file

@ -8,17 +8,14 @@ import mage.util.RandomUtil;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/** /**
* @author LevelX2, JayDi85 * @author LevelX2, JayDi85
*/ */
public abstract class DraftCube { public abstract class DraftCube {
SimpleDateFormat UPDATE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat UPDATE_DATE_FORMAT = new SimpleDateFormat("yyyy MMMM", Locale.ENGLISH); // 2025 April
private static final Logger logger = Logger.getLogger(DraftCube.class); private static final Logger logger = Logger.getLogger(DraftCube.class);