mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Added options to disable card based deck generation and to ensure it fails gracefully if .dat data and/or decks folder is missing
This commit is contained in:
@@ -356,16 +356,22 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
|||||||
updateColors(FModel.getFormats().getModern().getFilterPrinted());
|
updateColors(FModel.getFormats().getModern().getFilterPrinted());
|
||||||
break;
|
break;
|
||||||
case STANDARD_CARDGEN_DECK:
|
case STANDARD_CARDGEN_DECK:
|
||||||
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
updateMatrix(FModel.getFormats().getStandard());
|
updateMatrix(FModel.getFormats().getStandard());
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case MODERN_CARDGEN_DECK:
|
case MODERN_CARDGEN_DECK:
|
||||||
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
updateMatrix(FModel.getFormats().getModern());
|
updateMatrix(FModel.getFormats().getModern());
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case RANDOM_COMMANDER_DECK:
|
case RANDOM_COMMANDER_DECK:
|
||||||
updateRandomCommander();
|
updateRandomCommander();
|
||||||
break;
|
break;
|
||||||
case RANDOM_CARDGEN_COMMANDER_DECK:
|
case RANDOM_CARDGEN_COMMANDER_DECK:
|
||||||
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
updateRandomCardGenCommander();
|
updateRandomCardGenCommander();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case THEME_DECK:
|
case THEME_DECK:
|
||||||
updateThemes();
|
updateThemes();
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public enum VSubmenuGauntletQuick implements IVSubmenu<CSubmenuGauntletQuick> {
|
|||||||
boxThemeDecks.setSelected(true);
|
boxThemeDecks.setSelected(true);
|
||||||
boxColorDecks.setSelected(true);
|
boxColorDecks.setSelected(true);
|
||||||
boxStandardColorDecks.setSelected(true);
|
boxStandardColorDecks.setSelected(true);
|
||||||
if(!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.LOAD_CARD_SCRIPTS_LAZILY)) {
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
boxStandardCardgenDecks.setSelected(true);
|
boxStandardCardgenDecks.setSelected(true);
|
||||||
boxModernCardgenDecks.setSelected(true);
|
boxModernCardgenDecks.setSelected(true);
|
||||||
}else{
|
}else{
|
||||||
@@ -115,7 +115,7 @@ public enum VSubmenuGauntletQuick implements IVSubmenu<CSubmenuGauntletQuick> {
|
|||||||
pnlOptions.add(boxQuestDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
pnlOptions.add(boxQuestDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||||
pnlOptions.add(boxThemeDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
pnlOptions.add(boxThemeDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||||
pnlOptions.add(boxColorDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
pnlOptions.add(boxColorDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||||
if(!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.LOAD_CARD_SCRIPTS_LAZILY)) {
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
pnlOptions.add(boxStandardCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
pnlOptions.add(boxStandardCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||||
pnlOptions.add(boxModernCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
pnlOptions.add(boxModernCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ public enum CSubmenuPreferences implements ICDoc {
|
|||||||
lstControls.add(Pair.of(view.getCbEnforceDeckLegality(), FPref.ENFORCE_DECK_LEGALITY));
|
lstControls.add(Pair.of(view.getCbEnforceDeckLegality(), FPref.ENFORCE_DECK_LEGALITY));
|
||||||
lstControls.add(Pair.of(view.getCbCloneImgSource(), FPref.UI_CLONE_MODE_SOURCE));
|
lstControls.add(Pair.of(view.getCbCloneImgSource(), FPref.UI_CLONE_MODE_SOURCE));
|
||||||
lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL));
|
lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL));
|
||||||
|
lstControls.add(Pair.of(view.getCbCardBased(), FPref.DECKGEN_CARDBASED));
|
||||||
lstControls.add(Pair.of(view.getCbRemoveArtifacts(), FPref.DECKGEN_ARTIFACTS));
|
lstControls.add(Pair.of(view.getCbRemoveArtifacts(), FPref.DECKGEN_ARTIFACTS));
|
||||||
lstControls.add(Pair.of(view.getCbSingletons(), FPref.DECKGEN_SINGLETONS));
|
lstControls.add(Pair.of(view.getCbSingletons(), FPref.DECKGEN_SINGLETONS));
|
||||||
lstControls.add(Pair.of(view.getCbEnableAICheats(), FPref.UI_ENABLE_AI_CHEATS));
|
lstControls.add(Pair.of(view.getCbEnableAICheats(), FPref.UI_ENABLE_AI_CHEATS));
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
|||||||
private final FLabel btnPlayerName = new FLabel.Builder().opaque(true).hoverable(true).text("").build();
|
private final FLabel btnPlayerName = new FLabel.Builder().opaque(true).hoverable(true).text("").build();
|
||||||
|
|
||||||
private final JCheckBox cbRemoveSmall = new OptionsCheckBox("Remove Small Creatures");
|
private final JCheckBox cbRemoveSmall = new OptionsCheckBox("Remove Small Creatures");
|
||||||
|
private final JCheckBox cbCardBased = new OptionsCheckBox("Include Card-based Deck Generation");
|
||||||
private final JCheckBox cbSingletons = new OptionsCheckBox("Singleton Mode");
|
private final JCheckBox cbSingletons = new OptionsCheckBox("Singleton Mode");
|
||||||
private final JCheckBox cbRemoveArtifacts = new OptionsCheckBox("Remove Artifacts");
|
private final JCheckBox cbRemoveArtifacts = new OptionsCheckBox("Remove Artifacts");
|
||||||
private final JCheckBox cbAnte = new OptionsCheckBox("Play for Ante");
|
private final JCheckBox cbAnte = new OptionsCheckBox("Play for Ante");
|
||||||
@@ -211,6 +212,9 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
|||||||
pnlPrefs.add(cbRemoveArtifacts, titleConstraints);
|
pnlPrefs.add(cbRemoveArtifacts, titleConstraints);
|
||||||
pnlPrefs.add(new NoteLabel("Disables artifact cards in generated decks."), descriptionConstraints);
|
pnlPrefs.add(new NoteLabel("Disables artifact cards in generated decks."), descriptionConstraints);
|
||||||
|
|
||||||
|
pnlPrefs.add(cbCardBased, titleConstraints);
|
||||||
|
pnlPrefs.add(new NoteLabel("Builds more synergistic random decks (requires restart)."), descriptionConstraints);
|
||||||
|
|
||||||
// Deck building options
|
// Deck building options
|
||||||
pnlPrefs.add(new SectionLabel("Deck Editor Options"), sectionConstraints);
|
pnlPrefs.add(new SectionLabel("Deck Editor Options"), sectionConstraints);
|
||||||
|
|
||||||
@@ -492,6 +496,11 @@ public enum VSubmenuPreferences implements IVSubmenu<CSubmenuPreferences> {
|
|||||||
return cbRemoveSmall;
|
return cbRemoveSmall;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return {@link javax.swing.JCheckBox} */
|
||||||
|
public final JCheckBox getCbCardBased() {
|
||||||
|
return cbCardBased;
|
||||||
|
}
|
||||||
|
|
||||||
/** @return {@link javax.swing.JCheckBox} */
|
/** @return {@link javax.swing.JCheckBox} */
|
||||||
public final JCheckBox getCbSingletons() {
|
public final JCheckBox getCbSingletons() {
|
||||||
return cbSingletons;
|
return cbSingletons;
|
||||||
|
|||||||
@@ -443,7 +443,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
cmbDeckTypes.addItem(DeckType.QUEST_OPPONENT_DECK);
|
cmbDeckTypes.addItem(DeckType.QUEST_OPPONENT_DECK);
|
||||||
cmbDeckTypes.addItem(DeckType.COLOR_DECK);
|
cmbDeckTypes.addItem(DeckType.COLOR_DECK);
|
||||||
cmbDeckTypes.addItem(DeckType.STANDARD_COLOR_DECK);
|
cmbDeckTypes.addItem(DeckType.STANDARD_COLOR_DECK);
|
||||||
if(!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.LOAD_CARD_SCRIPTS_LAZILY)) {
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
cmbDeckTypes.addItem(DeckType.STANDARD_CARDGEN_DECK);
|
cmbDeckTypes.addItem(DeckType.STANDARD_CARDGEN_DECK);
|
||||||
cmbDeckTypes.addItem(DeckType.MODERN_CARDGEN_DECK);
|
cmbDeckTypes.addItem(DeckType.MODERN_CARDGEN_DECK);
|
||||||
}
|
}
|
||||||
@@ -456,7 +456,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
case TinyLeaders:
|
case TinyLeaders:
|
||||||
cmbDeckTypes.addItem(DeckType.CUSTOM_DECK);
|
cmbDeckTypes.addItem(DeckType.CUSTOM_DECK);
|
||||||
cmbDeckTypes.addItem(DeckType.RANDOM_DECK);
|
cmbDeckTypes.addItem(DeckType.RANDOM_DECK);
|
||||||
if(!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.LOAD_CARD_SCRIPTS_LAZILY)) {
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
cmbDeckTypes.addItem(DeckType.RANDOM_CARDGEN_COMMANDER_DECK);
|
cmbDeckTypes.addItem(DeckType.RANDOM_CARDGEN_COMMANDER_DECK);
|
||||||
}
|
}
|
||||||
cmbDeckTypes.addItem(DeckType.RANDOM_COMMANDER_DECK);
|
cmbDeckTypes.addItem(DeckType.RANDOM_COMMANDER_DECK);
|
||||||
@@ -587,7 +587,10 @@ public class FDeckChooser extends FScreen {
|
|||||||
config = ItemManagerConfig.STRING_ONLY;
|
config = ItemManagerConfig.STRING_ONLY;
|
||||||
break;
|
break;
|
||||||
case RANDOM_CARDGEN_COMMANDER_DECK:
|
case RANDOM_CARDGEN_COMMANDER_DECK:
|
||||||
pool = CommanderDeckGenerator.getCommanderDecks(lstDecks.getGameType().getDeckFormat(),isAi, true);
|
pool= new ArrayList<>();
|
||||||
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
|
pool = CommanderDeckGenerator.getCommanderDecks(lstDecks.getGameType().getDeckFormat(), isAi, true);
|
||||||
|
}
|
||||||
config = ItemManagerConfig.STRING_ONLY;
|
config = ItemManagerConfig.STRING_ONLY;
|
||||||
break;
|
break;
|
||||||
case SCHEME_DECKS:
|
case SCHEME_DECKS:
|
||||||
@@ -618,12 +621,18 @@ public class FDeckChooser extends FScreen {
|
|||||||
break;
|
break;
|
||||||
case STANDARD_CARDGEN_DECK:
|
case STANDARD_CARDGEN_DECK:
|
||||||
maxSelections = 1;
|
maxSelections = 1;
|
||||||
|
pool= new ArrayList<>();
|
||||||
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
pool = CardThemedDeckGenerator.getMatrixDecks(FModel.getFormats().getStandard(), isAi);
|
pool = CardThemedDeckGenerator.getMatrixDecks(FModel.getFormats().getStandard(), isAi);
|
||||||
|
}
|
||||||
config = ItemManagerConfig.STRING_ONLY;
|
config = ItemManagerConfig.STRING_ONLY;
|
||||||
break;
|
break;
|
||||||
case MODERN_CARDGEN_DECK:
|
case MODERN_CARDGEN_DECK:
|
||||||
maxSelections = 1;
|
maxSelections = 1;
|
||||||
|
pool= new ArrayList<>();
|
||||||
|
if(FModel.isdeckGenMatrixLoaded()) {
|
||||||
pool = CardThemedDeckGenerator.getMatrixDecks(FModel.getFormats().getModern(), isAi);
|
pool = CardThemedDeckGenerator.getMatrixDecks(FModel.getFormats().getModern(), isAi);
|
||||||
|
}
|
||||||
config = ItemManagerConfig.STRING_ONLY;
|
config = ItemManagerConfig.STRING_ONLY;
|
||||||
break;
|
break;
|
||||||
case MODERN_COLOR_DECK:
|
case MODERN_COLOR_DECK:
|
||||||
@@ -955,7 +964,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
public void run(final Integer numOpponents) {
|
public void run(final Integer numOpponents) {
|
||||||
if (numOpponents == null) { return; }
|
if (numOpponents == null) { return; }
|
||||||
List<DeckType> deckTypes=null;
|
List<DeckType> deckTypes=null;
|
||||||
if(!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.LOAD_CARD_SCRIPTS_LAZILY)) {
|
if(!FModel.isdeckGenMatrixLoaded()) {
|
||||||
deckTypes=Arrays.asList(new DeckType[] {
|
deckTypes=Arrays.asList(new DeckType[] {
|
||||||
DeckType.CUSTOM_DECK,
|
DeckType.CUSTOM_DECK,
|
||||||
DeckType.PRECONSTRUCTED_DECK,
|
DeckType.PRECONSTRUCTED_DECK,
|
||||||
|
|||||||
@@ -155,6 +155,10 @@ public class SettingsPage extends TabPage<SettingsScreen> {
|
|||||||
"Remove Small Creatures",
|
"Remove Small Creatures",
|
||||||
"Disables 1/1 and 0/X creatures in generated decks."),
|
"Disables 1/1 and 0/X creatures in generated decks."),
|
||||||
2);
|
2);
|
||||||
|
lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_CARDBASED,
|
||||||
|
"Include Card-based Deck Generation",
|
||||||
|
"Builds more synergistic random decks"),
|
||||||
|
2);
|
||||||
lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_SINGLETONS,
|
lstSettings.addItem(new BooleanSetting(FPref.DECKGEN_SINGLETONS,
|
||||||
"Singleton Mode",
|
"Singleton Mode",
|
||||||
"Disables non-land duplicates in generated decks."),
|
"Disables non-land duplicates in generated decks."),
|
||||||
|
|||||||
@@ -27,28 +27,38 @@ public final class CardRelationMatrixGenerator {
|
|||||||
|
|
||||||
public static HashMap<String,HashMap<String,List<Map.Entry<PaperCard,Integer>>>> cardPools = new HashMap<>();
|
public static HashMap<String,HashMap<String,List<Map.Entry<PaperCard,Integer>>>> cardPools = new HashMap<>();
|
||||||
|
|
||||||
|
/** Try to load matrix .dat files, otherwise check for deck folders and build .dat, otherwise return false **/
|
||||||
|
public static boolean initialize(){
|
||||||
|
String format=FModel.getFormats().getStandard().getName();
|
||||||
|
HashMap<String,List<Map.Entry<PaperCard,Integer>>> standardMap = CardThemedMatrixIO.loadMatrix(format);
|
||||||
|
if(standardMap==null&&CardThemedMatrixIO.getMatrixFolder(format).exists()){
|
||||||
|
standardMap=initializeFormat(FModel.getFormats().getStandard());
|
||||||
|
CardThemedMatrixIO.saveMatrix(format,standardMap);
|
||||||
|
}else if(standardMap==null && !CardThemedMatrixIO.getMatrixFolder(format).exists()){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
cardPools.put(format,standardMap);
|
||||||
|
|
||||||
public static void initialize(){
|
format=FModel.getFormats().getModern().getName();
|
||||||
HashMap<String,List<Map.Entry<PaperCard,Integer>>> standardMap = CardThemedMatrixIO.loadMatrix(FModel.getFormats().getStandard().getName());
|
HashMap<String,List<Map.Entry<PaperCard,Integer>>> modernMap = CardThemedMatrixIO.loadMatrix(format);
|
||||||
HashMap<String,List<Map.Entry<PaperCard,Integer>>> modernMap = CardThemedMatrixIO.loadMatrix(FModel.getFormats().getModern().getName());
|
if(modernMap==null&&CardThemedMatrixIO.getMatrixFolder(format).exists()){
|
||||||
HashMap<String,List<Map.Entry<PaperCard,Integer>>> commanderMap = CardThemedMatrixIO.loadMatrix(DeckFormat.Commander.toString());
|
modernMap=initializeFormat(FModel.getFormats().getModern());
|
||||||
if(standardMap==null || modernMap==null || commanderMap==null){
|
CardThemedMatrixIO.saveMatrix(format,modernMap);
|
||||||
reInitialize();
|
}else if (standardMap==null && !CardThemedMatrixIO.getMatrixFolder(format).exists()){
|
||||||
return;
|
return false;
|
||||||
}
|
|
||||||
cardPools.put(FModel.getFormats().getStandard().getName(),standardMap);
|
|
||||||
cardPools.put(FModel.getFormats().getModern().getName(),modernMap);
|
|
||||||
cardPools.put(DeckFormat.Commander.toString(),commanderMap);
|
|
||||||
}
|
}
|
||||||
|
cardPools.put(format,modernMap);
|
||||||
|
|
||||||
public static void reInitialize(){
|
format=DeckFormat.Commander.toString();
|
||||||
cardPools.put(FModel.getFormats().getStandard().getName(),initializeFormat(FModel.getFormats().getStandard()));
|
HashMap<String,List<Map.Entry<PaperCard,Integer>>> commanderMap = CardThemedMatrixIO.loadMatrix(format);
|
||||||
cardPools.put(FModel.getFormats().getModern().getName(),initializeFormat(FModel.getFormats().getModern()));
|
if(commanderMap==null&&CardThemedMatrixIO.getMatrixFolder(format).exists()){
|
||||||
cardPools.put(DeckFormat.Commander.toString(),initializeCommanderFormat());
|
commanderMap=initializeCommanderFormat();
|
||||||
for(String format:cardPools.keySet()){
|
CardThemedMatrixIO.saveMatrix(format,commanderMap);
|
||||||
HashMap<String,List<Map.Entry<PaperCard,Integer>>> map = cardPools.get(format);
|
}else if(standardMap==null && !CardThemedMatrixIO.getMatrixFolder(format).exists()){
|
||||||
CardThemedMatrixIO.saveMatrix(format,map);
|
return false;
|
||||||
}
|
}
|
||||||
|
cardPools.put(format,commanderMap);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HashMap<String,List<Map.Entry<PaperCard,Integer>>> initializeFormat(GameFormat format){
|
public static HashMap<String,List<Map.Entry<PaperCard,Integer>>> initializeFormat(GameFormat format){
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public enum DeckType {
|
|||||||
public static DeckType[] CommanderOptions;
|
public static DeckType[] CommanderOptions;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
if (!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.LOAD_CARD_SCRIPTS_LAZILY)) {
|
if (FModel.isdeckGenMatrixLoaded()) {
|
||||||
ConstructedOptions = new DeckType[]{
|
ConstructedOptions = new DeckType[]{
|
||||||
DeckType.CUSTOM_DECK,
|
DeckType.CUSTOM_DECK,
|
||||||
DeckType.PRECONSTRUCTED_DECK,
|
DeckType.PRECONSTRUCTED_DECK,
|
||||||
@@ -59,7 +59,7 @@ public enum DeckType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
static {
|
static {
|
||||||
if (!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.LOAD_CARD_SCRIPTS_LAZILY)) {
|
if (FModel.isdeckGenMatrixLoaded()) {
|
||||||
CommanderOptions = new DeckType[]{
|
CommanderOptions = new DeckType[]{
|
||||||
DeckType.COMMANDER_DECK,
|
DeckType.COMMANDER_DECK,
|
||||||
DeckType.RANDOM_COMMANDER_DECK,
|
DeckType.RANDOM_COMMANDER_DECK,
|
||||||
|
|||||||
@@ -61,6 +61,10 @@ public class CardThemedMatrixIO {
|
|||||||
return new File(ForgeConstants.DECK_GEN_DIR, name + SUFFIX_DATA);
|
return new File(ForgeConstants.DECK_GEN_DIR, name + SUFFIX_DATA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static File getMatrixFolder(final String name) {
|
||||||
|
return new File(ForgeConstants.DECK_GEN_DIR, name);
|
||||||
|
}
|
||||||
|
|
||||||
public static File getMatrixFile(final GameFormat gf) {
|
public static File getMatrixFile(final GameFormat gf) {
|
||||||
return getMatrixFile(gf.getName());
|
return getMatrixFile(gf.getName());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ import forge.ai.AiProfileUtil;
|
|||||||
import forge.card.CardPreferences;
|
import forge.card.CardPreferences;
|
||||||
import forge.card.CardType;
|
import forge.card.CardType;
|
||||||
import forge.deck.CardRelationMatrixGenerator;
|
import forge.deck.CardRelationMatrixGenerator;
|
||||||
|
import forge.deck.DeckFormat;
|
||||||
|
import forge.deck.io.CardThemedMatrixIO;
|
||||||
import forge.deck.io.DeckPreferences;
|
import forge.deck.io.DeckPreferences;
|
||||||
import forge.game.GameFormat;
|
import forge.game.GameFormat;
|
||||||
import forge.game.GameType;
|
import forge.game.GameType;
|
||||||
@@ -216,11 +218,18 @@ public final class FModel {
|
|||||||
AiProfileUtil.loadAllProfiles(ForgeConstants.AI_PROFILE_DIR);
|
AiProfileUtil.loadAllProfiles(ForgeConstants.AI_PROFILE_DIR);
|
||||||
|
|
||||||
//generate Deck Gen matrix
|
//generate Deck Gen matrix
|
||||||
if(!FModel.getPreferences().getPrefBoolean(FPref.LOAD_CARD_SCRIPTS_LAZILY)) {
|
if(!FModel.getPreferences().getPrefBoolean(FPref.LOAD_CARD_SCRIPTS_LAZILY)
|
||||||
CardRelationMatrixGenerator.initialize();
|
&&FModel.getPreferences().getPrefBoolean(FPref.DECKGEN_CARDBASED)) {
|
||||||
|
deckGenMatrixLoaded=CardRelationMatrixGenerator.initialize();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean deckGenMatrixLoaded=false;
|
||||||
|
|
||||||
|
public static boolean isdeckGenMatrixLoaded(){
|
||||||
|
return deckGenMatrixLoaded;
|
||||||
|
}
|
||||||
|
|
||||||
public static QuestController getQuest() {
|
public static QuestController getQuest() {
|
||||||
return quest;
|
return quest;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,6 +156,7 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
|
|||||||
DECKGEN_SINGLETONS ("false"),
|
DECKGEN_SINGLETONS ("false"),
|
||||||
DECKGEN_ARTIFACTS ("false"),
|
DECKGEN_ARTIFACTS ("false"),
|
||||||
DECKGEN_NOSMALL ("false"),
|
DECKGEN_NOSMALL ("false"),
|
||||||
|
DECKGEN_CARDBASED ("true"),
|
||||||
|
|
||||||
PHASE_AI_UPKEEP ("false"),
|
PHASE_AI_UPKEEP ("false"),
|
||||||
PHASE_AI_DRAW ("false"),
|
PHASE_AI_DRAW ("false"),
|
||||||
|
|||||||
Reference in New Issue
Block a user