mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Checkstyle changes
Moved deck generation code away from OldGuiNewGame
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -9768,6 +9768,7 @@ src/main/java/forge/card/trigger/Trigger_Unequip.java svneol=native#text/plain
|
||||
src/main/java/forge/card/trigger/Trigger_Untaps.java svneol=native#text/plain
|
||||
src/main/java/forge/card/trigger/package-info.java svneol=native#text/plain
|
||||
src/main/java/forge/deck/Deck.java svneol=native#text/plain
|
||||
src/main/java/forge/deck/DeckGeneration.java -text
|
||||
src/main/java/forge/deck/DeckManager.java svneol=native#text/plain
|
||||
src/main/java/forge/deck/DownloadDeck.java svneol=native#text/plain
|
||||
src/main/java/forge/deck/generate/Generate2ColorDeck.java svneol=native#text/plain
|
||||
|
||||
@@ -132,22 +132,22 @@ public interface Constant {
|
||||
}
|
||||
|
||||
public interface CardTypes {
|
||||
boolean[] loaded = {false};
|
||||
Constant_StringArrayList[] cardTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] superTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] basicTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] landTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] creatureTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] instantTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] sorceryTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] enchantmentTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] artifactTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] walkerTypes = new Constant_StringArrayList[1];
|
||||
boolean[] loaded = {false};
|
||||
Constant_StringArrayList[] cardTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] superTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] basicTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] landTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] creatureTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] instantTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] sorceryTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] enchantmentTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] artifactTypes = new Constant_StringArrayList[1];
|
||||
Constant_StringArrayList[] walkerTypes = new Constant_StringArrayList[1];
|
||||
}
|
||||
|
||||
public interface Keywords {
|
||||
boolean[] loaded = {false};
|
||||
Constant_StringArrayList[] NonStackingList = new Constant_StringArrayList[1];
|
||||
boolean[] loaded = {false};
|
||||
Constant_StringArrayList[] NonStackingList = new Constant_StringArrayList[1];
|
||||
}
|
||||
|
||||
|
||||
|
||||
314
src/main/java/forge/deck/DeckGeneration.java
Normal file
314
src/main/java/forge/deck/DeckGeneration.java
Normal file
@@ -0,0 +1,314 @@
|
||||
package forge.deck;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
import forge.CardList;
|
||||
import forge.Constant;
|
||||
import forge.MyRandom;
|
||||
import forge.PlayerType;
|
||||
import forge.deck.generate.Generate2ColorDeck;
|
||||
import forge.deck.generate.Generate3ColorDeck;
|
||||
import forge.deck.generate.Generate5ColorDeck;
|
||||
import forge.deck.generate.GenerateConstructedDeck;
|
||||
import forge.deck.generate.GenerateConstructedMultiColorDeck;
|
||||
import forge.deck.generate.GenerateThemeDeck;
|
||||
import forge.game.GameType;
|
||||
import forge.gui.GuiUtils;
|
||||
|
||||
/**
|
||||
* Utility class to hold add deck generation routines, methods moved from OldGuiNewGame
|
||||
*
|
||||
*/
|
||||
public abstract class DeckGeneration {
|
||||
/**
|
||||
* <p>
|
||||
* genDecks.
|
||||
* </p>
|
||||
*
|
||||
* @param playerType
|
||||
* {@link java.lang.String} object.
|
||||
*/
|
||||
public static void genDecks(final PlayerType playerType) {
|
||||
// TODO: jendave to refactor deck generation
|
||||
Deck d = null;
|
||||
|
||||
ArrayList<String> decks = new ArrayList<String>();
|
||||
decks.add("2-Color Deck");
|
||||
decks.add("3-Color Deck");
|
||||
decks.add("5-Color Deck");
|
||||
decks.add("2-Color Deck (original)");
|
||||
decks.add("3-Color Deck (original)");
|
||||
decks.add("5-Color Deck (original)");
|
||||
decks.add("Semi-Random Theme Deck");
|
||||
|
||||
String playerName = playerType.equals(PlayerType.HUMAN) ? "Human" : "Computer";
|
||||
String prompt = String.format("Generate %s Deck", playerName);
|
||||
|
||||
|
||||
Object o = GuiUtils.getChoice(prompt, decks.toArray());
|
||||
|
||||
if (o.toString().equals(decks.get(0))) {
|
||||
d = generate2ColorDeck(playerType);
|
||||
} else if (o.toString().equals(decks.get(1))) {
|
||||
d = generate3ColorDeck(playerType);
|
||||
} else if (o.toString().equals(decks.get(2))) {
|
||||
d = generate5ColorDeck(playerType);
|
||||
} else if (o.toString().equals(decks.get(3))) {
|
||||
d = generateConstructedDeck();
|
||||
} else if (o.toString().equals(decks.get(4))) {
|
||||
d = generateConstructed3ColorDeck();
|
||||
} else if (o.toString().equals(decks.get(5))) {
|
||||
d = generateConstructed5ColorDeck();
|
||||
} else if (o.toString().equals(decks.get(6))) {
|
||||
d = generateConstructedThemeDeck();
|
||||
}
|
||||
|
||||
if (playerType.equals(PlayerType.HUMAN)) {
|
||||
Constant.Runtime.HumanDeck[0] = d;
|
||||
} else if (playerType.equals(PlayerType.COMPUTER)) {
|
||||
Constant.Runtime.ComputerDeck[0] = d;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generateConstructedDeck.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private static Deck generateConstructedDeck() {
|
||||
GenerateConstructedDeck gen = new GenerateConstructedDeck();
|
||||
CardList name = gen.generateDeck();
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < 60; i++) {
|
||||
deck.addMain(name.get(i).getName());
|
||||
}
|
||||
return deck;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generateConstructed3ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private static Deck generateConstructed3ColorDeck() {
|
||||
GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck();
|
||||
CardList name = gen.generate3ColorDeck();
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < 60; i++) {
|
||||
deck.addMain(name.get(i).getName());
|
||||
}
|
||||
return deck;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generateConstructed5ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private static Deck generateConstructed5ColorDeck() {
|
||||
GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck();
|
||||
CardList name = gen.generate5ColorDeck();
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < 60; i++) {
|
||||
deck.addMain(name.get(i).getName());
|
||||
}
|
||||
return deck;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generateConstructedThemeDeck.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private static Deck generateConstructedThemeDeck() {
|
||||
GenerateThemeDeck gen = new GenerateThemeDeck();
|
||||
ArrayList<String> tNames = gen.getThemeNames();
|
||||
tNames.add(0, "Random");
|
||||
Object o = GuiUtils.getChoice("Select a theme.", tNames.toArray());
|
||||
|
||||
String stDeck;
|
||||
if (o.toString().equals("Random")) {
|
||||
Random r = MyRandom.random;
|
||||
stDeck = tNames.get(r.nextInt(tNames.size() - 1) + 1);
|
||||
} else {
|
||||
stDeck = o.toString();
|
||||
}
|
||||
|
||||
CardList td = gen.getThemeDeck(stDeck, 60);
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < td.size(); i++) {
|
||||
deck.addMain(td.get(i).getName());
|
||||
}
|
||||
|
||||
return deck;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generate2ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @param p
|
||||
* a {@link java.lang.String} object.
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private static Deck generate2ColorDeck(final PlayerType p) {
|
||||
Random r = MyRandom.random;
|
||||
|
||||
ArrayList<String> colors = new ArrayList<String>();
|
||||
colors.add("Random");
|
||||
colors.add("white");
|
||||
colors.add("blue");
|
||||
colors.add("black");
|
||||
colors.add("red");
|
||||
colors.add("green");
|
||||
|
||||
String c1;
|
||||
String c2;
|
||||
if (p.equals(PlayerType.HUMAN)) {
|
||||
c1 = GuiUtils.getChoice("Select first color.", colors.toArray()).toString();
|
||||
|
||||
if (c1.equals("Random")) {
|
||||
c1 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
|
||||
colors.remove(c1);
|
||||
|
||||
c2 = GuiUtils.getChoice("Select second color.", colors.toArray()).toString();
|
||||
|
||||
if (c2.equals("Random")) {
|
||||
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
} else {
|
||||
// if (p.equals("C"))
|
||||
c1 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
colors.remove(c1);
|
||||
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
Generate2ColorDeck gen = new Generate2ColorDeck(c1, c2);
|
||||
CardList d = gen.get2ColorDeck(60, p);
|
||||
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < d.size(); i++) {
|
||||
deck.addMain(d.get(i).getName());
|
||||
}
|
||||
|
||||
return deck;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generate3ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @param p
|
||||
* a {@link java.lang.String} object.
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private static Deck generate3ColorDeck(final PlayerType p) {
|
||||
Random r = MyRandom.random;
|
||||
|
||||
ArrayList<String> colors = new ArrayList<String>();
|
||||
colors.add("Random");
|
||||
colors.add("white");
|
||||
colors.add("blue");
|
||||
colors.add("black");
|
||||
colors.add("red");
|
||||
colors.add("green");
|
||||
|
||||
String c1;
|
||||
String c2;
|
||||
String c3;
|
||||
if (p.equals(PlayerType.HUMAN)) {
|
||||
c1 = GuiUtils.getChoice("Select first color.", colors.toArray()).toString();
|
||||
|
||||
if (c1.equals("Random")) {
|
||||
c1 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
|
||||
colors.remove(c1);
|
||||
|
||||
c2 = GuiUtils.getChoice("Select second color.", colors.toArray()).toString();
|
||||
|
||||
if (c2.equals("Random")) {
|
||||
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
|
||||
colors.remove(c2);
|
||||
|
||||
c3 = GuiUtils.getChoice("Select third color.", colors.toArray()).toString();
|
||||
if (c3.equals("Random")) {
|
||||
c3 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
|
||||
} else {
|
||||
// if (p.equals("C"))
|
||||
c1 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
colors.remove(c1);
|
||||
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
colors.remove(c2);
|
||||
c3 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
Generate3ColorDeck gen = new Generate3ColorDeck(c1, c2, c3);
|
||||
CardList d = gen.get3ColorDeck(60, p);
|
||||
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < d.size(); i++) {
|
||||
deck.addMain(d.get(i).getName());
|
||||
}
|
||||
|
||||
return deck;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generate5ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @param p
|
||||
* a {@link java.lang.String} object.
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private static Deck generate5ColorDeck(final PlayerType p) {
|
||||
//Random r = MyRandom.random;
|
||||
|
||||
//ArrayList<String> colors = new ArrayList<String>();
|
||||
//colors.add("Random");
|
||||
//colors.add("white");
|
||||
//colors.add("blue");
|
||||
//colors.add("black");
|
||||
//colors.add("red");
|
||||
//colors.add("green");
|
||||
|
||||
|
||||
Generate5ColorDeck gen = new Generate5ColorDeck("white", "blue", "black", "red", "green");
|
||||
CardList d = gen.get5ColorDeck(60, p);
|
||||
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < d.size(); i++) {
|
||||
deck.addMain(d.get(i).getName());
|
||||
}
|
||||
|
||||
return deck;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,8 +1,7 @@
|
||||
package forge.game;
|
||||
|
||||
/**
|
||||
* TODO: Write javadoc for this type.
|
||||
*
|
||||
* GameType is an enum to determine the type of current game. :)
|
||||
*/
|
||||
public enum GameType {
|
||||
Constructed(false),
|
||||
@@ -17,10 +16,10 @@ public enum GameType {
|
||||
bLimited = isLimited;
|
||||
}
|
||||
|
||||
public static GameType smartValueOf(String value){
|
||||
public static GameType smartValueOf(final String value) {
|
||||
String valToCompate = value.trim();
|
||||
for (GameType v : GameType.values()) {
|
||||
if ( v.name().compareToIgnoreCase(valToCompate) == 0 ) {
|
||||
if (v.name().compareToIgnoreCase(valToCompate) == 0) {
|
||||
return v;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,7 +222,7 @@ public final class DeckEditor extends DeckEditorBase {
|
||||
{
|
||||
boolean keepRecievedCards = gt.isLimited() || topParam != null;
|
||||
// if constructed, can add the all cards above
|
||||
CardPoolView top = keepRecievedCards ? topParam : new CardPool( CardDb.instance().getAllCards() );
|
||||
CardPoolView top = keepRecievedCards ? topParam : new CardPool(CardDb.instance().getAllCards());
|
||||
|
||||
super.setDeck(top, bottomParam, gt);
|
||||
|
||||
|
||||
@@ -19,6 +19,9 @@ import forge.view.swing.OldGuiNewGame;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import org.apache.axis.utils.ArrayUtil;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
|
||||
import net.slightlymagic.maxmtg.Predicate;
|
||||
|
||||
import java.awt.*;
|
||||
@@ -55,7 +58,7 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New
|
||||
|
||||
setup();
|
||||
showChoices(boosterDraft.nextChoice());
|
||||
bottom.setDeck((CardPoolView)null);
|
||||
bottom.setDeck((CardPoolView) null);
|
||||
|
||||
top.sort(1, true);
|
||||
bottom.sort(1, true);
|
||||
@@ -166,9 +169,9 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New
|
||||
*
|
||||
* @param e a {@link java.awt.event.ActionEvent} object.
|
||||
*/
|
||||
void jButton1_actionPerformed(ActionEvent e) {
|
||||
void jButton1_actionPerformed(final ActionEvent e) {
|
||||
CardPrinted card = top.getSelectedCard();
|
||||
if ( null == card ) { return; }
|
||||
if (null == card) { return; }
|
||||
|
||||
bottom.addCard(card);
|
||||
|
||||
@@ -181,8 +184,7 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New
|
||||
if (BoosterDraft.draftPicks.size() > 1) {
|
||||
ArrayList<String> outDraftData = new ArrayList<String>();
|
||||
|
||||
String keys[] = {""};
|
||||
keys = BoosterDraft.draftPicks.keySet().toArray(keys);
|
||||
String[] keys = BoosterDraft.draftPicks.keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY);
|
||||
|
||||
for (int i = 0; i < keys.length; i++) {
|
||||
outDraftData.add(keys[i] + "|" + BoosterDraft.draftPicks.get(keys[i]));
|
||||
|
||||
@@ -35,7 +35,7 @@ import javax.swing.SwingUtilities;
|
||||
* @author Forge
|
||||
* @version $Id$
|
||||
*/
|
||||
public class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
public final class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
|
||||
/** Constant <code>serialVersionUID=-4037993759604768755L</code> */
|
||||
private static final long serialVersionUID = -4037993759604768755L;
|
||||
@@ -44,7 +44,7 @@ public class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
private static File previousDirectory = null;
|
||||
|
||||
private DeckManager deckManager;
|
||||
|
||||
|
||||
private boolean isDeckSaved = true;
|
||||
|
||||
private String currentDeckName;
|
||||
@@ -130,8 +130,8 @@ public class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
} //setupSortMenu()
|
||||
|
||||
|
||||
public void newConstructed(boolean careAboutOldDeck) {
|
||||
if (careAboutOldDeck && !canLeaveCurrentDeck()) return;
|
||||
public void newConstructed(final boolean careAboutOldDeck) {
|
||||
if (careAboutOldDeck && !canLeaveCurrentDeck()) { return; }
|
||||
|
||||
setDeckData("", true);
|
||||
|
||||
@@ -139,7 +139,7 @@ public class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
}
|
||||
|
||||
private void newRandomConstructed() {
|
||||
if (!canLeaveCurrentDeck()) return;
|
||||
if (!canLeaveCurrentDeck()) { return; }
|
||||
|
||||
setDeckData("", false);
|
||||
|
||||
@@ -159,14 +159,14 @@ public class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
}
|
||||
|
||||
private void newGenerateConstructed() {
|
||||
if (!canLeaveCurrentDeck()) return;
|
||||
if (!canLeaveCurrentDeck()) { return; }
|
||||
|
||||
setDeckData("", false);
|
||||
|
||||
GenerateConstructedDeck gen = new GenerateConstructedDeck();
|
||||
|
||||
CardPool generated = new CardPool();
|
||||
for (Card c : gen.generateDeck()) { generated.add( CardDb.instance().getCard(c)); }
|
||||
for (Card c : gen.generateDeck()) { generated.add(CardDb.instance().getCard(c)); }
|
||||
deckDisplay.setDeck(null, generated, GameType.Constructed);
|
||||
}
|
||||
|
||||
@@ -296,7 +296,7 @@ public class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
}
|
||||
|
||||
private void saveAs() {
|
||||
String name = getUserInput_GetDeckName();
|
||||
String name = getDeckNameFromDialog();
|
||||
|
||||
if (name.equals("")) { return; }
|
||||
setDeckData(name, true);
|
||||
@@ -312,8 +312,7 @@ public class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
all[0] = deck;
|
||||
deckManager.addDraftDeck(all);
|
||||
DeckManager.writeDraftDecks(all);
|
||||
} else//constructed and sealed
|
||||
{
|
||||
} else {//constructed and sealed
|
||||
deckManager.addDeck(deck);
|
||||
DeckManager.writeDeck(deck, DeckManager.makeFileName(deck));
|
||||
}
|
||||
@@ -345,10 +344,10 @@ public class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
}
|
||||
|
||||
private boolean canLeaveCurrentDeck() {
|
||||
if (isSaved()) return true;
|
||||
if (isSaved()) { return true; }
|
||||
String message = String.format("Do you wish to save changes you made to your current deck '%s'?", currentDeckName);
|
||||
int choice = JOptionPane.showConfirmDialog((Component) deckDisplay, message,
|
||||
"You have unsaved changes in your deck", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
|
||||
"You have unsaved changes in your deck", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
|
||||
if (JOptionPane.CANCEL_OPTION == choice) { return false; }
|
||||
if (JOptionPane.NO_OPTION == choice) { return true; }
|
||||
|
||||
@@ -357,43 +356,42 @@ public class DeckEditorMenu extends JMenuBar implements NewConstants {
|
||||
DeckManager.writeDeck(deck, DeckManager.makeFileName(deck));
|
||||
return true;
|
||||
}
|
||||
|
||||
private Deck getDeck()
|
||||
{
|
||||
|
||||
private Deck getDeck() {
|
||||
Deck deck = deckDisplay.getDeck();
|
||||
deck.setName(currentDeckName);
|
||||
return deck;
|
||||
}
|
||||
|
||||
private void setDeckData(final String deckName, final boolean in_isDeckSaved) {
|
||||
private void setDeckData(final String deckName, final boolean inDeckSaved) {
|
||||
currentDeckName = deckName;
|
||||
isDeckSaved = in_isDeckSaved;
|
||||
isDeckSaved = inDeckSaved;
|
||||
|
||||
deckDisplay.setTitle("Deck Editor : " + currentDeckName);
|
||||
}
|
||||
|
||||
public final String getDeckName() { return currentDeckName; }
|
||||
public final boolean isSaved() { return isDeckSaved; }
|
||||
public String getDeckName() { return currentDeckName; }
|
||||
public boolean isSaved() { return isDeckSaved; }
|
||||
|
||||
/**
|
||||
* <p>getUserInput_GetDeckName.</p>
|
||||
*
|
||||
* @return a {@link java.lang.String} object.
|
||||
*/
|
||||
private String getUserInput_GetDeckName() {
|
||||
private String getDeckNameFromDialog() {
|
||||
Object o = JOptionPane.showInputDialog(null, "Save As", "Deck Name", JOptionPane.OK_CANCEL_OPTION);
|
||||
|
||||
if (o == null) { return ""; }
|
||||
|
||||
String deckName = DeckManager.cleanDeckName(o.toString());
|
||||
boolean isDraft = deckDisplay.getGameType() == GameType.Draft;
|
||||
boolean isDraft = deckDisplay.getGameType() == GameType.Draft;
|
||||
boolean isUniqueName = isDraft ? deckManager.isUniqueDraft(deckName) : deckManager.isUnique(deckName);
|
||||
boolean isGoodName = isUniqueName && StringUtils.isNotBlank(deckName);
|
||||
|
||||
if (isGoodName) { return deckName; }
|
||||
|
||||
JOptionPane.showMessageDialog(null, "Please pick another deck name, another deck currently has that name.");
|
||||
return getUserInput_GetDeckName();
|
||||
return getDeckNameFromDialog();
|
||||
}
|
||||
|
||||
private String getUserInput_OpenDeck(final GameType deckType) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.esotericsoftware.minlog.Log;
|
||||
import forge.*;
|
||||
import forge.card.CardPool;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckGeneration;
|
||||
import forge.deck.DeckManager;
|
||||
import forge.deck.generate.*;
|
||||
import forge.error.BugzReporter;
|
||||
@@ -723,7 +724,7 @@ public class OldGuiNewGame extends JFrame implements NewConstants, NewConstants.
|
||||
|
||||
if (humanGenerate) {
|
||||
if (constructed) {
|
||||
genDecks(PlayerType.HUMAN);
|
||||
DeckGeneration.genDecks(PlayerType.HUMAN);
|
||||
}
|
||||
// else if(sealed)
|
||||
// Constant.Runtime.HumanDeck[0] = generateSealedDeck();
|
||||
@@ -743,7 +744,7 @@ public class OldGuiNewGame extends JFrame implements NewConstants, NewConstants.
|
||||
|
||||
if (computerGenerate) {
|
||||
if (constructed) {
|
||||
genDecks(PlayerType.COMPUTER);
|
||||
DeckGeneration.genDecks(PlayerType.COMPUTER);
|
||||
} // Constant.Runtime.ComputerDeck[0] =
|
||||
// generateConstructedDeck();
|
||||
// else if(sealed)
|
||||
@@ -775,299 +776,6 @@ public class OldGuiNewGame extends JFrame implements NewConstants, NewConstants.
|
||||
dispose();
|
||||
} // startButton_actionPerformed()
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* genDecks.
|
||||
* </p>
|
||||
*
|
||||
* @param playerType
|
||||
* {@link java.lang.String} object.
|
||||
*/
|
||||
private void genDecks(final PlayerType playerType) {
|
||||
// TODO: jendave to refactor deck generation
|
||||
Deck d = null;
|
||||
|
||||
ArrayList<String> decks = new ArrayList<String>();
|
||||
decks.add("2-Color Deck");
|
||||
decks.add("3-Color Deck");
|
||||
decks.add("5-Color Deck");
|
||||
decks.add("2-Color Deck (original)");
|
||||
decks.add("3-Color Deck (original)");
|
||||
decks.add("5-Color Deck (original)");
|
||||
decks.add("Semi-Random Theme Deck");
|
||||
|
||||
String prompt = "Generate ";
|
||||
if (playerType.equals(PlayerType.HUMAN)) {
|
||||
prompt += "Human ";
|
||||
} else {
|
||||
prompt += "Computer ";
|
||||
}
|
||||
prompt += "Deck";
|
||||
|
||||
Object o = GuiUtils.getChoice(prompt, decks.toArray());
|
||||
|
||||
if (o.toString().equals(decks.get(0))) {
|
||||
d = generate2ColorDeck(playerType);
|
||||
} else if (o.toString().equals(decks.get(1))) {
|
||||
d = generate3ColorDeck(playerType);
|
||||
} else if (o.toString().equals(decks.get(2))) {
|
||||
d = generate5ColorDeck(playerType);
|
||||
} else if (o.toString().equals(decks.get(3))) {
|
||||
d = generateConstructedDeck();
|
||||
} else if (o.toString().equals(decks.get(4))) {
|
||||
d = generateConstructed3ColorDeck();
|
||||
} else if (o.toString().equals(decks.get(5))) {
|
||||
d = generateConstructed5ColorDeck();
|
||||
} else if (o.toString().equals(decks.get(6))) {
|
||||
d = generateConstructedThemeDeck();
|
||||
}
|
||||
|
||||
if (playerType.equals(PlayerType.HUMAN)) {
|
||||
Constant.Runtime.HumanDeck[0] = d;
|
||||
} else if (playerType.equals(PlayerType.COMPUTER)) {
|
||||
Constant.Runtime.ComputerDeck[0] = d;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generateConstructedDeck.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private Deck generateConstructedDeck() {
|
||||
GenerateConstructedDeck gen = new GenerateConstructedDeck();
|
||||
CardList name = gen.generateDeck();
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < 60; i++) {
|
||||
deck.addMain(name.get(i).getName());
|
||||
}
|
||||
return deck;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generateConstructed3ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private Deck generateConstructed3ColorDeck() {
|
||||
GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck();
|
||||
CardList name = gen.generate3ColorDeck();
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < 60; i++) {
|
||||
deck.addMain(name.get(i).getName());
|
||||
}
|
||||
return deck;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generateConstructed5ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private Deck generateConstructed5ColorDeck() {
|
||||
GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck();
|
||||
CardList name = gen.generate5ColorDeck();
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < 60; i++) {
|
||||
deck.addMain(name.get(i).getName());
|
||||
}
|
||||
return deck;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generateConstructedThemeDeck.
|
||||
* </p>
|
||||
*
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private Deck generateConstructedThemeDeck() {
|
||||
GenerateThemeDeck gen = new GenerateThemeDeck();
|
||||
ArrayList<String> tNames = gen.getThemeNames();
|
||||
tNames.add(0, "Random");
|
||||
Object o = GuiUtils.getChoice("Select a theme.", tNames.toArray());
|
||||
|
||||
String stDeck;
|
||||
if (o.toString().equals("Random")) {
|
||||
Random r = MyRandom.random;
|
||||
stDeck = tNames.get(r.nextInt(tNames.size() - 1) + 1);
|
||||
} else {
|
||||
stDeck = o.toString();
|
||||
}
|
||||
|
||||
CardList td = gen.getThemeDeck(stDeck, 60);
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < td.size(); i++) {
|
||||
deck.addMain(td.get(i).getName());
|
||||
}
|
||||
|
||||
return deck;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generate2ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @param p
|
||||
* a {@link java.lang.String} object.
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private Deck generate2ColorDeck(final PlayerType p) {
|
||||
Random r = MyRandom.random;
|
||||
|
||||
ArrayList<String> colors = new ArrayList<String>();
|
||||
colors.add("Random");
|
||||
colors.add("white");
|
||||
colors.add("blue");
|
||||
colors.add("black");
|
||||
colors.add("red");
|
||||
colors.add("green");
|
||||
|
||||
String c1;
|
||||
String c2;
|
||||
if (p.equals(PlayerType.HUMAN)) {
|
||||
c1 = GuiUtils.getChoice("Select first color.", colors.toArray()).toString();
|
||||
|
||||
if (c1.equals("Random")) {
|
||||
c1 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
|
||||
colors.remove(c1);
|
||||
|
||||
c2 = GuiUtils.getChoice("Select second color.", colors.toArray()).toString();
|
||||
|
||||
if (c2.equals("Random")) {
|
||||
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
} else {
|
||||
// if (p.equals("C"))
|
||||
c1 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
colors.remove(c1);
|
||||
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
Generate2ColorDeck gen = new Generate2ColorDeck(c1, c2);
|
||||
CardList d = gen.get2ColorDeck(60, p);
|
||||
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < d.size(); i++) {
|
||||
deck.addMain(d.get(i).getName());
|
||||
}
|
||||
|
||||
return deck;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generate3ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @param p
|
||||
* a {@link java.lang.String} object.
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private Deck generate3ColorDeck(final PlayerType p) {
|
||||
Random r = MyRandom.random;
|
||||
|
||||
ArrayList<String> colors = new ArrayList<String>();
|
||||
colors.add("Random");
|
||||
colors.add("white");
|
||||
colors.add("blue");
|
||||
colors.add("black");
|
||||
colors.add("red");
|
||||
colors.add("green");
|
||||
|
||||
String c1;
|
||||
String c2;
|
||||
String c3;
|
||||
if (p.equals(PlayerType.HUMAN)) {
|
||||
c1 = GuiUtils.getChoice("Select first color.", colors.toArray()).toString();
|
||||
|
||||
if (c1.equals("Random")) {
|
||||
c1 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
|
||||
colors.remove(c1);
|
||||
|
||||
c2 = GuiUtils.getChoice("Select second color.", colors.toArray()).toString();
|
||||
|
||||
if (c2.equals("Random")) {
|
||||
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
|
||||
colors.remove(c2);
|
||||
|
||||
c3 = GuiUtils.getChoice("Select third color.", colors.toArray()).toString();
|
||||
if (c3.equals("Random")) {
|
||||
c3 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
|
||||
} else {
|
||||
// if (p.equals("C"))
|
||||
c1 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
colors.remove(c1);
|
||||
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
colors.remove(c2);
|
||||
c3 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||
}
|
||||
Generate3ColorDeck gen = new Generate3ColorDeck(c1, c2, c3);
|
||||
CardList d = gen.get3ColorDeck(60, p);
|
||||
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < d.size(); i++) {
|
||||
deck.addMain(d.get(i).getName());
|
||||
}
|
||||
|
||||
return deck;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* generate3ColorDeck.
|
||||
* </p>
|
||||
*
|
||||
* @param p
|
||||
* a {@link java.lang.String} object.
|
||||
* @return a {@link forge.deck.Deck} object.
|
||||
*/
|
||||
private Deck generate5ColorDeck(final PlayerType p) {
|
||||
//Random r = MyRandom.random;
|
||||
|
||||
//ArrayList<String> colors = new ArrayList<String>();
|
||||
//colors.add("Random");
|
||||
//colors.add("white");
|
||||
//colors.add("blue");
|
||||
//colors.add("black");
|
||||
//colors.add("red");
|
||||
//colors.add("green");
|
||||
|
||||
|
||||
Generate5ColorDeck gen = new Generate5ColorDeck("white", "blue", "black", "red", "green");
|
||||
CardList d = gen.get5ColorDeck(60, p);
|
||||
|
||||
Deck deck = new Deck(GameType.Constructed);
|
||||
|
||||
for (int i = 0; i < d.size(); i++) {
|
||||
deck.addMain(d.get(i).getName());
|
||||
}
|
||||
|
||||
return deck;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -1105,46 +813,45 @@ public class OldGuiNewGame extends JFrame implements NewConstants, NewConstants.
|
||||
computerComboBox.removeAllItems();
|
||||
|
||||
allDecks = getDecks();
|
||||
switch(Constant.Runtime.gameType)
|
||||
{
|
||||
case Sealed:
|
||||
humanComboBox.addItem("New Sealed");
|
||||
computerComboBox.addItem("New Sealed");
|
||||
switch (Constant.Runtime.gameType) {
|
||||
case Sealed:
|
||||
humanComboBox.addItem("New Sealed");
|
||||
computerComboBox.addItem("New Sealed");
|
||||
|
||||
for (Deck allDeck : allDecks) {
|
||||
if (allDeck.getDeckType().equals(GameType.Sealed)) {
|
||||
JComboBox boxToAdd = allDeck.getPlayerType() == PlayerType.COMPUTER ? computerComboBox : humanComboBox;
|
||||
boxToAdd.addItem(allDeck.getName());
|
||||
for (Deck allDeck : allDecks) {
|
||||
if (allDeck.getDeckType().equals(GameType.Sealed)) {
|
||||
JComboBox boxToAdd = allDeck.getPlayerType() == PlayerType.COMPUTER ? computerComboBox : humanComboBox;
|
||||
boxToAdd.addItem(allDeck.getName());
|
||||
}
|
||||
} // for
|
||||
break;
|
||||
case Constructed:
|
||||
humanComboBox.addItem("Generate Deck");
|
||||
computerComboBox.addItem("Generate Deck");
|
||||
|
||||
humanComboBox.addItem("Random");
|
||||
computerComboBox.addItem("Random");
|
||||
|
||||
for (Deck allDeck : allDecks) {
|
||||
if (allDeck.getDeckType().equals(GameType.Constructed)) {
|
||||
humanComboBox.addItem(allDeck.getName());
|
||||
computerComboBox.addItem(allDeck.getName());
|
||||
}
|
||||
} // for
|
||||
break;
|
||||
case Draft:
|
||||
humanComboBox.addItem("New Draft");
|
||||
Object[] key = deckManager.getDraftDecks().keySet().toArray();
|
||||
Arrays.sort(key);
|
||||
|
||||
for (Object aKey : key) {
|
||||
humanComboBox.addItem(aKey);
|
||||
}
|
||||
} // for
|
||||
break;
|
||||
case Constructed:
|
||||
humanComboBox.addItem("Generate Deck");
|
||||
computerComboBox.addItem("Generate Deck");
|
||||
|
||||
humanComboBox.addItem("Random");
|
||||
computerComboBox.addItem("Random");
|
||||
|
||||
for (Deck allDeck : allDecks) {
|
||||
if (allDeck.getDeckType().equals(GameType.Constructed)) {
|
||||
humanComboBox.addItem(allDeck.getName());
|
||||
computerComboBox.addItem(allDeck.getName());
|
||||
for (int i = 0; i < 7; i++) {
|
||||
computerComboBox.addItem("" + (i + 1));
|
||||
}
|
||||
} // for
|
||||
break;
|
||||
case Draft:
|
||||
humanComboBox.addItem("New Draft");
|
||||
Object[] key = deckManager.getDraftDecks().keySet().toArray();
|
||||
Arrays.sort(key);
|
||||
|
||||
for (Object aKey : key) {
|
||||
humanComboBox.addItem(aKey);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
computerComboBox.addItem("" + (i + 1));
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
// not sure if the code below is useful or not
|
||||
// this will select the deck that you previously used
|
||||
|
||||
Reference in New Issue
Block a user