/* * Copyright 2010 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.CardGraphicInfo; 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 fireshoes */ public class FateReforged extends ExpansionSet { private static final FateReforged instance = new FateReforged(); List<CardInfo> savedSpecialRares = new ArrayList<>(); List<CardInfo> savedSpecialCommon = new ArrayList<>(); public static FateReforged getInstance() { return instance; } private FateReforged() { super("Fate Reforged", "FRF", ExpansionSet.buildDate(2015, 1, 23), SetType.EXPANSION); this.blockName = "Khans of Tarkir"; this.parentSet = KhansOfTarkir.getInstance(); this.hasBasicLands = false; this.hasBoosters = true; this.numBoosterSpecial = 1; this.numBoosterLands = 0; this.numBoosterCommon = 10; this.numBoosterUncommon = 3; 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)); cards.add(new SetCardInfo("Abzan Runemark", 3, Rarity.COMMON, mage.cards.a.AbzanRunemark.class)); cards.add(new SetCardInfo("Abzan Skycaptain", 4, Rarity.COMMON, mage.cards.a.AbzanSkycaptain.class)); cards.add(new SetCardInfo("Ainok Guide", 121, Rarity.COMMON, mage.cards.a.AinokGuide.class)); cards.add(new SetCardInfo("Alesha's Vanguard", 60, Rarity.COMMON, mage.cards.a.AleshasVanguard.class)); cards.add(new SetCardInfo("Alesha, Who Smiles at Death", 90, Rarity.RARE, mage.cards.a.AleshaWhoSmilesAtDeath.class)); cards.add(new SetCardInfo("Ambush Krotiq", 122, Rarity.COMMON, mage.cards.a.AmbushKrotiq.class)); cards.add(new SetCardInfo("Ancestral Vengeance", 61, Rarity.COMMON, mage.cards.a.AncestralVengeance.class)); cards.add(new SetCardInfo("Arashin Cleric", 5, Rarity.COMMON, mage.cards.a.ArashinCleric.class)); cards.add(new SetCardInfo("Arashin War Beast", 123, Rarity.UNCOMMON, mage.cards.a.ArashinWarBeast.class)); cards.add(new SetCardInfo("Arcbond", 91, Rarity.RARE, mage.cards.a.Arcbond.class)); cards.add(new SetCardInfo("Archers of Qarsi", 124, Rarity.COMMON, mage.cards.a.ArchersOfQarsi.class)); cards.add(new SetCardInfo("Archfiend of Depravity", 62, Rarity.RARE, mage.cards.a.ArchfiendOfDepravity.class)); cards.add(new SetCardInfo("Atarka, World Render", 149, Rarity.RARE, mage.cards.a.AtarkaWorldRender.class)); cards.add(new SetCardInfo("Aven Skirmisher", 6, Rarity.COMMON, mage.cards.a.AvenSkirmisher.class)); cards.add(new SetCardInfo("Aven Surveyor", 31, Rarity.COMMON, mage.cards.a.AvenSurveyor.class)); cards.add(new SetCardInfo("Bathe in Dragonfire", 92, Rarity.COMMON, mage.cards.b.BatheInDragonfire.class)); cards.add(new SetCardInfo("Battle Brawler", 63, Rarity.UNCOMMON, mage.cards.b.BattleBrawler.class)); cards.add(new SetCardInfo("Battlefront Krushok", 125, Rarity.UNCOMMON, mage.cards.b.BattlefrontKrushok.class)); cards.add(new SetCardInfo("Bloodfell Caves", 165, Rarity.COMMON, mage.cards.b.BloodfellCaves.class)); cards.add(new SetCardInfo("Bloodfire Enforcers", 93, Rarity.UNCOMMON, mage.cards.b.BloodfireEnforcers.class)); cards.add(new SetCardInfo("Blossoming Sands", 166, Rarity.COMMON, mage.cards.b.BlossomingSands.class)); cards.add(new SetCardInfo("Break Through the Line", 94, Rarity.UNCOMMON, mage.cards.b.BreakThroughTheLine.class)); cards.add(new SetCardInfo("Brutal Hordechief", 64, Rarity.MYTHIC, mage.cards.b.BrutalHordechief.class)); cards.add(new SetCardInfo("Cached Defenses", 126, Rarity.UNCOMMON, mage.cards.c.CachedDefenses.class)); cards.add(new SetCardInfo("Channel Harm", 7, Rarity.UNCOMMON, mage.cards.c.ChannelHarm.class)); cards.add(new SetCardInfo("Citadel Siege", 8, Rarity.RARE, mage.cards.c.CitadelSiege.class)); cards.add(new SetCardInfo("Cloudform", 32, Rarity.UNCOMMON, mage.cards.c.Cloudform.class)); cards.add(new SetCardInfo("Collateral Damage", 95, Rarity.COMMON, mage.cards.c.CollateralDamage.class)); cards.add(new SetCardInfo("Crucible of the Spirit Dragon", 167, Rarity.RARE, mage.cards.c.CrucibleOfTheSpiritDragon.class)); cards.add(new SetCardInfo("Crux of Fate", 65, Rarity.RARE, mage.cards.c.CruxOfFate.class)); cards.add(new SetCardInfo("Cunning Strike", 150, Rarity.COMMON, mage.cards.c.CunningStrike.class)); cards.add(new SetCardInfo("Daghatar the Adamant", 9, Rarity.RARE, mage.cards.d.DaghatarTheAdamant.class)); cards.add(new SetCardInfo("Dark Deal", 66, Rarity.UNCOMMON, mage.cards.d.DarkDeal.class)); cards.add(new SetCardInfo("Defiant Ogre", 96, Rarity.COMMON, mage.cards.d.DefiantOgre.class)); cards.add(new SetCardInfo("Destructor Dragon", 127, Rarity.UNCOMMON, mage.cards.d.DestructorDragon.class)); cards.add(new SetCardInfo("Diplomacy of the Wastes", 67, Rarity.UNCOMMON, mage.cards.d.DiplomacyOfTheWastes.class)); cards.add(new SetCardInfo("Dismal Backwater", 168, Rarity.COMMON, mage.cards.d.DismalBackwater.class)); cards.add(new SetCardInfo("Douse in Gloom", 68, Rarity.COMMON, mage.cards.d.DouseInGloom.class)); cards.add(new SetCardInfo("Dragon Bell Monk", 10, Rarity.COMMON, mage.cards.d.DragonBellMonk.class)); cards.add(new SetCardInfo("Dragonrage", 97, Rarity.UNCOMMON, mage.cards.d.Dragonrage.class)); cards.add(new SetCardInfo("Dragonscale General", 11, Rarity.RARE, mage.cards.d.DragonscaleGeneral.class)); cards.add(new SetCardInfo("Dromoka, the Eternal", 151, Rarity.RARE, mage.cards.d.DromokaTheEternal.class)); cards.add(new SetCardInfo("Elite Scaleguard", 12, Rarity.UNCOMMON, mage.cards.e.EliteScaleguard.class)); cards.add(new SetCardInfo("Enhanced Awareness", 33, Rarity.COMMON, mage.cards.e.EnhancedAwareness.class)); cards.add(new SetCardInfo("Ethereal Ambush", 152, Rarity.COMMON, mage.cards.e.EtherealAmbush.class)); cards.add(new SetCardInfo("Fascination", 34, Rarity.UNCOMMON, mage.cards.f.Fascination.class)); cards.add(new SetCardInfo("Fearsome Awakening", 69, Rarity.UNCOMMON, mage.cards.f.FearsomeAwakening.class)); cards.add(new SetCardInfo("Feral Krushok", 128, Rarity.COMMON, mage.cards.f.FeralKrushok.class)); cards.add(new SetCardInfo("Fierce Invocation", 98, Rarity.COMMON, mage.cards.f.FierceInvocation.class)); cards.add(new SetCardInfo("Flamerush Rider", 99, Rarity.RARE, mage.cards.f.FlamerushRider.class)); cards.add(new SetCardInfo("Flamewake Phoenix", 100, Rarity.RARE, mage.cards.f.FlamewakePhoenix.class)); cards.add(new SetCardInfo("Forest", 184, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Forest", 185, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Formless Nurturing", 129, Rarity.COMMON, mage.cards.f.FormlessNurturing.class)); cards.add(new SetCardInfo("Friendly Fire", 101, Rarity.UNCOMMON, mage.cards.f.FriendlyFire.class)); cards.add(new SetCardInfo("Frontier Mastodon", 130, Rarity.COMMON, mage.cards.f.FrontierMastodon.class)); cards.add(new SetCardInfo("Frontier Siege", 131, Rarity.RARE, mage.cards.f.FrontierSiege.class)); cards.add(new SetCardInfo("Frost Walker", 35, Rarity.UNCOMMON, mage.cards.f.FrostWalker.class)); cards.add(new SetCardInfo("Fruit of the First Tree", 132, Rarity.UNCOMMON, mage.cards.f.FruitOfTheFirstTree.class)); cards.add(new SetCardInfo("Ghastly Conscription", 70, Rarity.MYTHIC, mage.cards.g.GhastlyConscription.class)); cards.add(new SetCardInfo("Goblin Boom Keg", 159, Rarity.UNCOMMON, mage.cards.g.GoblinBoomKeg.class)); cards.add(new SetCardInfo("Goblin Heelcutter", 102, Rarity.COMMON, mage.cards.g.GoblinHeelcutter.class)); cards.add(new SetCardInfo("Gore Swine", 103, Rarity.COMMON, mage.cards.g.GoreSwine.class)); cards.add(new SetCardInfo("Grave Strength", 71, Rarity.UNCOMMON, mage.cards.g.GraveStrength.class)); cards.add(new SetCardInfo("Great-Horn Krushok", 13, Rarity.COMMON, mage.cards.g.GreatHornKrushok.class)); cards.add(new SetCardInfo("Grim Contest", 153, Rarity.COMMON, mage.cards.g.GrimContest.class)); cards.add(new SetCardInfo("Gurmag Angler", 72, Rarity.COMMON, mage.cards.g.GurmagAngler.class)); cards.add(new SetCardInfo("Harsh Sustenance", 154, Rarity.COMMON, mage.cards.h.HarshSustenance.class)); cards.add(new SetCardInfo("Hero's Blade", 160, Rarity.UNCOMMON, mage.cards.h.HerosBlade.class)); cards.add(new SetCardInfo("Hewed Stone Retainers", 161, Rarity.UNCOMMON, mage.cards.h.HewedStoneRetainers.class)); cards.add(new SetCardInfo("Honor's Reward", 14, Rarity.UNCOMMON, mage.cards.h.HonorsReward.class)); cards.add(new SetCardInfo("Hooded Assassin", 73, Rarity.COMMON, mage.cards.h.HoodedAssassin.class)); cards.add(new SetCardInfo("Humble Defector", 104, Rarity.UNCOMMON, mage.cards.h.HumbleDefector.class)); cards.add(new SetCardInfo("Hungering Yeti", 105, Rarity.UNCOMMON, mage.cards.h.HungeringYeti.class)); cards.add(new SetCardInfo("Hunt the Weak", 133, Rarity.COMMON, mage.cards.h.HuntTheWeak.class)); cards.add(new SetCardInfo("Island", 178, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Island", 179, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Jeskai Barricade", 15, Rarity.UNCOMMON, mage.cards.j.JeskaiBarricade.class)); cards.add(new SetCardInfo("Jeskai Infiltrator", 36, Rarity.RARE, mage.cards.j.JeskaiInfiltrator.class)); cards.add(new SetCardInfo("Jeskai Runemark", 37, Rarity.COMMON, mage.cards.j.JeskaiRunemark.class)); cards.add(new SetCardInfo("Jeskai Sage", 38, Rarity.COMMON, mage.cards.j.JeskaiSage.class)); cards.add(new SetCardInfo("Jungle Hollow", 169, Rarity.COMMON, mage.cards.j.JungleHollow.class)); cards.add(new SetCardInfo("Kolaghan, the Storm's Fury", 155, Rarity.RARE, mage.cards.k.KolaghanTheStormsFury.class)); cards.add(new SetCardInfo("Lightform", 16, Rarity.UNCOMMON, mage.cards.l.Lightform.class)); cards.add(new SetCardInfo("Lightning Shrieker", 106, Rarity.COMMON, mage.cards.l.LightningShrieker.class)); cards.add(new SetCardInfo("Lotus-Eye Mystics", 17, Rarity.UNCOMMON, mage.cards.l.LotusEyeMystics.class)); cards.add(new SetCardInfo("Lotus Path Djinn", 39, Rarity.COMMON, mage.cards.l.LotusPathDjinn.class)); cards.add(new SetCardInfo("Map the Wastes", 134, Rarity.COMMON, mage.cards.m.MapTheWastes.class)); cards.add(new SetCardInfo("Marang River Prowler", 40, Rarity.UNCOMMON, mage.cards.m.MarangRiverProwler.class)); cards.add(new SetCardInfo("Mardu Runemark", 107, Rarity.COMMON, mage.cards.m.MarduRunemark.class)); cards.add(new SetCardInfo("Mardu Scout", 108, Rarity.COMMON, mage.cards.m.MarduScout.class)); cards.add(new SetCardInfo("Mardu Shadowspear", 74, Rarity.UNCOMMON, mage.cards.m.MarduShadowspear.class)); cards.add(new SetCardInfo("Mardu Strike Leader", 75, Rarity.RARE, mage.cards.m.MarduStrikeLeader.class)); cards.add(new SetCardInfo("Mardu Woe-Reaper", 18, Rarity.UNCOMMON, mage.cards.m.MarduWoeReaper.class)); cards.add(new SetCardInfo("Mastery of the Unseen", 19, Rarity.RARE, mage.cards.m.MasteryOfTheUnseen.class)); cards.add(new SetCardInfo("Merciless Executioner", 76, Rarity.UNCOMMON, mage.cards.m.MercilessExecutioner.class)); cards.add(new SetCardInfo("Mindscour Dragon", 41, Rarity.UNCOMMON, mage.cards.m.MindscourDragon.class)); cards.add(new SetCardInfo("Mistfire Adept", 42, Rarity.UNCOMMON, mage.cards.m.MistfireAdept.class)); cards.add(new SetCardInfo("Mob Rule", 109, Rarity.RARE, mage.cards.m.MobRule.class)); cards.add(new SetCardInfo("Monastery Mentor", 20, Rarity.MYTHIC, mage.cards.m.MonasteryMentor.class)); cards.add(new SetCardInfo("Monastery Siege", 43, Rarity.RARE, mage.cards.m.MonasterySiege.class)); cards.add(new SetCardInfo("Mountain", 182, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Mountain", 183, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Neutralizing Blast", 44, Rarity.UNCOMMON, mage.cards.n.NeutralizingBlast.class)); cards.add(new SetCardInfo("Noxious Dragon", 77, Rarity.UNCOMMON, mage.cards.n.NoxiousDragon.class)); cards.add(new SetCardInfo("Ojutai, Soul of Winter", 156, Rarity.RARE, mage.cards.o.OjutaiSoulOfWinter.class)); cards.add(new SetCardInfo("Orc Sureshot", 78, Rarity.UNCOMMON, mage.cards.o.OrcSureshot.class)); cards.add(new SetCardInfo("Outpost Siege", 110, Rarity.RARE, mage.cards.o.OutpostSiege.class)); cards.add(new SetCardInfo("Palace Siege", 79, Rarity.RARE, mage.cards.p.PalaceSiege.class)); cards.add(new SetCardInfo("Pilgrim of the Fires", 162, Rarity.UNCOMMON, mage.cards.p.PilgrimOfTheFires.class)); cards.add(new SetCardInfo("Plains", 176, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Plains", 177, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Pressure Point", 21, Rarity.COMMON, mage.cards.p.PressurePoint.class)); cards.add(new SetCardInfo("Pyrotechnics", 111, Rarity.UNCOMMON, mage.cards.p.Pyrotechnics.class)); cards.add(new SetCardInfo("Qarsi High Priest", 80, Rarity.UNCOMMON, mage.cards.q.QarsiHighPriest.class)); cards.add(new SetCardInfo("Rageform", 112, Rarity.UNCOMMON, mage.cards.r.Rageform.class)); cards.add(new SetCardInfo("Rakshasa's Disdain", 45, Rarity.COMMON, mage.cards.r.RakshasasDisdain.class)); cards.add(new SetCardInfo("Rally the Ancestors", 22, Rarity.RARE, mage.cards.r.RallyTheAncestors.class)); cards.add(new SetCardInfo("Reach of Shadows", 81, Rarity.COMMON, mage.cards.r.ReachOfShadows.class)); cards.add(new SetCardInfo("Reality Shift", 46, Rarity.UNCOMMON, mage.cards.r.RealityShift.class)); cards.add(new SetCardInfo("Refocus", 47, Rarity.COMMON, mage.cards.r.Refocus.class)); cards.add(new SetCardInfo("Renowned Weaponsmith", 48, Rarity.UNCOMMON, mage.cards.r.RenownedWeaponsmith.class)); cards.add(new SetCardInfo("Return to the Earth", 135, Rarity.COMMON, mage.cards.r.ReturnToTheEarth.class)); cards.add(new SetCardInfo("Rite of Undoing", 49, Rarity.UNCOMMON, mage.cards.r.RiteOfUndoing.class)); cards.add(new SetCardInfo("Rugged Highlands", 170, Rarity.COMMON, mage.cards.r.RuggedHighlands.class)); cards.add(new SetCardInfo("Ruthless Instincts", 136, Rarity.UNCOMMON, mage.cards.r.RuthlessInstincts.class)); cards.add(new SetCardInfo("Sage-Eye Avengers", 50, Rarity.RARE, mage.cards.s.SageEyeAvengers.class)); cards.add(new SetCardInfo("Sage's Reverie", 23, Rarity.UNCOMMON, mage.cards.s.SagesReverie.class)); cards.add(new SetCardInfo("Sandblast", 24, Rarity.COMMON, mage.cards.s.Sandblast.class)); cards.add(new SetCardInfo("Sandsteppe Mastodon", 137, Rarity.RARE, mage.cards.s.SandsteppeMastodon.class)); cards.add(new SetCardInfo("Sandsteppe Outcast", 25, Rarity.COMMON, mage.cards.s.SandsteppeOutcast.class)); cards.add(new SetCardInfo("Scoured Barrens", 171, Rarity.COMMON, mage.cards.s.ScouredBarrens.class)); cards.add(new SetCardInfo("Scroll of the Masters", 163, Rarity.RARE, mage.cards.s.ScrollOfTheMasters.class)); cards.add(new SetCardInfo("Shamanic Revelation", 138, Rarity.RARE, mage.cards.s.ShamanicRevelation.class)); cards.add(new SetCardInfo("Shaman of the Great Hunt", 113, Rarity.MYTHIC, mage.cards.s.ShamanOfTheGreatHunt.class)); cards.add(new SetCardInfo("Shifting Loyalties", 51, Rarity.UNCOMMON, mage.cards.s.ShiftingLoyalties.class)); cards.add(new SetCardInfo("Shockmaw Dragon", 114, Rarity.UNCOMMON, mage.cards.s.ShockmawDragon.class)); cards.add(new SetCardInfo("Shu Yun, the Silent Tempest", 52, Rarity.RARE, mage.cards.s.ShuYunTheSilentTempest.class)); cards.add(new SetCardInfo("Sibsig Host", 82, Rarity.COMMON, mage.cards.s.SibsigHost.class)); cards.add(new SetCardInfo("Sibsig Muckdraggers", 83, Rarity.UNCOMMON, mage.cards.s.SibsigMuckdraggers.class)); cards.add(new SetCardInfo("Silumgar, the Drifting Death", 157, Rarity.RARE, mage.cards.s.SilumgarTheDriftingDeath.class)); cards.add(new SetCardInfo("Smoldering Efreet", 115, Rarity.COMMON, mage.cards.s.SmolderingEfreet.class)); cards.add(new SetCardInfo("Soulfire Grand Master", 27, Rarity.MYTHIC, mage.cards.s.SoulfireGrandMaster.class)); cards.add(new SetCardInfo("Soulflayer", 84, Rarity.RARE, mage.cards.s.Soulflayer.class)); cards.add(new SetCardInfo("Soul Summons", 26, Rarity.COMMON, mage.cards.s.SoulSummons.class)); cards.add(new SetCardInfo("Sudden Reclamation", 139, Rarity.UNCOMMON, mage.cards.s.SuddenReclamation.class)); cards.add(new SetCardInfo("Sultai Emissary", 85, Rarity.COMMON, mage.cards.s.SultaiEmissary.class)); cards.add(new SetCardInfo("Sultai Runemark", 86, Rarity.COMMON, mage.cards.s.SultaiRunemark.class)); cards.add(new SetCardInfo("Sultai Skullkeeper", 53, Rarity.COMMON, mage.cards.s.SultaiSkullkeeper.class)); cards.add(new SetCardInfo("Supplant Form", 54, Rarity.RARE, mage.cards.s.SupplantForm.class)); cards.add(new SetCardInfo("Swamp", 180, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Swamp", 181, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Swiftwater Cliffs", 172, Rarity.COMMON, mage.cards.s.SwiftwaterCliffs.class)); cards.add(new SetCardInfo("Tasigur's Cruelty", 88, Rarity.COMMON, mage.cards.t.TasigursCruelty.class)); cards.add(new SetCardInfo("Tasigur, the Golden Fang", 87, Rarity.RARE, mage.cards.t.TasigurTheGoldenFang.class)); cards.add(new SetCardInfo("Temporal Trespass", 55, Rarity.MYTHIC, mage.cards.t.TemporalTrespass.class)); cards.add(new SetCardInfo("Temur Battle Rage", 116, Rarity.COMMON, mage.cards.t.TemurBattleRage.class)); cards.add(new SetCardInfo("Temur Runemark", 140, Rarity.COMMON, mage.cards.t.TemurRunemark.class)); cards.add(new SetCardInfo("Temur Sabertooth", 141, Rarity.UNCOMMON, mage.cards.t.TemurSabertooth.class)); cards.add(new SetCardInfo("Temur War Shaman", 142, Rarity.RARE, mage.cards.t.TemurWarShaman.class)); cards.add(new SetCardInfo("Thornwood Falls", 173, Rarity.COMMON, mage.cards.t.ThornwoodFalls.class)); cards.add(new SetCardInfo("Torrent Elemental", 56, Rarity.MYTHIC, mage.cards.t.TorrentElemental.class)); cards.add(new SetCardInfo("Tranquil Cove", 174, Rarity.COMMON, mage.cards.t.TranquilCove.class)); cards.add(new SetCardInfo("Typhoid Rats", 89, Rarity.COMMON, mage.cards.t.TyphoidRats.class)); cards.add(new SetCardInfo("Ugin's Construct", 164, Rarity.UNCOMMON, mage.cards.u.UginsConstruct.class)); cards.add(new SetCardInfo("Ugin, the Spirit Dragon", 1, Rarity.MYTHIC, mage.cards.u.UginTheSpiritDragon.class)); cards.add(new SetCardInfo("Valorous Stance", 28, Rarity.UNCOMMON, mage.cards.v.ValorousStance.class)); cards.add(new SetCardInfo("Vaultbreaker", 117, Rarity.UNCOMMON, mage.cards.v.Vaultbreaker.class)); cards.add(new SetCardInfo("Wandering Champion", 29, Rarity.UNCOMMON, mage.cards.w.WanderingChampion.class)); cards.add(new SetCardInfo("Warden of the First Tree", 143, Rarity.MYTHIC, mage.cards.w.WardenOfTheFirstTree.class)); cards.add(new SetCardInfo("Wardscale Dragon", 30, Rarity.UNCOMMON, mage.cards.w.WardscaleDragon.class)); cards.add(new SetCardInfo("War Flare", 158, Rarity.COMMON, mage.cards.w.WarFlare.class)); cards.add(new SetCardInfo("Whisk Away", 57, Rarity.COMMON, mage.cards.w.WhiskAway.class)); cards.add(new SetCardInfo("Whisperer of the Wilds", 144, Rarity.COMMON, mage.cards.w.WhispererOfTheWilds.class)); cards.add(new SetCardInfo("Whisperwood Elemental", 145, Rarity.MYTHIC, mage.cards.w.WhisperwoodElemental.class)); cards.add(new SetCardInfo("Wildcall", 146, Rarity.RARE, mage.cards.w.Wildcall.class)); cards.add(new SetCardInfo("Wild Slash", 118, Rarity.UNCOMMON, mage.cards.w.WildSlash.class)); cards.add(new SetCardInfo("Will of the Naga", 58, Rarity.COMMON, mage.cards.w.WillOfTheNaga.class)); cards.add(new SetCardInfo("Wind-Scarred Crag", 175, Rarity.COMMON, mage.cards.w.WindScarredCrag.class)); cards.add(new SetCardInfo("Winds of Qal Sisma", 147, Rarity.UNCOMMON, mage.cards.w.WindsOfQalSisma.class)); cards.add(new SetCardInfo("Write into Being", 59, Rarity.COMMON, mage.cards.w.WriteIntoBeing.class)); cards.add(new SetCardInfo("Yasova Dragonclaw", 148, Rarity.RARE, mage.cards.y.YasovaDragonclaw.class)); } @Override public List<CardInfo> getCardsByRarity(Rarity rarity) { // Common cards retrievement of Fate Reforged boosters - prevent the retrievement of the common lands (e.g. Blossoming Sands) if (rarity == Rarity.COMMON) { List<CardInfo> savedCardsInfos = savedCards.get(rarity); if (savedCardsInfos == null) { CardCriteria criteria = new CardCriteria(); criteria.rarities(Rarity.COMMON); criteria.setCodes(this.code).notTypes(CardType.LAND); 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 let modify the original. return new ArrayList<>(savedCardsInfos); } else { return super.getCardsByRarity(rarity); } } @Override public List<CardInfo> getSpecialCommon() { List<CardInfo> specialCommons = new ArrayList<>(); if (savedSpecialCommon.isEmpty()) { // the 10 common lands from Fate Reforged can show up in the basic lands slot // http://magic.wizards.com/en/articles/archive/feature/fetching-look-fate-reforged-2014-12-24 CardCriteria criteria = new CardCriteria(); criteria.rarities(Rarity.COMMON).setCodes(this.code).types(CardType.LAND); savedSpecialCommon = CardRepository.instance.findCards(criteria); criteria.rarities(Rarity.LAND).setCodes(this.code); savedSpecialCommon.addAll(CardRepository.instance.findCards(criteria)); } specialCommons.addAll(savedSpecialCommon); return specialCommons; } @Override public List<CardInfo> getSpecialRare() { List<CardInfo> specialRares = new ArrayList<>(); if (savedSpecialRares.isEmpty()) { CardCriteria criteria = new CardCriteria(); criteria.setCodes("KTK").name("Bloodstained Mire"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("KTK").name("Flooded Strand"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("KTK").name("Polluted Delta"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("KTK").name("Windswept Heath"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); criteria = new CardCriteria(); criteria.setCodes("KTK").name("Wooded Foothills"); savedSpecialRares.addAll(CardRepository.instance.findCards(criteria)); } specialRares.addAll(savedSpecialRares); return specialRares; } }