コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected IEnumerator ShowControlsScheme()
        {
            if (GameModeParams.instance.firstGame && GameModeParams.instance.playerParams.Any(x => x.isPlaying && !x.isAiControlled))
            {
                Time.timeScale = 0.0f;
                var panel = UIControlsSchemePanel.OpenControlsSchemePanel();

                var panelTransform = panel.transform;
                panelTransform.position = Vector3.right * 1024.0f;

                yield return(new WaitForSecondsRealtime(0.5f));

                panelTransform.DOMoveX(0.0f, 1.0f).SetUpdate(true);

                yield return(new WaitUntil(() => panelTransform.position.x == 0.0f));

                panel.canFlip = true;
                yield return(new WaitUntil(() => InputHelper.AnyButtonDown(UISubmitInputName)));

                panelTransform.DOMoveX(-1024.0f, 1.0f).SetUpdate(true)
                .onComplete += (() =>
                {
                    UIControlsSchemePanel.CloseControlsSchemePanel();
                });

                GameModeParams.instance.firstGame = false;
                Time.timeScale = 1.0f;
            }
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        protected override void LateUpdate()
        {
            base.LateUpdate();

            if (Debug.isDebugBuild)
            {
                if (InputHelper.AnyButtonDown("Gameplay_Activate"))
                {
                    if (!AIBehaviour.easyMode)
                    {
                        var characters = FindObjectsOfType <Character>();
                        var index      = -1;
                        for (var i = 0; i < characters.Length; ++i)
                        {
                            if (characters[i].GetComponent <CharacterMarketingZoom>())
                            {
                                index = i;
                                break;
                            }
                        }

                        ++index;
                        index = Mathf.Min(characters.Length - 1, index);
                        characters[index].ToggleMarketingZoom();
                    }
                }
            }
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="prevState"></param>
        /// <returns></returns>
        private bool CheckTransitionBack(State prevState)
        {
            if (InputHelper.AnyButtonDown(CancelInputName))
            {
                this.EmitSound(BackStartSoundKey);
            }

            if (InputHelper.AnyButton(CancelInputName))
            {
                _elapsedSinceBack += GameplayStatics.gameDeltaTime;
                if (_elapsedSinceBack >= _backTimeout)
                {
                    this.EmitSound(BackEndSoundKey);
                    Transition(prevState);
                    return(true);
                }
            }
            else
            {
                _elapsedSinceBack = Mathf.Max(0.0f, _elapsedSinceBack - GameplayStatics.gameDeltaTime);
            }

            UpdateBackMask();

            return(false);
        }
コード例 #4
0
 /// <summary>
 ///
 /// </summary>
 private void Update()
 {
     if (InputHelper.AnyButtonDown(StartActionName))
     {
         SettingsPanelNavigationHandler.CloseSettingsPanel();
     }
 }
コード例 #5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="index"></param>
 /// <returns></returns>
 private bool GetCancelState(out int index)
 {
     if (userIndex == -1)
     {
         return(InputHelper.AnyButtonDown(InputCancelName, out index));
     }
     index = userIndex;
     return(_playerController.GetButtonDown(InputCancelName));
 }
コード例 #6
0
        /// <summary>
        ///
        /// </summary>
        protected virtual void LateUpdate()
        {
            if (hasGameStarted && !_isGameOver && InputHelper.AnyButtonDown(UIStartInputName))
            {
                GameplayStatics.TogglePause();
            }

            if (!isGameOver && GameplayStatics.state == GameplayState.GamePaused)
            {
                Telemetry.game.Incr("timeInPause", GameplayStatics.pauseDeltaTime);
            }
        }
コード例 #7
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();
                    }
                }
            }
        }
コード例 #8
0
        /// <summary>
        ///
        /// </summary>
        private void Update()
        {
            if (_gameStarted)
            {
                return;
            }

            if (InputHelper.AnyButtonDown(SettingsInputName))
            {
                var settingPanel = GameObject.FindObjectOfType <SettingsPanelNavigationHandler>();

                if (settingPanel == null)
                {
                    var allNavigation = GetComponentsInChildren <UINavigation>();
                    foreach (var navigation in allNavigation)
                    {
                        navigation.Unfocus();
                    }

                    SettingsPanelNavigationHandler.OpenSettingsPanel(() =>
                    {
                        foreach (var navigation in allNavigation)
                        {
                            navigation.Focus();
                        }
                    });
                }
                else
                {
                    SettingsPanelNavigationHandler.CloseSettingsPanel();
                }
            }

            if (InputHelper.AnyButtonDown(AddCPUInputName))
            {
                var nextCharacterCPU = _characterSettings.FirstOrDefault(x => !x.isJoining);
                if (nextCharacterCPU != null)
                {
                    nextCharacterCPU.useCPU = true;
                }
            }

            if (InputHelper.AnyButtonDown(RemoveCPUInputName))
            {
                var lastCharacterCPU = _characterSettings.LastOrDefault(x => x.useCPU);
                if (lastCharacterCPU != null)
                {
                    lastCharacterCPU.useCPU = false;
                }
            }

            switch (_state)
            {
            case State.CharacterSelection:
                UpdateCharacterSelection();
                break;

            case State.MapSelection:
                UpdateMapSelection();
                break;

            case State.Transition:
                _elapsedSinceBack = Mathf.Max(0.0f, _elapsedSinceBack - GameplayStatics.gameDeltaTime);
                UpdateBackMask();
                break;
            }
        }