Exemple #1
0
            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;
 }
Exemple #4
0
            public void LaunchGame(IClientCallback client)
            {
                var message = new LaunchGameMessage(client);

                this.messageQueue.Enqueue(message);
            }