Esempio n. 1
0
 // Coroutines for update handling.
 IEnumerator NormSpeedUpdate()
 {
     curCoroutine = GameCoroutineType.NormSpeedUpdate;
     while (curCoroutine == GameCoroutineType.NormSpeedUpdate)
     {
         UpdateScore(Time.deltaTime);
         yield return(null);
     }
 }
Esempio n. 2
0
 public void StopGame()
 {
     if (curCoroutine != GameCoroutineType.NormSpeedUpdate)
     {
         ResetValues();
     }
     curCoroutine = GameCoroutineType.Inactive;
     StopMusic(0);
     StopMusic(1);
     PlayerPrefs.SetFloat("highScore", highScore);
 }
Esempio n. 3
0
 IEnumerator SlowSpeedUpdate(float timeLeft)
 {
     curCoroutine = GameCoroutineType.SlowSpeedUpdate;
     while (curCoroutine == GameCoroutineType.SlowSpeedUpdate && timeLeft > 0)
     {
         timeLeft -= Time.deltaTime;
         UpdateText(timeLeftText, timeLeft.ToString("F1"));
         if (NPCSelectList.Count == NPCList.Count)
         {
             break;
         }
         yield return(null);
     }
     //mainCharacter.SavePeople(NPCSelectList, timeLeft * NPCList[0].GetMoveRate() / NPCList[0].moveNormRate, NPCBetweenTime);
     for (int i = 0; i < NPCSelectList.Count; i++)
     {
         if (NPCSelectList[i] == NPCList[i])
         {
             NPCList[i].GetPlatform().PlacePlatform();
         }
     }
     StartCoroutine(InBetweenUpdate());
 }
Esempio n. 4
0
    IEnumerator InBetweenUpdate()
    {
        float prog = 0f;

        if (curCoroutine == GameCoroutineType.NormSpeedUpdate)
        {
            curCoroutine = GameCoroutineType.InBetweenUpdate;
            PlayMusic(3, mPlayer[3].volume);
            while (prog < 1f && curCoroutine != GameCoroutineType.Inactive)
            {
                prog += Time.deltaTime / inBetweenTransition;
                mPlayer[0].volume = (1f - prog) * musicVolume;
                mPlayer[1].volume = prog * musicVolume;
                background.SetScrollRate(prog);
                mainCharacter.SetRate(prog);
                grayOverlay.SetAlpha(prog);
                for (int i = 0; i < fireList.Count; i++)
                {
                    fireList[i].SetMoveRate(prog);
                }
                for (int i = 0; i < NPCList.Count; i++)
                {
                    NPCList[i].SetMoveRate(prog);
                    NPCList[i].GetPlatform().SetMoveRate(prog);
                }
                yield return(null);
            }
            StartCoroutine(SlowSpeedUpdate(NPCList[0].getTimeLeft() - NPCBetweenTime * 2));
        }
        else
        {
            curCoroutine = GameCoroutineType.InBetweenUpdate;
            for (int i = 0; i < NPCSelectList.Count; i++)
            {
                NPCSelectList[i].ResetColor();
            }
            UpdateText(timeLeftText, "");
            PlayMusic(4, mPlayer[4].volume);
            while (prog < 1f && curCoroutine != GameCoroutineType.Inactive)
            {
                prog += Time.deltaTime / inBetweenTransition;
                mPlayer[1].volume = (1f - prog) * musicVolume;
                mPlayer[0].volume = prog * musicVolume;
                background.SetScrollRate(1f - prog);
                mainCharacter.SetRate(1f - prog);
                grayOverlay.SetAlpha(1f - prog);
                for (int i = 0; i < fireList.Count; i++)
                {
                    fireList[i].SetMoveRate(1f - prog);
                }
                for (int i = 0; i < NPCList.Count; i++)
                {
                    NPCList[i].SetMoveRate(1f - prog);
                    NPCList[i].GetPlatform().SetMoveRate(1f - prog);
                }
                yield return(null);
            }
            float wait = Random.Range(minWaitTime, maxWaitTime);
            fireSpawn.StartDelay(wait);
            NPCSpawn.StartDelay(wait + NPCDelay);
            if (curCoroutine != GameCoroutineType.Inactive)
            {
                StartCoroutine(NormSpeedUpdate());
            }
        }
    }