mirror of
https://github.com/correl/mage.git
synced 2024-12-25 11:11:16 +00:00
spjspj - Update Rich Man draft to allow Random packs
This commit is contained in:
parent
5ee4b5193e
commit
f9e363fb30
7 changed files with 77 additions and 36 deletions
|
@ -86,6 +86,8 @@ public class NewTournamentDialog extends MageDialog {
|
||||||
private final List<JComboBox> packs = new ArrayList<>();
|
private final List<JComboBox> packs = new ArrayList<>();
|
||||||
private final int CONSTRUCTION_TIME_MIN = 6;
|
private final int CONSTRUCTION_TIME_MIN = 6;
|
||||||
private final int CONSTRUCTION_TIME_MAX = 30;
|
private final int CONSTRUCTION_TIME_MAX = 30;
|
||||||
|
private boolean isRandom = false;
|
||||||
|
private boolean isRichMan = false;
|
||||||
|
|
||||||
private boolean automaticChange = false;
|
private boolean automaticChange = false;
|
||||||
|
|
||||||
|
@ -315,7 +317,6 @@ public class NewTournamentDialog extends MageDialog {
|
||||||
spnConstructTime.setToolTipText("The time players have to build their deck.");
|
spnConstructTime.setToolTipText("The time players have to build their deck.");
|
||||||
|
|
||||||
player1Panel.setPreferredSize(new java.awt.Dimension(400, 44));
|
player1Panel.setPreferredSize(new java.awt.Dimension(400, 44));
|
||||||
|
|
||||||
pnlOtherPlayers.setBorder(javax.swing.BorderFactory.createEtchedBorder());
|
pnlOtherPlayers.setBorder(javax.swing.BorderFactory.createEtchedBorder());
|
||||||
pnlOtherPlayers.setLayout(new java.awt.GridLayout(0, 1, 2, 0));
|
pnlOtherPlayers.setLayout(new java.awt.GridLayout(0, 1, 2, 0));
|
||||||
|
|
||||||
|
@ -549,10 +550,15 @@ public class NewTournamentDialog extends MageDialog {
|
||||||
tOptions.getLimitedOptions().setIsRandom(tournamentType.isRandom());
|
tOptions.getLimitedOptions().setIsRandom(tournamentType.isRandom());
|
||||||
if (tournamentType.isCubeBooster()) {
|
if (tournamentType.isCubeBooster()) {
|
||||||
tOptions.getLimitedOptions().setDraftCubeName(this.cbDraftCube.getSelectedItem().toString());
|
tOptions.getLimitedOptions().setDraftCubeName(this.cbDraftCube.getSelectedItem().toString());
|
||||||
} else if (tournamentType.isRandom()) {
|
} else if (tournamentType.isRandom() || tournamentType.isRichMan()) {
|
||||||
|
this.isRandom = tournamentType.isRandom();
|
||||||
|
this.isRichMan = tournamentType.isRichMan();
|
||||||
tOptions.getLimitedOptions().getSetCodes().clear();
|
tOptions.getLimitedOptions().getSetCodes().clear();
|
||||||
ArrayList<String> selected = randomPackSelector.getSelectedPacks();
|
ArrayList<String> selected = randomPackSelector.getSelectedPacks();
|
||||||
int maxPacks = 3 * (players.size() + 1);
|
int maxPacks = 3 * (players.size() + 1);
|
||||||
|
if (tournamentType.isRichMan()) {
|
||||||
|
maxPacks = 36;
|
||||||
|
}
|
||||||
if (selected.size() > maxPacks ){
|
if (selected.size() > maxPacks ){
|
||||||
StringBuilder infoString = new StringBuilder("More sets were selected than needed. ");
|
StringBuilder infoString = new StringBuilder("More sets were selected than needed. ");
|
||||||
infoString.append(maxPacks);
|
infoString.append(maxPacks);
|
||||||
|
@ -675,7 +681,9 @@ public class NewTournamentDialog extends MageDialog {
|
||||||
createPlayers((Integer) spnNumPlayers.getValue() - 1);
|
createPlayers((Integer) spnNumPlayers.getValue() - 1);
|
||||||
|
|
||||||
if (tournamentType.isLimited()) {
|
if (tournamentType.isLimited()) {
|
||||||
if (tournamentType.isRandom()){
|
this.isRandom = tournamentType.isRandom();
|
||||||
|
this.isRichMan = tournamentType.isRichMan();
|
||||||
|
if (this.isRandom || this.isRichMan){
|
||||||
createRandomPacks();
|
createRandomPacks();
|
||||||
}else{
|
}else{
|
||||||
createPacks(tournamentType.getNumBoosters());
|
createPacks(tournamentType.getNumBoosters());
|
||||||
|
@ -719,7 +727,7 @@ public class NewTournamentDialog extends MageDialog {
|
||||||
this.lblPacks.setVisible(false);
|
this.lblPacks.setVisible(false);
|
||||||
this.pnlPacks.setVisible(false);
|
this.pnlPacks.setVisible(false);
|
||||||
this.pnlRandomPacks.setVisible(false);
|
this.pnlRandomPacks.setVisible(false);
|
||||||
} else if (tournamentType.isRandom()){
|
} else if (tournamentType.isRandom() || tournamentType.isRichMan()){
|
||||||
this.lblDraftCube.setVisible(false);
|
this.lblDraftCube.setVisible(false);
|
||||||
this.cbDraftCube.setVisible(false);
|
this.cbDraftCube.setVisible(false);
|
||||||
this.lblPacks.setVisible(true);
|
this.lblPacks.setVisible(true);
|
||||||
|
@ -745,7 +753,7 @@ public class NewTournamentDialog extends MageDialog {
|
||||||
private void createRandomPacks() {
|
private void createRandomPacks() {
|
||||||
if (pnlRandomPacks.getComponentCount() == 0) {
|
if (pnlRandomPacks.getComponentCount() == 0) {
|
||||||
if (randomPackSelector == null) {
|
if (randomPackSelector == null) {
|
||||||
randomPackSelector = new RandomPacksSelectorDialog();
|
randomPackSelector = new RandomPacksSelectorDialog(isRandom, isRichMan);
|
||||||
randomPackSelector.setLocationRelativeTo(this);
|
randomPackSelector.setLocationRelativeTo(this);
|
||||||
}
|
}
|
||||||
txtRandomPacks = new JTextArea();
|
txtRandomPacks = new JTextArea();
|
||||||
|
@ -787,6 +795,7 @@ public class NewTournamentDialog extends MageDialog {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showRandomPackSelectorDialog() {
|
private void showRandomPackSelectorDialog() {
|
||||||
|
randomPackSelector.setType(isRandom, isRichMan);
|
||||||
randomPackSelector.showDialog();
|
randomPackSelector.showDialog();
|
||||||
StringBuilder packList = new StringBuilder();
|
StringBuilder packList = new StringBuilder();
|
||||||
for (String str : randomPackSelector.getSelectedPacks()) {
|
for (String str : randomPackSelector.getSelectedPacks()) {
|
||||||
|
@ -945,7 +954,7 @@ public class NewTournamentDialog extends MageDialog {
|
||||||
if (tournamentType.isDraft()) {
|
if (tournamentType.isDraft()) {
|
||||||
numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_DRAFT, "4"));
|
numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_DRAFT, "4"));
|
||||||
setTournamentOptions(numPlayers);
|
setTournamentOptions(numPlayers);
|
||||||
if (!tournamentType.isRandom()){
|
if (!(tournamentType.isRandom() || tournamentType.isRichMan())){
|
||||||
loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_DRAFT, ""));
|
loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_DRAFT, ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,15 +22,30 @@ public class RandomPacksSelectorDialog extends javax.swing.JDialog {
|
||||||
* Creates new form RandomPacksSelectorDialog
|
* Creates new form RandomPacksSelectorDialog
|
||||||
*/
|
*/
|
||||||
private boolean boxesCreated;
|
private boolean boxesCreated;
|
||||||
|
private boolean isRandomDraft;
|
||||||
|
private boolean isRichManDraft;
|
||||||
|
private String title = "";
|
||||||
public final static String randomDraftDescription = ("The selected packs will be randomly distributed to players. Each player may open different packs. Duplicates will be avoided.");
|
public final static String randomDraftDescription = ("The selected packs will be randomly distributed to players. Each player may open different packs. Duplicates will be avoided.");
|
||||||
|
|
||||||
public RandomPacksSelectorDialog() {
|
public RandomPacksSelectorDialog(boolean isRandomDraft, boolean isRichManDraft) {
|
||||||
initComponents();
|
initComponents();
|
||||||
|
setType(isRandomDraft, isRichManDraft);
|
||||||
this.pnlApply.setToolTipText(randomDraftDescription);
|
this.pnlApply.setToolTipText(randomDraftDescription);
|
||||||
this.pnlSelect.setToolTipText(randomDraftDescription);
|
this.pnlSelect.setToolTipText(randomDraftDescription);
|
||||||
boxesCreated = false;
|
boxesCreated = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setType(boolean isRandomDraft, boolean isRichManDraft) {
|
||||||
|
this.isRandomDraft = isRandomDraft;
|
||||||
|
this.isRichManDraft = isRichManDraft;
|
||||||
|
if (this.isRandomDraft) {
|
||||||
|
title = "Random Booster Draft Packs Selector";
|
||||||
|
} else if (this.isRichManDraft) {
|
||||||
|
title = "Rich Man Booster Draft Packs Selector";
|
||||||
|
}
|
||||||
|
setTitle(title);
|
||||||
|
}
|
||||||
|
|
||||||
public void showDialog() {
|
public void showDialog() {
|
||||||
createCheckboxes();
|
createCheckboxes();
|
||||||
pnlPacks.setVisible(true);
|
pnlPacks.setVisible(true);
|
||||||
|
@ -103,7 +118,7 @@ public class RandomPacksSelectorDialog extends javax.swing.JDialog {
|
||||||
btnApply = new javax.swing.JButton();
|
btnApply = new javax.swing.JButton();
|
||||||
|
|
||||||
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
|
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
|
||||||
setTitle("Random Booster Draft Packs Selector");
|
setTitle(title);
|
||||||
setModal(true);
|
setModal(true);
|
||||||
setModalExclusionType(java.awt.Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
|
setModalExclusionType(java.awt.Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
|
||||||
setPreferredSize(new java.awt.Dimension(600, 450));
|
setPreferredSize(new java.awt.Dimension(600, 450));
|
||||||
|
@ -138,7 +153,11 @@ public class RandomPacksSelectorDialog extends javax.swing.JDialog {
|
||||||
pnlApply.setLayout(new javax.swing.BoxLayout(pnlApply, javax.swing.BoxLayout.LINE_AXIS));
|
pnlApply.setLayout(new javax.swing.BoxLayout(pnlApply, javax.swing.BoxLayout.LINE_AXIS));
|
||||||
|
|
||||||
btnApply.setText("Apply");
|
btnApply.setText("Apply");
|
||||||
btnApply.setToolTipText("At least two packs must be selected");
|
if (isRandomDraft) {
|
||||||
|
btnApply.setToolTipText("At least 2 packs must be selected");
|
||||||
|
} else if (isRichManDraft) {
|
||||||
|
btnApply.setToolTipText("At least 1 pack must be selected");
|
||||||
|
}
|
||||||
btnApply.addActionListener(new java.awt.event.ActionListener() {
|
btnApply.addActionListener(new java.awt.event.ActionListener() {
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
btnApplyActionPerformed(evt);
|
btnApplyActionPerformed(evt);
|
||||||
|
@ -189,8 +208,10 @@ public class RandomPacksSelectorDialog extends javax.swing.JDialog {
|
||||||
}//GEN-LAST:event_formWindowClosing
|
}//GEN-LAST:event_formWindowClosing
|
||||||
|
|
||||||
public void doApply() {
|
public void doApply() {
|
||||||
if (getSelectedPacks().size() < 2) {
|
if (getSelectedPacks().size() < 2 && isRandomDraft) {
|
||||||
JOptionPane.showMessageDialog(this, "At least 2 sets must be selected", "Error", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(this, "At least 2 sets must be selected", "Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
} else if (getSelectedPacks().size() < 1 && isRichManDraft) {
|
||||||
|
JOptionPane.showMessageDialog(this, "At least 1 set must be selected", "Error", JOptionPane.ERROR_MESSAGE);
|
||||||
} else {
|
} else {
|
||||||
this.setVisible(false);
|
this.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
* authors and should not be interpreted as representing official policies, either expressed
|
* authors and should not be interpreted as representing official policies, either expressed
|
||||||
* or implied, of BetaSteward_at_googlemail.com.
|
* or implied, of BetaSteward_at_googlemail.com.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package mage.view;
|
package mage.view;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@ -36,6 +35,7 @@ import mage.game.tournament.TournamentType;
|
||||||
* @author BetaSteward_at_googlemail.com
|
* @author BetaSteward_at_googlemail.com
|
||||||
*/
|
*/
|
||||||
public class TournamentTypeView implements Serializable {
|
public class TournamentTypeView implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 2L;
|
private static final long serialVersionUID = 2L;
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
|
@ -47,7 +47,7 @@ public class TournamentTypeView implements Serializable {
|
||||||
private final boolean cubeBooster;
|
private final boolean cubeBooster;
|
||||||
private final boolean elimination;
|
private final boolean elimination;
|
||||||
private final boolean random;
|
private final boolean random;
|
||||||
|
private final boolean richMan;
|
||||||
|
|
||||||
public TournamentTypeView(TournamentType tournamentType) {
|
public TournamentTypeView(TournamentType tournamentType) {
|
||||||
this.name = tournamentType.getName();
|
this.name = tournamentType.getName();
|
||||||
|
@ -59,6 +59,7 @@ public class TournamentTypeView implements Serializable {
|
||||||
this.cubeBooster = tournamentType.isCubeBooster();
|
this.cubeBooster = tournamentType.isCubeBooster();
|
||||||
this.elimination = tournamentType.isElimination();
|
this.elimination = tournamentType.isElimination();
|
||||||
this.random = tournamentType.isRandom();
|
this.random = tournamentType.isRandom();
|
||||||
|
this.richMan = tournamentType.isRichMan();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -101,4 +102,8 @@ public class TournamentTypeView implements Serializable {
|
||||||
public boolean isRandom() {
|
public boolean isRandom() {
|
||||||
return random;
|
return random;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isRichMan() {
|
||||||
|
return richMan;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,8 @@ public class RichManDraftEliminationTournamentType extends TournamentType {
|
||||||
this.limited = true;
|
this.limited = true;
|
||||||
this.cubeBooster = false;
|
this.cubeBooster = false;
|
||||||
this.elimination = true;
|
this.elimination = true;
|
||||||
this.isRandom = true;
|
this.isRandom = false;
|
||||||
|
this.isRichMan = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
* authors and should not be interpreted as representing official policies, either expressed
|
* authors and should not be interpreted as representing official policies, either expressed
|
||||||
* or implied, of BetaSteward_at_googlemail.com.
|
* or implied, of BetaSteward_at_googlemail.com.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package mage.game.tournament;
|
package mage.game.tournament;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@ -45,8 +44,10 @@ public class TournamentType implements Serializable {
|
||||||
protected boolean limited; // or construced
|
protected boolean limited; // or construced
|
||||||
protected boolean elimination; // or Swiss
|
protected boolean elimination; // or Swiss
|
||||||
protected boolean isRandom;
|
protected boolean isRandom;
|
||||||
|
protected boolean isRichMan = false; // or Rich Man Draft
|
||||||
|
|
||||||
protected TournamentType() {}
|
protected TournamentType() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
@ -89,4 +90,8 @@ public class TournamentType implements Serializable {
|
||||||
return this.isRandom;
|
return this.isRandom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isRichMan() {
|
||||||
|
return this.isRichMan;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue