mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
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.
This commit is contained in:
17
.gitattributes
vendored
17
.gitattributes
vendored
@@ -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/AllZone.java svneol=native#text/plain
|
||||||
src/main/java/forge/AllZoneUtil.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/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/BoosterGenerator.java svneol=native#text/plain
|
||||||
src/main/java/forge/ButtonUtil.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/Card.java svneol=native#text/plain
|
||||||
src/main/java/forge/CardContainer.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
|
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/Constant_StringHashMap.java svneol=native#text/plain
|
||||||
src/main/java/forge/CopyFiles.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/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/DefaultPlayerZone.java svneol=native#text/plain
|
||||||
src/main/java/forge/Display.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
|
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/ReadDraftBoosterPack.java svneol=native#text/plain
|
||||||
src/main/java/forge/ReadPriceList.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/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/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/SimpleCombat.java svneol=native#text/plain
|
||||||
src/main/java/forge/Singletons.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
|
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/UndoCommand.java svneol=native#text/plain
|
||||||
src/main/java/forge/Upkeep.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/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/CardColor.java -text
|
||||||
src/main/java/forge/card/CardCoreType.java -text
|
src/main/java/forge/card/CardCoreType.java -text
|
||||||
src/main/java/forge/card/CardDb.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/GamePlayerRating.java -text
|
||||||
src/main/java/forge/game/GameSummary.java svneol=native#text/plain
|
src/main/java/forge/game/GameSummary.java svneol=native#text/plain
|
||||||
src/main/java/forge/game/PlayerIndex.java -text
|
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/game/package-info.java -text
|
||||||
src/main/java/forge/gui/CardListViewer.java -text
|
src/main/java/forge/gui/CardListViewer.java -text
|
||||||
src/main/java/forge/gui/ForgeAction.java svneol=native#text/plain
|
src/main/java/forge/gui/ForgeAction.java svneol=native#text/plain
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import java.util.TreeMap;
|
|||||||
|
|
||||||
import com.esotericsoftware.minlog.Log;
|
import com.esotericsoftware.minlog.Log;
|
||||||
|
|
||||||
|
import forge.card.CardDb;
|
||||||
import forge.card.cardFactory.CardFactoryUtil;
|
import forge.card.cardFactory.CardFactoryUtil;
|
||||||
import forge.card.cost.Cost;
|
import forge.card.cost.Cost;
|
||||||
import forge.card.mana.ManaCost;
|
import forge.card.mana.ManaCost;
|
||||||
@@ -5790,7 +5791,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
* @return a {@link java.lang.String} object.
|
* @return a {@link java.lang.String} object.
|
||||||
*/
|
*/
|
||||||
public String getMostRecentSet() {
|
public String getMostRecentSet() {
|
||||||
return SetInfoUtil.getMostRecentSet(Sets);
|
return CardDb.instance().getCard(this.getName()).getSet();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String ImageFilename = "";
|
private String ImageFilename = "";
|
||||||
|
|||||||
@@ -535,7 +535,7 @@ public final class CardUtil {
|
|||||||
if (f.exists()) { return mwsSet3; }
|
if (f.exists()) { return mwsSet3; }
|
||||||
|
|
||||||
//Second, try 2 letter set code with MWS filename format
|
//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");
|
f = new File(path, mwsSet2 + ".jpg");
|
||||||
if (f.exists()) { return mwsSet2; }
|
if (f.exists()) { return mwsSet2; }
|
||||||
|
|
||||||
|
|||||||
@@ -1054,37 +1054,26 @@ public class GameAction {
|
|||||||
|
|
||||||
Card.resetUniqueNumber();
|
Card.resetUniqueNumber();
|
||||||
|
|
||||||
|
boolean canRandomFoil = Constant.Runtime.RndCFoil[0] && Constant.Runtime.GameType[0].equals(Constant.GameType.Constructed);
|
||||||
|
|
||||||
Random generator = MyRandom.random;
|
Random generator = MyRandom.random;
|
||||||
for (Entry<CardPrinted, Integer> cardPile : humanDeck.getMain()) {
|
for (Entry<CardPrinted, Integer> stackOfCards : humanDeck.getMain()) {
|
||||||
for (int i = 0; i < cardPile.getValue(); i++) {
|
CardPrinted cardPrinted = stackOfCards.getKey();
|
||||||
String cardName = cardPile.getKey().getName();
|
for (int i = 0; i < stackOfCards.getValue(); i++) {
|
||||||
String setCode = cardPile.getKey().getSet();
|
|
||||||
|
|
||||||
Card card = c.getCard(cardName, AllZone.getHumanPlayer());
|
Card card = c.getCard(cardPrinted.getName(), AllZone.getHumanPlayer());
|
||||||
|
card.setCurSetCode(cardPrinted.getSet());
|
||||||
|
|
||||||
if (!setCode.equals(""))
|
int cntVariants = cardPrinted.getCard().getSetInfo(cardPrinted.getSet()).getCopiesCount();
|
||||||
card.setCurSetCode(setCode);
|
if (cntVariants > 1) { card.setRandomPicture(generator.nextInt(cntVariants - 1) + 1); }
|
||||||
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));
|
card.setImageFilename(CardUtil.buildFilename(card));
|
||||||
}
|
|
||||||
|
|
||||||
// Assign random foiling on approximately 1:20 cards
|
// Assign random foiling on approximately 1:20 cards
|
||||||
if (Constant.Runtime.RndCFoil[0] && Constant.Runtime.GameType[0].equals(Constant.GameType.Constructed)) {
|
if (cardPrinted.isFoil() || (canRandomFoil && MyRandom.percentTrue(5))) {
|
||||||
if (MyRandom.percentTrue(5))
|
int iFoil = MyRandom.random.nextInt(9) + 1;
|
||||||
card.setFoil(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);
|
AllZone.getHumanLibrary().add(card);
|
||||||
|
|
||||||
@@ -1095,43 +1084,23 @@ public class GameAction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ArrayList<String> RAICards = new ArrayList<String>();
|
ArrayList<String> RAICards = new ArrayList<String>();
|
||||||
for (Entry<CardPrinted, Integer> cardPile : computerDeck.getMain()) {
|
for (Entry<CardPrinted, Integer> stackOfCards : computerDeck.getMain()) {
|
||||||
for (int i = 0; i < cardPile.getValue(); i++) {
|
CardPrinted cardPrinted = stackOfCards.getKey();
|
||||||
|
for (int i = 0; i < stackOfCards.getValue(); i++) {
|
||||||
|
|
||||||
String cardName = cardPile.getKey().getName();
|
Card card = c.getCard(cardPrinted.getName(), AllZone.getComputerPlayer());
|
||||||
String setCode = cardPile.getKey().getSet();
|
card.setCurSetCode(cardPrinted.getSet());
|
||||||
|
|
||||||
Card card = c.getCard(cardName, AllZone.getComputerPlayer());
|
int cntVariants = cardPrinted.getCard().getSetInfo(cardPrinted.getSet()).getCopiesCount();
|
||||||
|
if (cntVariants > 1) { card.setRandomPicture(generator.nextInt(cntVariants - 1) + 1); }
|
||||||
//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));
|
card.setImageFilename(CardUtil.buildFilename(card));
|
||||||
}
|
|
||||||
|
|
||||||
// Assign random foiling on approximately 1:20 cards
|
// Assign random foiling on approximately 1:20 cards
|
||||||
if (Constant.Runtime.RndCFoil[0] && Constant.Runtime.GameType[0].equals(Constant.GameType.Constructed)) {
|
if (cardPrinted.isFoil() || (canRandomFoil && MyRandom.percentTrue(5))) {
|
||||||
if (MyRandom.percentTrue(5))
|
int iFoil = MyRandom.random.nextInt(9) + 1;
|
||||||
card.setFoil(MyRandom.random.nextInt(9) + 1);
|
card.setFoil(iFoil);
|
||||||
}
|
}
|
||||||
if (cardPile.getKey().isFoil()) { card.setFoil(MyRandom.random.nextInt(9) + 1); }
|
|
||||||
|
|
||||||
AllZone.getComputerLibrary().add(card);
|
AllZone.getComputerLibrary().add(card);
|
||||||
|
|
||||||
|
|||||||
@@ -394,7 +394,7 @@ public class Gui_DownloadSetPictures_LQ extends DefaultBoundedRangeModel impleme
|
|||||||
for (int j = 0; j < cSetInfo.size(); j++) {
|
for (int j = 0; j < cSetInfo.size(); j++) {
|
||||||
c.setCurSetCode(cSetInfo.get(j).Code);
|
c.setCurSetCode(cSetInfo.get(j).Code);
|
||||||
String SC3 = c.getCurSetCode();
|
String SC3 = c.getCurSetCode();
|
||||||
String SC2 = SetInfoUtil.getCode2ByCode(c.getCurSetCode());
|
String SC2 = SetUtils.getCode2ByCode(c.getCurSetCode());
|
||||||
|
|
||||||
int n = 0;
|
int n = 0;
|
||||||
if (cSetInfo.get(j).PicCount > 0) {
|
if (cSetInfo.get(j).PicCount > 0) {
|
||||||
|
|||||||
@@ -402,7 +402,7 @@ public class Gui_MigrateLocalMWSSetPictures_HQ extends DefaultBoundedRangeModel
|
|||||||
for (int j = 0; j < cSetInfo.size(); j++) {
|
for (int j = 0; j < cSetInfo.size(); j++) {
|
||||||
c.setCurSetCode(cSetInfo.get(j).Code);
|
c.setCurSetCode(cSetInfo.get(j).Code);
|
||||||
String SC3 = c.getCurSetCode();
|
String SC3 = c.getCurSetCode();
|
||||||
String SC2 = SetInfoUtil.getCode2ByCode(c.getCurSetCode());
|
String SC2 = SetUtils.getCode2ByCode(c.getCurSetCode());
|
||||||
|
|
||||||
int n = 0;
|
int n = 0;
|
||||||
if (cSetInfo.get(j).PicCount > 0) {
|
if (cSetInfo.get(j).PicCount > 0) {
|
||||||
|
|||||||
@@ -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;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>SetInfoUtil class.</p>
|
|
||||||
*
|
|
||||||
* @author Forge
|
|
||||||
* @version $Id$
|
|
||||||
*/
|
|
||||||
public final class SetInfoUtil {
|
|
||||||
|
|
||||||
private SetInfoUtil() {
|
|
||||||
throw new AssertionError();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Constant <code>setData</code>. */
|
|
||||||
private static HashMap<String, CardSet> setsByCode = new HashMap<String, CardSet>();
|
|
||||||
private static List<CardSet> allSets = new ArrayList<CardSet>();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>loadSetData.</p>
|
|
||||||
*/
|
|
||||||
private static void loadSetData() {
|
|
||||||
ArrayList<String> 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<String>
|
|
||||||
*/
|
|
||||||
public static List<String> getCodeList() {
|
|
||||||
if (setsByCode.isEmpty()) { loadSetData(); }
|
|
||||||
return new ArrayList<String>(setsByCode.keySet());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getSetNameList.</p>
|
|
||||||
*
|
|
||||||
* @return a {@link java.util.ArrayList} object.
|
|
||||||
*/
|
|
||||||
public static List<String> 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();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getNameByCode.</p>
|
|
||||||
*
|
|
||||||
* @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();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getMostRecentSet.</p>
|
|
||||||
*
|
|
||||||
* @param alSI a {@link java.util.ArrayList} object.
|
|
||||||
* @return a {@link java.lang.String} object.
|
|
||||||
*/
|
|
||||||
public static String getMostRecentSet(final ArrayList<SetInfo> 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();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getSetInfoCode.</p>
|
|
||||||
*
|
|
||||||
* @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<SetInfo> 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getIndexByCode.</p>
|
|
||||||
*
|
|
||||||
* @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 <code>blockData</code>. */
|
|
||||||
private static ArrayList<HashMap<String, String>> blockData = new ArrayList<HashMap<String, String>>();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>loadBlockData.</p>
|
|
||||||
*/
|
|
||||||
private static void loadBlockData() {
|
|
||||||
ArrayList<String> 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<String, String> sm = new HashMap<String, String>();
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getBlockNameList.</p>
|
|
||||||
*
|
|
||||||
* @return a {@link java.util.ArrayList} object.
|
|
||||||
*/
|
|
||||||
public static ArrayList<String> getBlockNameList() {
|
|
||||||
ArrayList<String> bnl = new ArrayList<String>();
|
|
||||||
|
|
||||||
if (blockData.size() == 0) {
|
|
||||||
loadBlockData();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < blockData.size(); i++) {
|
|
||||||
bnl.add(blockData.get(i).get("Name"));
|
|
||||||
}
|
|
||||||
|
|
||||||
return bnl;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getSetsBlockName.</p>
|
|
||||||
*
|
|
||||||
* @param blockName a {@link java.lang.String} object.
|
|
||||||
* @return a {@link java.util.ArrayList} object.
|
|
||||||
*/
|
|
||||||
public static ArrayList<String> getSetsBlockName(final String blockName) {
|
|
||||||
ArrayList<String> sets = new ArrayList<String>();
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getDraftPackCount.</p>
|
|
||||||
*
|
|
||||||
* @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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getSealedPackCount.</p>
|
|
||||||
*
|
|
||||||
* @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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>getLandCode.</p>
|
|
||||||
*
|
|
||||||
* @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<String>
|
|
||||||
*/
|
|
||||||
public static ArrayList<String> getLegalSets(final String fmt) {
|
|
||||||
ArrayList<String> lglSets = new ArrayList<String>();
|
|
||||||
|
|
||||||
lglSets = FileUtil.readFile("res/blockdata/" + fmt + ".txt");
|
|
||||||
|
|
||||||
return lglSets;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
152
src/main/java/forge/SetUtils.java
Normal file
152
src/main/java/forge/SetUtils.java
Normal file
@@ -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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>SetInfoUtil class.</p>
|
||||||
|
*
|
||||||
|
* @author Forge
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public final class SetUtils {
|
||||||
|
|
||||||
|
private SetUtils() {
|
||||||
|
throw new AssertionError();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Constant <code>setData</code>. */
|
||||||
|
private static HashMap<String, CardSet> setsByCode = new HashMap<String, CardSet>();
|
||||||
|
private static List<CardSet> allSets = new ArrayList<CardSet>();
|
||||||
|
private static List<CardBlock> allBlocks = new ArrayList<CardBlock>();
|
||||||
|
|
||||||
|
// 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<String> 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<CardBlock> getBlocks() {
|
||||||
|
if (allBlocks.isEmpty()) { loadBlockData(); }
|
||||||
|
return Collections.unmodifiableList(allBlocks);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// parser code - quite boring.
|
||||||
|
private static void loadSetData() {
|
||||||
|
ArrayList<String> 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<String> 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<CardSet> sets = new ArrayList<CardSet>(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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
77
src/main/java/forge/card/CardBlock.java
Normal file
77
src/main/java/forge/card/CardBlock.java
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
package forge.card;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a CardBlock class.
|
||||||
|
*/
|
||||||
|
public class CardBlock implements Comparable<CardBlock> {
|
||||||
|
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<CardSet> 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; }
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package forge;
|
package forge.game.limited;
|
||||||
|
|
||||||
|
import forge.Card;
|
||||||
|
import forge.CardList;
|
||||||
import forge.card.CardPoolView;
|
import forge.card.CardPoolView;
|
||||||
import forge.card.CardPrinted;
|
import forge.card.CardPrinted;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
@@ -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.card.spellability.Ability_Mana;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
|
|
||||||
@@ -284,7 +294,7 @@ public class BoosterDraftAI {
|
|||||||
* <p>buildDeck.</p>
|
* <p>buildDeck.</p>
|
||||||
*
|
*
|
||||||
* @param dList a {@link forge.CardList} object.
|
* @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.
|
* @return a {@link forge.deck.Deck} object.
|
||||||
*/
|
*/
|
||||||
private Deck buildDeck(CardList dList, DeckColors pClrs) {
|
private Deck buildDeck(CardList dList, DeckColors pClrs) {
|
||||||
@@ -552,8 +562,9 @@ public class BoosterDraftAI {
|
|||||||
public BoosterDraftAI() {
|
public BoosterDraftAI() {
|
||||||
//choose colors for decks
|
//choose colors for decks
|
||||||
int[] n = getDeckColors();
|
int[] n = getDeckColors();
|
||||||
for (int i = 0; i < n.length; i++)
|
for (int i = 0; i < n.length; i++) {
|
||||||
deckColor[i] = deckColorChoices[n[i]];
|
deckColor[i] = deckColorChoices[n[i]];
|
||||||
|
}
|
||||||
|
|
||||||
//initilize color map
|
//initilize color map
|
||||||
colorToLand.put(Constant.Color.Black, "Swamp");
|
colorToLand.put(Constant.Color.Black, "Swamp");
|
||||||
@@ -574,19 +585,14 @@ public class BoosterDraftAI {
|
|||||||
private ArrayList<DeckColors> playerColors = new ArrayList<DeckColors>();
|
private ArrayList<DeckColors> playerColors = new ArrayList<DeckColors>();
|
||||||
|
|
||||||
//all 10 two color combinations
|
//all 10 two color combinations
|
||||||
private String[][] deckColorChoices =
|
private String[][] deckColorChoices = {
|
||||||
{
|
{Constant.Color.Black, Constant.Color.Blue}, {Constant.Color.Black, Constant.Color.Green},
|
||||||
{Constant.Color.Black, Constant.Color.Blue},
|
{Constant.Color.Black, Constant.Color.Red}, {Constant.Color.Black, Constant.Color.White},
|
||||||
{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.Green}, {Constant.Color.Blue, Constant.Color.Red},
|
||||||
{Constant.Color.Blue, Constant.Color.Red},
|
|
||||||
{Constant.Color.Blue, Constant.Color.White},
|
{Constant.Color.Blue, Constant.Color.White},
|
||||||
|
|
||||||
{Constant.Color.Green, Constant.Color.Red},
|
{Constant.Color.Green, Constant.Color.Red}, {Constant.Color.Green, Constant.Color.White},
|
||||||
{Constant.Color.Green, Constant.Color.White},
|
|
||||||
|
|
||||||
{Constant.Color.Red, Constant.Color.White}
|
{Constant.Color.Red, Constant.Color.White}
|
||||||
};
|
};
|
||||||
@@ -639,34 +645,10 @@ public class BoosterDraftAI {
|
|||||||
else if (b.getCurSetRarity().equals("Mythic"))
|
else if (b.getCurSetRarity().equals("Mythic"))
|
||||||
rarB = 8;
|
rarB = 8;
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Constructor for deckColors.</p>
|
|
||||||
*
|
|
||||||
* @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 scoreA = ((attA + defA) / cmcA) + keyA + abA + trgA + rarA;
|
||||||
int scoreB = ((attB + defB) / cmcB) + keyB + abB + trgB + rarB;
|
int scoreB = ((attB + defB) / cmcB) + keyB + abB + trgB + rarB;
|
||||||
|
|
||||||
if (scoreA == scoreB)
|
return scoreA - scoreB;
|
||||||
return 0;
|
|
||||||
/**
|
|
||||||
* <p>Constructor for deckColors.</p>
|
|
||||||
*/
|
|
||||||
else if (scoreA > scoreB)
|
|
||||||
return 1;
|
|
||||||
else if (scoreB > scoreA)
|
|
||||||
return -1;
|
|
||||||
/**
|
|
||||||
* <p>ColorToMana.</p>
|
|
||||||
*
|
|
||||||
* @param color a {@link java.lang.String} object.
|
|
||||||
* @return a {@link java.lang.String} object.
|
|
||||||
*/
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}//BoosterDraftAI()
|
}//BoosterDraftAI()
|
||||||
@@ -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.CardPool;
|
||||||
import forge.card.CardPoolView;
|
import forge.card.CardPoolView;
|
||||||
import forge.card.CardPrinted;
|
import forge.card.CardPrinted;
|
||||||
|
import forge.card.CardSet;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.gui.GuiUtils;
|
import forge.gui.GuiUtils;
|
||||||
|
|
||||||
@@ -20,8 +30,8 @@ import javax.swing.JOptionPane;
|
|||||||
public class BoosterDraft_1 implements BoosterDraft {
|
public class BoosterDraft_1 implements BoosterDraft {
|
||||||
private final BoosterDraftAI draftAI = new BoosterDraftAI();
|
private final BoosterDraftAI draftAI = new BoosterDraftAI();
|
||||||
private static final int nPlayers = 8;
|
private static final int nPlayers = 8;
|
||||||
//private static int boosterPackSize = 15;
|
//private static int boosterPackSize = 14; // 10 com + 3 unc + 1 rare/myth
|
||||||
private static int stopCount = 45; //boosterPackSize * 3;//should total of 45
|
private static int stopCount = 42; //boosterPackSize * 3;//should total of 42 - because you don't draft lands
|
||||||
|
|
||||||
private int currentCount = 0;
|
private int currentCount = 0;
|
||||||
private List<List<CardPrinted>> pack; //size 8
|
private List<List<CardPrinted>> pack; //size 8
|
||||||
@@ -68,61 +78,50 @@ public class BoosterDraft_1 implements BoosterDraft {
|
|||||||
|
|
||||||
LandSetCode[0] = AllZone.getCardFactory().getCard("Plains", AllZone.getHumanPlayer()).getMostRecentSet();
|
LandSetCode[0] = AllZone.getCardFactory().getCard("Plains", AllZone.getHumanPlayer()).getMostRecentSet();
|
||||||
} else if (draftType.equals("Block")) { // Draft from cards by block or set
|
} else if (draftType.equals("Block")) { // Draft from cards by block or set
|
||||||
ArrayList<String> bNames = SetInfoUtil.getBlockNameList();
|
List<CardBlock> blocks = SetUtils.getBlocks();
|
||||||
ArrayList<String> rbNames = new ArrayList<String>();
|
|
||||||
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", blocks.toArray());
|
||||||
|
CardBlock block = (CardBlock) o;
|
||||||
|
|
||||||
ArrayList<String> blockSets = SetInfoUtil.getSetsBlockName(o.toString());
|
CardSet[] cardSets = block.getSets();
|
||||||
int nPacks = SetInfoUtil.getDraftPackCount(o.toString());
|
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<String> setCombos = new ArrayList<String>();
|
ArrayList<String> setCombos = new ArrayList<String>();
|
||||||
|
if (sets.length >= 2) {
|
||||||
//if (blockSets.get(1).equals("") && blockSets.get(2).equals("")) { // Block only has one set
|
setCombos.add(String.format("%s/%s/%s", sets[0], sets[0], sets[0]));
|
||||||
if (blockSets.size() == 1) {
|
setCombos.add(String.format("%s/%s/%s", sets[1], sets[0], sets[0]));
|
||||||
BoosterGenerator bpOne = new BoosterGenerator(blockSets.get(0));
|
setCombos.add(String.format("%s/%s/%s", sets[1], sets[1], sets[0]));
|
||||||
int n = 0;
|
setCombos.add(String.format("%s/%s/%s", sets[1], sets[1], sets[1]));
|
||||||
for (int i = 0; i < nPacks; i++) {
|
|
||||||
packs.add(bpOne);
|
|
||||||
n += bpOne.getBoosterPackSize();
|
|
||||||
}
|
}
|
||||||
stopCount = n;
|
if (sets.length >= 3) {
|
||||||
} else {
|
setCombos.add(String.format("%s/%s/%s", sets[2], sets[1], sets[0]));
|
||||||
//if (!blockSets.get(1).equals("") && blockSets.get(2).equals("")) { // Block only has two sets
|
setCombos.add(String.format("%s/%s/%s", sets[2], sets[2], sets[0]));
|
||||||
if (blockSets.size() == 2) {
|
setCombos.add(String.format("%s/%s/%s", sets[2], sets[2], sets[1]));
|
||||||
setCombos.add(String.format("%s/%s/%s", blockSets.get(0), blockSets.get(0), blockSets.get(0)));
|
setCombos.add(String.format("%s/%s/%s", sets[2], sets[2], sets[2]));
|
||||||
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());
|
Object p = GuiUtils.getChoice("Choose Set Combination", setCombos.toArray());
|
||||||
|
|
||||||
String[] pp = p.toString().split("/");
|
String[] pp = p.toString().split("/");
|
||||||
int n = 0;
|
|
||||||
for (int i = 0; i < nPacks; i++) {
|
for (int i = 0; i < nPacks; i++) {
|
||||||
BoosterGenerator bpMulti = new BoosterGenerator(pp[i]);
|
BoosterGenerator bpMulti = new BoosterGenerator(pp[i]);
|
||||||
packs.add(bpMulti);
|
packs.add(bpMulti);
|
||||||
n += bpMulti.getBoosterPackSize();
|
sumCards += bpMulti.getBoosterPackSize();
|
||||||
}
|
}
|
||||||
stopCount = n;
|
} else {
|
||||||
|
BoosterGenerator bpOne = new BoosterGenerator(sets[0]);
|
||||||
|
for (int i = 0; i < nPacks; i++) {
|
||||||
|
packs.add(bpOne);
|
||||||
|
sumCards += bpOne.getBoosterPackSize();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
stopCount = sumCards;
|
||||||
|
LandSetCode[0] = block.getLandSet().getCode();
|
||||||
|
|
||||||
LandSetCode[0] = SetInfoUtil.getLandCode(o.toString());
|
|
||||||
} else if (draftType.equals("Custom")) { // Draft from user-defined cardpools
|
} else if (draftType.equals("Custom")) { // Draft from user-defined cardpools
|
||||||
String[] dList;
|
String[] dList;
|
||||||
ArrayList<CustomDraft> customs = new ArrayList<CustomDraft>();
|
ArrayList<CustomDraft> customs = new ArrayList<CustomDraft>();
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package forge;
|
package forge.game.limited;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>CCnt class.</p>
|
* <p>CCnt class.</p>
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
package forge;
|
package forge.game.limited;
|
||||||
|
|
||||||
|
import forge.AllZone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>CustomDraft class.</p>
|
* <p>CustomDraft class.</p>
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
package forge;
|
package forge.game.limited;
|
||||||
|
|
||||||
|
import forge.Constant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by IntelliJ IDEA.
|
* Created by IntelliJ IDEA.
|
||||||
@@ -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.CardPool;
|
||||||
|
import forge.card.CardSet;
|
||||||
import forge.card.spellability.Ability_Mana;
|
import forge.card.spellability.Ability_Mana;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.gui.GuiUtils;
|
import forge.gui.GuiUtils;
|
||||||
@@ -8,6 +21,7 @@ import forge.gui.GuiUtils;
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>SealedDeck class.</p>
|
* <p>SealedDeck class.</p>
|
||||||
@@ -32,49 +46,44 @@ public class SealedDeck {
|
|||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++)
|
||||||
packs.add(bpFull);
|
packs.add(bpFull);
|
||||||
|
|
||||||
LandSetCode[0] = AllZone.getCardFactory().getCard("Plains", AllZone.getHumanPlayer()).getMostRecentSet();
|
LandSetCode[0] = CardDb.instance().getCard("Plains").getSet();
|
||||||
} else if (sealedType.equals("Block")) {
|
} else if (sealedType.equals("Block")) {
|
||||||
ArrayList<String> bNames = SetInfoUtil.getBlockNameList();
|
|
||||||
ArrayList<String> rbNames = new ArrayList<String>();
|
|
||||||
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<String> blockSets = SetInfoUtil.getSetsBlockName(o.toString());
|
CardSet[] cardSets = block.getSets();
|
||||||
int nPacks = SetInfoUtil.getSealedPackCount(o.toString());
|
String[] sets = new String[cardSets.length];
|
||||||
|
for (int k = cardSets.length - 1; k >= 0 ; --k) { sets[k] = cardSets[k].getCode();}
|
||||||
|
|
||||||
ArrayList<String> setCombos = new ArrayList<String>();
|
int nPacks = block.getCntBoostersSealed();
|
||||||
|
|
||||||
//if (blockSets.get(1).equals("") && blockSets.get(2).equals("")) { // Block only has one set
|
List<String> setCombos = new ArrayList<String>();
|
||||||
if (blockSets.size() == 1) {
|
if (sets.length >= 2) {
|
||||||
BoosterGenerator bpOne = new BoosterGenerator(blockSets.get(0));
|
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]));
|
||||||
for (int i = 0; i < nPacks; i++)
|
setCombos.add(String.format("%s/%s/%s/%s/%s/%s", sets[1], sets[1], sets[1], sets[0], sets[0], sets[0]));
|
||||||
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
|
if (sets.length >= 3) {
|
||||||
else if (blockSets.size() == 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", 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", sets[2], sets[2], sets[1], sets[1], sets[0], sets[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());
|
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++) {
|
for (int i = 0; i < nPacks; i++) {
|
||||||
BoosterGenerator bpMulti = new BoosterGenerator(pp[i]);
|
BoosterGenerator bpMulti = new BoosterGenerator(pp[i]);
|
||||||
packs.add(bpMulti);
|
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")) {
|
} else if (sealedType.equals("Custom")) {
|
||||||
String dList[];
|
String dList[];
|
||||||
@@ -28,7 +28,7 @@ import net.slightlymagic.maxmtg.Predicate;
|
|||||||
import net.slightlymagic.maxmtg.Predicate.StringOp;
|
import net.slightlymagic.maxmtg.Predicate.StringOp;
|
||||||
import forge.Command;
|
import forge.Command;
|
||||||
import forge.Constant;
|
import forge.Constant;
|
||||||
import forge.SetInfoUtil;
|
import forge.SetUtils;
|
||||||
import forge.card.CardRules;
|
import forge.card.CardRules;
|
||||||
import forge.card.CardDb;
|
import forge.card.CardDb;
|
||||||
import forge.card.CardPrinted;
|
import forge.card.CardPrinted;
|
||||||
@@ -278,8 +278,8 @@ public final class DeckEditor extends DeckEditorBase implements NewConstants {
|
|||||||
|
|
||||||
searchSetCombo.removeAllItems();
|
searchSetCombo.removeAllItems();
|
||||||
searchSetCombo.addItem("");
|
searchSetCombo.addItem("");
|
||||||
for (int i = 0; i < SetInfoUtil.getNameList().size(); i++)
|
for (int i = 0; i < SetUtils.getNameList().size(); i++)
|
||||||
searchSetCombo.addItem(SetInfoUtil.getNameList().get(i));
|
searchSetCombo.addItem(SetUtils.getNameList().get(i));
|
||||||
searchSetCombo.addItemListener(itemListenerUpdatesDisplay);
|
searchSetCombo.addItemListener(itemListenerUpdatesDisplay);
|
||||||
|
|
||||||
this.getContentPane().add(searchSetCombo, "wmin 150, grow");
|
this.getContentPane().add(searchSetCombo, "wmin 150, grow");
|
||||||
@@ -326,7 +326,7 @@ public final class DeckEditor extends DeckEditorBase implements NewConstants {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (searchSetCombo.getSelectedIndex() != 0) {
|
if (searchSetCombo.getSelectedIndex() != 0) {
|
||||||
String setCode = SetInfoUtil.getCode3ByName(searchSetCombo.getSelectedItem().toString());
|
String setCode = SetUtils.getCode3ByName(searchSetCombo.getSelectedItem().toString());
|
||||||
rules.add(CardRules.Predicates.wasPrintedInSet(setCode));
|
rules.add(CardRules.Predicates.wasPrintedInSet(setCode));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package forge.gui.deckeditor;
|
package forge.gui.deckeditor;
|
||||||
|
|
||||||
import forge.AllZone;
|
import forge.AllZone;
|
||||||
import forge.BoosterDraft;
|
|
||||||
import forge.Constant;
|
import forge.Constant;
|
||||||
import forge.FileUtil;
|
import forge.FileUtil;
|
||||||
import forge.HttpUtil;
|
import forge.HttpUtil;
|
||||||
@@ -11,6 +10,7 @@ import forge.card.CardPrinted;
|
|||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.deck.DeckManager;
|
import forge.deck.DeckManager;
|
||||||
import forge.error.ErrorViewer;
|
import forge.error.ErrorViewer;
|
||||||
|
import forge.game.limited.BoosterDraft;
|
||||||
import forge.gui.GuiUtils;
|
import forge.gui.GuiUtils;
|
||||||
import forge.properties.ForgeProps;
|
import forge.properties.ForgeProps;
|
||||||
import forge.properties.NewConstants;
|
import forge.properties.NewConstants;
|
||||||
@@ -44,7 +44,7 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New
|
|||||||
/**
|
/**
|
||||||
* <p>showGui.</p>
|
* <p>showGui.</p>
|
||||||
*
|
*
|
||||||
* @param in_boosterDraft a {@link forge.BoosterDraft} object.
|
* @param in_boosterDraft a {@link forge.game.limited.BoosterDraft} object.
|
||||||
*/
|
*/
|
||||||
public void showGui(BoosterDraft in_boosterDraft) {
|
public void showGui(BoosterDraft in_boosterDraft) {
|
||||||
boosterDraft = in_boosterDraft;
|
boosterDraft = in_boosterDraft;
|
||||||
@@ -97,16 +97,23 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New
|
|||||||
top.setup(columns, cardView);
|
top.setup(columns, cardView);
|
||||||
bottom.setup(columns, cardView);
|
bottom.setup(columns, cardView);
|
||||||
|
|
||||||
this.setSize(1024, 740);
|
this.setSize(980, 740);
|
||||||
GuiUtils.centerFrame(this);
|
GuiUtils.centerFrame(this);
|
||||||
this.setResizable(false);
|
this.setResizable(false);
|
||||||
|
|
||||||
|
top.getTable().addKeyListener(new KeyAdapter() {
|
||||||
|
@Override
|
||||||
|
public void keyPressed(final KeyEvent e) {
|
||||||
|
if (e.getKeyChar() == ' ') { jButton1_actionPerformed(null); }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public DeckEditorDraft() {
|
public DeckEditorDraft() {
|
||||||
try {
|
try {
|
||||||
top = new TableWithCards("Choose one card", false);
|
top = new TableWithCards("Choose one card", false);
|
||||||
bottom = new TableWithCards("Previously Picked Cards", true);
|
bottom = new TableWithCards("Previously picked cards", true);
|
||||||
filterBoxes = null;
|
filterBoxes = null;
|
||||||
cardView = new CardPanelLite();
|
cardView = new CardPanelLite();
|
||||||
jbInit();
|
jbInit();
|
||||||
@@ -124,11 +131,11 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New
|
|||||||
private void jbInit() throws Exception {
|
private void jbInit() throws Exception {
|
||||||
this.getContentPane().setLayout(null);
|
this.getContentPane().setLayout(null);
|
||||||
|
|
||||||
top.getTableDecorated().setBounds(new Rectangle(19, 28, 661, 344));
|
top.getTableDecorated().setBounds(new Rectangle(19, 28, 680, 344));
|
||||||
bottom.getTableDecorated().setBounds(new Rectangle(19, 478, 661, 184));
|
bottom.getTableDecorated().setBounds(new Rectangle(19, 478, 680, 184));
|
||||||
cardView.setBounds(new Rectangle(693, 23, 239, 665));
|
bottom.getLabel().setBounds(new Rectangle(19, 680, 665, 31));
|
||||||
|
|
||||||
bottom.getLabel().setBounds(new Rectangle(19, 665, 665, 31));
|
cardView.setBounds(new Rectangle(715, 23, 240, 666));
|
||||||
|
|
||||||
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
|
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
|
||||||
this.setTitle("Booster Draft");
|
this.setTitle("Booster Draft");
|
||||||
@@ -197,7 +204,7 @@ public class DeckEditorDraft extends DeckEditorBase implements NewConstants, New
|
|||||||
private void showChoices(CardPoolView list) {
|
private void showChoices(CardPoolView list) {
|
||||||
top.setDeck(list);
|
top.setDeck(list);
|
||||||
cardView.showCard(null);
|
cardView.showCard(null);
|
||||||
|
top.fixSelection(0);
|
||||||
}//showChoices()
|
}//showChoices()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package forge.gui.deckeditor;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import net.slightlymagic.braids.util.lambda.Lambda1;
|
import net.slightlymagic.braids.util.lambda.Lambda1;
|
||||||
import forge.SetInfoUtil;
|
import forge.SetUtils;
|
||||||
import forge.card.CardPrinted;
|
import forge.card.CardPrinted;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -71,7 +71,7 @@ public abstract class PresetColumns {
|
|||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
public static final Lambda1<Comparable, Entry<CardPrinted, Integer>> fnSetCompare =
|
public static final Lambda1<Comparable, Entry<CardPrinted, Integer>> fnSetCompare =
|
||||||
new Lambda1<Comparable, Entry<CardPrinted, Integer>>() { @Override
|
new Lambda1<Comparable, Entry<CardPrinted, Integer>>() { @Override
|
||||||
public Comparable apply(final Entry<CardPrinted, Integer> from) { return SetInfoUtil.getSetByCode(from.getKey().getSet()); } };
|
public Comparable apply(final Entry<CardPrinted, Integer> from) { return SetUtils.getSetByCode(from.getKey().getSet()); } };
|
||||||
public static final Lambda1<Object, Entry<CardPrinted, Integer>> fnSetGet =
|
public static final Lambda1<Object, Entry<CardPrinted, Integer>> fnSetGet =
|
||||||
new Lambda1<Object, Entry<CardPrinted, Integer>>() { @Override
|
new Lambda1<Object, Entry<CardPrinted, Integer>>() { @Override
|
||||||
public Object apply(final Entry<CardPrinted, Integer> from) { return from.getKey().getSet(); } };
|
public Object apply(final Entry<CardPrinted, Integer> from) { return from.getKey().getSet(); } };
|
||||||
|
|||||||
@@ -160,4 +160,5 @@ public final class TableWithCards {
|
|||||||
public CardPoolView getCards() {
|
public CardPoolView getCards() {
|
||||||
return pool;
|
return pool;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import forge.deck.DeckManager;
|
|||||||
import forge.deck.generate.*;
|
import forge.deck.generate.*;
|
||||||
import forge.error.BugzReporter;
|
import forge.error.BugzReporter;
|
||||||
import forge.error.ErrorViewer;
|
import forge.error.ErrorViewer;
|
||||||
|
import forge.game.limited.BoosterDraft_1;
|
||||||
|
import forge.game.limited.SealedDeck;
|
||||||
import forge.gui.GuiUtils;
|
import forge.gui.GuiUtils;
|
||||||
import forge.gui.ListChooser;
|
import forge.gui.ListChooser;
|
||||||
import forge.gui.deckeditor.DeckEditorDraft;
|
import forge.gui.deckeditor.DeckEditorDraft;
|
||||||
|
|||||||
Reference in New Issue
Block a user