mirror of
https://github.com/correl/mage.git
synced 2024-12-26 11:09:27 +00:00
* Innistrad booster - Fixed rarity distribution of double faced cards.
This commit is contained in:
parent
d0e0f60ae7
commit
766a7055c5
1 changed files with 28 additions and 11 deletions
|
@ -131,10 +131,6 @@ public abstract class ExpansionSet implements Serializable {
|
||||||
criteria.setCodes(this.code).rarities(Rarity.MYTHIC).doubleFaced(false);
|
criteria.setCodes(this.code).rarities(Rarity.MYTHIC).doubleFaced(false);
|
||||||
List<CardInfo> mythic = CardRepository.instance.findCards(criteria);
|
List<CardInfo> mythic = CardRepository.instance.findCards(criteria);
|
||||||
|
|
||||||
criteria = new CardCriteria();
|
|
||||||
criteria.setCodes(this.code).doubleFaced(true);
|
|
||||||
List<CardInfo> doubleFaced = CardRepository.instance.findCards(criteria);
|
|
||||||
|
|
||||||
for (int i = 0; i < numBoosterLands; i++) {
|
for (int i = 0; i < numBoosterLands; i++) {
|
||||||
addToBooster(booster, basicLand);
|
addToBooster(booster, basicLand);
|
||||||
}
|
}
|
||||||
|
@ -151,13 +147,13 @@ public abstract class ExpansionSet implements Serializable {
|
||||||
addToBooster(booster, rare);
|
addToBooster(booster, rare);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i < numBoosterDoubleFaced; i++) {
|
|
||||||
addToBooster(booster, doubleFaced);
|
if (numBoosterDoubleFaced > 0) {
|
||||||
|
this.addDoubleFace(booster);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numBoosterSpecial > 0) {
|
if (numBoosterSpecial > 0) {
|
||||||
int specialCards = 0;
|
int specialCards = 0;
|
||||||
Random randomno = new Random();
|
|
||||||
List<CardInfo> specialMythic = getSpecialMythic();
|
List<CardInfo> specialMythic = getSpecialMythic();
|
||||||
if (specialMythic != null) {
|
if (specialMythic != null) {
|
||||||
specialCards += specialMythic.size();
|
specialCards += specialMythic.size();
|
||||||
|
@ -176,7 +172,7 @@ public abstract class ExpansionSet implements Serializable {
|
||||||
}
|
}
|
||||||
if (specialCards > 0) {
|
if (specialCards > 0) {
|
||||||
for (int i = 0; i < numBoosterSpecial; i++) {
|
for (int i = 0; i < numBoosterSpecial; i++) {
|
||||||
if (randomno.nextInt(15) < 10) {
|
if (rnd.nextInt(15) < 10) {
|
||||||
if (specialCommon != null) {
|
if (specialCommon != null) {
|
||||||
addToBooster(booster, specialCommon);
|
addToBooster(booster, specialCommon);
|
||||||
} else {
|
} else {
|
||||||
|
@ -184,7 +180,7 @@ public abstract class ExpansionSet implements Serializable {
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (randomno.nextInt(5) < 4) {
|
if (rnd.nextInt(5) < 4) {
|
||||||
if (specialUncommon != null) {
|
if (specialUncommon != null) {
|
||||||
addToBooster(booster, specialUncommon);
|
addToBooster(booster, specialUncommon);
|
||||||
} else {
|
} else {
|
||||||
|
@ -192,7 +188,7 @@ public abstract class ExpansionSet implements Serializable {
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (randomno.nextInt(8) < 7) {
|
if (rnd.nextInt(8) < 7) {
|
||||||
if (specialRare != null) {
|
if (specialRare != null) {
|
||||||
addToBooster(booster, specialRare);
|
addToBooster(booster, specialRare);
|
||||||
} else {
|
} else {
|
||||||
|
@ -212,6 +208,27 @@ public abstract class ExpansionSet implements Serializable {
|
||||||
return booster;
|
return booster;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* add double faced card for Innistrad booster
|
||||||
|
* rarity near as the normal distribution
|
||||||
|
*/
|
||||||
|
private void addDoubleFace(List<Card> booster) {
|
||||||
|
for (int i = 0; i < numBoosterDoubleFaced; i++) {
|
||||||
|
CardCriteria criteria = new CardCriteria();
|
||||||
|
criteria.setCodes(this.code).doubleFaced(true);
|
||||||
|
if (rnd.nextInt(15) < 10) {
|
||||||
|
criteria.rarities(Rarity.COMMON);
|
||||||
|
} else if (rnd.nextInt(5) < 4) {
|
||||||
|
criteria.rarities(Rarity.UNCOMMON);
|
||||||
|
} else if (rnd.nextInt(8) < 7) {
|
||||||
|
criteria.rarities(Rarity.RARE);
|
||||||
|
} else {
|
||||||
|
criteria.rarities(Rarity.MYTHIC);
|
||||||
|
}
|
||||||
|
List<CardInfo> doubleFacedCards = CardRepository.instance.findCards(criteria);
|
||||||
|
addToBooster(booster, doubleFacedCards);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void addToBooster(List<Card> booster, List<CardInfo> cards) {
|
private void addToBooster(List<Card> booster, List<CardInfo> cards) {
|
||||||
if (!cards.isEmpty()) {
|
if (!cards.isEmpty()) {
|
||||||
CardInfo cardInfo = cards.remove(rnd.nextInt(cards.size()));
|
CardInfo cardInfo = cards.remove(rnd.nextInt(cards.size()));
|
||||||
|
|
Loading…
Reference in a new issue