Fix Quest Tournament loading on Mobile :)

This commit is contained in:
Anthony Calosa
2020-10-03 14:54:23 +08:00
parent 4cc2fad8c2
commit ccc0ac5f78
3 changed files with 40 additions and 19 deletions

View File

@@ -26,6 +26,7 @@ import forge.quest.QuestEventDraft;
import forge.quest.QuestTournamentController; import forge.quest.QuestTournamentController;
import forge.quest.QuestDraftUtils.Mode; import forge.quest.QuestDraftUtils.Mode;
import forge.quest.data.QuestEventDraftContainer; import forge.quest.data.QuestEventDraftContainer;
import forge.screens.LoadingOverlay;
import forge.screens.limited.DraftingProcessScreen; import forge.screens.limited.DraftingProcessScreen;
import forge.toolbox.FButton; import forge.toolbox.FButton;
import forge.toolbox.FContainer; import forge.toolbox.FContainer;
@@ -228,7 +229,17 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT
@Override @Override
public void startDraft(BoosterDraft draft) { public void startDraft(BoosterDraft draft) {
Forge.openScreen(new DraftingProcessScreen(draft, EditorType.QuestDraft, controller)); FThreads.invokeInEdtLater(new Runnable() {
@Override
public void run() {
LoadingOverlay.show("Loading Quest Tournament", new Runnable() {
@Override
public void run() {
Forge.openScreen(new DraftingProcessScreen(draft, EditorType.QuestDraft, controller));
}
});
}
});
} }
private Deck getDeck() { private Deck getDeck() {

View File

@@ -225,7 +225,11 @@ public class BoosterDraft implements IBoosterDraft {
final BoosterDraft draft = new BoosterDraft(draftType); final BoosterDraft draft = new BoosterDraft(draftType);
for (String booster : boosters) { for (String booster : boosters) {
draft.product.add(block.getBooster(booster)); try {
draft.product.add(block.getBooster(booster));
} catch (Exception ex) {
System.err.println("Booster Draft Error: "+ex.getMessage());
}
} }
IBoosterDraft.LAND_SET_CODE[0] = block.getLandSet(); IBoosterDraft.LAND_SET_CODE[0] = block.getLandSet();

View File

@@ -24,6 +24,7 @@ import forge.tournament.system.TournamentBracket;
import forge.tournament.system.TournamentPairing; import forge.tournament.system.TournamentPairing;
import forge.tournament.system.TournamentPlayer; import forge.tournament.system.TournamentPlayer;
import forge.util.TextUtil; import forge.util.TextUtil;
import forge.util.ThreadUtil;
import forge.util.gui.SGuiChoose; import forge.util.gui.SGuiChoose;
import forge.util.gui.SOptionPane; import forge.util.gui.SOptionPane;
import forge.util.storage.IStorage; import forge.util.storage.IStorage;
@@ -381,29 +382,34 @@ public class QuestTournamentController {
} }
public void startDraft() { public void startDraft() {
if (drafting) { ThreadUtil.invokeInGameThread(new Runnable() {
SOptionPane.showErrorDialog(localizer.getMessage("lblCurrentlyInDraft")); @Override
return; public void run() {
} if (drafting) {
SOptionPane.showErrorDialog(localizer.getMessage("lblCurrentlyInDraft"));
return;
}
final QuestEventDraft draftEvent = QuestUtil.getDraftEvent(); final QuestEventDraft draftEvent = QuestUtil.getDraftEvent();
final long creditsAvailable = FModel.getQuest().getAssets().getCredits(); final long creditsAvailable = FModel.getQuest().getAssets().getCredits();
if (draftEvent.canEnter()) { if (draftEvent.canEnter()) {
SOptionPane.showMessageDialog(localizer.getMessage("lblYouNeed") + QuestUtil.formatCredits(draftEvent.getEntryFee() - creditsAvailable) + " " + localizer.getMessage("lblMoreCredits"), localizer.getMessage("lblNotEnoughCredits"), SOptionPane.WARNING_ICON); SOptionPane.showMessageDialog(localizer.getMessage("lblYouNeed") + QuestUtil.formatCredits(draftEvent.getEntryFee() - creditsAvailable) + " " + localizer.getMessage("lblMoreCredits"), localizer.getMessage("lblNotEnoughCredits"), SOptionPane.WARNING_ICON);
return; return;
} }
final boolean okayToEnter = SOptionPane.showOptionDialog(localizer.getMessage("lblTournamentCosts") + QuestUtil.formatCredits(draftEvent.getEntryFee()) + localizer.getMessage("lblSureEnterTournament"), localizer.getMessage("lblEnterDraftTournament"), FSkinProp.ICO_QUEST_GOLD, ImmutableList.of(localizer.getMessage("lblYes"), localizer.getMessage("lblNo")), 1) == 0; final boolean okayToEnter = SOptionPane.showOptionDialog(localizer.getMessage("lblTournamentCosts") + QuestUtil.formatCredits(draftEvent.getEntryFee()) + localizer.getMessage("lblSureEnterTournament"), localizer.getMessage("lblEnterDraftTournament"), FSkinProp.ICO_QUEST_GOLD, ImmutableList.of(localizer.getMessage("lblYes"), localizer.getMessage("lblNo")), 1) == 0;
if (!okayToEnter) { if (!okayToEnter) {
return; return;
} }
drafting = true; drafting = true;
final BoosterDraft draft = draftEvent.enter(); final BoosterDraft draft = draftEvent.enter();
view.startDraft(draft); view.startDraft(draft);
}
});
} }
public boolean cancelDraft() { public boolean cancelDraft() {