Esempio n. 1
0
    void Update()
    {
        ScoreText.text = score.ToString();

        if (Constants.GameOn)
        {
            if (Constants.Endless)
            {
                if (spawnTimer > 0)
                {
                    spawnTimer -= Time.deltaTime;
                    if (spawnTimer <= 0)
                    {
                        spawnTimer = 0;
                        Spawn();
                    }
                }

                int note        = FloorManager.PosToNote(transform.position.y);
                int floorsAbove = floorManager.FloorsOnAbove(note);
                int floorsUnder = floorManager.FloorsOnUnder(note);

                if (floorsAbove > 0)
                {
                    UpArrow.enabled = true;
                    UpText.enabled  = true;
                    UpText.text     = floorsAbove.ToString();
                }
                else
                {
                    UpArrow.enabled = false;
                    UpText.enabled  = false;
                }

                if (floorsUnder > 0)
                {
                    DownArrow.enabled = true;
                    DownText.enabled  = true;
                    DownText.text     = floorsUnder.ToString();
                }
                else
                {
                    DownArrow.enabled = false;
                    DownText.enabled  = false;
                }

                TimerBar.value = timer / Constants.EndlessPatience;
            }
            else
            {
                int targetNote = Constants.Level[curIdx];
                int curNote    = FloorManager.PosToNote(transform.position.y);

                if (targetNote > curNote)
                {
                    UpArrow.color     = floorManager.GetColor(targetNote);
                    UpArrow.color     = FloorManager.LightUp(UpArrow.color);
                    UpArrow.enabled   = true;
                    UpText.enabled    = true;
                    DownArrow.enabled = false;
                    DownText.enabled  = false;
                }
                else if (targetNote < curNote)
                {
                    DownArrow.color   = floorManager.GetColor(targetNote);
                    DownArrow.color   = FloorManager.LightUp(DownArrow.color);
                    UpArrow.enabled   = false;
                    UpText.enabled    = false;
                    DownArrow.enabled = true;
                    DownText.enabled  = true;
                }
                else
                {
                    UpArrow.enabled   = false;
                    UpText.enabled    = false;
                    DownArrow.enabled = false;
                    DownText.enabled  = false;
                }

                TimerBar.value = timer / Constants.NormalPatience;
            }

            foreach (PersonScript person in clients)
            {
                timer = Mathf.Min(timer, person.Patience);
            }

            TimerFill.color = Color.Lerp(Color.red, Color.yellow, TimerBar.value);
            if (TimerBar.value < Constants.CriticalTimer)
            {
                TimerBar.transform.position = timerBarPos + 3 * Random.insideUnitSphere;
            }

            if (timer <= 0)
            {
                timer = 0;
                TimerBar.transform.position = timerBarPos;
                EndGame();
            }
        }
    }