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.QuestDraftUtils.Mode;
import forge.quest.data.QuestEventDraftContainer;
import forge.screens.LoadingOverlay;
import forge.screens.limited.DraftingProcessScreen;
import forge.toolbox.FButton;
import forge.toolbox.FContainer;
@@ -228,7 +229,17 @@ public class QuestTournamentsScreen extends QuestLaunchScreen implements IQuestT
@Override
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() {

View File

@@ -225,7 +225,11 @@ public class BoosterDraft implements IBoosterDraft {
final BoosterDraft draft = new BoosterDraft(draftType);
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();

View File

@@ -24,6 +24,7 @@ import forge.tournament.system.TournamentBracket;
import forge.tournament.system.TournamentPairing;
import forge.tournament.system.TournamentPlayer;
import forge.util.TextUtil;
import forge.util.ThreadUtil;
import forge.util.gui.SGuiChoose;
import forge.util.gui.SOptionPane;
import forge.util.storage.IStorage;
@@ -381,29 +382,34 @@ public class QuestTournamentController {
}
public void startDraft() {
if (drafting) {
SOptionPane.showErrorDialog(localizer.getMessage("lblCurrentlyInDraft"));
return;
}
ThreadUtil.invokeInGameThread(new Runnable() {
@Override
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();
if (draftEvent.canEnter()) {
SOptionPane.showMessageDialog(localizer.getMessage("lblYouNeed") + QuestUtil.formatCredits(draftEvent.getEntryFee() - creditsAvailable) + " " + localizer.getMessage("lblMoreCredits"), localizer.getMessage("lblNotEnoughCredits"), SOptionPane.WARNING_ICON);
return;
}
final long creditsAvailable = FModel.getQuest().getAssets().getCredits();
if (draftEvent.canEnter()) {
SOptionPane.showMessageDialog(localizer.getMessage("lblYouNeed") + QuestUtil.formatCredits(draftEvent.getEntryFee() - creditsAvailable) + " " + localizer.getMessage("lblMoreCredits"), localizer.getMessage("lblNotEnoughCredits"), SOptionPane.WARNING_ICON);
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) {
return;
}
if (!okayToEnter) {
return;
}
drafting = true;
drafting = true;
final BoosterDraft draft = draftEvent.enter();
view.startDraft(draft);
final BoosterDraft draft = draftEvent.enter();
view.startDraft(draft);
}
});
}
public boolean cancelDraft() {