diff --git a/.gitattributes b/.gitattributes index 685027eeeff..99ad65768f5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java index 432655c45f7..6c6a2ebd037 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -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)); diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java index 2dda7e8196e..488dd6559f9 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java +++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java @@ -279,6 +279,7 @@ public class FDeckEditor extends TabPageScreen { } 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 { } 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 { } } 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 { case Draft: case Sealed: case Winston: + case QuestDraft: return true; default: return false; @@ -1152,6 +1154,7 @@ public class FDeckEditor extends TabPageScreen { switch (parentScreen.getEditorType()) { case Draft: case Sealed: + case QuestDraft: parentScreen.getSideboardPage().addCard(card); break; default: @@ -1571,6 +1574,10 @@ public class FDeckEditor extends TabPageScreen { 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; } diff --git a/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java b/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java index a2f8a11a390..573d9ca397e 100644 --- a/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java @@ -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 } diff --git a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java index abf4ea124f3..2dd76b531af 100644 --- a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java @@ -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)); } }); } diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDraftDeckEditor.java b/forge-gui-mobile/src/forge/screens/quest/QuestDraftDeckEditor.java new file mode 100644 index 00000000000..19bb57f8223 --- /dev/null +++ b/forge-gui-mobile/src/forge/screens/quest/QuestDraftDeckEditor.java @@ -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; + } +} diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java index 9614d48a137..d44074aa992 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java @@ -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)EditorType.Quest.getController()).setRootFolder(FModel.getQuest().getMyDecks()); + ((DeckController)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 diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java index 6a5cd91034f..a40bd28d384 100644 --- a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java @@ -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)); + } } } diff --git a/forge-gui/src/main/java/forge/quest/QuestTournamentController.java b/forge-gui/src/main/java/forge/quest/QuestTournamentController.java index 51b4964d2f2..e08beb7e421 100644 --- a/forge-gui/src/main/java/forge/quest/QuestTournamentController.java +++ b/forge-gui/src/main/java/forge/quest/QuestTournamentController.java @@ -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; }