From 79e3081e986f45f18f283ce5e0ea58a05d06af92 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sun, 4 Sep 2011 15:48:59 +0000 Subject: [PATCH] SetInfoUtil cleaned out for unused code, init moved to static{} block, dependencies updated limited game code moved to a matching package deckeditor for drafting now lets pick a card by hitting space. --- .gitattributes | 17 +- src/main/java/forge/Card.java | 3 +- src/main/java/forge/CardUtil.java | 2 +- src/main/java/forge/GameAction.java | 103 ++--- .../forge/Gui_DownloadSetPictures_LQ.java | 2 +- .../Gui_MigrateLocalMWSSetPictures_HQ.java | 2 +- src/main/java/forge/SetInfoUtil.java | 353 ------------------ src/main/java/forge/SetUtils.java | 152 ++++++++ src/main/java/forge/card/CardBlock.java | 77 ++++ .../{ => game/limited}/BoosterDraft.java | 4 +- .../{ => game/limited}/BoosterDraftAI.java | 64 ++-- .../{ => game/limited}/BoosterDraft_1.java | 91 +++-- .../java/forge/{ => game/limited}/CCnt.java | 2 +- .../forge/{ => game/limited}/CustomDraft.java | 4 +- .../forge/{ => game/limited}/DeckColors.java | 4 +- .../forge/{ => game/limited}/SealedDeck.java | 67 ++-- .../java/forge/gui/deckeditor/DeckEditor.java | 8 +- .../forge/gui/deckeditor/DeckEditorDraft.java | 27 +- .../forge/gui/deckeditor/PresetColumns.java | 4 +- .../forge/gui/deckeditor/TableWithCards.java | 1 + .../java/forge/view/swing/OldGuiNewGame.java | 2 + 21 files changed, 421 insertions(+), 568 deletions(-) delete mode 100644 src/main/java/forge/SetInfoUtil.java create mode 100644 src/main/java/forge/SetUtils.java create mode 100644 src/main/java/forge/card/CardBlock.java rename src/main/java/forge/{ => game/limited}/BoosterDraft.java (94%) rename src/main/java/forge/{ => game/limited}/BoosterDraftAI.java (94%) rename src/main/java/forge/{ => game/limited}/BoosterDraft_1.java (78%) rename src/main/java/forge/{ => game/limited}/CCnt.java (94%) rename src/main/java/forge/{ => game/limited}/CustomDraft.java (91%) rename src/main/java/forge/{ => game/limited}/DeckColors.java (96%) rename src/main/java/forge/{ => game/limited}/SealedDeck.java (88%) diff --git a/.gitattributes b/.gitattributes index 7e235ddf0b4..7b86d82b218 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9521,12 +9521,8 @@ src/main/java/forge/AIPlayer.java svneol=native#text/plain src/main/java/forge/AllZone.java svneol=native#text/plain src/main/java/forge/AllZoneUtil.java svneol=native#text/plain src/main/java/forge/Base64Coder.java svneol=native#text/plain -src/main/java/forge/BoosterDraft.java svneol=native#text/plain -src/main/java/forge/BoosterDraftAI.java svneol=native#text/plain -src/main/java/forge/BoosterDraft_1.java svneol=native#text/plain src/main/java/forge/BoosterGenerator.java svneol=native#text/plain src/main/java/forge/ButtonUtil.java svneol=native#text/plain -src/main/java/forge/CCnt.java svneol=native#text/plain src/main/java/forge/Card.java svneol=native#text/plain src/main/java/forge/CardContainer.java svneol=native#text/plain src/main/java/forge/CardFilter.java svneol=native#text/plain @@ -9557,8 +9553,6 @@ src/main/java/forge/Constant_StringArrayList.java svneol=native#text/plain src/main/java/forge/Constant_StringHashMap.java svneol=native#text/plain src/main/java/forge/CopyFiles.java svneol=native#text/plain src/main/java/forge/Counters.java svneol=native#text/plain -src/main/java/forge/CustomDraft.java svneol=native#text/plain -src/main/java/forge/DeckColors.java svneol=native#text/plain src/main/java/forge/DefaultPlayerZone.java svneol=native#text/plain src/main/java/forge/Display.java svneol=native#text/plain src/main/java/forge/EndOfCombat.java svneol=native#text/plain @@ -9607,9 +9601,8 @@ src/main/java/forge/ReadBoosterPack.java svneol=native#text/plain src/main/java/forge/ReadDraftBoosterPack.java svneol=native#text/plain src/main/java/forge/ReadPriceList.java svneol=native#text/plain src/main/java/forge/ReadQuest_Assignment.java svneol=native#text/plain -src/main/java/forge/SealedDeck.java svneol=native#text/plain src/main/java/forge/SetInfo.java svneol=native#text/plain -src/main/java/forge/SetInfoUtil.java svneol=native#text/plain +src/main/java/forge/SetUtils.java svneol=native#text/plain src/main/java/forge/SimpleCombat.java svneol=native#text/plain src/main/java/forge/Singletons.java svneol=native#text/plain src/main/java/forge/StaticEffect.java svneol=native#text/plain @@ -9618,6 +9611,7 @@ src/main/java/forge/Time.java svneol=native#text/plain src/main/java/forge/UndoCommand.java svneol=native#text/plain src/main/java/forge/Upkeep.java svneol=native#text/plain src/main/java/forge/ZCTrigger.java svneol=native#text/plain +src/main/java/forge/card/CardBlock.java -text src/main/java/forge/card/CardColor.java -text src/main/java/forge/card/CardCoreType.java -text src/main/java/forge/card/CardDb.java -text @@ -9779,6 +9773,13 @@ src/main/java/forge/game/GameLossReason.java -text src/main/java/forge/game/GamePlayerRating.java -text src/main/java/forge/game/GameSummary.java svneol=native#text/plain src/main/java/forge/game/PlayerIndex.java -text +src/main/java/forge/game/limited/BoosterDraft.java svneol=native#text/plain +src/main/java/forge/game/limited/BoosterDraftAI.java svneol=native#text/plain +src/main/java/forge/game/limited/BoosterDraft_1.java svneol=native#text/plain +src/main/java/forge/game/limited/CCnt.java svneol=native#text/plain +src/main/java/forge/game/limited/CustomDraft.java svneol=native#text/plain +src/main/java/forge/game/limited/DeckColors.java svneol=native#text/plain +src/main/java/forge/game/limited/SealedDeck.java svneol=native#text/plain src/main/java/forge/game/package-info.java -text src/main/java/forge/gui/CardListViewer.java -text src/main/java/forge/gui/ForgeAction.java svneol=native#text/plain diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index 8030ec7ecec..5d194f7f544 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -13,6 +13,7 @@ import java.util.TreeMap; import com.esotericsoftware.minlog.Log; +import forge.card.CardDb; import forge.card.cardFactory.CardFactoryUtil; import forge.card.cost.Cost; import forge.card.mana.ManaCost; @@ -5790,7 +5791,7 @@ public class Card extends GameEntity implements Comparable { * @return a {@link java.lang.String} object. */ public String getMostRecentSet() { - return SetInfoUtil.getMostRecentSet(Sets); + return CardDb.instance().getCard(this.getName()).getSet(); } private String ImageFilename = ""; diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java index 6789a3f4e71..fc0cb15cd27 100644 --- a/src/main/java/forge/CardUtil.java +++ b/src/main/java/forge/CardUtil.java @@ -535,7 +535,7 @@ public final class CardUtil { if (f.exists()) { return mwsSet3; } //Second, try 2 letter set code with MWS filename format - String mwsSet2 = String.format("%s/%s%s.full", SetInfoUtil.getCode2ByCode(setName), mwsCardName, nn); + String mwsSet2 = String.format("%s/%s%s.full", SetUtils.getCode2ByCode(setName), mwsCardName, nn); f = new File(path, mwsSet2 + ".jpg"); if (f.exists()) { return mwsSet2; } diff --git a/src/main/java/forge/GameAction.java b/src/main/java/forge/GameAction.java index 718bcf5e479..e2678df3c8d 100644 --- a/src/main/java/forge/GameAction.java +++ b/src/main/java/forge/GameAction.java @@ -1053,41 +1053,30 @@ public class GameAction { CardFactoryInterface c = AllZone.getCardFactory(); Card.resetUniqueNumber(); + + boolean canRandomFoil = Constant.Runtime.RndCFoil[0] && Constant.Runtime.GameType[0].equals(Constant.GameType.Constructed); Random generator = MyRandom.random; - for (Entry cardPile : humanDeck.getMain()) { - for (int i = 0; i < cardPile.getValue(); i++) { - String cardName = cardPile.getKey().getName(); - String setCode = cardPile.getKey().getSet(); - - Card card = c.getCard(cardName, AllZone.getHumanPlayer()); - - if (!setCode.equals("")) - card.setCurSetCode(setCode); - else if ((card.getSets().size() > 0)) // && card.getCurSetCode().equals("")) - card.setRandomSetCode(); - - if (!card.getCurSetCode().equals("")) { - int n = SetInfoUtil.getSetInfoCode(card.getSets(), card.getCurSetCode()).PicCount; - if (n > 1) - card.setRandomPicture(generator.nextInt(n - 1) + 1); - - card.setImageFilename(CardUtil.buildFilename(card)); - } - + for (Entry stackOfCards : humanDeck.getMain()) { + CardPrinted cardPrinted = stackOfCards.getKey(); + for (int i = 0; i < stackOfCards.getValue(); i++) { + + Card card = c.getCard(cardPrinted.getName(), AllZone.getHumanPlayer()); + card.setCurSetCode(cardPrinted.getSet()); + + int cntVariants = cardPrinted.getCard().getSetInfo(cardPrinted.getSet()).getCopiesCount(); + if (cntVariants > 1) { card.setRandomPicture(generator.nextInt(cntVariants - 1) + 1); } + + card.setImageFilename(CardUtil.buildFilename(card)); + // Assign random foiling on approximately 1:20 cards - if (Constant.Runtime.RndCFoil[0] && Constant.Runtime.GameType[0].equals(Constant.GameType.Constructed)) { - if (MyRandom.percentTrue(5)) - card.setFoil(MyRandom.random.nextInt(9) + 1); + if (cardPrinted.isFoil() || (canRandomFoil && MyRandom.percentTrue(5))) { + int iFoil = MyRandom.random.nextInt(9) + 1; + card.setFoil(iFoil); } - // foiling for cards explicitly foiled in deck - if (cardPile.getKey().isFoil()) { card.setFoil(MyRandom.random.nextInt(9) + 1); } - - //System.out.println("human random number:" + card.getRandomPicture()); - //} - + AllZone.getHumanLibrary().add(card); - + for (Trigger trig : card.getTriggers()) { AllZone.getTriggerHandler().registerTrigger(trig); } @@ -1095,50 +1084,30 @@ public class GameAction { } ArrayList RAICards = new ArrayList(); - for (Entry cardPile : computerDeck.getMain()) { - for (int i = 0; i < cardPile.getValue(); i++) { + for (Entry stackOfCards : computerDeck.getMain()) { + CardPrinted cardPrinted = stackOfCards.getKey(); + for (int i = 0; i < stackOfCards.getValue(); i++) { + + Card card = c.getCard(cardPrinted.getName(), AllZone.getComputerPlayer()); + card.setCurSetCode(cardPrinted.getSet()); + + int cntVariants = cardPrinted.getCard().getSetInfo(cardPrinted.getSet()).getCopiesCount(); + if (cntVariants > 1) { card.setRandomPicture(generator.nextInt(cntVariants - 1) + 1); } + + card.setImageFilename(CardUtil.buildFilename(card)); - String cardName = cardPile.getKey().getName(); - String setCode = cardPile.getKey().getSet(); - - Card card = c.getCard(cardName, AllZone.getComputerPlayer()); - - //if(card.isBasicLand()) { - //String PC = card.getSVar("PicCount"); - //int n = 0; - //if (PC.matches("[0-9][0-9]?")) - // n = Integer.parseInt(PC); - //if (n > 1) - // card.setRandomPicture(generator.nextInt(n)); - //System.out.println("computer random number:" + card.getRandomPicture()); - //} - - if (!setCode.equals("")) - card.setCurSetCode(setCode); - else if ((card.getSets().size() > 0)) // && card.getCurSetCode().equals("")) - card.setRandomSetCode(); - - if (!card.getCurSetCode().equals("")) { - int n = SetInfoUtil.getSetInfoCode(card.getSets(), card.getCurSetCode()).PicCount; - if (n > 1) - card.setRandomPicture(generator.nextInt(n - 1) + 1); - - card.setImageFilename(CardUtil.buildFilename(card)); - } - // Assign random foiling on approximately 1:20 cards - if (Constant.Runtime.RndCFoil[0] && Constant.Runtime.GameType[0].equals(Constant.GameType.Constructed)) { - if (MyRandom.percentTrue(5)) - card.setFoil(MyRandom.random.nextInt(9) + 1); + if (cardPrinted.isFoil() || (canRandomFoil && MyRandom.percentTrue(5))) { + int iFoil = MyRandom.random.nextInt(9) + 1; + card.setFoil(iFoil); } - if (cardPile.getKey().isFoil()) { card.setFoil(MyRandom.random.nextInt(9) + 1); } - + AllZone.getComputerLibrary().add(card); - + for (Trigger trig : card.getTriggers()) { AllZone.getTriggerHandler().registerTrigger(trig); } - + if (card.getSVar("RemAIDeck").equals("True")) RAICards.add(card.getName()); //get card picture so that it is in the image cache diff --git a/src/main/java/forge/Gui_DownloadSetPictures_LQ.java b/src/main/java/forge/Gui_DownloadSetPictures_LQ.java index dfdfbcc94cb..71310b5ecbd 100644 --- a/src/main/java/forge/Gui_DownloadSetPictures_LQ.java +++ b/src/main/java/forge/Gui_DownloadSetPictures_LQ.java @@ -394,7 +394,7 @@ public class Gui_DownloadSetPictures_LQ extends DefaultBoundedRangeModel impleme for (int j = 0; j < cSetInfo.size(); j++) { c.setCurSetCode(cSetInfo.get(j).Code); String SC3 = c.getCurSetCode(); - String SC2 = SetInfoUtil.getCode2ByCode(c.getCurSetCode()); + String SC2 = SetUtils.getCode2ByCode(c.getCurSetCode()); int n = 0; if (cSetInfo.get(j).PicCount > 0) { diff --git a/src/main/java/forge/Gui_MigrateLocalMWSSetPictures_HQ.java b/src/main/java/forge/Gui_MigrateLocalMWSSetPictures_HQ.java index 5b7a8799b49..43e5608a966 100644 --- a/src/main/java/forge/Gui_MigrateLocalMWSSetPictures_HQ.java +++ b/src/main/java/forge/Gui_MigrateLocalMWSSetPictures_HQ.java @@ -402,7 +402,7 @@ public class Gui_MigrateLocalMWSSetPictures_HQ extends DefaultBoundedRangeModel for (int j = 0; j < cSetInfo.size(); j++) { c.setCurSetCode(cSetInfo.get(j).Code); String SC3 = c.getCurSetCode(); - String SC2 = SetInfoUtil.getCode2ByCode(c.getCurSetCode()); + String SC2 = SetUtils.getCode2ByCode(c.getCurSetCode()); int n = 0; if (cSetInfo.get(j).PicCount > 0) { diff --git a/src/main/java/forge/SetInfoUtil.java b/src/main/java/forge/SetInfoUtil.java deleted file mode 100644 index b7f28b5f41f..00000000000 --- a/src/main/java/forge/SetInfoUtil.java +++ /dev/null @@ -1,353 +0,0 @@ -package forge; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; - -import net.slightlymagic.maxmtg.Predicate; - -import forge.card.CardSet; - -/** - *

