diff --git a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java index a2c647fc3a9..630f526c279 100644 --- a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java +++ b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java @@ -54,11 +54,19 @@ public enum CSubmenuDraft implements ICDoc { view.getLstDecks().setSelectCommand(cmdDeckSelect); - view.getBtnBuildDeck().setCommand(new Command() { @Override - public void run() { setupDraft(); } }); + view.getBtnBuildDeck().setCommand(new Command() { + @Override + public void run() { + setupDraft(); + } + }); view.getBtnStart().addActionListener(new ActionListener() { - @Override public void actionPerformed(final ActionEvent e) { startGame(GameType.Draft); } }); + @Override + public void actionPerformed(final ActionEvent e) { + startGame(GameType.Draft); + } + }); } /* (non-Javadoc) @@ -143,12 +151,11 @@ public enum CSubmenuDraft implements ICDoc { /** */ private void setupDraft() { // Determine what kind of booster draft to run - final String prompt = "Choose Draft Format:"; - final LimitedPoolType o = GuiChoose.oneOrNone(prompt, LimitedPoolType.values()); - if (o == null) return; + final LimitedPoolType poolType = GuiChoose.oneOrNone("Choose Draft Format", LimitedPoolType.values()); + if (poolType == null) { return; } final CEditorDraftingProcess draft = new CEditorDraftingProcess(); - draft.showGui(new BoosterDraft(o)); + draft.showGui(new BoosterDraft(poolType)); Singletons.getControl().setCurrentScreen(FScreen.DRAFTING_PROCESS); CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(draft); diff --git a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java index 2250a5ff202..911eddc5da4 100644 --- a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java +++ b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java @@ -1,7 +1,7 @@ package forge.gui.home.sanctioned; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -63,29 +63,28 @@ public enum CSubmenuSealed implements ICDoc { */ @Override public void initialize() { - VSubmenuSealed.SINGLETON_INSTANCE.getLstDecks().setSelectCommand(cmdDeckSelect); + final VSubmenuSealed view = VSubmenuSealed.SINGLETON_INSTANCE; - VSubmenuSealed.SINGLETON_INSTANCE.getBtnBuildDeck().addMouseListener( - new MouseAdapter() { @Override - public void mousePressed(final MouseEvent e) { setupSealed(); } }); + view.getLstDecks().setSelectCommand(cmdDeckSelect); - VSubmenuSealed.SINGLETON_INSTANCE.getBtnStart().addMouseListener( - new MouseAdapter() { - @Override - public void mouseReleased(final MouseEvent e) { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - startGame(GameType.Sealed); - } - }); - } - }); - - VSubmenuSealed.SINGLETON_INSTANCE.getBtnDirections().addMouseListener(new MouseAdapter() { + view.getBtnBuildDeck().setCommand(new Command() { @Override - public void mouseClicked(final MouseEvent e) { - VSubmenuSealed.SINGLETON_INSTANCE.showDirections(); + public void run() { + setupSealed(); + } + }); + + view.getBtnStart().addActionListener(new ActionListener() { + @Override + public void actionPerformed(final ActionEvent e) { + startGame(GameType.Sealed); + } + }); + + view.getBtnDirections().setCommand(new Command() { + @Override + public void run() { + view.showDirections(); } }); } @@ -142,12 +141,12 @@ public enum CSubmenuSealed implements ICDoc { @SuppressWarnings("unchecked") private void setupSealed() { - final String prompt = "Choose Sealed Deck Format:"; - final LimitedPoolType o = GuiChoose.oneOrNone(prompt, LimitedPoolType.values()); - if (o == null) return; + final String prompt = "Choose Sealed Deck Format"; + final LimitedPoolType poolType = GuiChoose.oneOrNone(prompt, LimitedPoolType.values()); + if (poolType == null) { return; } - SealedCardPoolGenerator sd = new SealedCardPoolGenerator(o); - if (sd.isEmpty()) return; + SealedCardPoolGenerator sd = new SealedCardPoolGenerator(poolType); + if (sd.isEmpty()) { return; } final ItemPool humanPool = sd.getCardpool(true); diff --git a/forge-gui/src/main/java/forge/gui/home/sanctioned/VSubmenuSealed.java b/forge-gui/src/main/java/forge/gui/home/sanctioned/VSubmenuSealed.java index da164feb6c0..a0d9a5d48eb 100644 --- a/forge-gui/src/main/java/forge/gui/home/sanctioned/VSubmenuSealed.java +++ b/forge-gui/src/main/java/forge/gui/home/sanctioned/VSubmenuSealed.java @@ -6,7 +6,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; -import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextPane; import javax.swing.SwingConstants; @@ -52,7 +51,7 @@ public enum VSubmenuSealed implements IVSubmenu { private final StartButton btnStart = new StartButton(); private final DeckLister lstDecks = new DeckLister(GameType.Sealed); - private final JLabel lblInfo = new FLabel.Builder() + private final FLabel lblInfo = new FLabel.Builder() .fontAlign(SwingConstants.LEFT).fontSize(16).fontStyle(Font.BOLD) .text("Select a game, or build a new one").build(); @@ -70,7 +69,7 @@ public enum VSubmenuSealed implements IVSubmenu { private final FLabel btnBuildDeck = new FLabel.ButtonBuilder().text("Build New Sealed Deck").fontSize(16).build(); - private final JLabel btnDirections = new FLabel.Builder() + private final FLabel btnDirections = new FLabel.Builder() .fontSize(16).opaque(true).hoverable(true) .text("How To Play").fontAlign(SwingConstants.CENTER).build(); @@ -129,13 +128,13 @@ public enum VSubmenuSealed implements IVSubmenu { return EDocID.HOME_SEALED; } - /** @return {@link javax.swing.JLabel} */ - public JLabel getBtnDirections() { + /** @return {@link forge.gui.toolbox.FLabel} */ + public FLabel getBtnDirections() { return this.btnDirections; } - /** @return {@link javax.swing.JLabel} */ - public JLabel getBtnBuildDeck() { + /** @return {@link forge.gui.toolbox.FLabel} */ + public FLabel getBtnBuildDeck() { return this.btnBuildDeck; } diff --git a/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java b/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java index 6f270d28191..89cba8c0de0 100644 --- a/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java +++ b/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java @@ -51,8 +51,6 @@ import forge.util.TextUtil; public class SealedCardPoolGenerator { private final ArrayList product = new ArrayList(); - private static final Integer[] ints3to12 = {3,4,5,6,7,8,9,10,11,12}; - /** The Land set code. */ private String landSetCode = null; @@ -68,21 +66,22 @@ public class SealedCardPoolGenerator { switch(poolType) { case Full: // Choose number of boosters - - chooseNumberOfBoosters(new UnOpenedProduct(SealedProduct.Template.genericBooster)); + if (!chooseNumberOfBoosters(new UnOpenedProduct(SealedProduct.Template.genericBooster))) { + return; + } landSetCode = CardEdition.Predicates.getRandomSetWithAllBasicLands(Singletons.getMagicDb().getEditions()).getCode(); break; - - case Block: + + case Block: case FantasyBlock: List blocks = new ArrayList(); Iterable src = poolType == LimitedPoolType.Block ? Singletons.getModel().getBlocks() : Singletons.getModel().getFantasyBlocks(); for (CardBlock b : src) { blocks.add(b); } - + final CardBlock block = GuiChoose.oneOrNone("Choose Block", blocks); - if( null == block) return; + if (block == null) { return; } final int nPacks = block.getCntBoostersSealed(); final Stack sets = new Stack(); @@ -91,7 +90,7 @@ public class SealedCardPoolGenerator { sets.add(edition.getCode()); } - for(String ms : block.getMetaSetNames()) { + for (String ms : block.getMetaSetNames()) { sets.push(ms); } @@ -102,43 +101,44 @@ public class SealedCardPoolGenerator { } final String p = setCombos.size() > 1 ? GuiChoose.oneOrNone("Choose packs to play with", setCombos) : setCombos.get(0); - if( p == null ) - return; + if (p == null) { return; } for (String pz : TextUtil.split(p, ',')) { String[] pps = TextUtil.splitWithParenthesis(pz.trim(), ' '); String setCode = pps[pps.length - 1]; - int nBoosters = pps.length > 1 ? Integer.parseInt(pps[0]) : 1; - while(nBoosters-- > 0) + int nBoosters = pps.length > 1 ? Integer.parseInt(pps[0]) : 1; + while (nBoosters-- > 0) { this.product.add(block.getBooster(setCode)); + } } - } else { + } + else { IUnOpenedProduct prod = block.getBooster(sets.get(0)); for (int i = 0; i < nPacks; i++) { this.product.add(prod); } } - + landSetCode = block.getLandSet().getCode(); break; - + case Custom: String[] dList; final ArrayList customs = new ArrayList(); - + // get list of custom draft files final File dFolder = new File("res/sealed/"); if (!dFolder.exists()) { throw new RuntimeException("GenerateSealed : folder not found -- folder is " + dFolder.getAbsolutePath()); } - + if (!dFolder.isDirectory()) { throw new RuntimeException("GenerateSealed : not a folder -- " + dFolder.getAbsolutePath()); } - + dList = dFolder.list(); - + for (final String element : dList) { if (element.endsWith(".sealed")) { final List dfData = FileUtil.readFile("res/sealed/" + element); @@ -148,34 +148,36 @@ public class SealedCardPoolGenerator { } } } - + // present list to user if (customs.isEmpty()) { FOptionPane.showMessageDialog("No custom sealed files found."); + return; } - else { - final CustomLimited draft = GuiChoose.one("Choose Custom Sealed Pool", customs); - UnOpenedProduct toAdd = new UnOpenedProduct(draft.getSealedProductTemplate(), draft.getCardPool()); - toAdd.setLimitedPool(draft.isSingleton()); - chooseNumberOfBoosters(toAdd); - landSetCode = draft.getLandSetCode(); + final CustomLimited draft = GuiChoose.one("Choose Custom Sealed Pool", customs); + + UnOpenedProduct toAdd = new UnOpenedProduct(draft.getSealedProductTemplate(), draft.getCardPool()); + toAdd.setLimitedPool(draft.isSingleton()); + if (!chooseNumberOfBoosters(toAdd)) { + return; } + + landSetCode = draft.getLandSetCode(); break; } } + private boolean chooseNumberOfBoosters(final IUnOpenedProduct product1) { + Integer boosterCount = GuiChoose.getInteger("How many booster packs?", 3, 12); + if (boosterCount == null) { return false; } - private void chooseNumberOfBoosters(final IUnOpenedProduct product1) { - - Integer cntBoosters = GuiChoose.one("How many booster packs?", ints3to12); - - for (int i = 0; i < cntBoosters; i++) { + for (int i = 0; i < boosterCount; i++) { this.product.add(product1); } + return true; } - /** *

* getSetCombos. @@ -199,7 +201,7 @@ public class SealedCardPoolGenerator { setCombos.add(String.format("%s, %s, %s", sets[0], sets[2], sets[0])); setCombos.add(String.format("%s, %s, %s", sets[2], sets[2], sets[2])); setCombos.add(String.format("%s, %s, %s", sets[2], sets[1], sets[0])); - } + } } else if (nPacks == 4) { if (sets.length >= 2) { @@ -270,7 +272,6 @@ public class SealedCardPoolGenerator { setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[2], sets[2], sets[2], sets[2], sets[0], sets[0], sets[0], sets[0])); setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[1], sets[1], sets[1], sets[1], sets[0], sets[0], sets[0], sets[0])); setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[0], sets[0], sets[0], sets[0], sets[0], sets[0], sets[0], sets[0])); - } else if (nPacks == 9 && sets.length >= 9) { setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[8], sets[7], sets[6], sets[5], sets[4], sets[3], sets[2], sets[1], sets[0])); @@ -307,9 +308,10 @@ public class SealedCardPoolGenerator { setCombos.add(String.format("2 %s, 2 %s, 2 %s", sets[0], sets[1], sets[2])); } if (sets.length >= 4) { - if( sets[1].equals(sets[2]) && sets[1].equals(sets[0])) { + if ( sets[1].equals(sets[2]) && sets[1].equals(sets[0])) { setCombos.add(String.format("%s, 5 %s", sets[3], sets[0])); // for guild sealed - } else { + } + else { setCombos.add(String.format("%s, %s, %s, 3 %s", sets[3], sets[2], sets[1], sets[0])); setCombos.add(String.format("%s, %s, 2 %s, 2 %s", sets[3], sets[2], sets[1], sets[0])); } @@ -320,12 +322,10 @@ public class SealedCardPoolGenerator { if (sets.length >= 6) { setCombos.add(String.format("%s, %s, %s, %s, %s, %s", sets[5], sets[4], sets[3], sets[2], sets[1], sets[0])); } - } return setCombos; } - /** *

* getCardpool. @@ -339,15 +339,16 @@ public class SealedCardPoolGenerator { final CardPool pool = new CardPool(); for (IUnOpenedProduct prod : product) { - if( prod instanceof UnOpenedMeta ) + if (prod instanceof UnOpenedMeta) { pool.addAllFlat(((UnOpenedMeta) prod).open(isHuman)); - else + } + else { pool.addAllFlat(prod.get()); + } } return pool; } - /** * Gets the land set code. * @@ -356,9 +357,8 @@ public class SealedCardPoolGenerator { public String getLandSetCode() { return this.landSetCode; } - - public boolean isEmpty() { + + public boolean isEmpty() { return product.isEmpty(); } - }