Checkstyle changes

Moved deck generation code away from OldGuiNewGame
This commit is contained in:
Maxmtg
2011-09-09 12:34:12 +00:00
parent 5fd79df20b
commit e6a1fb2930
8 changed files with 397 additions and 376 deletions

1
.gitattributes vendored
View File

@@ -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

View File

@@ -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];
}

View 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;
}
}

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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]));

View File

@@ -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) {

View File

@@ -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