public void CancelGamePreparation(AsyncUserToken userToken) { ServerSideTokenIdentity identity = (ServerSideTokenIdentity)userToken.info; lock (identity.MatchmakingLock) { if (identity.MatchmakingStatus != UserMatchmakingStatus.PREPARING_GAME) { return; } GameWrapper gameWrapper = identity.GameWrapper; var game = gameWrapper.Game; lock (gameWrapper.@lock) { GameCanceledNotification gameCanceledNotification = new GameCanceledNotification(); foreach (var token in gameWrapper.Tokens) { if (token != userToken) { Config.GameServer.Send(token, gameCanceledNotification); } } TerminateGame(gameWrapper); } } }
private void HandleGameCanceledNotification(GameCanceledNotification obj) { HeadToHomeScene(); }