// Fade - Gradually displays tint screen. IEnumerator Fade(TintInfo info) { // Initial tint colors are the desired colors, but transparent. Color initialTint = info.tintColor; initialTint.a = 0; Color initialText = info.textColor; initialText.a = 0; // Fades in the full screen tint over the desired time interval. TimeEvent tintFade = new TimeEvent(info.tintFadeLength); tm.StartStopwatch(tintFade); while (tintFade.duration > 0) { tint.color = Color.Lerp(initialTint, info.tintColor, tintFade.completion); yield return(null); } // Does the same for the text. message.text = info.message; TimeEvent textFade = new TimeEvent(info.textFadeLength); tm.StartStopwatch(textFade); while (textFade.duration > 0) { message.color = Color.Lerp(initialText, info.textColor, textFade.completion); yield return(null); } }
// ShowDeath - Displays death tint screen. public void ShowDeath() { string deathMessage = deathMessages[Random.Range(0, deathMessages.Count)]; // Chooses a random message. TintInfo deathTint = new TintInfo(deathColor, Color.white, deathMessage, 1.25f, 0.5f); Messenger <TintInfo> .Broadcast("Tint", deathTint); }
// OnVictory - Displays winning text and buttons. public IEnumerator OnVictory() { // Displays a victory tint screen. string winMessage = winMessages[Random.Range(0, winMessages.Count)]; // Chooses a random message. TintInfo winTint = new TintInfo(winColor, Color.white, winMessage, 0.75f, 0.5f); Messenger <TintInfo> .Broadcast("Tint", winTint); yield return(new WaitForSeconds(0.75f)); // Wait until tint is fully faded in before showing buttons. // Makes sure there's a subsequent level, or else disables the Next Level button. GameObject nextLevelButton = winOptions.transform.FindChild("Next").gameObject; nextLevelButton.GetComponent <Button>().interactable = true; //(Application.loadedLevel + 1 <= gm.buildLevelCap); // Enables victory options. winOptions.SetActive(true); }
// StartFade - Initiates fading coroutine. void StartFade(TintInfo info) { Clear(); info.routine = StartCoroutine(Fade(info)); }