mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Support editing existing quest draft decks
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1366,6 +1366,7 @@ forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java -text
|
|||||||
forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java -text
|
forge-gui-mobile/src/forge/screens/quest/QuestChallengesScreen.java -text
|
||||||
forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java -text
|
forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java -text
|
||||||
forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java -text
|
forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java -text
|
||||||
|
forge-gui-mobile/src/forge/screens/quest/QuestDraftDeckEditor.java -text
|
||||||
forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java -text
|
forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java -text
|
||||||
forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java -text
|
forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java -text
|
||||||
forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java -text
|
forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java -text
|
||||||
|
|||||||
@@ -404,9 +404,11 @@ public class FDeckChooser extends FScreen {
|
|||||||
case Sealed:
|
case Sealed:
|
||||||
DeckPreferences.setSealedDeck(deck.getName());
|
DeckPreferences.setSealedDeck(deck.getName());
|
||||||
break;
|
break;
|
||||||
default:
|
case Constructed:
|
||||||
DeckPreferences.setCurrentDeck(deck.getName());
|
DeckPreferences.setCurrentDeck(deck.getName());
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
needRefreshOnActivate = true;
|
needRefreshOnActivate = true;
|
||||||
Forge.openScreen(new FDeckEditor(editorType, deck, true));
|
Forge.openScreen(new FDeckEditor(editorType, deck, true));
|
||||||
|
|||||||
@@ -279,6 +279,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Draft:
|
case Draft:
|
||||||
|
case QuestDraft:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//if editing existing non-limited deck, show main deck by default
|
//if editing existing non-limited deck, show main deck by default
|
||||||
@@ -289,7 +290,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isEmpty(editDeckName)) {
|
if (StringUtils.isEmpty(editDeckName)) {
|
||||||
if (editorType == EditorType.Draft) {
|
if (editorType == EditorType.Draft || editorType == EditorType.QuestDraft) {
|
||||||
//hide deck header on while drafting
|
//hide deck header on while drafting
|
||||||
setDeck(new Deck());
|
setDeck(new Deck());
|
||||||
deckHeader.setVisible(false);
|
deckHeader.setVisible(false);
|
||||||
@@ -304,7 +305,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (editorType == EditorType.Draft) {
|
if (editorType == EditorType.Draft || editorType == EditorType.QuestDraft) {
|
||||||
tabPages[0].hideTab(); //hide Draft Pack page if editing existing draft deck
|
tabPages[0].hideTab(); //hide Draft Pack page if editing existing draft deck
|
||||||
}
|
}
|
||||||
editorType.getController().load(editDeckPath, editDeckName);
|
editorType.getController().load(editDeckPath, editDeckName);
|
||||||
@@ -595,6 +596,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
case Draft:
|
case Draft:
|
||||||
case Sealed:
|
case Sealed:
|
||||||
case Winston:
|
case Winston:
|
||||||
|
case QuestDraft:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
@@ -1152,6 +1154,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
switch (parentScreen.getEditorType()) {
|
switch (parentScreen.getEditorType()) {
|
||||||
case Draft:
|
case Draft:
|
||||||
case Sealed:
|
case Sealed:
|
||||||
|
case QuestDraft:
|
||||||
parentScreen.getSideboardPage().addCard(card);
|
parentScreen.getSideboardPage().addCard(card);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -1571,6 +1574,10 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
FModel.getQuestPreferences().setPref(QPref.CURRENT_DECK, model.toString());
|
FModel.getQuestPreferences().setPref(QPref.CURRENT_DECK, model.toString());
|
||||||
FModel.getQuest().save();
|
FModel.getQuest().save();
|
||||||
break;
|
break;
|
||||||
|
case QuestDraft:
|
||||||
|
FModel.getQuestPreferences().setPref(QPref.CURRENT_DECK, model.toString());
|
||||||
|
FModel.getQuest().save();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ public class DraftingProcessScreen extends FDeckEditor {
|
|||||||
private boolean isDraftSaved;
|
private boolean isDraftSaved;
|
||||||
private final BoosterDraft draft;
|
private final BoosterDraft draft;
|
||||||
|
|
||||||
public DraftingProcessScreen(BoosterDraft draft0) {
|
public DraftingProcessScreen(BoosterDraft draft0, EditorType editorType0) {
|
||||||
super(EditorType.Draft, "", false);
|
super(editorType0, "", false);
|
||||||
draft = draft0;
|
draft = draft0;
|
||||||
getCatalogPage().refresh(); //must refresh after draft set
|
getCatalogPage().refresh(); //must refresh after draft set
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package forge.screens.limited;
|
|||||||
import forge.FThreads;
|
import forge.FThreads;
|
||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.assets.FSkinFont;
|
import forge.assets.FSkinFont;
|
||||||
|
import forge.deck.FDeckEditor.EditorType;
|
||||||
import forge.limited.BoosterDraft;
|
import forge.limited.BoosterDraft;
|
||||||
import forge.limited.LimitedPoolType;
|
import forge.limited.LimitedPoolType;
|
||||||
import forge.screens.LaunchScreen;
|
import forge.screens.LaunchScreen;
|
||||||
@@ -55,7 +56,7 @@ public class NewDraftScreen extends LaunchScreen {
|
|||||||
LoadingOverlay.show("Loading new draft...", new Runnable() {
|
LoadingOverlay.show("Loading new draft...", new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
Forge.openScreen(new DraftingProcessScreen(draft));
|
Forge.openScreen(new DraftingProcessScreen(draft, EditorType.Draft));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package forge.screens.quest;
|
||||||
|
|
||||||
|
import forge.deck.Deck;
|
||||||
|
import forge.deck.FDeckEditor;
|
||||||
|
|
||||||
|
public class QuestDraftDeckEditor extends FDeckEditor {
|
||||||
|
public QuestDraftDeckEditor(String existingDeckName) {
|
||||||
|
super(EditorType.QuestDraft, existingDeckName, true);
|
||||||
|
}
|
||||||
|
public QuestDraftDeckEditor(Deck newDeck) {
|
||||||
|
super(EditorType.QuestDraft, newDeck, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean allowRename() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected boolean allowDelete() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@ import forge.FThreads;
|
|||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.assets.FSkinImage;
|
import forge.assets.FSkinImage;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
|
import forge.deck.DeckGroup;
|
||||||
import forge.deck.FDeckEditor.DeckController;
|
import forge.deck.FDeckEditor.DeckController;
|
||||||
import forge.deck.FDeckEditor.EditorType;
|
import forge.deck.FDeckEditor.EditorType;
|
||||||
import forge.interfaces.IButton;
|
import forge.interfaces.IButton;
|
||||||
@@ -190,6 +191,7 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats {
|
|||||||
public void run() {
|
public void run() {
|
||||||
FModel.getQuest().load(QuestDataIO.loadData(data));
|
FModel.getQuest().load(QuestDataIO.loadData(data));
|
||||||
((DeckController<Deck>)EditorType.Quest.getController()).setRootFolder(FModel.getQuest().getMyDecks());
|
((DeckController<Deck>)EditorType.Quest.getController()).setRootFolder(FModel.getQuest().getMyDecks());
|
||||||
|
((DeckController<DeckGroup>)EditorType.QuestDraft.getController()).setRootFolder(FModel.getQuest().getDraftDecks());
|
||||||
if (reason == LaunchReason.StartQuestMode) {
|
if (reason == LaunchReason.StartQuestMode) {
|
||||||
if (QuestUtil.getCurrentDeck() == null) {
|
if (QuestUtil.getCurrentDeck() == null) {
|
||||||
Forge.openScreen(decksScreen); //if quest doesn't have a deck specified, open decks screen by default
|
Forge.openScreen(decksScreen); //if quest doesn't have a deck specified, open decks screen by default
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import forge.assets.FSkinImage;
|
|||||||
import forge.deck.CardPool;
|
import forge.deck.CardPool;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.deck.DeckGroup;
|
import forge.deck.DeckGroup;
|
||||||
import forge.deck.FDeckEditor;
|
|
||||||
import forge.deck.FDeckEditor.EditorType;
|
import forge.deck.FDeckEditor.EditorType;
|
||||||
import forge.itemmanager.CardManager;
|
import forge.itemmanager.CardManager;
|
||||||
import forge.itemmanager.ItemManagerConfig;
|
import forge.itemmanager.ItemManagerConfig;
|
||||||
@@ -167,7 +166,7 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startDraft(BoosterDraft draft) {
|
public void startDraft(BoosterDraft draft) {
|
||||||
Forge.openScreen(new DraftingProcessScreen(draft));
|
Forge.openScreen(new DraftingProcessScreen(draft, EditorType.QuestDraft));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Deck getDeck() {
|
private Deck getDeck() {
|
||||||
@@ -182,7 +181,12 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT
|
|||||||
public void editDeck(boolean isExistingDeck) {
|
public void editDeck(boolean isExistingDeck) {
|
||||||
Deck deck = getDeck();
|
Deck deck = getDeck();
|
||||||
if (deck != null) {
|
if (deck != null) {
|
||||||
Forge.openScreen(new FDeckEditor(EditorType.QuestDraft, deck, isExistingDeck));
|
if (isExistingDeck) {
|
||||||
|
Forge.openScreen(new QuestDraftDeckEditor(deck.getName()));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Forge.openScreen(new QuestDraftDeckEditor(deck));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -411,7 +411,7 @@ public class QuestTournamentController {
|
|||||||
|
|
||||||
final String message = GameType.QuestDraft.getDeckFormat().getDeckConformanceProblem(FModel.getQuest().getAssets().getDraftDeckStorage().get(QuestEventDraft.DECK_NAME).getHumanDeck());
|
final String message = GameType.QuestDraft.getDeckFormat().getDeckConformanceProblem(FModel.getQuest().getAssets().getDraftDeckStorage().get(QuestEventDraft.DECK_NAME).getHumanDeck());
|
||||||
if (message != null && FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) {
|
if (message != null && FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) {
|
||||||
SOptionPane.showMessageDialog(message, "Deck Invalid");
|
SOptionPane.showMessageDialog("Deck " + message, "Deck Invalid");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user