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(""); return new DeckGroup("");
} }
}; };
this.controller = new DeckController<DeckGroup>(questData0.getDraftDecks(), this, newCreator); this.controller = new DeckController<DeckGroup>(questData0.getDraftDecks(), this, newCreator);
controller.getView().getDeckManager().setup(ItemManagerConfig.DRAFT_POOL); controller.getView().getDeckManager().setup(ItemManagerConfig.DRAFT_POOL);
controller.setModel(questData0.getDraftDecks().get(QuestEventDraft.DECK_NAME)); controller.setModel(questData0.getDraftDecks().get(QuestEventDraft.DECK_NAME));
@@ -271,6 +271,7 @@ public final class CEditorQuestLimited extends ACEditorBase<PaperCard, DeckGroup
FModel.getQuest().save(); FModel.getQuest().save();
return true; return true;
} }
FModel.getQuest().save();
return false; return false;
} }

View File

@@ -93,6 +93,7 @@ public enum CSubmenuQuestDraft implements ICDoc {
public void run() { CSubmenuQuestDraft.this.endTournamentAndAwardPrizes(); } }); public void run() { CSubmenuQuestDraft.this.endTournamentAndAwardPrizes(); } });
QuestAchievements achievements = FModel.getQuest().getAchievements(); QuestAchievements achievements = FModel.getQuest().getAchievements();
FModel.getQuest().getDraftDecks();
if (achievements == null) { if (achievements == null) {
view.setMode(Mode.EMPTY); view.setMode(Mode.EMPTY);
@@ -533,10 +534,10 @@ public enum CSubmenuQuestDraft implements ICDoc {
QuestEventDraft draftEvent = SSubmenuQuestUtil.getDraftEvent(); QuestEventDraft draftEvent = SSubmenuQuestUtil.getDraftEvent();
long creditsAvailable = FModel.getQuest().getAssets().getCredits(); 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)); 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; 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; 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() { private void startTournament() {
FModel.getQuest().save();
String message = GameType.QuestDraft.getDecksFormat().getDeckConformanceProblem(FModel.getQuest().getAssets().getDraftDeckStorage().get(QuestEventDraft.DECK_NAME).getHumanDeck()); 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)) { if (message != null && FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) {
FOptionPane.showMessageDialog(message, "Deck Invalid"); FOptionPane.showMessageDialog(message, "Deck Invalid");

View File

@@ -20,6 +20,7 @@ package forge.quest;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
@@ -151,6 +152,12 @@ public class QuestController {
} }
public IStorage<DeckGroup> getDraftDecks() { 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; return draftDecks;
} }

View File

@@ -257,7 +257,12 @@ public class QuestAchievements {
} }
public QuestEventDraft getCurrentDraft() { 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 null;
} }
return drafts.get(currentDraft); return drafts.get(currentDraft);

View File

@@ -306,7 +306,7 @@ public class QuestDataIO {
} }
// pet manager will be re-engineered here // pet manager will be re-engineered here
case 5:
case 6: case 6:
// have to convert completed challenges list members to strings. // have to convert completed challenges list members to strings.
for(int i = qA.getLockedChallenges().size()-1; i >= 0; i-- ) { for(int i = qA.getLockedChallenges().size()-1; i >= 0; i-- ) {
@@ -320,8 +320,11 @@ public class QuestDataIO {
qA.getCurrentChallenges().set(i, lc.toString()); qA.getCurrentChallenges().set(i, lc.toString());
} }
case 7:
case 8: case 8:
System.out.println("UPDATE");
QuestDataIO.setFinalField(QuestAssets.class, "draftDecks", qS, new HashMap<String, DeckGroup>()); QuestDataIO.setFinalField(QuestAssets.class, "draftDecks", qS, new HashMap<String, DeckGroup>());
qS.getDraftDeckStorage();
default: default:
break; break;