示例#1
0
        public void Update()
        {
            if (!reviewing)
            {
                return;
            }
            reviewTimer += Time.deltaTime;
            if (reviewTimer > stateMachine.GetGameBlueprint().timeBetweenNumbersDisplayed)
            {
                reviewTimer = 0;

                bool correctInput = stateMachine.AreEqualByIndex(currentReviewIndex);

                stateMachine.TriggerHUDEvent(UIEvents.Type.PrepareCombinationNumber, stateMachine.GetUserInputNumber(currentReviewIndex).ToString());

                //spawn anim number
                stateMachine.TriggerHUDEvent(UIEvents.Type.SpawnAnimNumber, stateMachine.GetUserInputNumber(currentReviewIndex).ToString());


                //display combo number as incorrect or correct
                stateMachine.TriggerHUDEvent(UIEvents.Type.DisplayCombinationNumber, correctInput
                    ? CombinationDisplay.Type.Correct.ToString()
                    : CombinationDisplay.Type.InCorrect.ToString());
                //play correct or incorrect sound
                stateMachine.PlaySound(correctInput
                    ? AudioFiles.GameplaySoundClip.Correct
                    : AudioFiles.GameplaySoundClip.Incorrect);

                if (correctInput)
                {
                    pointsThisRound += stateMachine.GetGameBlueprint().pointsPerCorrectAnswer;
                }
                else
                {
                    perfectRound = false;
                    stateMachine.detectionLevel += stateMachine.GetGameBlueprint().incorrectPenalty;
                    stateMachine.TriggerHUDEvent(UIEvents.Type.UpdateDetectionSlider, stateMachine.detectionLevel.ToString());
                }

                //Review Complete
                if (currentReviewIndex == stateMachine.GetRound() - 1)
                {
                    reviewing = false;
                    DetermineNextSteps();
                }
                currentReviewIndex++;
            }
        }