private void ProcessLaunchGameMessage(LaunchGameMessage message) { if (!this.AllClientsHaveSentMessage(message.Client)) { return; } this.clientsThatReceivedMessages.Clear(); this.SendGameInitializationData(); }
private async void LaunchGameMessageReceived(LaunchGameMessage launchGameMessage) { if (_gameLauncherService.IsLaunching) { _notificationService.ShowNotification("Already launching.", Notification.ShortMessageDelay, true); return; } if (_isWatitingForShutdown) { var forceClose = AskToForceClose(); if (!forceClose) { return; } _currentProcess.Kill(); await WaitForProcessShutdown(_currentProcess); } Messenger.Default.Send(new ToggleLauncherSplashScreenVisibleMessage(true)); if (launchGameMessage.JoinServer) { _currentProcess = await _gameLauncherService.LaunchGameAndJoinServer(launchGameMessage.JoinServerIp, launchGameMessage.JoinServerPort); } else { _currentProcess = await _gameLauncherService.LaunchGame(launchGameMessage.LaunchMode); } Messenger.Default.Send(new ToggleLauncherSplashScreenVisibleMessage(false)); if (_currentProcess == null) { return; } _isWatitingForShutdown = true; await WaitForProcessShutdown(_currentProcess); Messenger.Default.Send(new ToggleLauncherSplashScreenVisibleMessage(true)); if (launchGameMessage.LaunchMode == GameLaunchMode.Multiplayer) { _gameLauncherService.ShutdownGrandTheftMultiplayer(); } Messenger.Default.Send(new ToggleLauncherSplashScreenVisibleMessage(false)); _isWatitingForShutdown = false; }
private void HandleLaunchGameMessage(LaunchGameMessage obj) { PlayingState = PlayingState.Playing; }
public void LaunchGame(IClientCallback client) { var message = new LaunchGameMessage(client); this.messageQueue.Enqueue(message); }