Пример #1
0
        public void Death(PlayerManager playerManager)
        {
            playerManager.IsImmobile     = true;
            playerManager.IsInvulnerable = true;
            SyncPlayerServer.PlayerDied(playerManager.Player.Id);

            ServerManager.Instance.Server.Dispatcher.InvokeAsync(() =>
            {
                playerManager.Model.SetActive(false);
                playerManager.DestroyChaser();
            });


            // Check if highscore and save it
            if (_controlSLA.GameMode != GameMode.Practice)
            {
                // _score.SetHighScore();
            }

            // TODO: Send info to the players

            if (_controlSLA.PlayerManagers.Values.Any(player => !player.IsDead))
            {
                return;
            }

            _levelManager.EndLevel(1);
        }
Пример #2
0
        private void Start()
        {
            ServerManager.Instance.Server.Dispatcher.InvokeAsync(() =>
            {
                Text.text = "Gamemode: " + GameMode;
            });

            foreach (var player in ServerManager.Instance.Players.Values)
            {
                PlayerManagers[player.Id] = _initializeGame.InitializePlayer(player);
            }
            SyncPlayerServer.InitializePlayers();

            InitializeLevel();
        }
Пример #3
0
        private IEnumerator PrepareLevel()
        {
            // Show Highscore and current level
            SyncGameServer.PrepareLevel(CurrentLevel);
            yield return(new WaitForSeconds(3));

            SyncGameServer.HidePanels();
            yield return(new WaitForSeconds(1));

            ServerManager.Instance.Server.Dispatcher.InvokeAsync(() =>
            {
                Text.text = "Level " + CurrentLevel;
            });

            // Spawn Players and Drones
            var playerStates = new List <PlayerState>();

            foreach (var playerManager in PlayerManagers.Values)
            {
                playerStates.Add(_initializeGame.SpawnPlayer(playerManager));
            }

            SyncPlayerServer.SpawnPlayers(playerStates);

            _levelManager.LoadDrones(CurrentLevel);

            yield return(new WaitForSeconds(1));

            // Countdown
            for (ushort i = 3; i > 0; i--)
            {
                SyncGameServer.Countdown(i);
                yield return(new WaitForSeconds(1));
            }
            SyncGameServer.Countdown(0);

            _initializeGame.StartLevel();
        }