mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Updated threading for quest start game process.
This commit is contained in:
@@ -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. */
|
||||||
|
|||||||
Reference in New Issue
Block a user