mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
had to make a different event to ensure it is fired after log has composed all strings.
PhaseHandler: passPriority is never called from non-EDT, simplifying code here.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -14241,6 +14241,7 @@ src/main/java/forge/game/event/CardsAntedEvent.java -text
|
|||||||
src/main/java/forge/game/event/CounterAddedEvent.java -text
|
src/main/java/forge/game/event/CounterAddedEvent.java -text
|
||||||
src/main/java/forge/game/event/CounterRemovedEvent.java -text
|
src/main/java/forge/game/event/CounterRemovedEvent.java -text
|
||||||
src/main/java/forge/game/event/DrawCardEvent.java -text
|
src/main/java/forge/game/event/DrawCardEvent.java -text
|
||||||
|
src/main/java/forge/game/event/DuelFinishedEvent.java -text
|
||||||
src/main/java/forge/game/event/DuelOutcomeEvent.java -text
|
src/main/java/forge/game/event/DuelOutcomeEvent.java -text
|
||||||
src/main/java/forge/game/event/EndOfTurnEvent.java -text
|
src/main/java/forge/game/event/EndOfTurnEvent.java -text
|
||||||
src/main/java/forge/game/event/Event.java -text
|
src/main/java/forge/game/event/Event.java -text
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ import forge.control.KeyboardShortcuts.Shortcut;
|
|||||||
import forge.game.GameState;
|
import forge.game.GameState;
|
||||||
import forge.game.ai.AiProfileUtil;
|
import forge.game.ai.AiProfileUtil;
|
||||||
import forge.game.event.CardsAntedEvent;
|
import forge.game.event.CardsAntedEvent;
|
||||||
import forge.game.event.DuelOutcomeEvent;
|
import forge.game.event.DuelFinishedEvent;
|
||||||
import forge.game.event.Event;
|
import forge.game.event.Event;
|
||||||
import forge.game.player.LobbyPlayer;
|
import forge.game.player.LobbyPlayer;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
@@ -394,7 +394,7 @@ public enum FControl {
|
|||||||
@Subscribe
|
@Subscribe
|
||||||
public void receiveGameEvent(Event ev) {
|
public void receiveGameEvent(Event ev) {
|
||||||
|
|
||||||
if( ev instanceof DuelOutcomeEvent ) {
|
if( ev instanceof DuelFinishedEvent ) {
|
||||||
FThreads.invokeInEdtNowOrLater(new Runnable() { @Override public void run() {
|
FThreads.invokeInEdtNowOrLater(new Runnable() { @Override public void run() {
|
||||||
new ViewWinLose(game.getMatch());
|
new ViewWinLose(game.getMatch());
|
||||||
SOverlayUtils.showOverlay();
|
SOverlayUtils.showOverlay();
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import forge.Singletons;
|
|||||||
import forge.control.FControl;
|
import forge.control.FControl;
|
||||||
import forge.error.BugReporter;
|
import forge.error.BugReporter;
|
||||||
import forge.game.event.CardsAntedEvent;
|
import forge.game.event.CardsAntedEvent;
|
||||||
|
import forge.game.event.DuelFinishedEvent;
|
||||||
import forge.game.event.DuelOutcomeEvent;
|
import forge.game.event.DuelOutcomeEvent;
|
||||||
import forge.game.event.FlipCoinEvent;
|
import forge.game.event.FlipCoinEvent;
|
||||||
import forge.game.player.LobbyPlayer;
|
import forge.game.player.LobbyPlayer;
|
||||||
@@ -91,6 +92,9 @@ public class MatchController {
|
|||||||
|
|
||||||
// The log shall listen to events and generate text internally
|
// The log shall listen to events and generate text internally
|
||||||
game.getEvents().post(new DuelOutcomeEvent(result, gamesPlayedRo));
|
game.getEvents().post(new DuelOutcomeEvent(result, gamesPlayedRo));
|
||||||
|
|
||||||
|
// will pull UI
|
||||||
|
game.getEvents().post(new DuelFinishedEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -57,9 +57,9 @@ public class AiInputCommon extends InputPassPriorityBase implements AiInput {
|
|||||||
/*
|
/*
|
||||||
* //put this back in ButtonUtil.disableAll();
|
* //put this back in ButtonUtil.disableAll();
|
||||||
* AllZone.getDisplay().showMessage("Phase: " +
|
* AllZone.getDisplay().showMessage("Phase: " +
|
||||||
* Singletons.getModel().getGameState().getPhaseHandler().getPhase() + "\nAn error may have occurred. Please
|
* Singletons.getModel().getGameState().getPhaseHandler().getPhase() +
|
||||||
* send the \"Stack Report\" and the
|
* "\nAn error may have occurred. Please send the \"Stack Report\" and
|
||||||
* \"Detailed Error Trace\" to the Forge forum.");
|
* the \"Detailed Error Trace\" to the Forge forum.");
|
||||||
*/
|
*/
|
||||||
|
|
||||||
computer.getGame().getInputQueue().LockAndInvokeGameAction(aiActions);
|
computer.getGame().getInputQueue().LockAndInvokeGameAction(aiActions);
|
||||||
|
|||||||
3
src/main/java/forge/game/event/DuelFinishedEvent.java
Normal file
3
src/main/java/forge/game/event/DuelFinishedEvent.java
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
package forge.game.event;
|
||||||
|
|
||||||
|
public class DuelFinishedEvent extends Event {} // need this class to launch after log was built via previous event
|
||||||
@@ -752,17 +752,8 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
|
|||||||
nextPhase();
|
nextPhase();
|
||||||
return;
|
return;
|
||||||
} else if (!game.getStack().hasSimultaneousStackEntries()) {
|
} else if (!game.getStack().hasSimultaneousStackEntries()) {
|
||||||
Runnable proc = new Runnable(){
|
game.getStack().resolveStack();
|
||||||
@Override public void run() {
|
game.getStack().chooseOrderOfSimultaneousStackEntryAll();
|
||||||
game.getStack().resolveStack();
|
|
||||||
game.getStack().chooseOrderOfSimultaneousStackEntryAll();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if ( FThreads.isEDT() )
|
|
||||||
game.getInputQueue().LockAndInvokeGameAction(proc);
|
|
||||||
else
|
|
||||||
proc.run();
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// pass the priority to other player
|
// pass the priority to other player
|
||||||
|
|||||||
Reference in New Issue
Block a user