SetInfoUtil class.

- * - * @author Forge - * @version $Id$ - */ -public final class SetInfoUtil { - - private SetInfoUtil() { - throw new AssertionError(); - } - - /** Constant setData. */ - private static HashMap setsByCode = new HashMap(); - private static List allSets = new ArrayList(); - - /** - *

loadSetData.

- */ - private static void loadSetData() { - ArrayList fData = FileUtil.readFile("res/blockdata/setdata.txt"); - - for (String s : fData) { - if (s.length() < 6) { continue; } - - String[] sParts = s.trim().split("\\|"); - String code = null, code2 = null, name = null; - - int index = -1; - String alias = null; - for (String sPart : sParts) { - String[] kv = sPart.split(":", 2); - String key = kv[0].toLowerCase(); - if ("code3".equals(key)) { - code = kv[1]; - } else if ("code2".equals(key)) { - code2 = kv[1]; - } else if ("name".equals(key)) { - name = kv[1]; - } else if ("index".equals(key)) { - index = Integer.parseInt(kv[1]); - } else if ("alias".equals(key)) { - alias = kv[1]; - } - } - CardSet set = new CardSet(index, name, code, code2); - setsByCode.put(code, set); - if (alias != null) { setsByCode.put(alias, set); } - allSets.add(set); - } - Collections.sort(allSets); - } - - /** - * - * TODO Write javadoc for this method. - * @param code a String - * @return a CardSet - */ - public static CardSet getSetByCode(final String code) { - if (setsByCode.isEmpty()) { loadSetData(); } - return setsByCode.get(code); - } - - /** - * - * TODO Write javadoc for this method. - * @param code a String - * @return a CardSet - */ - public static CardSet getSetByCodeOrThrow(final String code) { - if (setsByCode.isEmpty()) { loadSetData(); } - CardSet set = setsByCode.get(code); - if (null == set) { throw new RuntimeException(String.format("Set with code '%s' not found", code)); } - return set; - } - - /** - * - * TODO Write javadoc for this method. - * @return a List - */ - public static List getCodeList() { - if (setsByCode.isEmpty()) { loadSetData(); } - return new ArrayList(setsByCode.keySet()); - } - - /** - *

getSetNameList.

- * - * @return a {@link java.util.ArrayList} object. - */ - public static List getNameList() { - if (setsByCode.isEmpty()) { loadSetData(); } - - return Predicate.getTrue(CardSet.class).select(allSets, CardSet.fn1, CardSet.fnGetName); - } - - /** - * - * TODO Write javadoc for this method. - * @param setName a String - * @return a String - */ - public static String getCode3ByName(final String setName) { - if (setsByCode.isEmpty()) { loadSetData(); } - - for (CardSet s : setsByCode.values()) { - if (s.getName().equals(setName)) { return s.getCode(); } - } - - return ""; - } - - /** - * - * TODO Write javadoc for this method. - * @param code a String - * @return a String - */ - public static String getCode2ByCode(final String code) { - if (setsByCode.isEmpty()) { loadSetData(); } - CardSet set = setsByCode.get(code); - return set == null ? "" : set.getCode2(); - } - - /** - *

getNameByCode.

- * - * @param code a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String getNameByCode(final String code) { - if (setsByCode.isEmpty()) { loadSetData(); } - CardSet set = setsByCode.get(code); - return set == null ? "" : set.getName(); - } - - /** - *

getMostRecentSet.

- * - * @param alSI a {@link java.util.ArrayList} object. - * @return a {@link java.lang.String} object. - */ - public static String getMostRecentSet(final ArrayList alSI) { - if (setsByCode.isEmpty()) { loadSetData(); } - - int size = alSI.size(); - if (size == 0) { return ""; } - if (size == 1) { return alSI.get(0).Code; } - - CardSet[] sets = new CardSet[size]; - for (int i = 0; i < size; i++) { sets[i] = setsByCode.get(alSI.get(i).Code); } - Arrays.sort(sets); - - return sets[sets.length - 1].getCode(); - } - - /** - *

getSetInfoCode.

- * - * @param setList a {@link java.util.ArrayList} object. - * @param setCode a {@link java.lang.String} object. - * @return a {@link forge.SetInfo} object. - */ - public static SetInfo getSetInfoCode(final ArrayList setList, final String setCode) { - SetInfo si; - - for (int i = 0; i < setList.size(); i++) { - si = setList.get(i); - if (si.Code.equals(setCode)) { return si; } - } - - return null; - } - - /** - *

getIndexByCode.

- * - * @param code a {@link java.lang.String} object. - * @return a int. - */ - public static int getIndexByCode(final String code) { - if (setsByCode.isEmpty()) { loadSetData(); } - CardSet set = setsByCode.get(code); - return set == null ? 0 : set.getIndex(); - } - - /** Constant blockData. */ - private static ArrayList> blockData = new ArrayList>(); - - /** - *

loadBlockData.

- */ - private static void loadBlockData() { - ArrayList fData = FileUtil.readFile("res/blockdata/blocks.txt"); - - if (fData.size() > 0) { - for (int i = 0; i < fData.size(); i++) { - String s = fData.get(i); - if (s.length() > 5) { - HashMap sm = new HashMap(); - - String[] ss = s.split("\\|"); - for (int j = 0; j < ss.length; j++) { - String[] kv = ss[j].split(":"); - sm.put(kv[0], kv[1]); - } - - blockData.add(sm); - } - } - - } - } - - /** - *

getBlockNameList.

- * - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getBlockNameList() { - ArrayList bnl = new ArrayList(); - - if (blockData.size() == 0) { - loadBlockData(); - } - - for (int i = 0; i < blockData.size(); i++) { - bnl.add(blockData.get(i).get("Name")); - } - - return bnl; - } - - /** - *

getSetsBlockName.

- * - * @param blockName a {@link java.lang.String} object. - * @return a {@link java.util.ArrayList} object. - */ - public static ArrayList getSetsBlockName(final String blockName) { - ArrayList sets = new ArrayList(); - - if (blockData.size() == 0) { - loadBlockData(); - } - - for (int i = 0; i < blockData.size(); i++) { - if (blockData.get(i).get("Name").equals(blockName)) { - if (blockData.get(i).containsKey("Set0")) { - sets.add(blockData.get(i).get("Set0")); - } - - if (blockData.get(i).containsKey("Set1")) { - sets.add(blockData.get(i).get("Set1")); - } - - if (blockData.get(i).containsKey("Set2")) { - sets.add(blockData.get(i).get("Set2")); - } - } - } - - return sets; - } - - /** - *

getDraftPackCount.

- * - * @param blockName a {@link java.lang.String} object. - * @return a int. - */ - public static int getDraftPackCount(final String blockName) { - if (blockData.size() == 0) { - loadBlockData(); - } - - for (int i = 0; i < blockData.size(); i++) { - if (blockData.get(i).get("Name").equals(blockName)) { - return Integer.parseInt(blockData.get(i).get("DraftPacks")); - } - } - - return 0; - } - - /** - *

getSealedPackCount.

- * - * @param blockName a {@link java.lang.String} object. - * @return a int. - */ - public static int getSealedPackCount(final String blockName) { - if (blockData.size() == 0) { - loadBlockData(); - } - - for (int i = 0; i < blockData.size(); i++) { - if (blockData.get(i).get("Name").equals(blockName)) { - return Integer.parseInt(blockData.get(i).get("SealedPacks")); - } - } - - return 0; - } - - /** - *

getLandCode.

- * - * @param blockName a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String getLandCode(final String blockName) { - if (blockData.size() == 0) { - loadBlockData(); - } - - for (int i = 0; i < blockData.size(); i++) { - if (blockData.get(i).get("Name").equals(blockName)) { - return blockData.get(i).get("LandSetCode"); - } - } - - return "M11"; // default, should never happen IRL - } - - /** - * - * TODO Write javadoc for this method. - * @param fmt a String - * @return an ArrayList - */ - public static ArrayList getLegalSets(final String fmt) { - ArrayList lglSets = new ArrayList(); - - lglSets = FileUtil.readFile("res/blockdata/" + fmt + ".txt"); - - return lglSets; - } -} diff --git a/src/main/java/forge/SetUtils.java b/src/main/java/forge/SetUtils.java new file mode 100644 index 00000000000..b40d7aa2b3d --- /dev/null +++ b/src/main/java/forge/SetUtils.java @@ -0,0 +1,152 @@ +package forge; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; + +import net.slightlymagic.maxmtg.Predicate; + +import forge.card.CardBlock; +import forge.card.CardSet; + +/** + *

SetInfoUtil class.

+ * + * @author Forge + * @version $Id$ + */ +public final class SetUtils { + + private SetUtils() { + throw new AssertionError(); + } + + /** Constant setData. */ + private static HashMap setsByCode = new HashMap(); + private static List allSets = new ArrayList(); + private static List allBlocks = new ArrayList(); + + // Perform that first of all + static { + loadSetData(); + loadBlockData(); + } + + public static CardSet getSetByCode(final String code) { + return setsByCode.get(code); + } + + public static CardSet getSetByCodeOrThrow(final String code) { + CardSet set = setsByCode.get(code); + if (null == set) { throw new RuntimeException(String.format("Set with code '%s' not found", code)); } + return set; + } + + // deckeditor again + public static List getNameList() { + return Predicate.getTrue(CardSet.class).select(allSets, CardSet.fn1, CardSet.fnGetName); + } + + // deckeditor needs this + public static String getCode3ByName(final String setName) { + for (CardSet s : setsByCode.values()) { + if (s.getName().equals(setName)) { return s.getCode(); } + } + + return ""; + } + + + // used by image generating code + public static String getCode2ByCode(final String code) { + CardSet set = setsByCode.get(code); + return set == null ? "" : set.getCode2(); + } + + public static List getBlocks() { + if (allBlocks.isEmpty()) { loadBlockData(); } + return Collections.unmodifiableList(allBlocks); + } + + + // parser code - quite boring. + private static void loadSetData() { + ArrayList fData = FileUtil.readFile("res/blockdata/setdata.txt"); + + for (String s : fData) { + if (StringUtils.isBlank(s)) { continue; } + + String[] sParts = s.trim().split("\\|"); + String code = null, code2 = null, name = null; + + int index = -1; + String alias = null; + for (String sPart : sParts) { + String[] kv = sPart.split(":", 2); + String key = kv[0].toLowerCase(); + if ("code3".equals(key)) { + code = kv[1]; + } else if ("code2".equals(key)) { + code2 = kv[1]; + } else if ("name".equals(key)) { + name = kv[1]; + } else if ("index".equals(key)) { + index = Integer.parseInt(kv[1]); + } else if ("alias".equals(key)) { + alias = kv[1]; + } + } + CardSet set = new CardSet(index, name, code, code2); + setsByCode.put(code, set); + if (alias != null) { setsByCode.put(alias, set); } + allSets.add(set); + } + Collections.sort(allSets); + } + + + private static void loadBlockData() { + ArrayList fData = FileUtil.readFile("res/blockdata/blocks.txt"); + + for (String s : fData) { + if (StringUtils.isBlank(s)) { continue; } + + String[] sParts = s.trim().split("\\|"); + + String name = null; + int index = -1; + List sets = new ArrayList(4); + CardSet landSet = null; + int draftBoosters = 3; + int sealedBoosters = 6; + + for (String sPart : sParts) { + String[] kv = sPart.split(":", 2); + String key = kv[0].toLowerCase(); + if ("name".equals(key)) { + name = kv[1]; + } else if ("index".equals(key)) { + index = Integer.parseInt(kv[1]); + } else if ("set0".equals(key) || "set1".equals(key) || "set2".equals(key)) { + sets.add(getSetByCodeOrThrow(kv[1])); + } else if ("landsetcode".equals(key)) { + landSet = getSetByCodeOrThrow(kv[1]); + } else if ("draftpacks".equals(key)) { + draftBoosters = Integer.parseInt(kv[1]); + } else if ("sealedpacks".equals(key)) { + sealedBoosters = Integer.parseInt(kv[1]); + } + + } + allBlocks.add(new CardBlock(index, name, sets , landSet, draftBoosters, sealedBoosters)); + } + Collections.reverse(allBlocks); + } + +} diff --git a/src/main/java/forge/card/CardBlock.java b/src/main/java/forge/card/CardBlock.java new file mode 100644 index 00000000000..d160d2101da --- /dev/null +++ b/src/main/java/forge/card/CardBlock.java @@ -0,0 +1,77 @@ +package forge.card; + +import java.util.List; + +/** + * This is a CardBlock class. + */ +public class CardBlock implements Comparable { + private static final CardSet[] EMPTY_SET_ARRAY = new CardSet[]{}; + + private final int orderNum; + private final String name; + private final CardSet[] sets; + private final CardSet landSet; + private final int cntBoostersDraft; + private final int cntBoostersSealed; + + public CardBlock(final int index, final String name, final List sets, + final CardSet landSet, final int cntBoostersDraft, final int cntBoostersSealed) { + this.orderNum = index; + this.name = name; + this.sets = sets.toArray(EMPTY_SET_ARRAY); + this.landSet = landSet; + this.cntBoostersDraft = cntBoostersDraft; + this.cntBoostersSealed = cntBoostersSealed; + } + + public final String getName() { + return name; + } + + public final CardSet[] getSets() { + return sets; + } + + public final CardSet getLandSet() { + return landSet; + } + + public final int getCntBoostersDraft() { + return cntBoostersDraft; + } + + public final int getCntBoostersSealed() { + return cntBoostersSealed; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((landSet == null) ? 0 : landSet.hashCode()); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { return true; } + if (obj == null) { return false; } + if (getClass() != obj.getClass()) { return false; } + + CardBlock other = (CardBlock) obj; + if (!landSet.equals(other.landSet)) { return false; } + if (!name.equals(other.name)) { return false; } + return true; + } + + @Override + public int compareTo(final CardBlock o) { + return this.orderNum - o.orderNum; + } + + @Override + public String toString() { return name; } + +} diff --git a/src/main/java/forge/BoosterDraft.java b/src/main/java/forge/game/limited/BoosterDraft.java similarity index 94% rename from src/main/java/forge/BoosterDraft.java rename to src/main/java/forge/game/limited/BoosterDraft.java index de62153196e..6b00ab60b73 100644 --- a/src/main/java/forge/BoosterDraft.java +++ b/src/main/java/forge/game/limited/BoosterDraft.java @@ -1,5 +1,7 @@ -package forge; +package forge.game.limited; +import forge.Card; +import forge.CardList; import forge.card.CardPoolView; import forge.card.CardPrinted; import forge.deck.Deck; diff --git a/src/main/java/forge/BoosterDraftAI.java b/src/main/java/forge/game/limited/BoosterDraftAI.java similarity index 94% rename from src/main/java/forge/BoosterDraftAI.java rename to src/main/java/forge/game/limited/BoosterDraftAI.java index e61783f8241..aa47f9a55b5 100644 --- a/src/main/java/forge/BoosterDraftAI.java +++ b/src/main/java/forge/game/limited/BoosterDraftAI.java @@ -1,5 +1,15 @@ -package forge; +package forge.game.limited; +import forge.AllZone; +import forge.Card; +import forge.CardList; +import forge.CardListFilter; +import forge.CardListUtil; +import forge.Constant; +import forge.MyRandom; +import forge.Constant.Color; +import forge.Constant.GameType; +import forge.Constant.Runtime; import forge.card.spellability.Ability_Mana; import forge.deck.Deck; @@ -284,7 +294,7 @@ public class BoosterDraftAI { *

buildDeck.

* * @param dList a {@link forge.CardList} object. - * @param pClrs a {@link forge.DeckColors} object. + * @param pClrs a {@link forge.game.limited.DeckColors} object. * @return a {@link forge.deck.Deck} object. */ private Deck buildDeck(CardList dList, DeckColors pClrs) { @@ -552,8 +562,9 @@ public class BoosterDraftAI { public BoosterDraftAI() { //choose colors for decks int[] n = getDeckColors(); - for (int i = 0; i < n.length; i++) + for (int i = 0; i < n.length; i++) { deckColor[i] = deckColorChoices[n[i]]; + } //initilize color map colorToLand.put(Constant.Color.Black, "Swamp"); @@ -574,22 +585,17 @@ public class BoosterDraftAI { private ArrayList playerColors = new ArrayList(); //all 10 two color combinations - private String[][] deckColorChoices = - { - {Constant.Color.Black, Constant.Color.Blue}, - {Constant.Color.Black, Constant.Color.Green}, - {Constant.Color.Black, Constant.Color.Red}, - {Constant.Color.Black, Constant.Color.White}, + private String[][] deckColorChoices = { + {Constant.Color.Black, Constant.Color.Blue}, {Constant.Color.Black, Constant.Color.Green}, + {Constant.Color.Black, Constant.Color.Red}, {Constant.Color.Black, Constant.Color.White}, - {Constant.Color.Blue, Constant.Color.Green}, - {Constant.Color.Blue, Constant.Color.Red}, - {Constant.Color.Blue, Constant.Color.White}, + {Constant.Color.Blue, Constant.Color.Green}, {Constant.Color.Blue, Constant.Color.Red}, + {Constant.Color.Blue, Constant.Color.White}, - {Constant.Color.Green, Constant.Color.Red}, - {Constant.Color.Green, Constant.Color.White}, + {Constant.Color.Green, Constant.Color.Red}, {Constant.Color.Green, Constant.Color.White}, - {Constant.Color.Red, Constant.Color.White} - }; + {Constant.Color.Red, Constant.Color.White} + }; private Comparator bestCreature = new Comparator() { public int compare(Card a, Card b) { @@ -639,34 +645,10 @@ public class BoosterDraftAI { else if (b.getCurSetRarity().equals("Mythic")) rarB = 8; -/** - *

Constructor for deckColors.

- * - * @param c1 a {@link java.lang.String} object. - * @param c2 a {@link java.lang.String} object. - * @param sp a {@link java.lang.String} object. - */ - int scoreA = ((attA + defA) / cmcA) + keyA + abA + trgA + rarA; int scoreB = ((attB + defB) / cmcB) + keyB + abB + trgB + rarB; - if (scoreA == scoreB) - return 0; - /** - *

Constructor for deckColors.

- */ - else if (scoreA > scoreB) - return 1; - else if (scoreB > scoreA) - return -1; -/** - *

ColorToMana.

- * - * @param color a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - - return 0; + return scoreA - scoreB; } }; }//BoosterDraftAI() diff --git a/src/main/java/forge/BoosterDraft_1.java b/src/main/java/forge/game/limited/BoosterDraft_1.java similarity index 78% rename from src/main/java/forge/BoosterDraft_1.java rename to src/main/java/forge/game/limited/BoosterDraft_1.java index 82f586958d5..0e77f4792f0 100644 --- a/src/main/java/forge/BoosterDraft_1.java +++ b/src/main/java/forge/game/limited/BoosterDraft_1.java @@ -1,8 +1,18 @@ -package forge; +package forge.game.limited; +import forge.AllZone; +import forge.BoosterGenerator; +import forge.Card; +import forge.CardList; +import forge.Constant; +import forge.FileUtil; +import forge.SetUtils; +import forge.Constant.Runtime; +import forge.card.CardBlock; import forge.card.CardPool; import forge.card.CardPoolView; import forge.card.CardPrinted; +import forge.card.CardSet; import forge.deck.Deck; import forge.gui.GuiUtils; @@ -20,8 +30,8 @@ import javax.swing.JOptionPane; public class BoosterDraft_1 implements BoosterDraft { private final BoosterDraftAI draftAI = new BoosterDraftAI(); private static final int nPlayers = 8; - //private static int boosterPackSize = 15; - private static int stopCount = 45; //boosterPackSize * 3;//should total of 45 + //private static int boosterPackSize = 14; // 10 com + 3 unc + 1 rare/myth + private static int stopCount = 42; //boosterPackSize * 3;//should total of 42 - because you don't draft lands private int currentCount = 0; private List> pack; //size 8 @@ -68,61 +78,50 @@ public class BoosterDraft_1 implements BoosterDraft { LandSetCode[0] = AllZone.getCardFactory().getCard("Plains", AllZone.getHumanPlayer()).getMostRecentSet(); } else if (draftType.equals("Block")) { // Draft from cards by block or set - ArrayList bNames = SetInfoUtil.getBlockNameList(); - ArrayList rbNames = new ArrayList(); - for (int i = bNames.size() - 1; i >= 0; i--) { - rbNames.add(bNames.get(i)); - } + List blocks = SetUtils.getBlocks(); - Object o = GuiUtils.getChoice("Choose Block", rbNames.toArray()); + Object o = GuiUtils.getChoice("Choose Block", blocks.toArray()); + CardBlock block = (CardBlock) o; - ArrayList blockSets = SetInfoUtil.getSetsBlockName(o.toString()); - int nPacks = SetInfoUtil.getDraftPackCount(o.toString()); + CardSet[] cardSets = block.getSets(); + String[] sets = new String[cardSets.length]; + for (int k = cardSets.length - 1; k >= 0 ; --k) { sets[k] = cardSets[k].getCode();} + + int nPacks = block.getCntBoostersDraft(); ArrayList setCombos = new ArrayList(); + if (sets.length >= 2) { + setCombos.add(String.format("%s/%s/%s", sets[0], sets[0], sets[0])); + setCombos.add(String.format("%s/%s/%s", sets[1], sets[0], sets[0])); + setCombos.add(String.format("%s/%s/%s", sets[1], sets[1], sets[0])); + setCombos.add(String.format("%s/%s/%s", sets[1], sets[1], sets[1])); + } + if (sets.length >= 3) { + setCombos.add(String.format("%s/%s/%s", sets[2], sets[1], sets[0])); + setCombos.add(String.format("%s/%s/%s", sets[2], sets[2], sets[0])); + setCombos.add(String.format("%s/%s/%s", sets[2], sets[2], sets[1])); + setCombos.add(String.format("%s/%s/%s", sets[2], sets[2], sets[2])); + } - //if (blockSets.get(1).equals("") && blockSets.get(2).equals("")) { // Block only has one set - if (blockSets.size() == 1) { - BoosterGenerator bpOne = new BoosterGenerator(blockSets.get(0)); - int n = 0; - for (int i = 0; i < nPacks; i++) { - packs.add(bpOne); - n += bpOne.getBoosterPackSize(); - } - stopCount = n; - } else { - //if (!blockSets.get(1).equals("") && blockSets.get(2).equals("")) { // Block only has two sets - if (blockSets.size() == 2) { - setCombos.add(String.format("%s/%s/%s", blockSets.get(0), blockSets.get(0), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(1), blockSets.get(0), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(1), blockSets.get(1), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(1), blockSets.get(1), blockSets.get(1))); - } - //else if (!blockSets.get(1).equals("") && !blockSets.get(2).equals("")) { // Block has three sets - else if (blockSets.size() == 3) { - setCombos.add(String.format("%s/%s/%s", blockSets.get(0), blockSets.get(0), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(1), blockSets.get(0), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(2), blockSets.get(1), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(1), blockSets.get(1), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(1), blockSets.get(1), blockSets.get(1))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(2), blockSets.get(2), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(2), blockSets.get(2), blockSets.get(1))); - setCombos.add(String.format("%s/%s/%s", blockSets.get(2), blockSets.get(2), blockSets.get(2))); - } - + int sumCards = 0; + if (sets.length > 1) { Object p = GuiUtils.getChoice("Choose Set Combination", setCombos.toArray()); - String[] pp = p.toString().split("/"); - int n = 0; for (int i = 0; i < nPacks; i++) { BoosterGenerator bpMulti = new BoosterGenerator(pp[i]); packs.add(bpMulti); - n += bpMulti.getBoosterPackSize(); + sumCards += bpMulti.getBoosterPackSize(); + } + } else { + BoosterGenerator bpOne = new BoosterGenerator(sets[0]); + for (int i = 0; i < nPacks; i++) { + packs.add(bpOne); + sumCards += bpOne.getBoosterPackSize(); } - stopCount = n; } - - LandSetCode[0] = SetInfoUtil.getLandCode(o.toString()); + stopCount = sumCards; + LandSetCode[0] = block.getLandSet().getCode(); + } else if (draftType.equals("Custom")) { // Draft from user-defined cardpools String[] dList; ArrayList customs = new ArrayList(); diff --git a/src/main/java/forge/CCnt.java b/src/main/java/forge/game/limited/CCnt.java similarity index 94% rename from src/main/java/forge/CCnt.java rename to src/main/java/forge/game/limited/CCnt.java index a343b61af9e..4b114be1fec 100644 --- a/src/main/java/forge/CCnt.java +++ b/src/main/java/forge/game/limited/CCnt.java @@ -1,4 +1,4 @@ -package forge; +package forge.game.limited; /** *

CCnt class.

diff --git a/src/main/java/forge/CustomDraft.java b/src/main/java/forge/game/limited/CustomDraft.java similarity index 91% rename from src/main/java/forge/CustomDraft.java rename to src/main/java/forge/game/limited/CustomDraft.java index c6367752eff..e6e5ddaadfa 100644 --- a/src/main/java/forge/CustomDraft.java +++ b/src/main/java/forge/game/limited/CustomDraft.java @@ -1,4 +1,6 @@ -package forge; +package forge.game.limited; + +import forge.AllZone; /** *

CustomDraft class.

diff --git a/src/main/java/forge/DeckColors.java b/src/main/java/forge/game/limited/DeckColors.java similarity index 96% rename from src/main/java/forge/DeckColors.java rename to src/main/java/forge/game/limited/DeckColors.java index 0fd97f51796..f1064c52529 100644 --- a/src/main/java/forge/DeckColors.java +++ b/src/main/java/forge/game/limited/DeckColors.java @@ -1,4 +1,6 @@ -package forge; +package forge.game.limited; + +import forge.Constant; /** * Created by IntelliJ IDEA. diff --git a/src/main/java/forge/SealedDeck.java b/src/main/java/forge/game/limited/SealedDeck.java similarity index 88% rename from src/main/java/forge/SealedDeck.java rename to src/main/java/forge/game/limited/SealedDeck.java index f3d55ff6465..94b4666a80c 100644 --- a/src/main/java/forge/SealedDeck.java +++ b/src/main/java/forge/game/limited/SealedDeck.java @@ -1,6 +1,19 @@ -package forge; +package forge.game.limited; +import forge.AllZone; +import forge.BoosterGenerator; +import forge.Card; +import forge.CardList; +import forge.CardListFilter; +import forge.CardListUtil; +import forge.Constant; +import forge.FileUtil; +import forge.MyRandom; +import forge.SetUtils; +import forge.card.CardBlock; +import forge.card.CardDb; import forge.card.CardPool; +import forge.card.CardSet; import forge.card.spellability.Ability_Mana; import forge.deck.Deck; import forge.gui.GuiUtils; @@ -8,6 +21,7 @@ import forge.gui.GuiUtils; import javax.swing.*; import java.io.File; import java.util.ArrayList; +import java.util.List; /** *

SealedDeck class.

@@ -32,49 +46,44 @@ public class SealedDeck { for (int i = 0; i < 6; i++) packs.add(bpFull); - LandSetCode[0] = AllZone.getCardFactory().getCard("Plains", AllZone.getHumanPlayer()).getMostRecentSet(); + LandSetCode[0] = CardDb.instance().getCard("Plains").getSet(); } else if (sealedType.equals("Block")) { - ArrayList bNames = SetInfoUtil.getBlockNameList(); - ArrayList rbNames = new ArrayList(); - for (int i = bNames.size() - 1; i >= 0; i--) - rbNames.add(bNames.get(i)); - Object o = GuiUtils.getChoice("Choose Block", rbNames.toArray()); + Object o = GuiUtils.getChoice("Choose Block", SetUtils.getBlocks().toArray()); + CardBlock block = (CardBlock) o; - ArrayList blockSets = SetInfoUtil.getSetsBlockName(o.toString()); - int nPacks = SetInfoUtil.getSealedPackCount(o.toString()); + CardSet[] cardSets = block.getSets(); + String[] sets = new String[cardSets.length]; + for (int k = cardSets.length - 1; k >= 0 ; --k) { sets[k] = cardSets[k].getCode();} - ArrayList setCombos = new ArrayList(); + int nPacks = block.getCntBoostersSealed(); - //if (blockSets.get(1).equals("") && blockSets.get(2).equals("")) { // Block only has one set - if (blockSets.size() == 1) { - BoosterGenerator bpOne = new BoosterGenerator(blockSets.get(0)); + List setCombos = new ArrayList(); + if (sets.length >= 2) { + setCombos.add(String.format("%s/%s/%s/%s/%s/%s", sets[0], sets[0], sets[0], sets[0], sets[0], sets[0])); + setCombos.add(String.format("%s/%s/%s/%s/%s/%s", sets[1], sets[1], sets[0], sets[0], sets[0], sets[0])); + setCombos.add(String.format("%s/%s/%s/%s/%s/%s", sets[1], sets[1], sets[1], sets[0], sets[0], sets[0])); + } + if (sets.length >= 3) { + setCombos.add(String.format("%s/%s/%s/%s/%s/%s", sets[2], sets[2], sets[2], sets[0], sets[0], sets[0])); + setCombos.add(String.format("%s/%s/%s/%s/%s/%s", sets[2], sets[2], sets[1], sets[1], sets[0], sets[0])); + } - for (int i = 0; i < nPacks; i++) - packs.add(bpOne); - } else { - //if (!blockSets.get(1).equals("") && blockSets.get(2).equals("")) { // Block only has two sets - if (blockSets.size() == 2) { - setCombos.add(String.format("%s/%s/%s/%s/%s/%s", blockSets.get(0), blockSets.get(0), blockSets.get(0), blockSets.get(0), blockSets.get(0), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s/%s/%s/%s", blockSets.get(1), blockSets.get(1), blockSets.get(0), blockSets.get(0), blockSets.get(0), blockSets.get(0))); - } - //else if (!blockSets.get(1).equals("") && !blockSets.get(2).equals("")) { // Block has three sets - else if (blockSets.size() == 3) { - setCombos.add(String.format("%s/%s/%s/%s/%s/%s", blockSets.get(0), blockSets.get(0), blockSets.get(0), blockSets.get(0), blockSets.get(0), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s/%s/%s/%s", blockSets.get(1), blockSets.get(1), blockSets.get(0), blockSets.get(0), blockSets.get(0), blockSets.get(0))); - setCombos.add(String.format("%s/%s/%s/%s/%s/%s", blockSets.get(2), blockSets.get(2), blockSets.get(1), blockSets.get(1), blockSets.get(0), blockSets.get(0))); - } + if (sets.length > 1) { Object p = GuiUtils.getChoice("Choose Set Combination", setCombos.toArray()); - String pp[] = p.toString().split("/"); + String[] pp = p.toString().split("/"); for (int i = 0; i < nPacks; i++) { BoosterGenerator bpMulti = new BoosterGenerator(pp[i]); packs.add(bpMulti); } + } else { + BoosterGenerator bpOne = new BoosterGenerator(sets[0]); + for (int i = 0; i < nPacks; i++) { packs.add(bpOne); } } - LandSetCode[0] = blockSets.get(0); + LandSetCode[0] = block.getLandSet().getCode(); } else if (sealedType.equals("Custom")) { String dList[]; diff --git a/src/main/java/forge/gui/deckeditor/DeckEditor.java b/src/main/java/forge/gui/deckeditor/DeckEditor.java index 48d396b8059..1ad79c35919 100644 --- a/src/main/java/forge/gui/deckeditor/DeckEditor.java +++ b/src/main/java/forge/gui/deckeditor/DeckEditor.java @@ -28,7 +28,7 @@ import net.slightlymagic.maxmtg.Predicate; import net.slightlymagic.maxmtg.Predicate.StringOp; import forge.Command; import forge.Constant; -import forge.SetInfoUtil; +import forge.SetUtils; import forge.card.CardRules; import forge.card.CardDb; import forge.card.CardPrinted; @@ -278,8 +278,8 @@ public final class DeckEditor extends DeckEditorBase implements NewConstants { searchSetCombo.removeAllItems(); searchSetCombo.addItem(""); - for (int i = 0; i < SetInfoUtil.getNameList().size(); i++) - searchSetCombo.addItem(SetInfoUtil.getNameList().get(i)); + for (int i = 0; i < SetUtils.getNameList().size(); i++) + searchSetCombo.addItem(SetUtils.getNameList().get(i)); searchSetCombo.addItemListener(itemListenerUpdatesDisplay); this.getContentPane().add(searchSetCombo, "wmin 150, grow"); @@ -326,7 +326,7 @@ public final class DeckEditor extends DeckEditorBase implements NewConstants { } if (searchSetCombo.getSelectedIndex() != 0) { - String setCode = SetInfoUtil.getCode3ByName(searchSetCombo.getSelectedItem().toString()); + String setCode = SetUtils.getCode3ByName(searchSetCombo.getSelectedItem().toString()); rules.add(CardRules.Predicates.wasPrintedInSet(setCode)); } diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java b/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java index 1e04b44086b..9bf921dc5e0 100644 --- a/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java +++ b/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java @@ -1,7 +1,6 @@ package forge.gui.deckeditor; import forge.AllZone; -import forge.BoosterDraft; import forge.Constant; import forge.FileUtil; import forge.HttpUtil; @@ -11,6 +10,7 @@ import forge.card.CardPrinted; import forge.deck.Deck; import forge.deck.DeckManager; import forge.error.ErrorViewer; +import forge.game.limited.BoosterDraft; import forge.gui.GuiUtils; import forge.properties.ForgeProps; import forge.properties.NewConstants; @@ -44,7 +44,7 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New /** *

showGui.

* - * @param in_boosterDraft a {@link forge.BoosterDraft} object. + * @param in_boosterDraft a {@link forge.game.limited.BoosterDraft} object. */ public void showGui(BoosterDraft in_boosterDraft) { boosterDraft = in_boosterDraft; @@ -97,16 +97,23 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New top.setup(columns, cardView); bottom.setup(columns, cardView); - this.setSize(1024, 740); + this.setSize(980, 740); GuiUtils.centerFrame(this); this.setResizable(false); + + top.getTable().addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(final KeyEvent e) { + if (e.getKeyChar() == ' ') { jButton1_actionPerformed(null); } + } + }); } public DeckEditorDraft() { try { top = new TableWithCards("Choose one card", false); - bottom = new TableWithCards("Previously Picked Cards", true); + bottom = new TableWithCards("Previously picked cards", true); filterBoxes = null; cardView = new CardPanelLite(); jbInit(); @@ -124,11 +131,11 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New private void jbInit() throws Exception { this.getContentPane().setLayout(null); - top.getTableDecorated().setBounds(new Rectangle(19, 28, 661, 344)); - bottom.getTableDecorated().setBounds(new Rectangle(19, 478, 661, 184)); - cardView.setBounds(new Rectangle(693, 23, 239, 665)); - - bottom.getLabel().setBounds(new Rectangle(19, 665, 665, 31)); + top.getTableDecorated().setBounds(new Rectangle(19, 28, 680, 344)); + bottom.getTableDecorated().setBounds(new Rectangle(19, 478, 680, 184)); + bottom.getLabel().setBounds(new Rectangle(19, 680, 665, 31)); + + cardView.setBounds(new Rectangle(715, 23, 240, 666)); this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); this.setTitle("Booster Draft"); @@ -197,7 +204,7 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New private void showChoices(CardPoolView list) { top.setDeck(list); cardView.showCard(null); - + top.fixSelection(0); }//showChoices() /** diff --git a/src/main/java/forge/gui/deckeditor/PresetColumns.java b/src/main/java/forge/gui/deckeditor/PresetColumns.java index 149418e2bc5..559832c6686 100644 --- a/src/main/java/forge/gui/deckeditor/PresetColumns.java +++ b/src/main/java/forge/gui/deckeditor/PresetColumns.java @@ -3,7 +3,7 @@ package forge.gui.deckeditor; import java.util.Map.Entry; import net.slightlymagic.braids.util.lambda.Lambda1; -import forge.SetInfoUtil; +import forge.SetUtils; import forge.card.CardPrinted; /** @@ -71,7 +71,7 @@ public abstract class PresetColumns { @SuppressWarnings("rawtypes") public static final Lambda1> fnSetCompare = new Lambda1>() { @Override - public Comparable apply(final Entry from) { return SetInfoUtil.getSetByCode(from.getKey().getSet()); } }; + public Comparable apply(final Entry from) { return SetUtils.getSetByCode(from.getKey().getSet()); } }; public static final Lambda1> fnSetGet = new Lambda1>() { @Override public Object apply(final Entry from) { return from.getKey().getSet(); } }; diff --git a/src/main/java/forge/gui/deckeditor/TableWithCards.java b/src/main/java/forge/gui/deckeditor/TableWithCards.java index 0fb19848be2..f99057e118d 100644 --- a/src/main/java/forge/gui/deckeditor/TableWithCards.java +++ b/src/main/java/forge/gui/deckeditor/TableWithCards.java @@ -160,4 +160,5 @@ public final class TableWithCards { public CardPoolView getCards() { return pool; } + } diff --git a/src/main/java/forge/view/swing/OldGuiNewGame.java b/src/main/java/forge/view/swing/OldGuiNewGame.java index 3964f88e4ab..4682f9c6583 100644 --- a/src/main/java/forge/view/swing/OldGuiNewGame.java +++ b/src/main/java/forge/view/swing/OldGuiNewGame.java @@ -9,6 +9,8 @@ import forge.deck.DeckManager; import forge.deck.generate.*; import forge.error.BugzReporter; import forge.error.ErrorViewer; +import forge.game.limited.BoosterDraft_1; +import forge.game.limited.SealedDeck; import forge.gui.GuiUtils; import forge.gui.ListChooser; import forge.gui.deckeditor.DeckEditorDraft;