Support editing existing quest draft decks

This commit is contained in:
drdev
2016-07-17 20:31:46 +00:00
parent 3627e9d3fb
commit e06db51295
9 changed files with 49 additions and 10 deletions

1
.gitattributes vendored
View File

@@ -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

View File

@@ -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));

View File

@@ -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;
}

View File

@@ -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
}

View File

@@ -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));
}
});
}

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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));
}
}
}

View File

@@ -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;
}