// Coroutines for update handling. IEnumerator NormSpeedUpdate() { curCoroutine = GameCoroutineType.NormSpeedUpdate; while (curCoroutine == GameCoroutineType.NormSpeedUpdate) { UpdateScore(Time.deltaTime); yield return(null); } }
public void StopGame() { if (curCoroutine != GameCoroutineType.NormSpeedUpdate) { ResetValues(); } curCoroutine = GameCoroutineType.Inactive; StopMusic(0); StopMusic(1); PlayerPrefs.SetFloat("highScore", highScore); }
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()); }
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()); } } }