diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestLimited.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestLimited.java index db155bfd4c0..2ff9f52170d 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestLimited.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestLimited.java @@ -117,7 +117,7 @@ public final class CEditorQuestLimited extends ACEditorBase(questData0.getDraftDecks(), this, newCreator); controller.getView().getDeckManager().setup(ItemManagerConfig.DRAFT_POOL); controller.setModel(questData0.getDraftDecks().get(QuestEventDraft.DECK_NAME)); @@ -271,6 +271,7 @@ public final class CEditorQuestLimited extends ACEditorBase getDraftDecks() { + if (draftDecks == null) { + draftDecks = new QuestDeckGroupMap(new HashMap()); + } + if (this.getAchievements().getCurrentDraftIndex() == -1 || this.getAchievements().getCurrentDraft() == null) { + draftDecks.delete(QuestEventDraft.DECK_NAME); + } return draftDecks; } diff --git a/forge-gui/src/main/java/forge/quest/data/QuestAchievements.java b/forge-gui/src/main/java/forge/quest/data/QuestAchievements.java index 072a4cfe7cd..509d7efd499 100644 --- a/forge-gui/src/main/java/forge/quest/data/QuestAchievements.java +++ b/forge-gui/src/main/java/forge/quest/data/QuestAchievements.java @@ -257,7 +257,12 @@ public class QuestAchievements { } public QuestEventDraft getCurrentDraft() { - if (drafts.size() == 0) { + if (drafts == null || drafts.size() == 0) { + return null; + } + if (currentDraft > drafts.size() - 1) { + currentDraft = -1; + FModel.getQuest().getDraftDecks().delete(QuestEventDraft.DECK_NAME); return null; } return drafts.get(currentDraft); diff --git a/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java b/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java index 4372db43cec..a1c02922d4a 100644 --- a/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java +++ b/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java @@ -306,7 +306,7 @@ public class QuestDataIO { } // pet manager will be re-engineered here - + case 5: case 6: // have to convert completed challenges list members to strings. for(int i = qA.getLockedChallenges().size()-1; i >= 0; i-- ) { @@ -320,8 +320,11 @@ public class QuestDataIO { qA.getCurrentChallenges().set(i, lc.toString()); } + case 7: case 8: + System.out.println("UPDATE"); QuestDataIO.setFinalField(QuestAssets.class, "draftDecks", qS, new HashMap()); + qS.getDraftDeckStorage(); default: break;