mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +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/QuestDeckEditor.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/QuestEventPanel.java -text
|
||||
forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java -text
|
||||
|
||||
@@ -404,9 +404,11 @@ public class FDeckChooser extends FScreen {
|
||||
case Sealed:
|
||||
DeckPreferences.setSealedDeck(deck.getName());
|
||||
break;
|
||||
default:
|
||||
case Constructed:
|
||||
DeckPreferences.setCurrentDeck(deck.getName());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
needRefreshOnActivate = true;
|
||||
Forge.openScreen(new FDeckEditor(editorType, deck, true));
|
||||
|
||||
@@ -279,6 +279,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
}
|
||||
break;
|
||||
case Draft:
|
||||
case QuestDraft:
|
||||
break;
|
||||
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 (editorType == EditorType.Draft) {
|
||||
if (editorType == EditorType.Draft || editorType == EditorType.QuestDraft) {
|
||||
//hide deck header on while drafting
|
||||
setDeck(new Deck());
|
||||
deckHeader.setVisible(false);
|
||||
@@ -304,7 +305,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (editorType == EditorType.Draft) {
|
||||
if (editorType == EditorType.Draft || editorType == EditorType.QuestDraft) {
|
||||
tabPages[0].hideTab(); //hide Draft Pack page if editing existing draft deck
|
||||
}
|
||||
editorType.getController().load(editDeckPath, editDeckName);
|
||||
@@ -595,6 +596,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
case Draft:
|
||||
case Sealed:
|
||||
case Winston:
|
||||
case QuestDraft:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@@ -1152,6 +1154,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
switch (parentScreen.getEditorType()) {
|
||||
case Draft:
|
||||
case Sealed:
|
||||
case QuestDraft:
|
||||
parentScreen.getSideboardPage().addCard(card);
|
||||
break;
|
||||
default:
|
||||
@@ -1571,6 +1574,10 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
FModel.getQuestPreferences().setPref(QPref.CURRENT_DECK, model.toString());
|
||||
FModel.getQuest().save();
|
||||
break;
|
||||
case QuestDraft:
|
||||
FModel.getQuestPreferences().setPref(QPref.CURRENT_DECK, model.toString());
|
||||
FModel.getQuest().save();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -17,8 +17,8 @@ public class DraftingProcessScreen extends FDeckEditor {
|
||||
private boolean isDraftSaved;
|
||||
private final BoosterDraft draft;
|
||||
|
||||
public DraftingProcessScreen(BoosterDraft draft0) {
|
||||
super(EditorType.Draft, "", false);
|
||||
public DraftingProcessScreen(BoosterDraft draft0, EditorType editorType0) {
|
||||
super(editorType0, "", false);
|
||||
draft = draft0;
|
||||
getCatalogPage().refresh(); //must refresh after draft set
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.screens.limited;
|
||||
import forge.FThreads;
|
||||
import forge.Forge;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.deck.FDeckEditor.EditorType;
|
||||
import forge.limited.BoosterDraft;
|
||||
import forge.limited.LimitedPoolType;
|
||||
import forge.screens.LaunchScreen;
|
||||
@@ -55,7 +56,7 @@ public class NewDraftScreen extends LaunchScreen {
|
||||
LoadingOverlay.show("Loading new draft...", new Runnable() {
|
||||
@Override
|
||||
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.assets.FSkinImage;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckGroup;
|
||||
import forge.deck.FDeckEditor.DeckController;
|
||||
import forge.deck.FDeckEditor.EditorType;
|
||||
import forge.interfaces.IButton;
|
||||
@@ -190,6 +191,7 @@ public class QuestMenu extends FPopupMenu implements IVQuestStats {
|
||||
public void run() {
|
||||
FModel.getQuest().load(QuestDataIO.loadData(data));
|
||||
((DeckController<Deck>)EditorType.Quest.getController()).setRootFolder(FModel.getQuest().getMyDecks());
|
||||
((DeckController<DeckGroup>)EditorType.QuestDraft.getController()).setRootFolder(FModel.getQuest().getDraftDecks());
|
||||
if (reason == LaunchReason.StartQuestMode) {
|
||||
if (QuestUtil.getCurrentDeck() == null) {
|
||||
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.Deck;
|
||||
import forge.deck.DeckGroup;
|
||||
import forge.deck.FDeckEditor;
|
||||
import forge.deck.FDeckEditor.EditorType;
|
||||
import forge.itemmanager.CardManager;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
@@ -167,7 +166,7 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT
|
||||
|
||||
@Override
|
||||
public void startDraft(BoosterDraft draft) {
|
||||
Forge.openScreen(new DraftingProcessScreen(draft));
|
||||
Forge.openScreen(new DraftingProcessScreen(draft, EditorType.QuestDraft));
|
||||
}
|
||||
|
||||
private Deck getDeck() {
|
||||
@@ -182,7 +181,12 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT
|
||||
public void editDeck(boolean isExistingDeck) {
|
||||
Deck deck = getDeck();
|
||||
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());
|
||||
if (message != null && FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) {
|
||||
SOptionPane.showMessageDialog(message, "Deck Invalid");
|
||||
SOptionPane.showMessageDialog("Deck " + message, "Deck Invalid");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user