From 32b81da2e0c617fcf1a4d8c6e8a12faf12ac5655 Mon Sep 17 00:00:00 2001 From: Sloth Date: Fri, 23 Nov 2012 16:10:40 +0000 Subject: [PATCH] - Moved most of the stuff happening in startGame outside of the swingWorker (to fix the ConcurrentModificationException error). --- .../gui/home/quest/SSubmenuQuestUtil.java | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java index acdbab2b8c3..78863254074 100644 --- a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java +++ b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java @@ -294,39 +294,6 @@ public class SSubmenuQuestUtil { qData.setCurrentEvent(event); qData.save(); - PlayerStartConditions humanStart = new PlayerStartConditions(SSubmenuQuestUtil.getCurrentDeck()); - PlayerStartConditions aiStart = new PlayerStartConditions(event.getEventDeck()); - - if (qData.getMode() == QuestMode.Fantasy) { - int lifeAI = 20; - int extraLifeHuman = 0; - - if (event instanceof QuestEventChallenge) { - lifeAI = ((QuestEventChallenge) event).getAILife(); - - if (qData.getAssets().hasItem(QuestItemType.ZEPPELIN)) { - extraLifeHuman = 3; - } - } - - humanStart.setStartingLife(qData.getAssets().getLife(qData.getMode()) + extraLifeHuman); - aiStart.setStartingLife(lifeAI); - - humanStart.setCardsOnTable(new Supplier>() { - @Override public Iterable get() { return QuestUtil.getHumanStartingCards(qData, event); } }); - aiStart.setCardsOnTable(new Supplier>() { - @Override public Iterable get() { return QuestUtil.getComputerStartingCards(event); } }); - } // End isFantasy - - MatchStartHelper msh = new MatchStartHelper(); - msh.addPlayer( Singletons.getControl().getLobby().getQuestPlayer(), humanStart ); - - LobbyPlayer aiPlayer = Singletons.getControl().getLobby().findLocalPlayer(PlayerType.COMPUTER, event.getName()); - aiPlayer.setPicture(event.getIconFilename()); - msh.addPlayer( aiPlayer, aiStart ); - - Singletons.getModel().getMatch().initMatch(GameType.Quest, msh.getPlayerMap()); - Singletons.getModel().getMatch().startRound(); return null; } @@ -336,6 +303,39 @@ public class SSubmenuQuestUtil { } }; worker.execute(); + PlayerStartConditions humanStart = new PlayerStartConditions(SSubmenuQuestUtil.getCurrentDeck()); + PlayerStartConditions aiStart = new PlayerStartConditions(event.getEventDeck()); + + if (qData.getMode() == QuestMode.Fantasy) { + int lifeAI = 20; + int extraLifeHuman = 0; + + if (event instanceof QuestEventChallenge) { + lifeAI = ((QuestEventChallenge) event).getAILife(); + + if (qData.getAssets().hasItem(QuestItemType.ZEPPELIN)) { + extraLifeHuman = 3; + } + } + + humanStart.setStartingLife(qData.getAssets().getLife(qData.getMode()) + extraLifeHuman); + aiStart.setStartingLife(lifeAI); + + humanStart.setCardsOnTable(new Supplier>() { + @Override public Iterable get() { return QuestUtil.getHumanStartingCards(qData, event); } }); + aiStart.setCardsOnTable(new Supplier>() { + @Override public Iterable get() { return QuestUtil.getComputerStartingCards(event); } }); + } // End isFantasy + + MatchStartHelper msh = new MatchStartHelper(); + msh.addPlayer( Singletons.getControl().getLobby().getQuestPlayer(), humanStart ); + + LobbyPlayer aiPlayer = Singletons.getControl().getLobby().findLocalPlayer(PlayerType.COMPUTER, event.getName()); + aiPlayer.setPicture(event.getIconFilename()); + msh.addPlayer( aiPlayer, aiStart ); + + Singletons.getModel().getMatch().initMatch(GameType.Quest, msh.getPlayerMap()); + Singletons.getModel().getMatch().startRound(); } /** Duplicate in DeckEditorQuestMenu and