mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
match cleanup
This commit is contained in:
@@ -66,7 +66,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void, Void>
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(GameEventDuelOutcome ev, Void params) {
|
public Void visit(GameEventDuelOutcome ev, Void params) {
|
||||||
FThreads.invokeInEdtNowOrLater(new Runnable() { @Override public void run() {
|
FThreads.invokeInEdtNowOrLater(new Runnable() { @Override public void run() {
|
||||||
fc.getInputQueue().onGameOver();
|
fc.getInputQueue().onGameOver(); // this will unlock any game threads waiting for inputs to complete
|
||||||
} });
|
} });
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import forge.card.spellability.SpellAbilityStackInstance;
|
|||||||
import forge.card.trigger.TriggerHandler;
|
import forge.card.trigger.TriggerHandler;
|
||||||
import forge.card.trigger.TriggerType;
|
import forge.card.trigger.TriggerType;
|
||||||
import forge.game.event.GameEvent;
|
import forge.game.event.GameEvent;
|
||||||
|
import forge.game.event.GameEventDuelOutcome;
|
||||||
import forge.game.phase.Cleanup;
|
import forge.game.phase.Cleanup;
|
||||||
import forge.game.phase.Combat;
|
import forge.game.phase.Combat;
|
||||||
import forge.game.phase.EndOfCombat;
|
import forge.game.phase.EndOfCombat;
|
||||||
@@ -311,7 +312,14 @@ public class GameState {
|
|||||||
for (Player p : roIngamePlayers) {
|
for (Player p : roIngamePlayers) {
|
||||||
p.onGameOver();
|
p.onGameOver();
|
||||||
}
|
}
|
||||||
match.addGamePlayed(reason, this);
|
|
||||||
|
final GameOutcome result = new GameOutcome(reason, getRegisteredPlayers());
|
||||||
|
result.setTurnsPlayed(getPhaseHandler().getTurn());
|
||||||
|
|
||||||
|
match.addGamePlayed(result);
|
||||||
|
|
||||||
|
// The log shall listen to events and generate text internally
|
||||||
|
fireEvent(new GameEventDuelOutcome(result, match.getPlayedGames()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Zone getZoneOf(final Card c) {
|
public Zone getZoneOf(final Card c) {
|
||||||
|
|||||||
@@ -10,8 +10,6 @@ import com.google.common.collect.Lists;
|
|||||||
import forge.Card;
|
import forge.Card;
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.game.event.GameEventAnteCardsSelected;
|
import forge.game.event.GameEventAnteCardsSelected;
|
||||||
import forge.game.event.GameEventDuelFinished;
|
|
||||||
import forge.game.event.GameEventDuelOutcome;
|
|
||||||
import forge.game.event.GameEventFlipCoin;
|
import forge.game.event.GameEventFlipCoin;
|
||||||
import forge.game.player.LobbyPlayer;
|
import forge.game.player.LobbyPlayer;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
@@ -72,23 +70,11 @@ public class MatchState {
|
|||||||
return gamesToWinMatch;
|
return gamesToWinMatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public void addGamePlayed(GameOutcome outcome) {
|
||||||
* TODO: Write javadoc for this method.
|
if (!currentGame.isGameOver()) {
|
||||||
* @param reason
|
throw new IllegalStateException("Game is not over yet.");
|
||||||
*
|
|
||||||
* @param game
|
|
||||||
*/
|
|
||||||
public void addGamePlayed(GameEndReason reason, GameState game) {
|
|
||||||
if (!game.isGameOver()) {
|
|
||||||
throw new RuntimeException("Game is not over yet.");
|
|
||||||
}
|
}
|
||||||
|
gamesPlayed.add(outcome);
|
||||||
final GameOutcome result = new GameOutcome(reason, game.getRegisteredPlayers());
|
|
||||||
result.setTurnsPlayed(game.getPhaseHandler().getTurn());
|
|
||||||
gamesPlayed.add(result);
|
|
||||||
|
|
||||||
// The log shall listen to events and generate text internally
|
|
||||||
game.fireEvent(new GameEventDuelOutcome(result, gamesPlayedRo));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user