Updated threading for quest start game process.

This commit is contained in:
Doublestrike
2012-03-09 03:55:12 +00:00
parent 7f822cefef
commit cb22007805

View File

@@ -4,6 +4,8 @@ import java.io.File;
import java.util.Set; import java.util.Set;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import forge.AllZone; import forge.AllZone;
@@ -193,51 +195,64 @@ public class SubmenuQuestUtil {
final QuestData qData = AllZone.getQuestData(); final QuestData qData = AllZone.getQuestData();
final QuestEvent event = selectedOpponent.getEvent(); final QuestEvent event = selectedOpponent.getEvent();
OverlayUtils.startGameOverlay(); SwingUtilities.invokeLater(new Runnable() {
OverlayUtils.showOverlay(); @Override
public void run() {
OverlayUtils.startGameOverlay();
OverlayUtils.showOverlay();
}
});
// Logic final SwingWorker<Object, Void> worker = new SwingWorker<Object, Void>() {
Constant.Runtime.HUMAN_DECK[0] = SubmenuQuestUtil.getCurrentDeck(); @Override
Constant.Runtime.COMPUTER_DECK[0] = event.getEventDeck(); public Object doInBackground() {
Constant.Quest.OPP_ICON_NAME[0] = event.getIconFilename(); Constant.Runtime.HUMAN_DECK[0] = SubmenuQuestUtil.getCurrentDeck();
Constant.Runtime.setGameType(GameType.Quest); Constant.Runtime.COMPUTER_DECK[0] = event.getEventDeck();
Constant.Quest.OPP_ICON_NAME[0] = event.getIconFilename();
Constant.Runtime.setGameType(GameType.Quest);
qData.randomizeOpponents(); qData.randomizeOpponents();
qData.setCurrentEvent(event); qData.setCurrentEvent(event);
qData.saveData(); qData.saveData();
if (qData.isFantasy()) { if (qData.isFantasy()) {
Constant.Quest.FANTASY_QUEST[0] = true; Constant.Quest.FANTASY_QUEST[0] = true;
int lifeAI = 20; int lifeAI = 20;
int lifeHuman = 20; int lifeHuman = 20;
if (selectedOpponent.getEvent().getEventType().equals("challenge")) { if (selectedOpponent.getEvent().getEventType().equals("challenge")) {
int extraLife = 0; int extraLife = 0;
// If zeppelin has been purchased, gear will be at level 2. // If zeppelin has been purchased, gear will be at level 2.
if (event.getEventType().equalsIgnoreCase("challenge") if (event.getEventType().equalsIgnoreCase("challenge")
&& !qData.getInventory().getItem("Zeppelin").isAvailableForPurchase() && !qData.getInventory().getItem("Zeppelin").isAvailableForPurchase()
&& VSubmenuChallenges.SINGLETON_INSTANCE.getCbZep().isSelected()) { && VSubmenuChallenges.SINGLETON_INSTANCE.getCbZep().isSelected()) {
extraLife = 3; extraLife = 3;
}
lifeAI = ((QuestChallenge) event).getAILife();
lifeHuman = qData.getLife() + extraLife;
}
GameNew.newGame(
Constant.Runtime.HUMAN_DECK[0],
Constant.Runtime.COMPUTER_DECK[0],
QuestUtil.getHumanStartingCards(qData),
QuestUtil.getComputerStartingCards(qData),
lifeHuman,
lifeAI);
} // End isFantasy
else {
GameNew.newGame(SubmenuQuestUtil.getCurrentDeck(), event.getEventDeck());
} }
lifeAI = ((QuestChallenge) event).getAILife(); return null;
lifeHuman = qData.getLife() + extraLife;
} }
GameNew.newGame( @Override
Constant.Runtime.HUMAN_DECK[0], public void done() {
Constant.Runtime.COMPUTER_DECK[0], OverlayUtils.hideOverlay();
QuestUtil.getHumanStartingCards(qData), }
QuestUtil.getComputerStartingCards(qData), };
lifeHuman, worker.execute();
lifeAI);
} // End isFantasy
else {
GameNew.newGame(SubmenuQuestUtil.getCurrentDeck(), event.getEventDeck());
}
// Start transisiton to match UI.
OverlayUtils.hideOverlay();
} }
/** Selectable panels for duels and challenges. */ /** Selectable panels for duels and challenges. */