Fixes for old quests not working with tournaments.

This commit is contained in:
Krazy
2014-06-08 19:15:40 +00:00
parent c12aee1354
commit ea646ff9ad
5 changed files with 24 additions and 5 deletions

View File

@@ -117,7 +117,7 @@ public final class CEditorQuestLimited extends ACEditorBase<PaperCard, DeckGroup
return new DeckGroup("");
}
};
this.controller = new DeckController<DeckGroup>(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<PaperCard, DeckGroup
FModel.getQuest().save();
return true;
}
FModel.getQuest().save();
return false;
}

View File

@@ -93,6 +93,7 @@ public enum CSubmenuQuestDraft implements ICDoc {
public void run() { CSubmenuQuestDraft.this.endTournamentAndAwardPrizes(); } });
QuestAchievements achievements = FModel.getQuest().getAchievements();
FModel.getQuest().getDraftDecks();
if (achievements == null) {
view.setMode(Mode.EMPTY);
@@ -533,10 +534,10 @@ public enum CSubmenuQuestDraft implements ICDoc {
QuestEventDraft draftEvent = SSubmenuQuestUtil.getDraftEvent();
long creditsAvailable = FModel.getQuest().getAssets().getCredits();
if (creditsAvailable < draftEvent.getEntryFee()) {
/*if (creditsAvailable < draftEvent.getEntryFee()) {
FOptionPane.showMessageDialog("You need " + NUMBER_FORMATTER.format(draftEvent.getEntryFee() - creditsAvailable) + " more credits to enter this tournament.", "Not Enough Credits", FSkin.getImage(FSkinProp.ICO_WARNING).scale(2.0));
return;
}
}*/
boolean okayToEnter = FOptionPane.showOptionDialog("This tournament costs " + draftEvent.getEntryFee() + " credits to enter.\nAre you sure you wish to enter?", "Enter Draft Tournament?", FSkin.getImage(FSkinProp.ICO_QUEST_GOLD), new String[] { "Yes", "No" }, 1) == 0;
@@ -564,6 +565,8 @@ public enum CSubmenuQuestDraft implements ICDoc {
private void startTournament() {
FModel.getQuest().save();
String message = GameType.QuestDraft.getDecksFormat().getDeckConformanceProblem(FModel.getQuest().getAssets().getDraftDeckStorage().get(QuestEventDraft.DECK_NAME).getHumanDeck());
if (message != null && FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) {
FOptionPane.showMessageDialog(message, "Deck Invalid");

View File

@@ -20,6 +20,7 @@ package forge.quest;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -151,6 +152,12 @@ public class QuestController {
}
public IStorage<DeckGroup> getDraftDecks() {
if (draftDecks == null) {
draftDecks = new QuestDeckGroupMap(new HashMap<String, DeckGroup>());
}
if (this.getAchievements().getCurrentDraftIndex() == -1 || this.getAchievements().getCurrentDraft() == null) {
draftDecks.delete(QuestEventDraft.DECK_NAME);
}
return draftDecks;
}

View File

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

View File

@@ -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<String, DeckGroup>());
qS.getDraftDeckStorage();
default:
break;