/// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        private void StartAnimation()
        {
            _currentSequence = DOTween.Sequence();

            _currentSequence.Append(_textDemo.DOFade(1f, 0.5f));

            foreach (var item in _images)
            {
                _currentSequence.Join(item.DOFade(1f, 0.5f));
            }

            _currentSequence.AppendInterval(1.0f);
            _currentSequence.Append(_textDemo.DOFade(0f, 0.5f));

            foreach (var item in _images)
            {
                _currentSequence.Join(item.DOFade(0f, 0.5f));
            }

            _currentSequence.Append(_textMesh.DOFade(1f, 0.5f));
            _currentSequence.Join(_controllerImage.DOFade(1f, 0.5f));

            _currentSequence.AppendInterval(1.0f);

            _currentSequence.Append(_textMesh.DOFade(0f, 0.5f));
            _currentSequence.Join(_controllerImage.DOFade(0f, 0.5f));

            _currentSequence.AppendCallback(() => GameplayStatics.TransitionToScene(GameConstants.TitleScreenScene));
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        private IEnumerator LoadGame()
        {
            MenuMusicController.StopMusic();
            yield return(new WaitForSecondsRealtime(1.0f));

            GameplayStatics.TransitionToScene(_mapSettings.selectedMap.sceneName);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="action"></param>
        private void OnSubmit(UINavigationData action)
        {
            action.navigationHandler.Unfocus();
            StopMusic();
            switch (action.actionName)
            {
            case "Rematch":
                if (GameModeParams.instance.useRandomMap)
                {
                    GameModeParams.instance.selectedMap = GetRandomMap(GameModeParams.instance.selectedMap);
                }
                GameplayStatics.TransitionToScene(GameModeParams.instance.selectedMap);
                break;

            case "QuitGame":
                GameplayStatics.TransitionToScene(
                    GameConstants.TitleScreenScene
                    );
                break;

            default:
                MatchSettingsManager.showMaps = true;
                GameplayStatics.TransitionToScene(
                    GameConstants.MatchSettingsScene
                    );
                break;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="winner"></param>
        /// <returns></returns>
        private IEnumerator GameOver(CharacterSpawner winner)
        {
            for (var i = 0; i < characterSpawners.Count; ++i)
            {
                if (characterSpawners[i].teamIndex == -1)
                {
                    continue;
                }
                characterSpawners[i].UpdateScoreInfo();
                Telemetry.game.Set($"player{i}Score", characterSpawners[i].score);
            }

            isGameOver = true;
            var character          = winner.character;
            var aiBehaviourManager = character.GetComponentInChildren <AIBehaviourManager>();

            if (aiBehaviourManager != null)
            {
                Destroy(aiBehaviourManager.gameObject);
            }

            yield return(winner.OpenPod());

            character.SetGameplayState(CharacterGameplayState.Leaving);

            yield return((character.gameplayStateHandler as CharacterGameplayState_Leaving).coroutine);

            yield return(winner.ClosePod());

            StartCoroutine(TriggerExplosions());

            yield return(new WaitForSeconds(1.0f));

            for (var i = 0; i < characterSpawners.Count; ++i)
            {
                if (characterSpawners[i].teamIndex == -1)
                {
                    continue;
                }

                Telemetry.game.Set($"player{i}Score", characterSpawners[i].score);

                if (characterSpawners[i] == winner)
                {
                    continue;
                }

                if (characterSpawners[i].character != null)
                {
                    characterSpawners[i].character.SetGameplayState(CharacterGameplayState.Panicking);
                }
            }

            yield return(new WaitForSeconds(4.0f));

            GameplayStatics.TransitionToScene(GameConstants.VictoryScene);

            yield break;
        }
Exemple #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="data"></param>
        private IEnumerator OnSubmit(UINavigationData data)
        {
            var shakeTime     = 0.5f;
            var shakeStrenght = 5f;
            var shakeVibrato  = 50;

            switch (data.actionName)
            {
            case "Start":
                data.navigationHandler.Unfocus();
                ShakeAllControllers();
                MatchSettingsManager.showMaps = false;
                yield return(UITitleScreenPanel.titleScreenPanelInstance.playButton.transform.DOShakePosition(shakeTime, shakeStrenght, shakeVibrato).WaitForCompletion());

                UITitleScreenPanel.CloseTitleScreenPanel();
                break;

            case "Settings":
                data.navigationHandler.Unfocus();
                ShakeAllControllers();
                yield return(UITitleScreenPanel.titleScreenPanelInstance.settingsButton.transform.DOShakePosition(shakeTime, shakeStrenght, shakeVibrato).WaitForCompletion());

                UITitleScreenPanel.titleScreenPanelInstance.gameObject.SetActive(false);

                SettingsPanelNavigationHandler.OpenSettingsPanel(() =>
                {
                    data.navigationHandler.Focus();
                    UITitleScreenPanel.titleScreenPanelInstance.gameObject.SetActive(true);
                });
                break;

            case "Credits":
                data.navigationHandler.Unfocus();
                ShakeAllControllers();
                yield return(UITitleScreenPanel.titleScreenPanelInstance.creditsButton.transform.DOShakePosition(shakeTime, shakeStrenght, shakeVibrato).WaitForCompletion());

                UITitleScreenPanel.titleScreenPanelInstance.gameObject.SetActive(false);
                var credits = FindObjectOfType <Credits>();
                credits?.StartCredits(() =>
                {
                    data.navigationHandler.Focus();
                    UITitleScreenPanel.titleScreenPanelInstance.gameObject.SetActive(true);
                });
                UITitleScreenPanel.titleScreenPanelInstance.gameObject.SetActive(false);
                break;

            case "QuitGame":
                data.navigationHandler.Unfocus();
                ShakeAllControllers();
                MenuMusicController.StopMusic();
                yield return(UITitleScreenPanel.titleScreenPanelInstance.quitButton.transform.DOShakePosition(shakeTime, shakeStrenght, shakeVibrato).WaitForCompletion());

                GameplayStatics.TransitionToScene(GameConstants.SupportScene);
                break;
            }
        }
Exemple #6
0
        /// <summary>
        ///
        /// </summary>
        private void UpdateCharacterSelection()
        {
            if (CheckTransitionBack(State.None))
            {
                GameplayStatics.TransitionToScene(GameConstants.TitleScreenScene);
                return;
            }

            UpdateControllers();

            var allReady          = _characterSettings.Where(x => x.isJoining).All(x => x.hasSelected);
            var playersReady      = _characterSettings.Where(x => x.isReady).ToArray();
            var playersReadyCount = playersReady.Count(x => x.isReady);
            var playersJoinCount  = _characterSettings.Count(x => x.isJoining);

            var enoughPlayers = playersReadyCount >= (Debug.isDebugBuild ? 1 : MinimumNumberOfPlayers);

            if (playersJoinCount < 2 && playersReadyCount >= 1 && !Debug.isDebugBuild)
            {
                _playerMinPrompt.Open();
            }
            else if (_playerMinPrompt.isOpen)
            {
                _playerMinPrompt.Close();
            }

            if (allReady && enoughPlayers)
            {
                if (!_continuePrompt.isOpen)
                {
                    _continuePrompt.Open();
                }
            }
            else if (_continuePrompt.isOpen)
            {
                _continuePrompt.Close();
            }

            if (_continuePrompt.isOpen)
            {
                int controllerIndex;
                if (InputHelper.AnyButtonDown(SubmitInputName, out controllerIndex))
                {
                    if (playersReady.Any(x => x.controllerIndex == controllerIndex && x.isReady) ||
                        playersReady.All(x => x.useCPU))
                    {
                        GotoMapSelection();
                    }
                }
            }
        }
Exemple #7
0
        /// <summary>
        ///
        /// </summary>
        private IEnumerator CloseInternal()
        {
            _playButton.transform.DOMoveX(500f, 0.3f);

            yield return(new WaitForSeconds(0.2f));

            _settingsButton.transform.DOMoveX(-500f, 0.3f);

            yield return(new WaitForSeconds(0.2f));

            _creditsButton.transform.DOMoveX(500f, 0.3f);

            yield return(new WaitForSeconds(0.2f));

            yield return(_quitButton.transform.DOMoveX(-500f, 0.3f).WaitForCompletion());

            GameplayStatics.TransitionToScene(GameConstants.MatchSettingsScene);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="data"></param>
        private void OnSubmit(UINavigationData data)
        {
            switch (data.actionName)
            {
            case "Resume":
                GameplayStatics.UnpauseGame();
                break;

            case "Rematch":
                StopMusic();
                GameplayStatics.TransitionToScene(
                    UnityEngine.SceneManagement.SceneManager.GetActiveScene().name
                    );
                break;

            case "Settings":
                data.navigationHandler.Unfocus();
                _pausePanel.gameObject.SetActive(false);

                SettingsPanelNavigationHandler.OpenSettingsPanel(() =>
                {
                    _pausePanel.gameObject.SetActive(true);
                    data.navigationHandler.Focus();
                });
                break;

            case "QuitGame":
                StopMusic();
                GameplayStatics.TransitionToScene(
                    GameConstants.TitleScreenScene
                    );
                break;

            case "ChangeMap":
                MatchSettingsManager.showMaps = true;
                StopMusic();
                GameplayStatics.TransitionToScene(
                    GameConstants.MatchSettingsScene
                    );
                break;
            }
        }