* Fixed missing lands from some sets in lands/decks generation;

This commit is contained in:
Oleg Agafonov 2018-10-03 00:45:58 +04:00
parent 63937351c1
commit 434044eb0f
47 changed files with 64 additions and 53 deletions

View file

@ -13,7 +13,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author North
*/
public final class ArabianNights extends ExpansionSet {
@ -26,13 +25,14 @@ public final class ArabianNights extends ExpansionSet {
private ArabianNights() {
super("Arabian Nights", "ARN", ExpansionSet.buildDate(1993, 11, 1), SetType.EXPANSION);
this.hasBasicLands = false;
this.hasBasicLands = true;
this.hasBoosters = true;
this.numBoosterLands = 1;
this.numBoosterCommon = 10;
this.numBoosterUncommon = 3;
this.numBoosterRare = 1;
this.ratioBoosterMythic = 0;
cards.add(new SetCardInfo("Abu Ja'far", 1, Rarity.UNCOMMON, mage.cards.a.AbuJafar.class));
cards.add(new SetCardInfo("Aladdin", 34, Rarity.RARE, mage.cards.a.Aladdin.class));
cards.add(new SetCardInfo("Aladdin's Lamp", 56, Rarity.RARE, mage.cards.a.AladdinsLamp.class));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class Champs extends ExpansionSet {
@ -20,6 +19,8 @@ public final class Champs extends ExpansionSet {
private Champs() {
super("Champs", "CP", ExpansionSet.buildDate(2006, 3, 18), SetType.PROMOTIONAL);
this.hasBoosters = false;
this.hasBasicLands = false;
cards.add(new SetCardInfo("Blood Knight", 7, Rarity.SPECIAL, mage.cards.b.BloodKnight.class));
cards.add(new SetCardInfo("Bramblewood Paragon", 11, Rarity.SPECIAL, mage.cards.b.BramblewoodParagon.class));
cards.add(new SetCardInfo("Doran, the Siege Tower", 10, Rarity.SPECIAL, mage.cards.d.DoranTheSiegeTower.class));

View file

@ -18,7 +18,7 @@ public final class CommanderAnthology extends ExpansionSet {
private CommanderAnthology() {
super("Commander Anthology", "CMA", ExpansionSet.buildDate(2017, 6, 9), SetType.SUPPLEMENTAL);
this.blockName = "Command Zone";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Acidic Slime", 90, Rarity.UNCOMMON, mage.cards.a.AcidicSlime.class));
cards.add(new SetCardInfo("Aerie Mystics", 1, Rarity.UNCOMMON, mage.cards.a.AerieMystics.class));

View file

@ -18,7 +18,7 @@ public class CommanderAnthologyVolumeII extends ExpansionSet {
private CommanderAnthologyVolumeII() {
super("Commander Anthology Volume II", "CM2", ExpansionSet.buildDate(2018, 6, 8), SetType.SUPPLEMENTAL);
this.blockName = "Command Zone";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Abzan Falconer", 15, Rarity.UNCOMMON, mage.cards.a.AbzanFalconer.class));
cards.add(new SetCardInfo("Acidic Slime", 132, Rarity.UNCOMMON, mage.cards.a.AcidicSlime.class));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class CommandersArsenal extends ExpansionSet {
@ -20,6 +19,8 @@ public final class CommandersArsenal extends ExpansionSet {
private CommandersArsenal() {
super("Commander's Arsenal", "CM1", ExpansionSet.buildDate(2012, 11, 2), SetType.SUPPLEMENTAL);
this.blockName = "Command Zone";
this.hasBasicLands = false;
cards.add(new SetCardInfo("Chaos Warp", 1, Rarity.RARE, mage.cards.c.ChaosWarp.class));
cards.add(new SetCardInfo("Command Tower", 2, Rarity.COMMON, mage.cards.c.CommandTower.class));
cards.add(new SetCardInfo("Decree of Pain", 3, Rarity.RARE, mage.cards.d.DecreeOfPain.class));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author LevelX2
*/
public final class DuelDecksAjaniVsNicolBolas extends ExpansionSet {
@ -20,7 +19,8 @@ public final class DuelDecksAjaniVsNicolBolas extends ExpansionSet {
private DuelDecksAjaniVsNicolBolas() {
super("Duel Decks: Ajani vs. Nicol Bolas", "DDH", ExpansionSet.buildDate(2011, 9, 2), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Ageless Entity", 18, Rarity.RARE, mage.cards.a.AgelessEntity.class));
cards.add(new SetCardInfo("Agonizing Demise", 66, Rarity.COMMON, mage.cards.a.AgonizingDemise.class));
cards.add(new SetCardInfo("Ajani's Mantra", 22, Rarity.COMMON, mage.cards.a.AjanisMantra.class));

View file

@ -19,7 +19,7 @@ public final class DuelDecksAnthologyDivineVsDemonic extends ExpansionSet {
super("Duel Decks: Anthology, Divine vs. Demonic", "DD3DVD", ExpansionSet.buildDate(2014, 12, 5),
SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks: Anthology";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Abyssal Gatekeeper", 31, Rarity.COMMON, mage.cards.a.AbyssalGatekeeper.class));
cards.add(new SetCardInfo("Abyssal Specter", 40, Rarity.UNCOMMON, mage.cards.a.AbyssalSpecter.class));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class DuelDecksAnthologyElvesVsGoblins extends ExpansionSet {
@ -21,7 +20,8 @@ public final class DuelDecksAnthologyElvesVsGoblins extends ExpansionSet {
super("Duel Decks: Anthology, Elves vs. Goblins", "DD3EVG", ExpansionSet.buildDate(2014, 12, 5),
SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks: Anthology";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Akki Coalflinger", 33, Rarity.UNCOMMON, mage.cards.a.AkkiCoalflinger.class));
cards.add(new SetCardInfo("Allosaurus Rider", 2, Rarity.RARE, mage.cards.a.AllosaurusRider.class));
cards.add(new SetCardInfo("Ambush Commander", 1, Rarity.RARE, mage.cards.a.AmbushCommander.class));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class DuelDecksAnthologyGarrukVsLiliana extends ExpansionSet {
@ -21,7 +20,8 @@ public final class DuelDecksAnthologyGarrukVsLiliana extends ExpansionSet {
super("Duel Decks: Anthology, Garruk vs. Liliana", "DD3GVL", ExpansionSet.buildDate(2014, 12, 5),
SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks: Anthology";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Albino Troll", 3, Rarity.UNCOMMON, mage.cards.a.AlbinoTroll.class));
cards.add(new SetCardInfo("Bad Moon", 48, Rarity.RARE, mage.cards.b.BadMoon.class));
cards.add(new SetCardInfo("Basking Rootwalla", 2, Rarity.COMMON, mage.cards.b.BaskingRootwalla.class));

View file

@ -20,7 +20,7 @@ public final class DuelDecksAnthologyJaceVsChandra extends ExpansionSet {
super("Duel Decks: Anthology, Jace vs. Chandra", "DD3JVC", ExpansionSet.buildDate(2014, 12, 5),
SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks: Anthology";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Aethersnipe", 17, Rarity.COMMON, mage.cards.a.Aethersnipe.class));
cards.add(new SetCardInfo("Air Elemental", 13, Rarity.UNCOMMON, mage.cards.a.AirElemental.class));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class DuelDecksBlessedVsCursed extends ExpansionSet {
@ -20,7 +19,8 @@ public final class DuelDecksBlessedVsCursed extends ExpansionSet {
private DuelDecksBlessedVsCursed() {
super("Duel Decks: Blessed vs. Cursed", "DDQ", ExpansionSet.buildDate(2016, 2, 26), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Abattoir Ghoul", 50, Rarity.UNCOMMON, mage.cards.a.AbattoirGhoul.class));
cards.add(new SetCardInfo("Appetite for Brains", 51, Rarity.UNCOMMON, mage.cards.a.AppetiteForBrains.class));
cards.add(new SetCardInfo("Barter in Blood", 52, Rarity.UNCOMMON, mage.cards.b.BarterInBlood.class));

View file

@ -18,7 +18,7 @@ public final class DuelDecksDivineVsDemonic extends ExpansionSet {
private DuelDecksDivineVsDemonic() {
super("Duel Decks: Divine vs. Demonic", "DDC", ExpansionSet.buildDate(2009, 04, 10), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Abyssal Gatekeeper", 31, Rarity.COMMON, mage.cards.a.AbyssalGatekeeper.class));
cards.add(new SetCardInfo("Abyssal Specter", 40, Rarity.UNCOMMON, mage.cards.a.AbyssalSpecter.class));

View file

@ -20,7 +20,7 @@ public final class DuelDecksElspethVsKiora extends ExpansionSet {
private DuelDecksElspethVsKiora() {
super("Duel Decks: Elspeth vs. Kiora", "DDO", ExpansionSet.buildDate(2015, 2, 27), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Accumulated Knowledge", 35, Rarity.COMMON, mage.cards.a.AccumulatedKnowledge.class));
cards.add(new SetCardInfo("Aetherize", 36, Rarity.UNCOMMON, mage.cards.a.Aetherize.class));

View file

@ -15,7 +15,7 @@ public final class DuelDecksElspethVsTezzeret extends ExpansionSet {
private DuelDecksElspethVsTezzeret() {
super("Duel Decks: Elspeth vs. Tezzeret", "DDF", ExpansionSet.buildDate(2010, 8, 3), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Abolish", 29, Rarity.UNCOMMON, mage.cards.a.Abolish.class));
cards.add(new SetCardInfo("Aether Spellbomb", 61, Rarity.COMMON, mage.cards.a.AetherSpellbomb.class));

View file

@ -18,7 +18,7 @@ public final class DuelDecksElvesVsGoblins extends ExpansionSet {
private DuelDecksElvesVsGoblins() {
super("Duel Decks: Elves vs. Goblins", "EVG", ExpansionSet.buildDate(2007, 11, 16), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Akki Coalflinger", 33, Rarity.UNCOMMON, mage.cards.a.AkkiCoalflinger.class));
cards.add(new SetCardInfo("Allosaurus Rider", 2, Rarity.RARE, mage.cards.a.AllosaurusRider.class));

View file

@ -23,7 +23,7 @@ public final class DuelDecksGarrukVsLiliana extends ExpansionSet {
private DuelDecksGarrukVsLiliana() {
super("Duel Decks: Garruk vs. Liliana", "DDD", ExpansionSet.buildDate(2009, 10, 30), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Albino Troll", 3, Rarity.UNCOMMON, mage.cards.a.AlbinoTroll.class));
cards.add(new SetCardInfo("Bad Moon", 48, Rarity.RARE, mage.cards.b.BadMoon.class));

View file

@ -19,7 +19,7 @@ public final class DuelDecksHeroesVsMonsters extends ExpansionSet {
private DuelDecksHeroesVsMonsters() {
super("Duel Decks: Heroes vs. Monsters", "DDL", ExpansionSet.buildDate(2013, 9, 6), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Anax and Cymede", 11, Rarity.RARE, mage.cards.a.AnaxAndCymede.class));
cards.add(new SetCardInfo("Armory Guard", 12, Rarity.COMMON, mage.cards.a.ArmoryGuard.class));

View file

@ -19,7 +19,7 @@ public final class DuelDecksIzzetVsGolgari extends ExpansionSet {
private DuelDecksIzzetVsGolgari() {
super("Duel Decks: Izzet vs. Golgari", "DDJ", ExpansionSet.buildDate(2012, 9, 7), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Barren Moor", 78, Rarity.COMMON, mage.cards.b.BarrenMoor.class));
cards.add(new SetCardInfo("Boneyard Wurm", 51, Rarity.UNCOMMON, mage.cards.b.BoneyardWurm.class));

View file

@ -23,7 +23,7 @@ public final class DuelDecksJaceVsChandra extends ExpansionSet {
private DuelDecksJaceVsChandra() {
super("Duel Decks: Jace vs. Chandra", "DD2", ExpansionSet.buildDate(2008, 11, 07), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Aethersnipe", 17, Rarity.COMMON, mage.cards.a.Aethersnipe.class));
cards.add(new SetCardInfo("Air Elemental", 13, Rarity.UNCOMMON, mage.cards.a.AirElemental.class));

View file

@ -19,7 +19,7 @@ public final class DuelDecksJaceVsVraska extends ExpansionSet {
private DuelDecksJaceVsVraska() {
super("Duel Decks: Jace vs. Vraska", "DDM", ExpansionSet.buildDate(2014, 3, 14), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Acidic Slime", 64, Rarity.UNCOMMON, mage.cards.a.AcidicSlime.class));
cards.add(new SetCardInfo("Aeon Chronicler", 17, Rarity.RARE, mage.cards.a.AeonChronicler.class));

View file

@ -19,7 +19,7 @@ public final class DuelDecksKnightsVsDragons extends ExpansionSet {
private DuelDecksKnightsVsDragons() {
super("Duel Decks: Knights vs. Dragons", "DDG", ExpansionSet.buildDate(2011, 4, 1), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Alaborn Cavalier", 18, Rarity.UNCOMMON, mage.cards.a.AlabornCavalier.class));
cards.add(new SetCardInfo("Armillary Sphere", 62, Rarity.COMMON, mage.cards.a.ArmillarySphere.class));

View file

@ -19,7 +19,7 @@ public final class DuelDecksMerfolkVsGoblins extends ExpansionSet {
private DuelDecksMerfolkVsGoblins() {
super("Duel Decks: Merfolk vs. Goblins", "DDT", ExpansionSet.buildDate(2017, 11, 10), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Aquitect's Will", 2, Rarity.COMMON, mage.cards.a.AquitectsWill.class));
cards.add(new SetCardInfo("Battle Squadron", 33, Rarity.UNCOMMON, mage.cards.b.BattleSquadron.class));

View file

@ -5,7 +5,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class DuelDecksMindVsMight extends ExpansionSet {
@ -19,7 +18,7 @@ public final class DuelDecksMindVsMight extends ExpansionSet {
private DuelDecksMindVsMight() {
super("Duel Decks: Mind vs. Might", "DDS", ExpansionSet.buildDate(2017, 3, 31), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Ambassador Oak", 42, Rarity.COMMON, mage.cards.a.AmbassadorOak.class));
cards.add(new SetCardInfo("Beacon of Destruction", 35, Rarity.RARE, mage.cards.b.BeaconOfDestruction.class));

View file

@ -18,7 +18,7 @@ public final class DuelDecksNissaVsObNixilis extends ExpansionSet {
private DuelDecksNissaVsObNixilis() {
super("Duel Decks: Nissa vs. Ob Nixilis", "DDR", ExpansionSet.buildDate(2016, 9, 2), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Abundance", 2, Rarity.RARE, mage.cards.a.Abundance.class));
cards.add(new SetCardInfo("Altar's Reap", 37, Rarity.COMMON, mage.cards.a.AltarsReap.class));

View file

@ -20,7 +20,7 @@ public final class DuelDecksPhyrexiaVsTheCoalition extends ExpansionSet {
super("Duel Decks: Phyrexia vs. the Coalition", "DDE", ExpansionSet.buildDate(2010, 3, 19),
SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Allied Strategies", 63, Rarity.UNCOMMON, mage.cards.a.AlliedStrategies.class));
cards.add(new SetCardInfo("Armadillo Cloak", 58, Rarity.COMMON, mage.cards.a.ArmadilloCloak.class));

View file

@ -19,7 +19,7 @@ public final class DuelDecksSorinVsTibalt extends ExpansionSet {
private DuelDecksSorinVsTibalt() {
super("Duel Decks: Sorin vs. Tibalt", "DDK", ExpansionSet.buildDate(2013, 3, 15), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Absorb Vis", 31, Rarity.COMMON, mage.cards.a.AbsorbVis.class));
cards.add(new SetCardInfo("Akoum Refuge", 73, Rarity.UNCOMMON, mage.cards.a.AkoumRefuge.class));

View file

@ -19,7 +19,7 @@ public final class DuelDecksSpeedVsCunning extends ExpansionSet {
private DuelDecksSpeedVsCunning() {
super("Duel Decks: Speed vs. Cunning", "DDN", ExpansionSet.buildDate(2014, 9, 5), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Act of Treason", 26, Rarity.COMMON, mage.cards.a.ActOfTreason.class));
cards.add(new SetCardInfo("Aquamorph Entity", 54, Rarity.COMMON, mage.cards.a.AquamorphEntity.class));

View file

@ -18,7 +18,7 @@ public final class DuelDecksVenserVsKoth extends ExpansionSet {
private DuelDecksVenserVsKoth() {
super("Duel Decks: Venser vs. Koth", "DDI", ExpansionSet.buildDate(2012, 3, 30), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Aether Membrane", 48, Rarity.UNCOMMON, mage.cards.a.AetherMembrane.class));
cards.add(new SetCardInfo("Angelic Shield", 27, Rarity.UNCOMMON, mage.cards.a.AngelicShield.class));

View file

@ -18,7 +18,7 @@ public final class DuelDecksZendikarVsEldrazi extends ExpansionSet {
private DuelDecksZendikarVsEldrazi() {
super("Duel Decks: Zendikar vs. Eldrazi", "DDP", ExpansionSet.buildDate(2015, 8, 28), SetType.SUPPLEMENTAL);
this.blockName = "Duel Decks";
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Affa Guard Hound", 2, Rarity.UNCOMMON, mage.cards.a.AffaGuardHound.class));
cards.add(new SetCardInfo("Akoum Refuge", 67, Rarity.UNCOMMON, mage.cards.a.AkoumRefuge.class));

View file

@ -370,6 +370,7 @@ public final class EighthEdition extends ExpansionSet {
cards.add(new SetCardInfo("Zombify", 174, Rarity.UNCOMMON, mage.cards.z.Zombify.class));
cards.add(new SetCardInfo("Zur's Weirding", 116, Rarity.RARE, mage.cards.z.ZursWeirding.class));
// 8ed Edition Box Set (we need to create own set)
// http://www.magiclibrarities.net/540-rarities-eighth-edition-box-set-cards-english-cards-index.html
// cards.add(new SetCardInfo("Eager Cadet", 1, Rarity.COMMON, mage.cards.e.EagerCadet.class));
// cards.add(new SetCardInfo("Vengeance", 2, Rarity.UNCOMMON, mage.cards.v.Vengeance.class));
// cards.add(new SetCardInfo("Sea Eagle", 4, Rarity.COMMON, mage.cards.s.SeaEagle.class));

View file

@ -15,6 +15,9 @@ public final class EighthEditionBox extends ExpansionSet {
private EighthEditionBox() {
super("EighthEditionBox", "8EB", ExpansionSet.buildDate(2003, 7, 28), SetType.CORE);
this.hasBoosters = false;
this.hasBasicLands = false;
// // http://www.magiclibrarities.net/540-rarities-eighth-edition-box-set-cards-english-cards-index.html
cards.add(new SetCardInfo("Eager Cadet", 1, Rarity.COMMON, mage.cards.e.EagerCadet.class));
cards.add(new SetCardInfo("Vengeance", 2, Rarity.UNCOMMON, mage.cards.v.Vengeance.class));
cards.add(new SetCardInfo("Giant Octopus", 3, Rarity.COMMON, mage.cards.g.GiantOctopus.class));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author JayDi85
*/
public final class ExplorersOfIxalan extends ExpansionSet {
@ -20,6 +19,7 @@ public final class ExplorersOfIxalan extends ExpansionSet {
private ExplorersOfIxalan() {
super("Explorers of Ixalan", "E02", ExpansionSet.buildDate(2017, 11, 24), SetType.SUPPLEMENTAL);
this.blockName = "Explorers of Ixalan";
this.hasBasicLands = false;
cards.add(new SetCardInfo("Adaptive Automaton", 42, Rarity.RARE, mage.cards.a.AdaptiveAutomaton.class));
cards.add(new SetCardInfo("Aether Gale", 7, Rarity.RARE, mage.cards.a.AetherGale.class));

View file

@ -13,7 +13,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class FateReforged extends ExpansionSet {
@ -31,7 +30,7 @@ public final class FateReforged extends ExpansionSet {
super("Fate Reforged", "FRF", ExpansionSet.buildDate(2015, 1, 23), SetType.EXPANSION);
this.blockName = "Khans of Tarkir";
this.parentSet = KhansOfTarkir.getInstance();
this.hasBasicLands = false;
this.hasBasicLands = true;
this.hasBoosters = true;
this.numBoosterSpecial = 1;
this.numBoosterLands = 0;
@ -40,6 +39,7 @@ public final class FateReforged extends ExpansionSet {
this.numBoosterRare = 1;
this.numBoosterDoubleFaced = -1;
this.ratioBoosterMythic = 8;
cards.add(new SetCardInfo("Abzan Advantage", 2, Rarity.COMMON, mage.cards.a.AbzanAdvantage.class));
cards.add(new SetCardInfo("Abzan Beastmaster", 119, Rarity.UNCOMMON, mage.cards.a.AbzanBeastmaster.class));
cards.add(new SetCardInfo("Abzan Kin-Guard", 120, Rarity.UNCOMMON, mage.cards.a.AbzanKinGuard.class));

View file

@ -19,7 +19,7 @@ public final class GrandPrixPromos extends ExpansionSet {
private GrandPrixPromos() {
super("Grand Prix Promos", "GPX", ExpansionSet.buildDate(2011, 6, 17), SetType.PROMOTIONAL);
this.hasBoosters = false;
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("All Is Dust", "2013b", Rarity.RARE, mage.cards.a.AllIsDust.class));
cards.add(new SetCardInfo("Batterskull", 2014, Rarity.MYTHIC, mage.cards.b.Batterskull.class));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author Saga
*/
public final class HASCONPromo2017 extends ExpansionSet {
@ -19,6 +18,8 @@ public final class HASCONPromo2017 extends ExpansionSet {
private HASCONPromo2017() {
super("HASCON Promo 2017", "H17", ExpansionSet.buildDate(2017, 9, 8), SetType.JOKESET);
this.hasBasicLands = false;
cards.add(new ExpansionSet.SetCardInfo("Grimlock, Dinobot Leader", "1a", Rarity.MYTHIC, mage.cards.g.GrimlockDinobotLeader.class));
cards.add(new ExpansionSet.SetCardInfo("Grimlock, Ferocious King", "1b", Rarity.MYTHIC, mage.cards.g.GrimlockFerociousKing.class));
cards.add(new ExpansionSet.SetCardInfo("Sword of Dungeons & Dragons", 3, Rarity.MYTHIC, mage.cards.s.SwordOfDungeonsAndDragons.class));

View file

@ -5,7 +5,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author spjspj
*/
public final class HappyHolidays extends ExpansionSet {
@ -18,6 +17,7 @@ public final class HappyHolidays extends ExpansionSet {
private HappyHolidays() {
super("Happy Holidays", "HHO", ExpansionSet.buildDate(2006, 12, 31), SetType.JOKESET);
this.hasBasicLands = false;
cards.add(new SetCardInfo("Fruitcake Elemental", 6, Rarity.RARE, mage.cards.f.FruitcakeElemental.class));
cards.add(new SetCardInfo("Season's Beatings", 9, Rarity.RARE, mage.cards.s.SeasonsBeatings.class));

View file

@ -18,7 +18,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author LevelX2
*/
public final class MastersEditionII extends ExpansionSet {
@ -31,13 +30,14 @@ public final class MastersEditionII extends ExpansionSet {
private MastersEditionII() {
super("Masters Edition II", "ME2", ExpansionSet.buildDate(2008, 9, 22), SetType.MAGIC_ONLINE);
this.hasBasicLands = false;
this.hasBasicLands = true;
this.hasBoosters = true;
this.numBoosterLands = 1;
this.numBoosterCommon = 10;
this.numBoosterUncommon = 3;
this.numBoosterRare = 1;
this.ratioBoosterMythic = 0;
cards.add(new SetCardInfo("Aether Storm", 39, Rarity.UNCOMMON, mage.cards.a.AetherStorm.class));
cards.add(new SetCardInfo("Abbey Gargoyles", 1, Rarity.UNCOMMON, mage.cards.a.AbbeyGargoyles.class));
cards.add(new SetCardInfo("Adarkar Sentinel", 201, Rarity.COMMON, mage.cards.a.AdarkarSentinel.class));

View file

@ -15,6 +15,7 @@ public final class NinthEditionBox extends ExpansionSet {
private NinthEditionBox() {
super("Ninth Edition Box", "9EB", ExpansionSet.buildDate(2005, 7, 29), SetType.CORE);
this.hasBoosters = false;
cards.add(new SetCardInfo("Coral Eel", 3, Rarity.COMMON, mage.cards.c.CoralEel.class));
cards.add(new SetCardInfo("Eager Cadet", 1, Rarity.COMMON, mage.cards.e.EagerCadet.class));
cards.add(new SetCardInfo("Enormous Baloth", 9, Rarity.UNCOMMON, mage.cards.e.EnormousBaloth.class));

View file

@ -17,7 +17,6 @@ import java.util.ArrayList;
import java.util.List;
/**
*
* @author fireshoes
*/
public final class OathOfTheGatewatch extends ExpansionSet {
@ -35,7 +34,7 @@ public final class OathOfTheGatewatch extends ExpansionSet {
this.blockName = "Battle for Zendikar";
this.parentSet = BattleForZendikar.getInstance();
this.hasBoosters = true;
this.hasBasicLands = false;
this.hasBasicLands = true;
this.numBoosterLands = 1;
this.numBoosterCommon = 10;
this.numBoosterUncommon = 3;

View file

@ -19,7 +19,7 @@ public final class PremiumDeckSeriesFireAndLightning extends ExpansionSet {
private PremiumDeckSeriesFireAndLightning() {
super("Premium Deck Series: Fire and Lightning", "PD2", ExpansionSet.buildDate(2010, 11, 1),
SetType.SUPPLEMENTAL);
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Ball Lightning", 12, Rarity.RARE, mage.cards.b.BallLightning.class));
cards.add(new SetCardInfo("Barbarian Ring", 28, Rarity.UNCOMMON, mage.cards.b.BarbarianRing.class));

View file

@ -18,7 +18,7 @@ public final class PremiumDeckSeriesGraveborn extends ExpansionSet {
private PremiumDeckSeriesGraveborn() {
super("Premium Deck Series: Graveborn", "PD3", ExpansionSet.buildDate(2011, 11, 1), SetType.SUPPLEMENTAL);
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Animate Dead", 16, Rarity.UNCOMMON, mage.cards.a.AnimateDead.class));
cards.add(new SetCardInfo("Avatar of Woe", 6, Rarity.RARE, mage.cards.a.AvatarOfWoe.class));

View file

@ -18,7 +18,7 @@ public final class PremiumDeckSeriesSlivers extends ExpansionSet {
private PremiumDeckSeriesSlivers() {
super("Premium Deck Series: Slivers", "H09", ExpansionSet.buildDate(2009, 11, 1), SetType.SUPPLEMENTAL);
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Acidic Sliver", 13, Rarity.UNCOMMON, mage.cards.a.AcidicSliver.class));
cards.add(new SetCardInfo("Amoeboid Changeling", 3, Rarity.COMMON, mage.cards.a.AmoeboidChangeling.class));

View file

@ -15,7 +15,8 @@ public final class PrereleaseEvents extends ExpansionSet {
private PrereleaseEvents() {
super("Prerelease Events", "PTC", ExpansionSet.buildDate(1990, 1, 1), SetType.PROMOTIONAL);
this.hasBoosters = false;
this.hasBasicLands = false;
this.hasBasicLands = true;
cards.add(new SetCardInfo("Abbot of Keral Keep", 198, Rarity.RARE, mage.cards.a.AbbotOfKeralKeep.class));
cards.add(new SetCardInfo("Abhorrent Overlord", 70, Rarity.SPECIAL, mage.cards.a.AbhorrentOverlord.class));
cards.add(new SetCardInfo("Abzan Ascendancy", 88, Rarity.SPECIAL, mage.cards.a.AbzanAscendancy.class));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class RivalsOfIxalan extends ExpansionSet {
@ -22,7 +21,7 @@ public final class RivalsOfIxalan extends ExpansionSet {
this.blockName = "Ixalan";
this.parentSet = Ixalan.getInstance();
this.hasBoosters = true;
this.hasBasicLands = false;
this.hasBasicLands = true;
this.numBoosterLands = 0;
this.numBoosterCommon = 11;
this.numBoosterUncommon = 3;

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class SuperSeries extends ExpansionSet {
@ -20,6 +19,8 @@ public final class SuperSeries extends ExpansionSet {
private SuperSeries() {
super("Super Series", "SUS", ExpansionSet.buildDate(1996, 1, 1), SetType.PROMOTIONAL);
this.hasBoosters = false;
this.hasBasicLands = false;
cards.add(new SetCardInfo("City of Brass", 6, Rarity.SPECIAL, mage.cards.c.CityOfBrass.class));
cards.add(new SetCardInfo("Crusade", 4, Rarity.SPECIAL, mage.cards.c.Crusade.class));
cards.add(new SetCardInfo("Elvish Champion", 17, Rarity.SPECIAL, mage.cards.e.ElvishChampion.class, NON_FULL_USE_VARIOUS));

View file

@ -6,7 +6,6 @@ import mage.constants.Rarity;
import mage.constants.SetType;
/**
*
* @author fireshoes
*/
public final class UginsFate extends ExpansionSet {
@ -20,6 +19,8 @@ public final class UginsFate extends ExpansionSet {
private UginsFate() {
super("Ugin's Fate", "UGIN", ExpansionSet.buildDate(2015, 1, 16), SetType.PROMOTIONAL);
this.hasBoosters = false;
this.hasBasicLands = false;
cards.add(new SetCardInfo("Ainok Tracker", 96, Rarity.COMMON, mage.cards.a.AinokTracker.class));
cards.add(new SetCardInfo("Altar of the Brood", 216, Rarity.RARE, mage.cards.a.AltarOfTheBrood.class));
cards.add(new SetCardInfo("Arashin War Beast", 123, Rarity.UNCOMMON, mage.cards.a.ArashinWarBeast.class));

View file

@ -88,6 +88,8 @@ public abstract class ExpansionSet implements Serializable {
protected Date releaseDate;
protected ExpansionSet parentSet;
protected SetType setType;
// TODO: 03.10.2018, hasBasicLands can be removed someday -- it's uses to optimize lands search in deck generation and lands adding (search all available lands from sets)
protected boolean hasBasicLands = true;
protected String blockName;
@ -559,6 +561,7 @@ public abstract class ExpansionSet implements Serializable {
if (savedCardsInfos == null) {
CardCriteria criteria = new CardCriteria();
if (rarity == Rarity.LAND) {
// get basic lands from parent set if current haven't it
criteria.setCodes(!hasBasicLands && parentSet != null ? parentSet.code : this.code);
} else {
criteria.setCodes(this.code);