Пример #1
0
        private IEnumerator StartDeliveryToNextPoint()
        {
            //Sum points
            uint timeLeft = _levelTimeToDelivery - _levelTimer;
            uint points   = (uint)Mathf.Round(timeLeft * 0.001f * 40 + 200);

            LevelScore += points;

            _timerToDeliveryPause = true;

            HUD.Instance.UpdateLevelScore(LevelScore, 1000);

            yield return(new WaitForMilliSeconds(1000));

            HUD.Instance.HudPointsPopUp.Show((int)points);

            bool hasNextDelivery = _level.ActivateNextDeliveryPoint();

            if (hasNextDelivery)
            {
                _levelTimer           = 0;
                _timerToDeliveryPause = false;
                _levelTimeToDelivery  = _level.CurrentDeliveryPoint.Timer;

                HUD.Instance.ArrowToObjective.Target = _level.CurrentDeliveryPoint;
            }
            else
            {
                //Level end
                CoroutineManager.StartCoroutine(EndLevelByWonRoutine(), this);

                HUD.Instance.ArrowToObjective.Enabled = false;
            }

            yield return(null);
        }