/* * Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ package mage.sets; import mage.cards.ExpansionSet; import mage.cards.repository.CardCriteria; import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; import mage.constants.CardType; import mage.constants.Rarity; import mage.constants.SetType; import java.util.ArrayList; import java.util.List; /** * * @author LevelX2 */ public class DragonsMaze extends ExpansionSet { private static final DragonsMaze instance = new DragonsMaze(); public static DragonsMaze getInstance() { return instance; } List<CardInfo> savedSpecialRares = new ArrayList<>(); private DragonsMaze() { super("Dragon's Maze", "DGM", ExpansionSet.buildDate(2013, 5, 03), SetType.EXPANSION); this.blockName = "Return to Ravnica"; this.hasBoosters = true; this.numBoosterSpecial = 1; this.numBoosterLands = 0; this.numBoosterCommon = 10; this.numBoosterUncommon = 3; this.numBoosterRare = 1; this.ratioBoosterMythic = 8; this.parentSet = ReturnToRavnica.getInstance(); this.hasBasicLands = false; cards.add(new SetCardInfo("Advent of the Wurm", 51, Rarity.RARE, mage.cards.a.AdventOfTheWurm.class)); cards.add(new SetCardInfo("Aetherling", 11, Rarity.RARE, mage.cards.a.Aetherling.class)); cards.add(new SetCardInfo("Alive // Well", 121, Rarity.UNCOMMON, mage.cards.a.AliveWell.class)); cards.add(new SetCardInfo("Armed // Dangerous", 122, Rarity.UNCOMMON, mage.cards.a.ArmedDangerous.class)); cards.add(new SetCardInfo("Armored Wolf-Rider", 52, Rarity.COMMON, mage.cards.a.ArmoredWolfRider.class)); cards.add(new SetCardInfo("Ascended Lawmage", 53, Rarity.UNCOMMON, mage.cards.a.AscendedLawmage.class)); cards.add(new SetCardInfo("Awe for the Guilds", 31, Rarity.COMMON, mage.cards.a.AweForTheGuilds.class)); cards.add(new SetCardInfo("Azorius Cluestone", 136, Rarity.COMMON, mage.cards.a.AzoriusCluestone.class)); cards.add(new SetCardInfo("Azorius Guildgate", 146, Rarity.COMMON, mage.cards.a.AzoriusGuildgate.class)); cards.add(new SetCardInfo("Bane Alley Blackguard", 21, Rarity.COMMON, mage.cards.b.BaneAlleyBlackguard.class)); cards.add(new SetCardInfo("Battering Krasis", 41, Rarity.COMMON, mage.cards.b.BatteringKrasis.class)); cards.add(new SetCardInfo("Beck // Call", 123, Rarity.RARE, mage.cards.b.BeckCall.class)); cards.add(new SetCardInfo("Beetleform Mage", 54, Rarity.COMMON, mage.cards.b.BeetleformMage.class)); cards.add(new SetCardInfo("Blast of Genius", 55, Rarity.UNCOMMON, mage.cards.b.BlastOfGenius.class)); cards.add(new SetCardInfo("Blaze Commando", 56, Rarity.UNCOMMON, mage.cards.b.BlazeCommando.class)); cards.add(new SetCardInfo("Blood Baron of Vizkopa", 57, Rarity.MYTHIC, mage.cards.b.BloodBaronOfVizkopa.class)); cards.add(new SetCardInfo("Blood Scrivener", 22, Rarity.RARE, mage.cards.b.BloodScrivener.class)); cards.add(new SetCardInfo("Boros Battleshaper", 58, Rarity.RARE, mage.cards.b.BorosBattleshaper.class)); cards.add(new SetCardInfo("Boros Cluestone", 137, Rarity.COMMON, mage.cards.b.BorosCluestone.class)); cards.add(new SetCardInfo("Boros Guildgate", 147, Rarity.COMMON, mage.cards.b.BorosGuildgate.class)); cards.add(new SetCardInfo("Boros Mastiff", 1, Rarity.COMMON, mage.cards.b.BorosMastiff.class)); cards.add(new SetCardInfo("Breaking // Entering", 124, Rarity.RARE, mage.cards.b.BreakingEntering.class)); cards.add(new SetCardInfo("Bred for the Hunt", 59, Rarity.UNCOMMON, mage.cards.b.BredForTheHunt.class)); cards.add(new SetCardInfo("Bronzebeak Moa", 60, Rarity.UNCOMMON, mage.cards.b.BronzebeakMoa.class)); cards.add(new SetCardInfo("Carnage Gladiator", 61, Rarity.UNCOMMON, mage.cards.c.CarnageGladiator.class)); cards.add(new SetCardInfo("Catch // Release", 125, Rarity.RARE, mage.cards.c.CatchRelease.class)); cards.add(new SetCardInfo("Clear a Path", 32, Rarity.COMMON, mage.cards.c.ClearAPath.class)); cards.add(new SetCardInfo("Council of the Absolute", 62, Rarity.MYTHIC, mage.cards.c.CouncilOfTheAbsolute.class)); cards.add(new SetCardInfo("Crypt Incursion", 23, Rarity.COMMON, mage.cards.c.CryptIncursion.class)); cards.add(new SetCardInfo("Deadbridge Chant", 63, Rarity.MYTHIC, mage.cards.d.DeadbridgeChant.class)); cards.add(new SetCardInfo("Debt to the Deathless", 64, Rarity.UNCOMMON, mage.cards.d.DebtToTheDeathless.class)); cards.add(new SetCardInfo("Deputy of Acquittals", 65, Rarity.COMMON, mage.cards.d.DeputyOfAcquittals.class)); cards.add(new SetCardInfo("Dimir Cluestone", 138, Rarity.COMMON, mage.cards.d.DimirCluestone.class)); cards.add(new SetCardInfo("Dimir Guildgate", 148, Rarity.COMMON, mage.cards.d.DimirGuildgate.class)); cards.add(new SetCardInfo("Down // Dirty", 126, Rarity.UNCOMMON, mage.cards.d.DownDirty.class)); cards.add(new SetCardInfo("Dragonshift", 66, Rarity.RARE, mage.cards.d.Dragonshift.class)); cards.add(new SetCardInfo("Drown in Filth", 67, Rarity.COMMON, mage.cards.d.DrownInFilth.class)); cards.add(new SetCardInfo("Emmara Tandris", 68, Rarity.RARE, mage.cards.e.EmmaraTandris.class)); cards.add(new SetCardInfo("Exava, Rakdos Blood Witch", 69, Rarity.RARE, mage.cards.e.ExavaRakdosBloodWitch.class)); cards.add(new SetCardInfo("Far // Away", 127, Rarity.UNCOMMON, mage.cards.f.FarAway.class)); cards.add(new SetCardInfo("Fatal Fumes", 24, Rarity.COMMON, mage.cards.f.FatalFumes.class)); cards.add(new SetCardInfo("Feral Animist", 70, Rarity.UNCOMMON, mage.cards.f.FeralAnimist.class)); cards.add(new SetCardInfo("Flesh // Blood", 128, Rarity.RARE, mage.cards.f.FleshBlood.class)); cards.add(new SetCardInfo("Fluxcharger", 71, Rarity.UNCOMMON, mage.cards.f.Fluxcharger.class)); cards.add(new SetCardInfo("Gaze of Granite", 72, Rarity.RARE, mage.cards.g.GazeOfGranite.class)); cards.add(new SetCardInfo("Give // Take", 129, Rarity.UNCOMMON, mage.cards.g.GiveTake.class)); cards.add(new SetCardInfo("Gleam of Battle", 73, Rarity.UNCOMMON, mage.cards.g.GleamOfBattle.class)); cards.add(new SetCardInfo("Goblin Test Pilot", 74, Rarity.UNCOMMON, mage.cards.g.GoblinTestPilot.class)); cards.add(new SetCardInfo("Golgari Cluestone", 139, Rarity.COMMON, mage.cards.g.GolgariCluestone.class)); cards.add(new SetCardInfo("Golgari Guildgate", 149, Rarity.COMMON, mage.cards.g.GolgariGuildgate.class)); cards.add(new SetCardInfo("Gruul Cluestone", 140, Rarity.COMMON, mage.cards.g.GruulCluestone.class)); cards.add(new SetCardInfo("Gruul Guildgate", 150, Rarity.COMMON, mage.cards.g.GruulGuildgate.class)); cards.add(new SetCardInfo("Gruul War Chant", 75, Rarity.UNCOMMON, mage.cards.g.GruulWarChant.class)); cards.add(new SetCardInfo("Haazda Snare Squad", 2, Rarity.COMMON, mage.cards.h.HaazdaSnareSquad.class)); cards.add(new SetCardInfo("Haunter of Nightveil", 76, Rarity.UNCOMMON, mage.cards.h.HaunterOfNightveil.class)); cards.add(new SetCardInfo("Hidden Strings", 12, Rarity.COMMON, mage.cards.h.HiddenStrings.class)); cards.add(new SetCardInfo("Hired Torturer", 25, Rarity.COMMON, mage.cards.h.HiredTorturer.class)); cards.add(new SetCardInfo("Izzet Cluestone", 141, Rarity.COMMON, mage.cards.i.IzzetCluestone.class)); cards.add(new SetCardInfo("Izzet Guildgate", 151, Rarity.COMMON, mage.cards.i.IzzetGuildgate.class)); cards.add(new SetCardInfo("Jelenn Sphinx", 77, Rarity.UNCOMMON, mage.cards.j.JelennSphinx.class)); cards.add(new SetCardInfo("Korozda Gorgon", 78, Rarity.UNCOMMON, mage.cards.k.KorozdaGorgon.class)); cards.add(new SetCardInfo("Krasis Incubation", 79, Rarity.UNCOMMON, mage.cards.k.KrasisIncubation.class)); cards.add(new SetCardInfo("Kraul Warrior", 42, Rarity.COMMON, mage.cards.k.KraulWarrior.class)); cards.add(new SetCardInfo("Lavinia of the Tenth", 80, Rarity.RARE, mage.cards.l.LaviniaOfTheTenth.class)); cards.add(new SetCardInfo("Legion's Initiative", 81, Rarity.MYTHIC, mage.cards.l.LegionsInitiative.class)); cards.add(new SetCardInfo("Lyev Decree", 3, Rarity.COMMON, mage.cards.l.LyevDecree.class)); cards.add(new SetCardInfo("Master of Cruelties", 82, Rarity.MYTHIC, mage.cards.m.MasterOfCruelties.class)); cards.add(new SetCardInfo("Maw of the Obzedat", 83, Rarity.UNCOMMON, mage.cards.m.MawOfTheObzedat.class)); cards.add(new SetCardInfo("Maze Abomination", 26, Rarity.COMMON, mage.cards.m.MazeAbomination.class)); cards.add(new SetCardInfo("Maze Behemoth", 43, Rarity.COMMON, mage.cards.m.MazeBehemoth.class)); cards.add(new SetCardInfo("Maze Glider", 13, Rarity.COMMON, mage.cards.m.MazeGlider.class)); cards.add(new SetCardInfo("Maze Rusher", 33, Rarity.COMMON, mage.cards.m.MazeRusher.class)); cards.add(new SetCardInfo("Maze's End", 152, Rarity.MYTHIC, mage.cards.m.MazesEnd.class)); cards.add(new SetCardInfo("Maze Sentinel", 4, Rarity.COMMON, mage.cards.m.MazeSentinel.class)); cards.add(new SetCardInfo("Melek, Izzet Paragon", 84, Rarity.RARE, mage.cards.m.MelekIzzetParagon.class)); cards.add(new SetCardInfo("Mending Touch", 44, Rarity.COMMON, mage.cards.m.MendingTouch.class)); cards.add(new SetCardInfo("Mindstatic", 14, Rarity.COMMON, mage.cards.m.Mindstatic.class)); cards.add(new SetCardInfo("Mirko Vosk, Mind Drinker", 85, Rarity.RARE, mage.cards.m.MirkoVoskMindDrinker.class)); cards.add(new SetCardInfo("Morgue Burst", 86, Rarity.COMMON, mage.cards.m.MorgueBurst.class)); cards.add(new SetCardInfo("Murmuring Phantasm", 15, Rarity.COMMON, mage.cards.m.MurmuringPhantasm.class)); cards.add(new SetCardInfo("Mutant's Prey", 45, Rarity.COMMON, mage.cards.m.MutantsPrey.class)); cards.add(new SetCardInfo("Nivix Cyclops", 87, Rarity.COMMON, mage.cards.n.NivixCyclops.class)); cards.add(new SetCardInfo("Notion Thief", 88, Rarity.RARE, mage.cards.n.NotionThief.class)); cards.add(new SetCardInfo("Obzedat's Aid", 89, Rarity.RARE, mage.cards.o.ObzedatsAid.class)); cards.add(new SetCardInfo("Opal Lake Gatekeepers", 16, Rarity.COMMON, mage.cards.o.OpalLakeGatekeepers.class)); cards.add(new SetCardInfo("Orzhov Cluestone", 142, Rarity.COMMON, mage.cards.o.OrzhovCluestone.class)); cards.add(new SetCardInfo("Orzhov Guildgate", 153, Rarity.COMMON, mage.cards.o.OrzhovGuildgate.class)); cards.add(new SetCardInfo("Phytoburst", 46, Rarity.COMMON, mage.cards.p.Phytoburst.class)); cards.add(new SetCardInfo("Pilfered Plans", 90, Rarity.COMMON, mage.cards.p.PilferedPlans.class)); cards.add(new SetCardInfo("Plasm Capture", 91, Rarity.RARE, mage.cards.p.PlasmCapture.class)); cards.add(new SetCardInfo("Pontiff of Blight", 27, Rarity.RARE, mage.cards.p.PontiffOfBlight.class)); cards.add(new SetCardInfo("Possibility Storm", 34, Rarity.RARE, mage.cards.p.PossibilityStorm.class)); cards.add(new SetCardInfo("Profit // Loss", 130, Rarity.UNCOMMON, mage.cards.p.ProfitLoss.class)); cards.add(new SetCardInfo("Progenitor Mimic", 92, Rarity.MYTHIC, mage.cards.p.ProgenitorMimic.class)); cards.add(new SetCardInfo("Protect // Serve", 131, Rarity.UNCOMMON, mage.cards.p.ProtectServe.class)); cards.add(new SetCardInfo("Punish the Enemy", 35, Rarity.COMMON, mage.cards.p.PunishTheEnemy.class)); cards.add(new SetCardInfo("Putrefy", 93, Rarity.UNCOMMON, mage.cards.p.Putrefy.class)); cards.add(new SetCardInfo("Pyrewild Shaman", 36, Rarity.RARE, mage.cards.p.PyrewildShaman.class)); cards.add(new SetCardInfo("Rakdos Cluestone", 143, Rarity.COMMON, mage.cards.r.RakdosCluestone.class)); cards.add(new SetCardInfo("Rakdos Drake", 28, Rarity.COMMON, mage.cards.r.RakdosDrake.class)); cards.add(new SetCardInfo("Rakdos Guildgate", 154, Rarity.COMMON, mage.cards.r.RakdosGuildgate.class)); cards.add(new SetCardInfo("Ral Zarek", 94, Rarity.MYTHIC, mage.cards.r.RalZarek.class)); cards.add(new SetCardInfo("Ready // Willing", 132, Rarity.RARE, mage.cards.r.ReadyWilling.class)); cards.add(new SetCardInfo("Reap Intellect", 95, Rarity.MYTHIC, mage.cards.r.ReapIntellect.class)); cards.add(new SetCardInfo("Render Silent", 96, Rarity.RARE, mage.cards.r.RenderSilent.class)); cards.add(new SetCardInfo("Renegade Krasis", 47, Rarity.RARE, mage.cards.r.RenegadeKrasis.class)); cards.add(new SetCardInfo("Renounce the Guilds", 5, Rarity.RARE, mage.cards.r.RenounceTheGuilds.class)); cards.add(new SetCardInfo("Restore the Peace", 97, Rarity.UNCOMMON, mage.cards.r.RestoreThePeace.class)); cards.add(new SetCardInfo("Riot Control", 6, Rarity.COMMON, mage.cards.r.RiotControl.class)); cards.add(new SetCardInfo("Riot Piker", 37, Rarity.COMMON, mage.cards.r.RiotPiker.class)); cards.add(new SetCardInfo("Rot Farm Skeleton", 98, Rarity.UNCOMMON, mage.cards.r.RotFarmSkeleton.class)); cards.add(new SetCardInfo("Rubblebelt Maaka", 38, Rarity.COMMON, mage.cards.r.RubblebeltMaaka.class)); cards.add(new SetCardInfo("Runner's Bane", 17, Rarity.COMMON, mage.cards.r.RunnersBane.class)); cards.add(new SetCardInfo("Ruric Thar, the Unbowed", 99, Rarity.RARE, mage.cards.r.RuricTharTheUnbowed.class)); cards.add(new SetCardInfo("Saruli Gatekeepers", 48, Rarity.COMMON, mage.cards.s.SaruliGatekeepers.class)); cards.add(new SetCardInfo("Savageborn Hydra", 100, Rarity.MYTHIC, mage.cards.s.SavagebornHydra.class)); cards.add(new SetCardInfo("Scab-Clan Giant", 101, Rarity.UNCOMMON, mage.cards.s.ScabClanGiant.class)); cards.add(new SetCardInfo("Scion of Vitu-Ghazi", 7, Rarity.RARE, mage.cards.s.ScionOfVituGhazi.class)); cards.add(new SetCardInfo("Selesnya Cluestone", 144, Rarity.COMMON, mage.cards.s.SelesnyaCluestone.class)); cards.add(new SetCardInfo("Selesnya Guildgate", 155, Rarity.COMMON, mage.cards.s.SelesnyaGuildgate.class)); cards.add(new SetCardInfo("Showstopper", 102, Rarity.UNCOMMON, mage.cards.s.Showstopper.class)); cards.add(new SetCardInfo("Simic Cluestone", 145, Rarity.COMMON, mage.cards.s.SimicCluestone.class)); cards.add(new SetCardInfo("Simic Guildgate", 156, Rarity.COMMON, mage.cards.s.SimicGuildgate.class)); cards.add(new SetCardInfo("Sin Collector", 103, Rarity.UNCOMMON, mage.cards.s.SinCollector.class)); cards.add(new SetCardInfo("Sinister Possession", 29, Rarity.COMMON, mage.cards.s.SinisterPossession.class)); cards.add(new SetCardInfo("Sire of Insanity", 104, Rarity.RARE, mage.cards.s.SireOfInsanity.class)); cards.add(new SetCardInfo("Skylasher", 49, Rarity.RARE, mage.cards.s.Skylasher.class)); cards.add(new SetCardInfo("Smelt-Ward Gatekeepers", 39, Rarity.COMMON, mage.cards.s.SmeltWardGatekeepers.class)); cards.add(new SetCardInfo("Species Gorger", 105, Rarity.UNCOMMON, mage.cards.s.SpeciesGorger.class)); cards.add(new SetCardInfo("Spike Jester", 106, Rarity.UNCOMMON, mage.cards.s.SpikeJester.class)); cards.add(new SetCardInfo("Steeple Roc", 8, Rarity.COMMON, mage.cards.s.SteepleRoc.class)); cards.add(new SetCardInfo("Sunspire Gatekeepers", 9, Rarity.COMMON, mage.cards.s.SunspireGatekeepers.class)); cards.add(new SetCardInfo("Tajic, Blade of the Legion", 107, Rarity.RARE, mage.cards.t.TajicBladeOfTheLegion.class)); cards.add(new SetCardInfo("Teysa, Envoy of Ghosts", 108, Rarity.RARE, mage.cards.t.TeysaEnvoyOfGhosts.class)); cards.add(new SetCardInfo("Thrashing Mossdog", 50, Rarity.COMMON, mage.cards.t.ThrashingMossdog.class)); cards.add(new SetCardInfo("Tithe Drinker", 109, Rarity.COMMON, mage.cards.t.TitheDrinker.class)); cards.add(new SetCardInfo("Toil // Trouble", 133, Rarity.UNCOMMON, mage.cards.t.ToilTrouble.class)); cards.add(new SetCardInfo("Trostani's Summoner", 110, Rarity.UNCOMMON, mage.cards.t.TrostanisSummoner.class)); cards.add(new SetCardInfo("Turn // Burn", 134, Rarity.UNCOMMON, mage.cards.t.TurnBurn.class)); cards.add(new SetCardInfo("Ubul Sar Gatekeepers", 30, Rarity.COMMON, mage.cards.u.UbulSarGatekeepers.class)); cards.add(new SetCardInfo("Uncovered Clues", 19, Rarity.COMMON, mage.cards.u.UncoveredClues.class)); cards.add(new SetCardInfo("Unflinching Courage", 111, Rarity.UNCOMMON, mage.cards.u.UnflinchingCourage.class)); cards.add(new SetCardInfo("Varolz, the Scar-Striped", 112, Rarity.RARE, mage.cards.v.VarolzTheScarStriped.class)); cards.add(new SetCardInfo("Viashino Firstblade", 113, Rarity.COMMON, mage.cards.v.ViashinoFirstblade.class)); cards.add(new SetCardInfo("Voice of Resurgence", 114, Rarity.MYTHIC, mage.cards.v.VoiceOfResurgence.class)); cards.add(new SetCardInfo("Vorel of the Hull Clade", 115, Rarity.RARE, mage.cards.v.VorelOfTheHullClade.class)); cards.add(new SetCardInfo("Wake the Reflections", 10, Rarity.COMMON, mage.cards.w.WakeTheReflections.class)); cards.add(new SetCardInfo("Warleader's Helix", 116, Rarity.UNCOMMON, mage.cards.w.WarleadersHelix.class)); cards.add(new SetCardInfo("Warped Physique", 117, Rarity.UNCOMMON, mage.cards.w.WarpedPhysique.class)); cards.add(new SetCardInfo("Weapon Surge", 40, Rarity.COMMON, mage.cards.w.WeaponSurge.class)); cards.add(new SetCardInfo("Wear // Tear", 135, Rarity.UNCOMMON, mage.cards.w.WearTear.class)); cards.add(new SetCardInfo("Wind Drake", 20, Rarity.COMMON, mage.cards.w.WindDrake.class)); cards.add(new SetCardInfo("Woodlot Crawler", 118, Rarity.UNCOMMON, mage.cards.w.WoodlotCrawler.class)); cards.add(new SetCardInfo("Zhur-Taa Ancient", 119, Rarity.RARE, mage.cards.z.ZhurTaaAncient.class)); cards.add(new SetCardInfo("Zhur-Taa Druid", 120, Rarity.COMMON, mage.cards.z.ZhurTaaDruid.class)); } @Override public List<CardInfo> getCardsByRarity(Rarity rarity) { if (rarity == Rarity.COMMON) { List<CardInfo> savedCardsInfos = savedCards.get(rarity); if (savedCardsInfos == null) { CardCriteria criteria = new CardCriteria(); criteria.setCodes(this.code).notTypes(CardType.LAND); criteria.rarities(rarity).doubleFaced(false); if (maxCardNumberInBooster != Integer.MAX_VALUE) { criteria.maxCardNumber(maxCardNumberInBooster); } savedCardsInfos = CardRepository.instance.findCards(criteria); savedCards.put(rarity, savedCardsInfos); } // Return a copy of the saved cards information, as not to modify the original. return new ArrayList<>(savedCardsInfos); } else { return super.getCardsByRarity(rarity); } } @Override public List<CardInfo> getSpecialCommon() { CardCriteria criteria = new CardCriteria(); criteria.rarities(Rarity.COMMON).setCodes(this.code).types(CardType.LAND); return CardRepository.instance.findCards(criteria); } @Override public List<CardInfo> getSpecialRare() { List<CardInfo> specialRares = new ArrayList<>(); if (savedSpecialRares == null) { CardCriteria criteria = new CardCriteria(); criteria.setCodes("GTC").name("Breeding Pool"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("GTC").name("Godless Shrine"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("GTC").name("Sacred Foundry"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("GTC").name("Stomping Ground"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("GTC").name("Watery Grave"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("RTR").name("Blood Crypt"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("RTR").name("Hallowed Fountain"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("RTR").name("Overgrown Tomb"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("RTR").name("Steam Vents"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("RTR").name("Temple Garden"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); } specialRares.addAll(savedSpecialRares); return specialRares; } @Override public List<CardInfo> getSpecialMythic() { CardCriteria criteria = new CardCriteria(); criteria.rarities(Rarity.MYTHIC).setCodes(this.code).types(CardType.LAND); return CardRepository.instance.findCards(criteria); } }