forked from External/mage
Fixed Issue 42
This commit is contained in:
parent
7b71fa29f5
commit
e92ccb7b2f
2 changed files with 33 additions and 4 deletions
|
|
@ -709,11 +709,15 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene
|
|||
}//GEN-LAST:event_btnClearActionPerformed
|
||||
|
||||
private void btnBoosterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBoosterActionPerformed
|
||||
List<Card> booster = ((ExpansionSet)this.cbExpansionSet.getSelectedItem()).createBooster();
|
||||
for (Card card: booster) {
|
||||
cards.add(card);
|
||||
if (cbExpansionSet.getSelectedItem() instanceof ExpansionSet) {
|
||||
List<Card> booster = ((ExpansionSet)this.cbExpansionSet.getSelectedItem()).createBooster();
|
||||
for (Card card: booster) {
|
||||
cards.add(card);
|
||||
}
|
||||
filterCards();
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(null, "It's not possible to generate booster for not Expansion Set but all cards\nChoose Expandsion Set firest.");
|
||||
}
|
||||
filterCards();
|
||||
}//GEN-LAST:event_btnBoosterActionPerformed
|
||||
|
||||
private void cbSortByActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortByActionPerformed
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ import java.net.URL;
|
|||
import java.net.URLClassLoader;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarInputStream;
|
||||
import org.apache.log4j.Logger;
|
||||
|
|
@ -332,12 +333,36 @@ public abstract class ExpansionSet implements Serializable {
|
|||
protected void addToBooster(List<Card> booster, ExpansionSet set, Rarity rarity) {
|
||||
Card card = set.getRandom(rarity);
|
||||
if (card != null) {
|
||||
boolean duplicate = true;
|
||||
int retryCount = 5;
|
||||
while (duplicate && retryCount > 0) {
|
||||
if (!rarity.equals(Rarity.LAND)) {
|
||||
// check for duplicates
|
||||
if (hasCardByName(booster, card.getName())) {
|
||||
card = set.getRandom(rarity);
|
||||
} else {
|
||||
duplicate = false; // no such card yet
|
||||
}
|
||||
} else {
|
||||
duplicate = false;
|
||||
}
|
||||
retryCount--;
|
||||
}
|
||||
Card newCard = card.copy();
|
||||
newCard.assignNewId();
|
||||
booster.add(newCard);
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean hasCardByName(List<Card> booster, String name) {
|
||||
for (Card card : booster) {
|
||||
if (card.getName().equals(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected Card getRandom(Rarity rarity) {
|
||||
if (!rarities.containsKey(rarity))
|
||||
return null;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue