From a157849e16e16653a2d154f4cb2d4cde9d6974d2 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sat, 27 Apr 2013 18:56:39 +0200 Subject: [PATCH] Changed bosster generation to generate special land card that's in dragon's maze booster. --- Mage.Sets/src/mage/sets/DragonsMaze.java | 69 ++++++++++++++++++++- Mage/src/mage/cards/ExpansionSet.java | 77 +++++++++++++++++++++++- 2 files changed, 142 insertions(+), 4 deletions(-) diff --git a/Mage.Sets/src/mage/sets/DragonsMaze.java b/Mage.Sets/src/mage/sets/DragonsMaze.java index ee10ab7d85d..0935f7a50a9 100644 --- a/Mage.Sets/src/mage/sets/DragonsMaze.java +++ b/Mage.Sets/src/mage/sets/DragonsMaze.java @@ -28,9 +28,16 @@ package mage.sets; +import java.util.ArrayList; import java.util.GregorianCalendar; +import java.util.List; import mage.Constants; +import mage.Constants.CardType; +import mage.Constants.Rarity; import mage.cards.ExpansionSet; +import mage.cards.repository.CardCriteria; +import mage.cards.repository.CardInfo; +import mage.cards.repository.CardRepository; /** * @@ -50,7 +57,8 @@ public class DragonsMaze extends ExpansionSet { super("Dragon's Maze", "DGM", "seticon_mtggtc", "mage.sets.dragonsmaze", new GregorianCalendar(2013, 5, 03).getTime(), Constants.SetType.EXPANSION); this.blockName = "Return to Ravnica"; this.hasBoosters = true; - this.numBoosterLands = 1; + this.numBoosterSpecial = 1; + this.numBoosterLands = 0; this.numBoosterCommon = 10; this.numBoosterUncommon = 3; this.numBoosterRare = 1; @@ -58,4 +66,63 @@ public class DragonsMaze extends ExpansionSet { this.parentSet = ReturnToRavnica.getInstance(); this.hasBasicLands = false; } + + @Override + public List getCommon() { + CardCriteria criteria = new CardCriteria(); + criteria.setCodes(this.code).rarities(Rarity.COMMON).notTypes(CardType.LAND).doubleFaced(false); + return CardRepository.instance.findCards(criteria); + } + + @Override + public List getSpecialCommon() { + CardCriteria criteria = new CardCriteria(); + criteria.rarities(Rarity.COMMON).setCodes(this.code).types(CardType.LAND); + return CardRepository.instance.findCards(criteria); + } + + @Override + public List getSpecialRare() { + List specialRare = new ArrayList(); + CardCriteria criteria = new CardCriteria(); + criteria.setCodes("GTC").name("Breeding Pool"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + criteria = new CardCriteria(); + criteria.setCodes("GTC").name("Godless Shrine"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + criteria = new CardCriteria(); + criteria.setCodes("GTC").name("Sacred Foundry"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + criteria = new CardCriteria(); + criteria.setCodes("GTC").name("Stomping Ground"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + criteria = new CardCriteria(); + criteria.setCodes("GTC").name("Watery Grave"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + + criteria = new CardCriteria(); + criteria.setCodes("RTR").name("Blood Crypt"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + criteria = new CardCriteria(); + criteria.setCodes("RTR").name("Hallowed Fountain"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + criteria = new CardCriteria(); + criteria.setCodes("RTR").name("Overgrown Tomb"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + criteria = new CardCriteria(); + criteria.setCodes("RTR").name("Steam Vents"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + criteria = new CardCriteria(); + criteria.setCodes("RTR").name("Temple Garden"); + specialRare.addAll(CardRepository.instance.findCards(criteria)); + return specialRare; + } + + @Override + public List getSpecialMythic() { + CardCriteria criteria = new CardCriteria(); + criteria.rarities(Rarity.MYTHIC).setCodes(this.code).types(Constants.CardType.LAND); + return CardRepository.instance.findCards(criteria); + } + } diff --git a/Mage/src/mage/cards/ExpansionSet.java b/Mage/src/mage/cards/ExpansionSet.java index be6c0558289..6c0193dd29b 100644 --- a/Mage/src/mage/cards/ExpansionSet.java +++ b/Mage/src/mage/cards/ExpansionSet.java @@ -59,6 +59,7 @@ public abstract class ExpansionSet implements Serializable { protected String blockName; protected boolean hasBoosters = false; + protected int numBoosterSpecial; protected int numBoosterLands; protected int numBoosterCommon; protected int numBoosterUncommon; @@ -120,9 +121,7 @@ public abstract class ExpansionSet implements Serializable { criteria.setCodes(!hasBasicLands && parentSet != null ? parentSet.code : this.code).rarities(Rarity.LAND).doubleFaced(false); List basicLand = CardRepository.instance.findCards(criteria); - criteria = new CardCriteria(); - criteria.setCodes(this.code).rarities(Rarity.COMMON).doubleFaced(false); - List common = CardRepository.instance.findCards(criteria); + List common = getCommon(); criteria = new CardCriteria(); criteria.setCodes(this.code).rarities(Rarity.UNCOMMON).doubleFaced(false); @@ -160,6 +159,60 @@ public abstract class ExpansionSet implements Serializable { addToBooster(booster, doubleFaced); } + if (numBoosterSpecial > 0) { + int specialCards = 0; + Random randomno = new Random(); + List specialMythic = getSpecialMythic(); + if (specialMythic != null) { + specialCards += specialMythic.size(); + } + List specialRare = getSpecialRare(); + if (specialRare != null) { + specialCards += specialRare.size(); + } + List specialUncommon = getSpecialUncommon(); + if (specialUncommon != null) { + specialCards += specialUncommon.size(); + } + List specialCommon = getSpecialCommon(); + if (specialCommon != null) { + specialCards += specialCommon.size(); + } + if (specialCards > 0) { + for (int i = 0; i < numBoosterSpecial; i++) { + if (randomno.nextInt(15) < 10) { + if (specialCommon != null) { + addToBooster(booster, specialCommon); + } else { + i--; + } + continue; + } + if (randomno.nextInt(5) < 4) { + if (specialUncommon != null) { + addToBooster(booster, specialUncommon); + } else { + i--; + } + continue; + } + if (randomno.nextInt(8) < 7) { + if (specialRare != null) { + addToBooster(booster, specialRare); + } else { + i--; + } + continue; + } + if (specialMythic != null) { + addToBooster(booster, specialMythic); + } else { + i--; + } + } + } + } + return booster; } @@ -183,4 +236,22 @@ public abstract class ExpansionSet implements Serializable { return hasBasicLands; } + public List getCommon() { + CardCriteria criteria = new CardCriteria(); + criteria.setCodes(this.code).rarities(Rarity.COMMON).doubleFaced(false); + return CardRepository.instance.findCards(criteria); + } + + public List getSpecialCommon() { + return null; + } + public List getSpecialUncommon() { + return null; + } + public List getSpecialRare() { + return null; + } + public List getSpecialMythic() { + return null; + } }