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:
austinio7116
2018-02-26 23:54:27 +00:00
committed by maustin
parent 9cb1f2787c
commit aaf27f2d60
11 changed files with 87 additions and 34 deletions

View File

@@ -443,7 +443,7 @@ public class FDeckChooser extends FScreen {
cmbDeckTypes.addItem(DeckType.QUEST_OPPONENT_DECK);
cmbDeckTypes.addItem(DeckType.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.MODERN_CARDGEN_DECK);
}
@@ -456,7 +456,7 @@ public class FDeckChooser extends FScreen {
case TinyLeaders:
cmbDeckTypes.addItem(DeckType.CUSTOM_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_COMMANDER_DECK);
@@ -587,7 +587,10 @@ public class FDeckChooser extends FScreen {
config = ItemManagerConfig.STRING_ONLY;
break;
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;
break;
case SCHEME_DECKS:
@@ -618,12 +621,18 @@ public class FDeckChooser extends FScreen {
break;
case STANDARD_CARDGEN_DECK:
maxSelections = 1;
pool = CardThemedDeckGenerator.getMatrixDecks(FModel.getFormats().getStandard(), isAi);
pool= new ArrayList<>();
if(FModel.isdeckGenMatrixLoaded()) {
pool = CardThemedDeckGenerator.getMatrixDecks(FModel.getFormats().getStandard(), isAi);
}
config = ItemManagerConfig.STRING_ONLY;
break;
case MODERN_CARDGEN_DECK:
maxSelections = 1;
pool = CardThemedDeckGenerator.getMatrixDecks(FModel.getFormats().getModern(), isAi);
pool= new ArrayList<>();
if(FModel.isdeckGenMatrixLoaded()) {
pool = CardThemedDeckGenerator.getMatrixDecks(FModel.getFormats().getModern(), isAi);
}
config = ItemManagerConfig.STRING_ONLY;
break;
case MODERN_COLOR_DECK:
@@ -955,7 +964,7 @@ public class FDeckChooser extends FScreen {
public void run(final Integer numOpponents) {
if (numOpponents == null) { return; }
List<DeckType> deckTypes=null;
if(!FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.LOAD_CARD_SCRIPTS_LAZILY)) {
if(!FModel.isdeckGenMatrixLoaded()) {
deckTypes=Arrays.asList(new DeckType[] {
DeckType.CUSTOM_DECK,
DeckType.PRECONSTRUCTED_DECK,

View File

@@ -155,6 +155,10 @@ public class SettingsPage extends TabPage<SettingsScreen> {
"Remove Small Creatures",
"Disables 1/1 and 0/X creatures in generated decks."),
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,
"Singleton Mode",
"Disables non-land duplicates in generated decks."),