diff --git a/.gitattributes b/.gitattributes index 993eb213420..e5568474465 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/src/main/java/forge/Constant.java b/src/main/java/forge/Constant.java index 050441d36a2..a7cf7c710e0 100644 --- a/src/main/java/forge/Constant.java +++ b/src/main/java/forge/Constant.java @@ -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]; } diff --git a/src/main/java/forge/deck/DeckGeneration.java b/src/main/java/forge/deck/DeckGeneration.java new file mode 100644 index 00000000000..de6003a448d --- /dev/null +++ b/src/main/java/forge/deck/DeckGeneration.java @@ -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 { + /** + *

+ * genDecks. + *

+ * + * @param playerType + * {@link java.lang.String} object. + */ + public static void genDecks(final PlayerType playerType) { + // TODO: jendave to refactor deck generation + Deck d = null; + + ArrayList decks = new ArrayList(); + 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; + } + } + + /** + *

+ * generateConstructedDeck. + *

+ * + * @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; + } + + /** + *

+ * generateConstructed3ColorDeck. + *

+ * + * @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; + } + + /** + *

+ * generateConstructed5ColorDeck. + *

+ * + * @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; + } + + /** + *

+ * generateConstructedThemeDeck. + *

+ * + * @return a {@link forge.deck.Deck} object. + */ + private static Deck generateConstructedThemeDeck() { + GenerateThemeDeck gen = new GenerateThemeDeck(); + ArrayList 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; + } + + /** + *

+ * generate2ColorDeck. + *

+ * + * @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 colors = new ArrayList(); + 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; + + } + + /** + *

+ * generate3ColorDeck. + *

+ * + * @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 colors = new ArrayList(); + 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; + + } + + /** + *

+ * generate5ColorDeck. + *

+ * + * @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 colors = new ArrayList(); + //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; + + } + +} diff --git a/src/main/java/forge/game/GameType.java b/src/main/java/forge/game/GameType.java index 413ba3f2528..a7dfb4d4566 100644 --- a/src/main/java/forge/game/GameType.java +++ b/src/main/java/forge/game/GameType.java @@ -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; } } diff --git a/src/main/java/forge/gui/deckeditor/DeckEditor.java b/src/main/java/forge/gui/deckeditor/DeckEditor.java index 0c794d5ede7..f7804feb6a2 100644 --- a/src/main/java/forge/gui/deckeditor/DeckEditor.java +++ b/src/main/java/forge/gui/deckeditor/DeckEditor.java @@ -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); diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java b/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java index 69b6bb13e0b..275f02d0405 100644 --- a/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java +++ b/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java @@ -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 outDraftData = new ArrayList(); - 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])); diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorMenu.java b/src/main/java/forge/gui/deckeditor/DeckEditorMenu.java index 17479d55a44..c61873ab843 100644 --- a/src/main/java/forge/gui/deckeditor/DeckEditorMenu.java +++ b/src/main/java/forge/gui/deckeditor/DeckEditorMenu.java @@ -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 serialVersionUID=-4037993759604768755L */ 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; } /** *

getUserInput_GetDeckName.

* * @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) { diff --git a/src/main/java/forge/view/swing/OldGuiNewGame.java b/src/main/java/forge/view/swing/OldGuiNewGame.java index d32c6db56a3..78673d8863d 100644 --- a/src/main/java/forge/view/swing/OldGuiNewGame.java +++ b/src/main/java/forge/view/swing/OldGuiNewGame.java @@ -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() - /** - *

- * genDecks. - *

- * - * @param playerType - * {@link java.lang.String} object. - */ - private void genDecks(final PlayerType playerType) { - // TODO: jendave to refactor deck generation - Deck d = null; - - ArrayList decks = new ArrayList(); - 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; - } - } - - /** - *

- * generateConstructedDeck. - *

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

- * generateConstructed3ColorDeck. - *

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

- * generateConstructed5ColorDeck. - *

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

- * generateConstructedThemeDeck. - *

- * - * @return a {@link forge.deck.Deck} object. - */ - private Deck generateConstructedThemeDeck() { - GenerateThemeDeck gen = new GenerateThemeDeck(); - ArrayList 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; - } - - /** - *

- * generate2ColorDeck. - *

- * - * @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 colors = new ArrayList(); - 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; - - } - - /** - *

- * generate3ColorDeck. - *

- * - * @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 colors = new ArrayList(); - 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; - - } - - /** - *

- * generate3ColorDeck. - *

- * - * @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 colors = new ArrayList(); - //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; - - } /** *

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