mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Quest menu update
This commit is contained in:
@@ -4,17 +4,7 @@
|
|||||||
package forge.gui.framework;
|
package forge.gui.framework;
|
||||||
|
|
||||||
import com.google.common.collect.ObjectArrays;
|
import com.google.common.collect.ObjectArrays;
|
||||||
|
import forge.screens.deckeditor.views.*;
|
||||||
import forge.screens.deckeditor.views.VAllDecks;
|
|
||||||
import forge.screens.deckeditor.views.VBrawlDecks;
|
|
||||||
import forge.screens.deckeditor.views.VCardCatalog;
|
|
||||||
import forge.screens.deckeditor.views.VCommanderDecks;
|
|
||||||
import forge.screens.deckeditor.views.VCurrentDeck;
|
|
||||||
import forge.screens.deckeditor.views.VDeckgen;
|
|
||||||
import forge.screens.deckeditor.views.VProbabilities;
|
|
||||||
import forge.screens.deckeditor.views.VStatistics;
|
|
||||||
import forge.screens.deckeditor.views.VTinyLeadersDecks;
|
|
||||||
import forge.screens.deckeditor.views.VOathbreakerDecks;
|
|
||||||
import forge.screens.home.gauntlet.VSubmenuGauntletBuild;
|
import forge.screens.home.gauntlet.VSubmenuGauntletBuild;
|
||||||
import forge.screens.home.gauntlet.VSubmenuGauntletContests;
|
import forge.screens.home.gauntlet.VSubmenuGauntletContests;
|
||||||
import forge.screens.home.gauntlet.VSubmenuGauntletLoad;
|
import forge.screens.home.gauntlet.VSubmenuGauntletLoad;
|
||||||
@@ -22,21 +12,12 @@ import forge.screens.home.gauntlet.VSubmenuGauntletQuick;
|
|||||||
import forge.screens.home.online.VSubmenuOnlineLobby;
|
import forge.screens.home.online.VSubmenuOnlineLobby;
|
||||||
import forge.screens.home.puzzle.VSubmenuPuzzleCreate;
|
import forge.screens.home.puzzle.VSubmenuPuzzleCreate;
|
||||||
import forge.screens.home.puzzle.VSubmenuPuzzleSolve;
|
import forge.screens.home.puzzle.VSubmenuPuzzleSolve;
|
||||||
import forge.screens.home.quest.VSubmenuChallenges;
|
import forge.screens.home.quest.*;
|
||||||
import forge.screens.home.quest.VSubmenuDuels;
|
|
||||||
import forge.screens.home.quest.VSubmenuQuestData;
|
|
||||||
import forge.screens.home.quest.VSubmenuQuestDecks;
|
|
||||||
import forge.screens.home.quest.VSubmenuQuestDraft;
|
|
||||||
import forge.screens.home.quest.VSubmenuQuestPrefs;
|
|
||||||
import forge.screens.home.sanctioned.VSubmenuConstructed;
|
import forge.screens.home.sanctioned.VSubmenuConstructed;
|
||||||
import forge.screens.home.sanctioned.VSubmenuDraft;
|
import forge.screens.home.sanctioned.VSubmenuDraft;
|
||||||
import forge.screens.home.sanctioned.VSubmenuSealed;
|
import forge.screens.home.sanctioned.VSubmenuSealed;
|
||||||
import forge.screens.home.sanctioned.VSubmenuWinston;
|
import forge.screens.home.sanctioned.VSubmenuWinston;
|
||||||
import forge.screens.home.settings.VSubmenuAchievements;
|
import forge.screens.home.settings.*;
|
||||||
import forge.screens.home.settings.VSubmenuAvatars;
|
|
||||||
import forge.screens.home.settings.VSubmenuDownloaders;
|
|
||||||
import forge.screens.home.settings.VSubmenuPreferences;
|
|
||||||
import forge.screens.home.settings.VSubmenuReleaseNotes;
|
|
||||||
import forge.screens.workshop.views.VCardDesigner;
|
import forge.screens.workshop.views.VCardDesigner;
|
||||||
import forge.screens.workshop.views.VCardScript;
|
import forge.screens.workshop.views.VCardScript;
|
||||||
import forge.screens.workshop.views.VWorkshopCatalog;
|
import forge.screens.workshop.views.VWorkshopCatalog;
|
||||||
@@ -67,10 +48,11 @@ public enum EDocID {
|
|||||||
WORKSHOP_CARDDESIGNER (VCardDesigner.SINGLETON_INSTANCE),
|
WORKSHOP_CARDDESIGNER (VCardDesigner.SINGLETON_INSTANCE),
|
||||||
WORKSHOP_CARDSCRIPT (VCardScript.SINGLETON_INSTANCE),
|
WORKSHOP_CARDSCRIPT (VCardScript.SINGLETON_INSTANCE),
|
||||||
|
|
||||||
|
HOME_QUESTSTART (VSubmenuQuestStart.SINGLETON_INSTANCE),
|
||||||
|
HOME_QUESTLOADDATA(VSubmenuQuestLoadData.SINGLETON_INSTANCE),
|
||||||
HOME_QUESTDRAFTS (VSubmenuQuestDraft.SINGLETON_INSTANCE),
|
HOME_QUESTDRAFTS (VSubmenuQuestDraft.SINGLETON_INSTANCE),
|
||||||
HOME_QUESTCHALLENGES (VSubmenuChallenges.SINGLETON_INSTANCE),
|
HOME_QUESTCHALLENGES (VSubmenuChallenges.SINGLETON_INSTANCE),
|
||||||
HOME_QUESTDUELS (VSubmenuDuels.SINGLETON_INSTANCE),
|
HOME_QUESTDUELS (VSubmenuDuels.SINGLETON_INSTANCE),
|
||||||
HOME_QUESTDATA (VSubmenuQuestData.SINGLETON_INSTANCE),
|
|
||||||
HOME_QUESTDECKS (VSubmenuQuestDecks.SINGLETON_INSTANCE),
|
HOME_QUESTDECKS (VSubmenuQuestDecks.SINGLETON_INSTANCE),
|
||||||
HOME_QUESTPREFS (VSubmenuQuestPrefs.SINGLETON_INSTANCE),
|
HOME_QUESTPREFS (VSubmenuQuestPrefs.SINGLETON_INSTANCE),
|
||||||
HOME_GAUNTLETBUILD (VSubmenuGauntletBuild.SINGLETON_INSTANCE),
|
HOME_GAUNTLETBUILD (VSubmenuGauntletBuild.SINGLETON_INSTANCE),
|
||||||
|
|||||||
@@ -17,31 +17,9 @@
|
|||||||
*/
|
*/
|
||||||
package forge.screens.home;
|
package forge.screens.home;
|
||||||
|
|
||||||
import java.awt.Dimension;
|
|
||||||
import java.awt.Graphics;
|
|
||||||
import java.awt.Graphics2D;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.SortedMap;
|
|
||||||
import java.util.TreeMap;
|
|
||||||
|
|
||||||
import javax.swing.JLabel;
|
|
||||||
import javax.swing.JPanel;
|
|
||||||
import javax.swing.ScrollPaneConstants;
|
|
||||||
import javax.swing.SwingConstants;
|
|
||||||
|
|
||||||
import forge.screens.home.puzzle.VSubmenuPuzzleCreate;
|
|
||||||
import forge.screens.home.puzzle.VSubmenuPuzzleSolve;
|
|
||||||
import net.miginfocom.swing.MigLayout;
|
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.assets.FSkinProp;
|
import forge.assets.FSkinProp;
|
||||||
import forge.gui.framework.EDocID;
|
import forge.gui.framework.*;
|
||||||
import forge.gui.framework.FScreen;
|
|
||||||
import forge.gui.framework.ICDoc;
|
|
||||||
import forge.gui.framework.ILocalRepaint;
|
|
||||||
import forge.gui.framework.IVTopLevelUI;
|
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
import forge.screens.home.gauntlet.VSubmenuGauntletBuild;
|
import forge.screens.home.gauntlet.VSubmenuGauntletBuild;
|
||||||
@@ -49,26 +27,25 @@ import forge.screens.home.gauntlet.VSubmenuGauntletContests;
|
|||||||
import forge.screens.home.gauntlet.VSubmenuGauntletLoad;
|
import forge.screens.home.gauntlet.VSubmenuGauntletLoad;
|
||||||
import forge.screens.home.gauntlet.VSubmenuGauntletQuick;
|
import forge.screens.home.gauntlet.VSubmenuGauntletQuick;
|
||||||
import forge.screens.home.online.VSubmenuOnlineLobby;
|
import forge.screens.home.online.VSubmenuOnlineLobby;
|
||||||
import forge.screens.home.quest.VSubmenuChallenges;
|
import forge.screens.home.puzzle.VSubmenuPuzzleCreate;
|
||||||
import forge.screens.home.quest.VSubmenuDuels;
|
import forge.screens.home.puzzle.VSubmenuPuzzleSolve;
|
||||||
import forge.screens.home.quest.VSubmenuQuestData;
|
import forge.screens.home.quest.*;
|
||||||
import forge.screens.home.quest.VSubmenuQuestDecks;
|
|
||||||
import forge.screens.home.quest.VSubmenuQuestDraft;
|
|
||||||
import forge.screens.home.quest.VSubmenuQuestPrefs;
|
|
||||||
import forge.screens.home.sanctioned.VSubmenuConstructed;
|
import forge.screens.home.sanctioned.VSubmenuConstructed;
|
||||||
import forge.screens.home.sanctioned.VSubmenuDraft;
|
import forge.screens.home.sanctioned.VSubmenuDraft;
|
||||||
import forge.screens.home.sanctioned.VSubmenuSealed;
|
import forge.screens.home.sanctioned.VSubmenuSealed;
|
||||||
import forge.screens.home.settings.VSubmenuAchievements;
|
import forge.screens.home.settings.*;
|
||||||
import forge.screens.home.settings.VSubmenuAvatars;
|
|
||||||
import forge.screens.home.settings.VSubmenuDownloaders;
|
|
||||||
import forge.screens.home.settings.VSubmenuPreferences;
|
|
||||||
import forge.screens.home.settings.VSubmenuReleaseNotes;
|
|
||||||
import forge.toolbox.FLabel;
|
import forge.toolbox.FLabel;
|
||||||
import forge.toolbox.FScrollPanel;
|
import forge.toolbox.FScrollPanel;
|
||||||
import forge.toolbox.FSkin;
|
import forge.toolbox.FSkin;
|
||||||
import forge.toolbox.FSkin.SkinColor;
|
import forge.toolbox.FSkin.SkinColor;
|
||||||
import forge.toolbox.FSkin.SkinnedPanel;
|
import forge.toolbox.FSkin.SkinnedPanel;
|
||||||
import forge.view.FView;
|
import forge.view.FView;
|
||||||
|
import net.miginfocom.swing.MigLayout;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Top level view class for home UI drag layout.<br>
|
* Top level view class for home UI drag layout.<br>
|
||||||
@@ -122,11 +99,12 @@ public enum VHomeUI implements IVTopLevelUI {
|
|||||||
|
|
||||||
allSubmenus.add(VSubmenuOnlineLobby.SINGLETON_INSTANCE);
|
allSubmenus.add(VSubmenuOnlineLobby.SINGLETON_INSTANCE);
|
||||||
|
|
||||||
|
allSubmenus.add(VSubmenuQuestStart.SINGLETON_INSTANCE);
|
||||||
|
allSubmenus.add(VSubmenuQuestLoadData.SINGLETON_INSTANCE);
|
||||||
|
allSubmenus.add(VSubmenuQuestDecks.SINGLETON_INSTANCE);
|
||||||
allSubmenus.add(VSubmenuDuels.SINGLETON_INSTANCE);
|
allSubmenus.add(VSubmenuDuels.SINGLETON_INSTANCE);
|
||||||
allSubmenus.add(VSubmenuChallenges.SINGLETON_INSTANCE);
|
allSubmenus.add(VSubmenuChallenges.SINGLETON_INSTANCE);
|
||||||
allSubmenus.add(VSubmenuQuestDraft.SINGLETON_INSTANCE);
|
allSubmenus.add(VSubmenuQuestDraft.SINGLETON_INSTANCE);
|
||||||
allSubmenus.add(VSubmenuQuestDecks.SINGLETON_INSTANCE);
|
|
||||||
allSubmenus.add(VSubmenuQuestData.SINGLETON_INSTANCE);
|
|
||||||
allSubmenus.add(VSubmenuQuestPrefs.SINGLETON_INSTANCE);
|
allSubmenus.add(VSubmenuQuestPrefs.SINGLETON_INSTANCE);
|
||||||
|
|
||||||
allSubmenus.add(VSubmenuGauntletQuick.SINGLETON_INSTANCE);
|
allSubmenus.add(VSubmenuGauntletQuick.SINGLETON_INSTANCE);
|
||||||
|
|||||||
@@ -0,0 +1,134 @@
|
|||||||
|
package forge.screens.home.quest;
|
||||||
|
|
||||||
|
import forge.UiCommand;
|
||||||
|
import forge.gui.framework.ICDoc;
|
||||||
|
import forge.model.FModel;
|
||||||
|
import forge.properties.ForgeConstants;
|
||||||
|
import forge.quest.QuestController;
|
||||||
|
import forge.quest.data.QuestData;
|
||||||
|
import forge.quest.data.QuestPreferences.QPref;
|
||||||
|
import forge.quest.io.QuestDataIO;
|
||||||
|
import forge.screens.bazaar.CBazaarUI;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FilenameFilter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Controls the quest data submenu in the home UI.
|
||||||
|
*
|
||||||
|
* <br><br><i>(C at beginning of class name denotes a control class.)</i>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public enum CSubmenuQuestLoadData implements ICDoc {
|
||||||
|
SINGLETON_INSTANCE;
|
||||||
|
|
||||||
|
private final Map<String, QuestData> arrQuests = new HashMap<>();
|
||||||
|
|
||||||
|
private final UiCommand cmdQuestSelect = new UiCommand() {
|
||||||
|
@Override public void run() {
|
||||||
|
changeQuest();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private final UiCommand cmdQuestUpdate = new UiCommand() {
|
||||||
|
@Override public void run() {
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void register() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.control.home.IControlSubmenu#update()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void initialize() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.control.home.IControlSubmenu#update()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void update() {
|
||||||
|
|
||||||
|
final VSubmenuQuestLoadData view = VSubmenuQuestLoadData.SINGLETON_INSTANCE;
|
||||||
|
final File dirQuests = new File(ForgeConstants.QUEST_SAVE_DIR);
|
||||||
|
final QuestController qc = FModel.getQuest();
|
||||||
|
ArrayList<String> restorableQuests = new ArrayList<>();
|
||||||
|
|
||||||
|
// Iterate over files and load quest data for each.
|
||||||
|
final FilenameFilter takeDatFiles = new FilenameFilter() {
|
||||||
|
@Override
|
||||||
|
public boolean accept(final File dir, final String name) {
|
||||||
|
return name.endsWith(".dat");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
final File[] arrFiles = dirQuests.listFiles(takeDatFiles);
|
||||||
|
arrQuests.clear();
|
||||||
|
for (final File f : arrFiles) {
|
||||||
|
try {
|
||||||
|
System.out.println(String.format("About to load quest (%s)... ", f.getName()));
|
||||||
|
arrQuests.put(f.getName(), QuestDataIO.loadData(f));
|
||||||
|
} catch(IOException ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
System.out.println(String.format("Error loading quest data (%s).. skipping for now..", f.getName()));
|
||||||
|
restorableQuests.add(f.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Populate list with available quest data.
|
||||||
|
view.getLstQuests().setQuests(new ArrayList<>(arrQuests.values()));
|
||||||
|
|
||||||
|
// If there are quests available, force select.
|
||||||
|
if (!arrQuests.isEmpty()) {
|
||||||
|
final String questName = FModel.getQuestPreferences().getPref(QPref.CURRENT_QUEST);
|
||||||
|
|
||||||
|
// Attempt to select previous quest.
|
||||||
|
if (arrQuests.get(questName) != null) {
|
||||||
|
view.getLstQuests().setSelectedQuestData(arrQuests.get(questName));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
view.getLstQuests().setSelectedIndex(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Drop into AllZone.
|
||||||
|
qc.load(view.getLstQuests().getSelectedQuest());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
qc.load(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
view.getLstQuests().setSelectCommand(cmdQuestSelect);
|
||||||
|
view.getLstQuests().setDeleteCommand(cmdQuestUpdate);
|
||||||
|
view.getLstQuests().setEditCommand(cmdQuestUpdate);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Changes between quest data files. */
|
||||||
|
private void changeQuest() {
|
||||||
|
|
||||||
|
FModel.getQuest().load(VSubmenuQuestLoadData.SINGLETON_INSTANCE.getLstQuests().getSelectedQuest());
|
||||||
|
|
||||||
|
// Save in preferences.
|
||||||
|
FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST, FModel.getQuest().getName() + ".dat");
|
||||||
|
FModel.getQuestPreferences().save();
|
||||||
|
|
||||||
|
CSubmenuDuels.SINGLETON_INSTANCE.update();
|
||||||
|
CSubmenuChallenges.SINGLETON_INSTANCE.update();
|
||||||
|
CSubmenuQuestDecks.SINGLETON_INSTANCE.update();
|
||||||
|
CSubmenuQuestDraft.SINGLETON_INSTANCE.update();
|
||||||
|
CBazaarUI.SINGLETON_INSTANCE.update();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, QuestData> getAllQuests() {
|
||||||
|
return arrQuests;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -7,24 +7,16 @@ import forge.game.GameFormat;
|
|||||||
import forge.gui.framework.ICDoc;
|
import forge.gui.framework.ICDoc;
|
||||||
import forge.item.PaperCard;
|
import forge.item.PaperCard;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
import forge.properties.ForgeConstants;
|
|
||||||
import forge.quest.*;
|
import forge.quest.*;
|
||||||
import forge.quest.StartingPoolPreferences.PoolType;
|
|
||||||
import forge.quest.data.DeckConstructionRules;
|
import forge.quest.data.DeckConstructionRules;
|
||||||
import forge.quest.data.GameFormatQuest;
|
import forge.quest.data.GameFormatQuest;
|
||||||
import forge.quest.data.QuestData;
|
import forge.quest.data.QuestData;
|
||||||
import forge.quest.data.QuestPreferences.QPref;
|
import forge.quest.data.QuestPreferences;
|
||||||
import forge.quest.io.QuestDataIO;
|
import forge.screens.home.CHomeUI;
|
||||||
import forge.screens.bazaar.CBazaarUI;
|
|
||||||
import forge.toolbox.FOptionPane;
|
import forge.toolbox.FOptionPane;
|
||||||
import forge.util.Localizer;
|
import forge.util.Localizer;
|
||||||
|
|
||||||
import javax.swing.*;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FilenameFilter;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.Map.Entry;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls the quest data submenu in the home UI.
|
* Controls the quest data submenu in the home UI.
|
||||||
@@ -33,28 +25,17 @@ import java.util.Map.Entry;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public enum CSubmenuQuestData implements ICDoc {
|
public enum CSubmenuQuestStart implements ICDoc {
|
||||||
SINGLETON_INSTANCE;
|
SINGLETON_INSTANCE;
|
||||||
|
|
||||||
private final Map<String, QuestData> arrQuests = new HashMap<>();
|
private final Map<String, QuestData> arrQuests = new HashMap<>();
|
||||||
|
|
||||||
private final VSubmenuQuestData view = VSubmenuQuestData.SINGLETON_INSTANCE;
|
private final VSubmenuQuestStart view = VSubmenuQuestStart.SINGLETON_INSTANCE;
|
||||||
private final List<String> customFormatCodes = new ArrayList<>();
|
private final List<String> customFormatCodes = new ArrayList<>();
|
||||||
private final List<String> customPrizeFormatCodes = new ArrayList<>();
|
private final List<String> customPrizeFormatCodes = new ArrayList<>();
|
||||||
|
|
||||||
private final UiCommand cmdQuestSelect = new UiCommand() {
|
|
||||||
@Override public void run() {
|
|
||||||
changeQuest();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
private final UiCommand cmdQuestUpdate = new UiCommand() {
|
|
||||||
@Override public void run() {
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private List<Byte> preferredColors = new ArrayList<>();
|
private List<Byte> preferredColors = new ArrayList<>();
|
||||||
private PoolType poolType = PoolType.BALANCED;
|
private StartingPoolPreferences.PoolType poolType = StartingPoolPreferences.PoolType.BALANCED;
|
||||||
private boolean includeArtifacts = true;
|
private boolean includeArtifacts = true;
|
||||||
private int numberOfBoosters = 0;
|
private int numberOfBoosters = 0;
|
||||||
|
|
||||||
@@ -166,65 +147,6 @@ public enum CSubmenuQuestData implements ICDoc {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void update() {
|
public void update() {
|
||||||
|
|
||||||
final VSubmenuQuestData view = VSubmenuQuestData.SINGLETON_INSTANCE;
|
|
||||||
final File dirQuests = new File(ForgeConstants.QUEST_SAVE_DIR);
|
|
||||||
final QuestController qc = FModel.getQuest();
|
|
||||||
ArrayList<String> restorableQuests = new ArrayList<>();
|
|
||||||
|
|
||||||
// Iterate over files and load quest data for each.
|
|
||||||
final FilenameFilter takeDatFiles = new FilenameFilter() {
|
|
||||||
@Override
|
|
||||||
public boolean accept(final File dir, final String name) {
|
|
||||||
return name.endsWith(".dat");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
final File[] arrFiles = dirQuests.listFiles(takeDatFiles);
|
|
||||||
arrQuests.clear();
|
|
||||||
for (final File f : arrFiles) {
|
|
||||||
try {
|
|
||||||
System.out.println(String.format("About to load quest (%s)... ", f.getName()));
|
|
||||||
arrQuests.put(f.getName(), QuestDataIO.loadData(f));
|
|
||||||
} catch(IOException ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
System.out.println(String.format("Error loading quest data (%s).. skipping for now..", f.getName()));
|
|
||||||
restorableQuests.add(f.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Populate list with available quest data.
|
|
||||||
view.getLstQuests().setQuests(new ArrayList<>(arrQuests.values()));
|
|
||||||
|
|
||||||
// If there are quests available, force select.
|
|
||||||
if (!arrQuests.isEmpty()) {
|
|
||||||
final String questName = FModel.getQuestPreferences().getPref(QPref.CURRENT_QUEST);
|
|
||||||
|
|
||||||
// Attempt to select previous quest.
|
|
||||||
if (arrQuests.get(questName) != null) {
|
|
||||||
view.getLstQuests().setSelectedQuestData(arrQuests.get(questName));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
view.getLstQuests().setSelectedIndex(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Drop into AllZone.
|
|
||||||
qc.load(view.getLstQuests().getSelectedQuest());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
qc.load(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
view.getLstQuests().setSelectCommand(cmdQuestSelect);
|
|
||||||
view.getLstQuests().setDeleteCommand(cmdQuestUpdate);
|
|
||||||
view.getLstQuests().setEditCommand(cmdQuestUpdate);
|
|
||||||
|
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
view.getBtnEmbark().requestFocusInWindow();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -232,7 +154,7 @@ public enum CSubmenuQuestData implements ICDoc {
|
|||||||
*/
|
*/
|
||||||
private void newQuest() {
|
private void newQuest() {
|
||||||
final Localizer localizer = Localizer.getInstance();
|
final Localizer localizer = Localizer.getInstance();
|
||||||
final VSubmenuQuestData view = VSubmenuQuestData.SINGLETON_INSTANCE;
|
final VSubmenuQuestStart view = VSubmenuQuestStart.SINGLETON_INSTANCE;
|
||||||
final int difficulty = view.getSelectedDifficulty();
|
final int difficulty = view.getSelectedDifficulty();
|
||||||
|
|
||||||
final QuestMode mode = view.isFantasy() ? QuestMode.Fantasy : QuestMode.Classic;
|
final QuestMode mode = view.isFantasy() ? QuestMode.Fantasy : QuestMode.Classic;
|
||||||
@@ -245,38 +167,38 @@ public enum CSubmenuQuestData implements ICDoc {
|
|||||||
|
|
||||||
if (worldFormat == null) {
|
if (worldFormat == null) {
|
||||||
switch(view.getStartingPoolType()) {
|
switch(view.getStartingPoolType()) {
|
||||||
case Sanctioned:
|
case Sanctioned:
|
||||||
fmtStartPool = view.getRotatingFormat();
|
fmtStartPool = view.getRotatingFormat();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Casual:
|
case Casual:
|
||||||
case CustomFormat:
|
case CustomFormat:
|
||||||
if (customFormatCodes.isEmpty()) {
|
if (customFormatCodes.isEmpty()) {
|
||||||
if (!FOptionPane.showConfirmDialog(localizer.getMessage("lblNotFormatDefined"))) {
|
if (!FOptionPane.showConfirmDialog(localizer.getMessage("lblNotFormatDefined"))) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmtStartPool = customFormatCodes.isEmpty() ? null : new GameFormatQuest("Custom", customFormatCodes, null); // chosen sets and no banned cards
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DraftDeck:
|
||||||
|
case SealedDeck:
|
||||||
|
case Cube:
|
||||||
|
dckStartPool = view.getSelectedDeck();
|
||||||
|
if (null == dckStartPool) {
|
||||||
|
FOptionPane.showMessageDialog(localizer.getMessage("lbldckStartPool"), localizer.getMessage("lblCannotStartaQuest"), FOptionPane.ERROR_ICON);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
fmtStartPool = customFormatCodes.isEmpty() ? null : new GameFormatQuest("Custom", customFormatCodes, null); // chosen sets and no banned cards
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DraftDeck:
|
case Precon:
|
||||||
case SealedDeck:
|
dckStartPool = QuestController.getPrecons().get(view.getSelectedPrecon()).getDeck();
|
||||||
case Cube:
|
break;
|
||||||
dckStartPool = view.getSelectedDeck();
|
|
||||||
if (null == dckStartPool) {
|
|
||||||
FOptionPane.showMessageDialog(localizer.getMessage("lbldckStartPool"), localizer.getMessage("lblCannotStartaQuest"), FOptionPane.ERROR_ICON);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Precon:
|
case Complete:
|
||||||
dckStartPool = QuestController.getPrecons().get(view.getSelectedPrecon()).getDeck();
|
default:
|
||||||
break;
|
// leave everything as nulls
|
||||||
|
break;
|
||||||
case Complete:
|
|
||||||
default:
|
|
||||||
// leave everything as nulls
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -290,11 +212,11 @@ public enum CSubmenuQuestData implements ICDoc {
|
|||||||
fmtPrizes = fmtStartPool;
|
fmtPrizes = fmtStartPool;
|
||||||
if (null == fmtPrizes && dckStartPool != null) { // build it form deck
|
if (null == fmtPrizes && dckStartPool != null) { // build it form deck
|
||||||
final Set<String> sets = new HashSet<>();
|
final Set<String> sets = new HashSet<>();
|
||||||
for (final Entry<PaperCard, Integer> c : dckStartPool.getMain()) {
|
for (final Map.Entry<PaperCard, Integer> c : dckStartPool.getMain()) {
|
||||||
sets.add(c.getKey().getEdition());
|
sets.add(c.getKey().getEdition());
|
||||||
}
|
}
|
||||||
if (dckStartPool.has(DeckSection.Sideboard)) {
|
if (dckStartPool.has(DeckSection.Sideboard)) {
|
||||||
for (final Entry<PaperCard, Integer> c : dckStartPool.get(DeckSection.Sideboard)) {
|
for (final Map.Entry<PaperCard, Integer> c : dckStartPool.get(DeckSection.Sideboard)) {
|
||||||
sets.add(c.getKey().getEdition());
|
sets.add(c.getKey().getEdition());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -303,23 +225,23 @@ public enum CSubmenuQuestData implements ICDoc {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
switch(prizedPoolType) {
|
switch(prizedPoolType) {
|
||||||
case Complete:
|
case Complete:
|
||||||
fmtPrizes = null;
|
fmtPrizes = null;
|
||||||
break;
|
break;
|
||||||
case Casual:
|
case Casual:
|
||||||
case CustomFormat:
|
case CustomFormat:
|
||||||
if (customPrizeFormatCodes.isEmpty()) {
|
if (customPrizeFormatCodes.isEmpty()) {
|
||||||
if (!FOptionPane.showConfirmDialog(localizer.getMessage("lblNotFormatDefined"))) {
|
if (!FOptionPane.showConfirmDialog(localizer.getMessage("lblNotFormatDefined"))) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
fmtPrizes = customPrizeFormatCodes.isEmpty() ? null : new GameFormat("Custom Prizes", customPrizeFormatCodes, null); // chosen sets and no banned cards
|
||||||
fmtPrizes = customPrizeFormatCodes.isEmpty() ? null : new GameFormat("Custom Prizes", customPrizeFormatCodes, null); // chosen sets and no banned cards
|
break;
|
||||||
break;
|
case Sanctioned:
|
||||||
case Sanctioned:
|
fmtPrizes = view.getPrizedRotatingFormat();
|
||||||
fmtPrizes = view.getPrizedRotatingFormat();
|
break;
|
||||||
break;
|
default:
|
||||||
default:
|
throw new RuntimeException("Should not get this result");
|
||||||
throw new RuntimeException("Should not get this result");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,7 +268,7 @@ public enum CSubmenuQuestData implements ICDoc {
|
|||||||
//Apply the appropriate deck construction rules for this quest
|
//Apply the appropriate deck construction rules for this quest
|
||||||
DeckConstructionRules dcr = DeckConstructionRules.Default;
|
DeckConstructionRules dcr = DeckConstructionRules.Default;
|
||||||
|
|
||||||
if(VSubmenuQuestData.SINGLETON_INSTANCE.isCommander()){
|
if(VSubmenuQuestStart.SINGLETON_INSTANCE.isCommander()){
|
||||||
dcr = DeckConstructionRules.Commander;
|
dcr = DeckConstructionRules.Commander;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -356,28 +278,11 @@ public enum CSubmenuQuestData implements ICDoc {
|
|||||||
FModel.getQuest().save();
|
FModel.getQuest().save();
|
||||||
|
|
||||||
// Save in preferences.
|
// Save in preferences.
|
||||||
FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST, questName + ".dat");
|
FModel.getQuestPreferences().setPref(QuestPreferences.QPref.CURRENT_QUEST, questName + ".dat");
|
||||||
FModel.getQuestPreferences().save();
|
FModel.getQuestPreferences().save();
|
||||||
|
|
||||||
update();
|
// Change to QuestDecks screen
|
||||||
|
CHomeUI.SINGLETON_INSTANCE.itemClick(VSubmenuQuestDecks.SINGLETON_INSTANCE.getDocumentID());
|
||||||
}
|
|
||||||
|
|
||||||
/** Changes between quest data files. */
|
|
||||||
private void changeQuest() {
|
|
||||||
|
|
||||||
FModel.getQuest().load(VSubmenuQuestData.SINGLETON_INSTANCE.getLstQuests().getSelectedQuest());
|
|
||||||
|
|
||||||
// Save in preferences.
|
|
||||||
FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST, FModel.getQuest().getName() + ".dat");
|
|
||||||
FModel.getQuestPreferences().save();
|
|
||||||
|
|
||||||
CSubmenuDuels.SINGLETON_INSTANCE.update();
|
|
||||||
CSubmenuChallenges.SINGLETON_INSTANCE.update();
|
|
||||||
CSubmenuQuestDecks.SINGLETON_INSTANCE.update();
|
|
||||||
CSubmenuQuestDraft.SINGLETON_INSTANCE.update();
|
|
||||||
CBazaarUI.SINGLETON_INSTANCE.update();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, QuestData> getAllQuests() {
|
private Map<String, QuestData> getAllQuests() {
|
||||||
@@ -0,0 +1,138 @@
|
|||||||
|
package forge.screens.home.quest;
|
||||||
|
|
||||||
|
import forge.gui.framework.DragCell;
|
||||||
|
import forge.gui.framework.DragTab;
|
||||||
|
import forge.gui.framework.EDocID;
|
||||||
|
import forge.properties.ForgeConstants;
|
||||||
|
import forge.screens.home.EMenuGroup;
|
||||||
|
import forge.screens.home.IVSubmenu;
|
||||||
|
import forge.screens.home.VHomeUI;
|
||||||
|
import forge.toolbox.FLabel;
|
||||||
|
import forge.toolbox.FScrollPane;
|
||||||
|
import forge.toolbox.FSkin;
|
||||||
|
import forge.util.Localizer;
|
||||||
|
import net.miginfocom.swing.MigLayout;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Assembles Swing components of quest data submenu singleton.
|
||||||
|
*
|
||||||
|
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
|
||||||
|
*/
|
||||||
|
public enum VSubmenuQuestLoadData implements IVSubmenu<CSubmenuQuestLoadData> {
|
||||||
|
SINGLETON_INSTANCE;
|
||||||
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
|
||||||
|
// Fields used with interface IVDoc
|
||||||
|
private DragCell parentCell;
|
||||||
|
private final DragTab tab = new DragTab(localizer.getMessage("lblQuestData"));
|
||||||
|
|
||||||
|
private final FLabel lblTitle = new FLabel.Builder()
|
||||||
|
.text(localizer.getMessage("lblLoadQuestData")).fontAlign(SwingConstants.CENTER)
|
||||||
|
.opaque(true).fontSize(16).build();
|
||||||
|
|
||||||
|
String str= ForgeConstants.QUEST_SAVE_DIR.replace('\\', '/');
|
||||||
|
private final FLabel lblOldQuests = new FLabel.Builder().text(localizer.getMessage("lblOldQuestData").replace("%s",str)).fontAlign(SwingConstants.CENTER).fontSize(12).build();
|
||||||
|
private final QuestFileLister lstQuests = new QuestFileLister();
|
||||||
|
private final FScrollPane scrQuests = new FScrollPane(lstQuests, false);
|
||||||
|
private final JPanel pnlOptions = new JPanel();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
VSubmenuQuestLoadData() {
|
||||||
|
|
||||||
|
lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.view.home.IViewSubmenu#populate()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void populate() {
|
||||||
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll();
|
||||||
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout("insets 0, gap 0, wrap"));
|
||||||
|
|
||||||
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(lblTitle, "w 98%!, h 30px!, gap 1% 0 15px 15px");
|
||||||
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(lblOldQuests, "w 98%, h 30px!, gap 1% 0 0 5px");
|
||||||
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(scrQuests, "w 98%!, growy, pushy, gap 1% 0 0 20px");
|
||||||
|
|
||||||
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().repaintSelf();
|
||||||
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.view.home.IViewSubmenu#getGroup()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public EMenuGroup getGroupEnum() {
|
||||||
|
return EMenuGroup.QUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.gui.home.IVSubmenu#getMenuTitle()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getMenuTitle() {
|
||||||
|
return localizer.getMessage("lblNewLoadQuest");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.gui.home.IVSubmenu#getMenuName()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public EDocID getItemEnum() {
|
||||||
|
return EDocID.HOME_QUESTLOADDATA;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@link forge.screens.home.quest.QuestFileLister}
|
||||||
|
*/
|
||||||
|
public QuestFileLister getLstQuests() {
|
||||||
|
return this.lstQuests;
|
||||||
|
}
|
||||||
|
|
||||||
|
//========== Overridden from IVDoc
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.gui.framework.IVDoc#getDocumentID()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public EDocID getDocumentID() {
|
||||||
|
return EDocID.HOME_QUESTLOADDATA;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.gui.framework.IVDoc#getTabLabel()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public DragTab getTabLabel() {
|
||||||
|
return tab;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.gui.framework.IVDoc#getLayoutControl()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public CSubmenuQuestLoadData getLayoutControl() {
|
||||||
|
return CSubmenuQuestLoadData.SINGLETON_INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.gui.framework.IVDoc#setParentCell(forge.gui.framework.DragCell)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void setParentCell(final DragCell cell0) {
|
||||||
|
this.parentCell = cell0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.gui.framework.IVDoc#getParentCell()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public DragCell getParentCell() {
|
||||||
|
return parentCell;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -34,24 +34,17 @@ import java.util.Map;
|
|||||||
*
|
*
|
||||||
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
|
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
|
||||||
*/
|
*/
|
||||||
public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
|
public enum VSubmenuQuestStart implements IVSubmenu<CSubmenuQuestStart> {
|
||||||
SINGLETON_INSTANCE;
|
SINGLETON_INSTANCE;
|
||||||
final Localizer localizer = Localizer.getInstance();
|
final Localizer localizer = Localizer.getInstance();
|
||||||
|
|
||||||
// Fields used with interface IVDoc
|
// Fields used with interface IVDoc
|
||||||
private DragCell parentCell;
|
private DragCell parentCell;
|
||||||
private final DragTab tab = new DragTab(localizer.getMessage("lblQuestData"));
|
private final DragTab tab = new DragTab(localizer.getMessage("lblStartanewQuest"));
|
||||||
|
|
||||||
private final FLabel lblTitle = new FLabel.Builder()
|
|
||||||
.text(localizer.getMessage("lblLoadQuestData")).fontAlign(SwingConstants.CENTER)
|
|
||||||
.opaque(true).fontSize(16).build();
|
|
||||||
|
|
||||||
private final FLabel lblTitleNew = new FLabel.Builder().text(localizer.getMessage("lblStartanewQuest")).opaque(true).fontSize(16).build();
|
private final FLabel lblTitleNew = new FLabel.Builder().text(localizer.getMessage("lblStartanewQuest")).opaque(true).fontSize(16).build();
|
||||||
|
|
||||||
String str= ForgeConstants.QUEST_SAVE_DIR.replace('\\', '/');
|
String str= ForgeConstants.QUEST_SAVE_DIR.replace('\\', '/');
|
||||||
private final FLabel lblOldQuests = new FLabel.Builder().text(localizer.getMessage("lblOldQuestData").replace("%s",str)).fontAlign(SwingConstants.CENTER).fontSize(12).build();
|
|
||||||
private final QuestFileLister lstQuests = new QuestFileLister();
|
|
||||||
private final FScrollPane scrQuests = new FScrollPane(lstQuests, false);
|
|
||||||
private final JPanel pnlOptions = new JPanel();
|
private final JPanel pnlOptions = new JPanel();
|
||||||
|
|
||||||
/* First column */
|
/* First column */
|
||||||
@@ -188,9 +181,8 @@ public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
|
|||||||
* Constructor.
|
* Constructor.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
VSubmenuQuestData() {
|
VSubmenuQuestStart() {
|
||||||
|
|
||||||
lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
|
||||||
lblTitleNew.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
lblTitleNew.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
||||||
|
|
||||||
final JXButtonPanel difficultyPanel = new JXButtonPanel();
|
final JXButtonPanel difficultyPanel = new JXButtonPanel();
|
||||||
@@ -286,7 +278,7 @@ public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
|
|||||||
//Otherwise, set the starting world to Random Commander
|
//Otherwise, set the starting world to Random Commander
|
||||||
cbxStartingWorld.setSelectedItem(FModel.getWorlds().get("Random Commander"));
|
cbxStartingWorld.setSelectedItem(FModel.getWorlds().get("Random Commander"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -368,11 +360,8 @@ public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
|
|||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll();
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll();
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout("insets 0, gap 0, wrap"));
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout("insets 0, gap 0, wrap"));
|
||||||
|
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(lblTitle, "w 98%!, h 30px!, gap 1% 0 15px 15px");
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(lblTitleNew, "w 98%, h 30px!, gap 1% 0 15px 10px");
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(lblOldQuests, "w 98%, h 30px!, gap 1% 0 0 5px");
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(pnlOptions, "w 98%!, growy, pushy, gap 1% 0 0 0");
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(scrQuests, "w 98%!, growy, pushy, gap 1% 0 0 20px");
|
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(lblTitleNew, "w 98%, h 30px!, gap 1% 0 0 10px");
|
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(pnlOptions, "w 98%!, gap 1% 0 0 0");
|
|
||||||
|
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().repaintSelf();
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().repaintSelf();
|
||||||
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate();
|
VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate();
|
||||||
@@ -391,7 +380,7 @@ public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String getMenuTitle() {
|
public String getMenuTitle() {
|
||||||
return localizer.getMessage("lblNewLoadQuest");
|
return localizer.getMessage("lblStartanewQuest");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
@@ -399,14 +388,7 @@ public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public EDocID getItemEnum() {
|
public EDocID getItemEnum() {
|
||||||
return EDocID.HOME_QUESTDATA;
|
return getDocumentID();
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return {@link forge.screens.home.quest.QuestFileLister}
|
|
||||||
*/
|
|
||||||
public QuestFileLister getLstQuests() {
|
|
||||||
return this.lstQuests;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -423,7 +405,7 @@ public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public EDocID getDocumentID() {
|
public EDocID getDocumentID() {
|
||||||
return EDocID.HOME_QUESTDATA;
|
return EDocID.HOME_QUESTSTART;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
@@ -438,8 +420,8 @@ public enum VSubmenuQuestData implements IVSubmenu<CSubmenuQuestData> {
|
|||||||
* @see forge.gui.framework.IVDoc#getLayoutControl()
|
* @see forge.gui.framework.IVDoc#getLayoutControl()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CSubmenuQuestData getLayoutControl() {
|
public CSubmenuQuestStart getLayoutControl() {
|
||||||
return CSubmenuQuestData.SINGLETON_INSTANCE;
|
return CSubmenuQuestStart.SINGLETON_INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
@@ -469,7 +469,7 @@ lblEmbark=Aufbrechen!
|
|||||||
lblboxCompleteSet=Du startest mit je 4 Stück jeder Karte der gewählten Sets.
|
lblboxCompleteSet=Du startest mit je 4 Stück jeder Karte der gewählten Sets.
|
||||||
lblboxAllowDuplicates=In deiner Startsammlung können Karten mehrfach vorkommen.
|
lblboxAllowDuplicates=In deiner Startsammlung können Karten mehrfach vorkommen.
|
||||||
lblSameAsStartingPool=Wie Startsammlung
|
lblSameAsStartingPool=Wie Startsammlung
|
||||||
lblNewLoadQuest=Neu / Lade Quest
|
lblNewLoadQuest=Lade Quest
|
||||||
#CSubmenuQChallenges.java
|
#CSubmenuQChallenges.java
|
||||||
lblLaunchaZeppelin=Starte einen Zeppelin.
|
lblLaunchaZeppelin=Starte einen Zeppelin.
|
||||||
lblPlant=Pflanze
|
lblPlant=Pflanze
|
||||||
|
|||||||
@@ -441,7 +441,7 @@ cbLaunchZeppelin=Launch Zeppelin
|
|||||||
#VSubmenuQuest.java
|
#VSubmenuQuest.java
|
||||||
lblQuestData=Quest Data
|
lblQuestData=Quest Data
|
||||||
lblLoadQuestData=Load Quest Data
|
lblLoadQuestData=Load Quest Data
|
||||||
lblStartanewQuest=Start a new Quest
|
lblStartanewQuest=Start Quest
|
||||||
lblOldQuestData=Old quest data? Put into %s and restart Forge.
|
lblOldQuestData=Old quest data? Put into %s and restart Forge.
|
||||||
rbEasy=Easy
|
rbEasy=Easy
|
||||||
rbMedium=Medium
|
rbMedium=Medium
|
||||||
@@ -469,7 +469,7 @@ lblEmbark=Embark!
|
|||||||
lblboxCompleteSet=You will start the quest with 4 of each card in the sets you have selected.
|
lblboxCompleteSet=You will start the quest with 4 of each card in the sets you have selected.
|
||||||
lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included.
|
lblboxAllowDuplicates=When your starting pool is generated, duplicates of cards may be included.
|
||||||
lblSameAsStartingPool=Same as starting pool
|
lblSameAsStartingPool=Same as starting pool
|
||||||
lblNewLoadQuest=New / Load Quest
|
lblNewLoadQuest=Load Quest
|
||||||
#CSubmenuQChallenges.java
|
#CSubmenuQChallenges.java
|
||||||
lblLaunchaZeppelin=Launch a Zeppelin.
|
lblLaunchaZeppelin=Launch a Zeppelin.
|
||||||
lblPlant=Plant
|
lblPlant=Plant
|
||||||
|
|||||||
@@ -469,7 +469,7 @@ lblEmbark=¡Embarcarse!
|
|||||||
lblboxCompleteSet=Comenzarás la aventura con 4 copias de cada carta en los sets que hayas seleccionado.
|
lblboxCompleteSet=Comenzarás la aventura con 4 copias de cada carta en los sets que hayas seleccionado.
|
||||||
lblboxAllowDuplicates=Cuando tu pool inicial se genera, se puede incluir duplicados de cartas.
|
lblboxAllowDuplicates=Cuando tu pool inicial se genera, se puede incluir duplicados de cartas.
|
||||||
lblSameAsStartingPool=Igual que el pool inicial
|
lblSameAsStartingPool=Igual que el pool inicial
|
||||||
lblNewLoadQuest=Nueva/Cargar Aventura
|
lblNewLoadQuest=Cargar Aventura
|
||||||
#CSubmenuQChallenges.java
|
#CSubmenuQChallenges.java
|
||||||
lblLaunchaZeppelin=Lanzar el Zeppelin.
|
lblLaunchaZeppelin=Lanzar el Zeppelin.
|
||||||
lblPlant=Planta
|
lblPlant=Planta
|
||||||
|
|||||||
@@ -469,7 +469,7 @@ lblEmbark=开始!
|
|||||||
lblboxCompleteSet=你将使用所选系列的每张卡中的4张开始探索
|
lblboxCompleteSet=你将使用所选系列的每张卡中的4张开始探索
|
||||||
lblboxAllowDuplicates=生成初始牌池时,可能包含重复的卡。
|
lblboxAllowDuplicates=生成初始牌池时,可能包含重复的卡。
|
||||||
lblSameAsStartingPool=与初始牌池相同
|
lblSameAsStartingPool=与初始牌池相同
|
||||||
lblNewLoadQuest=新建/载入
|
lblNewLoadQuest=载入
|
||||||
#CSubmenuQChallenges.java
|
#CSubmenuQChallenges.java
|
||||||
lblLaunchaZeppelin=启动一个飞艇.
|
lblLaunchaZeppelin=启动一个飞艇.
|
||||||
lblPlant=植物
|
lblPlant=植物
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import java.util.List;
|
|||||||
* This class is used to store the Quest starting pool preferences.
|
* This class is used to store the Quest starting pool preferences.
|
||||||
* (It could be expanded to store other Quest starting preferences as well,
|
* (It could be expanded to store other Quest starting preferences as well,
|
||||||
* in order to reduce the number of parameters that need to be passed to
|
* in order to reduce the number of parameters that need to be passed to
|
||||||
* QuestController.newGame from CSubmenuQuestData)
|
* QuestController.newGame from CSubmenuQuestStart)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public final class StartingPoolPreferences {
|
public final class StartingPoolPreferences {
|
||||||
|
|||||||
Reference in New Issue
Block a user