mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
Improve logic for which quest screen gets opened
This commit is contained in:
@@ -10,6 +10,7 @@ import forge.screens.constructed.ConstructedScreen;
|
|||||||
import forge.screens.draft.DraftScreen;
|
import forge.screens.draft.DraftScreen;
|
||||||
import forge.screens.gauntlet.GauntletScreen;
|
import forge.screens.gauntlet.GauntletScreen;
|
||||||
import forge.screens.quest.QuestMenu;
|
import forge.screens.quest.QuestMenu;
|
||||||
|
import forge.screens.quest.QuestMenu.LaunchReason;
|
||||||
import forge.screens.sealed.SealedScreen;
|
import forge.screens.sealed.SealedScreen;
|
||||||
import forge.screens.settings.SettingsScreen;
|
import forge.screens.settings.SettingsScreen;
|
||||||
import forge.toolbox.FButton;
|
import forge.toolbox.FButton;
|
||||||
@@ -46,7 +47,7 @@ public class HomeScreen extends FScreen {
|
|||||||
addButton("Quest Mode", new FEventHandler() {
|
addButton("Quest Mode", new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
QuestMenu.launchQuestMode(false);
|
QuestMenu.launchQuestMode(LaunchReason.StartQuestMode);
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
addButton("Gauntlets", new FEventHandler() {
|
addButton("Gauntlets", new FEventHandler() {
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import forge.quest.data.QuestData;
|
|||||||
import forge.quest.data.QuestPreferences.QPref;
|
import forge.quest.data.QuestPreferences.QPref;
|
||||||
import forge.quest.io.QuestDataIO;
|
import forge.quest.io.QuestDataIO;
|
||||||
import forge.screens.FScreen;
|
import forge.screens.FScreen;
|
||||||
|
import forge.screens.quest.QuestMenu.LaunchReason;
|
||||||
import forge.screens.settings.SettingsScreen;
|
import forge.screens.settings.SettingsScreen;
|
||||||
import forge.toolbox.FButton;
|
import forge.toolbox.FButton;
|
||||||
import forge.toolbox.FEvent;
|
import forge.toolbox.FEvent;
|
||||||
@@ -167,7 +168,7 @@ public class LoadQuestScreen extends FScreen {
|
|||||||
FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST,
|
FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST,
|
||||||
lstQuests.getSelectedQuest().getName() + ".dat");
|
lstQuests.getSelectedQuest().getName() + ".dat");
|
||||||
FModel.getQuestPreferences().save();
|
FModel.getQuestPreferences().save();
|
||||||
QuestMenu.launchQuestMode(true);
|
QuestMenu.launchQuestMode(LaunchReason.LoadQuest);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renameQuest(final QuestData quest) {
|
private void renameQuest(final QuestData quest) {
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import forge.quest.data.GameFormatQuest;
|
|||||||
import forge.quest.data.QuestPreferences.QPref;
|
import forge.quest.data.QuestPreferences.QPref;
|
||||||
import forge.screens.FScreen;
|
import forge.screens.FScreen;
|
||||||
import forge.screens.LoadingOverlay;
|
import forge.screens.LoadingOverlay;
|
||||||
|
import forge.screens.quest.QuestMenu.LaunchReason;
|
||||||
import forge.toolbox.FCheckBox;
|
import forge.toolbox.FCheckBox;
|
||||||
import forge.toolbox.FComboBox;
|
import forge.toolbox.FComboBox;
|
||||||
import forge.toolbox.FDisplayObject;
|
import forge.toolbox.FDisplayObject;
|
||||||
@@ -536,7 +537,7 @@ public class NewQuestScreen extends FScreen {
|
|||||||
FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST, questName + ".dat");
|
FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST, questName + ".dat");
|
||||||
FModel.getQuestPreferences().save();
|
FModel.getQuestPreferences().save();
|
||||||
|
|
||||||
QuestMenu.launchQuestMode(true); //launch quest mode for new quest
|
QuestMenu.launchQuestMode(LaunchReason.NewQuest); //launch quest mode for new quest
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,7 +118,13 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats {
|
|||||||
private QuestMenu() {
|
private QuestMenu() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void launchQuestMode(final boolean fromQuestChange) {
|
public enum LaunchReason {
|
||||||
|
StartQuestMode,
|
||||||
|
LoadQuest,
|
||||||
|
NewQuest
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void launchQuestMode(final LaunchReason reason) {
|
||||||
//attempt to load current quest
|
//attempt to load current quest
|
||||||
final File dirQuests = new File(ForgeConstants.QUEST_SAVE_DIR);
|
final File dirQuests = new File(ForgeConstants.QUEST_SAVE_DIR);
|
||||||
final String questname = FModel.getQuestPreferences().getPref(QPref.CURRENT_QUEST);
|
final String questname = FModel.getQuestPreferences().getPref(QPref.CURRENT_QUEST);
|
||||||
@@ -128,15 +134,31 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
FModel.getQuest().load(QuestDataIO.loadData(data));
|
FModel.getQuest().load(QuestDataIO.loadData(data));
|
||||||
if (fromQuestChange) {
|
if (reason == LaunchReason.StartQuestMode) {
|
||||||
|
if (QuestUtil.getCurrentDeck() == null) {
|
||||||
|
Forge.openScreen(decksScreen); //if quest doesn't have a deck specified, open decks screen by default
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Forge.openScreen(duelsScreen); //TODO: Consider opening most recent quest view
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
duelsScreen.update();
|
duelsScreen.update();
|
||||||
challengesScreen.update();
|
challengesScreen.update();
|
||||||
tournamentsScreen.update();
|
tournamentsScreen.update();
|
||||||
decksScreen.refreshDecks();
|
decksScreen.refreshDecks();
|
||||||
|
if (reason == LaunchReason.LoadQuest) {
|
||||||
Forge.back();
|
Forge.back();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Forge.openScreen(duelsScreen); //TODO: Consider opening most recent quest view
|
Forge.back();
|
||||||
|
if (Forge.getCurrentScreen() instanceof LoadQuestScreen) {
|
||||||
|
Forge.back(); //remove LoadQuestScreen from screen stack
|
||||||
|
}
|
||||||
|
if (Forge.getCurrentScreen() != decksScreen) {
|
||||||
|
Forge.openScreen(decksScreen); //open deck screen for new quest
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user