void AfterFadeOut() { // Start the level if (LevelManager.instance.Level == -1) { // //GameWorld.dialogueOff = true; ScreenFader.QueueEvent(BackgroundRenderer.instance.SetTileBackground); GroupManager.main.activeGroup = GroupManager.main.group["Intro"]; } else { GroupManager.main.activeGroup = GroupManager.main.group["Level Select"]; } }
void ShowIntro() { ScreenFader.QueueEvent(BackgroundRenderer.instance.SetTileBackground); if (LevelManager.instance.Level != -1) { ScreenFader.StartFade(Color.clear, Color.black, 1.0f, delegate() { GroupManager.main.activeGroup = GroupManager.main.group["Intro"]; }); } else { GroupManager.main.activeGroup = GroupManager.main.group["Intro"]; } }
void FadeToMainMenu() { ScreenFader.QueueEvent(BackgroundRenderer.instance.SetSunBackground); ScreenFader.StartFade(Color.clear, Color.black, 1.0f, delegate() { // Clear resources LevelManager.instance.Clear(); ScreenFader.StartFade(Color.black, Color.clear, 0.5f, delegate() { GroupManager.main.activeGroup = GroupManager.main.group["Level Select"]; AudioManager.PlaySFX("Menu Next"); }); }); }
void FadeBackToLevelSelection() { //Disclaimer: This is Alper's code. Shame on him. // This indeed is MY code, and I'm PROUD of it. ^Alper if (LevelManager.instance.Level != -1) { ScreenFader.StartFade(Color.black, Color.clear, 0.5f, delegate() { DialogueManager.DialogueComplete = delegate() { ScreenFader.StartFade(Color.clear, Color.black, 0.75f, delegate() { ScreenFader.StartFade(Color.black, Color.clear, 0.5f, delegate() { DialogueManager.DialogueComplete = delegate() { ScreenFader.QueueEvent(BackgroundRenderer.instance.SetSunBackground); ScreenFader.StartFade(Color.clear, Color.black, 0.75f, delegate() { ScreenFader.StartFade(Color.black, Color.clear, 0.5f, delegate() { AudioManager.PlaySFX("Menu Prev"); GroupManager.main.activeGroup = GroupManager.main.group["Level Select"]; }); }); }; DialogueManager.ActivateDialogue(DialogueManager.instance.defaultMap["Intro2"]); //Debug.Log("Dia1"); //GroupManager.main.activeGroup = GroupManager.main.group["Dialogue"]; }); }); }; //Debug.Log("Dia2"); //GroupManager.main.activeGroup = GroupManager.main.group["Dialogue"]; DialogueManager.ActivateDialogue(DialogueManager.instance.defaultMap["Intro1"]); }); } }
void FadeToMainMenu() { FindObjectOfType <AudioRunning>().background.volume = 0.0f; ScreenFader.QueueEvent(BackgroundRenderer.instance.SetSunBackground); ScreenFader.StartFade(Color.clear, Color.black, 1.0f, delegate() { LevelManager.instance.Level--; GameWorld.success = false; GroupManager.main.activeGroup = GroupManager.main.group["Level Over"]; // Clear resources LevelManager.instance.Clear(); ScreenFader.StartFade(Color.black, Color.clear, 0.5f, delegate() { GroupManager.main.activeGroup = GroupManager.main.group["Level Select"]; AudioManager.PlaySFX("Menu Next"); }); }); }
void OnGUI() { Vector3 position = new Vector3((currentScroll < MainMenu.ScreenScrollValue * 0.05f) ? currentX : currentScroll, 0.0f, 0.0f); GUI.matrix = Matrix4x4.TRS(position, Quaternion.identity, Vector3.one); // Levels float offsetX = 0.5f * Screen.width - columnCount * _actualButtonSize / 2.0f; float offsetY = 0.5f * Screen.height - rowCount * _actualButtonSize / 2.0f; //float starOffset = 0.05f * Screen.height; float starOffset = 0; int levelProgress = Mathf.Min(levelCount - 1, playerLevel); // intro button if (currentPage == 0 && GUI.Button(new Rect(offsetX - _actualButtonSize, offsetY, _actualButtonSize, _actualButtonSize), "Intro", GUIManager.skin.button)) { ShowIntro(); currentScroll = MainMenu.ScreenScrollValue; targetScroll = 0.0f; } // level buttons #region Level Buttons for (int p = (targetScroll == 0.0f && !firstLoad) ? 0 : currentPage; p < pagesCount; ++p) { int pageStart = p * columnCount * rowCount; for (int i = 0; i < rowCount; ++i) { for (int j = 0; j < columnCount; ++j) { Rect buttonRect = new Rect( offsetX + (p - currentPage) * Screen.width + j * _actualButtonSize, offsetY + i * (_actualButtonSize + starOffset), _actualButtonSize, _actualButtonSize); int level = pageStart + i * columnCount + j; if (level > levelProgress) { GUI.enabled = false; } if (GUI.enabled) { if (GUI.Button(buttonRect, (level + 1).ToString(), GUIManager.Style.rectButton)) { LevelManager.instance.Level = level - 1; ScreenFader.QueueEvent(BackgroundRenderer.instance.SetTileBackground); ScreenFader.StartFade(Color.clear, Color.black, 1.0f, delegate() { GroupManager.main.activeGroup = GroupManager.main.group["Level Start"]; }); currentScroll = MainMenu.ScreenScrollValue; targetScroll = 0.0f; currentPage = 0; } if (LevelManager.instance.scores[level] > 0) { int si = 0; for (; si < LevelManager.instance.scores[level]; ++si) { GUI.DrawTexture(_stars[si].Add(buttonRect.x, buttonRect.y, 0, 0), starFullTexture); } for (; si < 3; ++si) { GUI.DrawTexture(_stars[si].Add(buttonRect.x, buttonRect.y, 0, 0), starEmptyTexture); } } } else { GUI.Label(buttonRect, "", GUIManager.Style.rectButton); //if (levelCount - 3 <= level) //{ // GUI.color = new Color(1, 0.7f, 0.85f, 0.9f); // } GUI.DrawTexture(buttonRect, lockTexture); GUI.color = Color.white; } } } } GUI.enabled = true; #endregion // epilogue button #region Epilogue if (currentPage == 1 && playerLevel >= levelCount && GUI.Button(new Rect(Screen.width - offsetX, Screen.height - offsetY - _actualButtonSize, _actualButtonSize, _actualButtonSize), "Epilogue", GUIManager.skin.button)) { ShowEpilogue(); currentScroll = MainMenu.ScreenScrollValue; targetScroll = 0.0f; } #endregion GUI.matrix = Matrix4x4.TRS(new Vector3(-currentScroll, 0.0f, 0.0f), Quaternion.identity, Vector3.one); #region Back button // Back if (GUI.Button( new Rect(GUIManager.OffsetX() * 2.0f, Screen.height - _actualButtonSize / 2 - GUIManager.OffsetY() * 2.0f, _actualButtonSize / 2, _actualButtonSize / 2), "Back", GUIManager.Style.back)) { targetScroll = MainMenu.ScreenScrollValue; AudioManager.PlaySFX("Menu Prev"); } #endregion GUI.matrix = Matrix4x4.TRS(new Vector3(0.0f, -currentScroll, 0.0f), Quaternion.identity, Vector3.one); #region Scoring if (LevelManager.TotalScore > 0) { Rect textRec = new Rect(offsetX, 0, Screen.width - offsetX * 2, offsetY); GUIManager.Style.scores.alignment = TextAnchor.MiddleCenter; GUI.Label(textRec, "Score: " + LevelManager.TotalScore, GUIManager.Style.scores); /*string score = "Score: " + LevelManager.TotalScore; * string starScore = LevelManager.TotalStars + "/" + LevelManager.instance.LevelCount * 3; * var scoreStyle = GUIManager.Style.scores; * scoreStyle.alignment = TextAnchor.MiddleLeft; * Rect textRec = new Rect(offsetX, 0, Screen.width-offsetX * 2, offsetY); * GUI.Label(textRec, score, scoreStyle); * scoreStyle.alignment = TextAnchor.MiddleRight; * GUI.Label(textRec, starScore, scoreStyle); * var scoreSize = scoreStyle.CalcSize(new GUIContent(starScore)); * float sSize = 0.1f * Screen.height; * GUI.DrawTexture( * new Rect(textRec.xMax - scoreSize.x - sSize, (offsetY - sSize) * 0.5f, sSize, sSize), * starFullTexture);*/ } #endregion GUI.matrix = Matrix4x4.TRS(new Vector3(0.0f, currentScroll, 0.0f), Quaternion.identity, Vector3.one); if ((currentPage > 0) && GUI.Button(new Rect(Screen.width / 2.0f - _actualElemSize, Screen.height - _actualElemSize / 2 - GUIManager.OffsetY() * 2.0f, _actualElemSize, _actualElemSize / 2), '\u25C0'.ToString(), GUIManager.Style.overMessage)) { ToPreviousPage(); } if ((currentPage < pagesCount - 1) && GUI.Button(new Rect(Screen.width / 2.0f, Screen.height - _actualElemSize / 2 - GUIManager.OffsetY() * 2.0f, _actualElemSize, _actualElemSize / 2), '\u25B6'.ToString(), GUIManager.Style.overMessage)) { ToNextPage(); } GUI.Label(new Rect(Screen.width / 2.0f - _actualElemSize / 2, Screen.height - _actualElemSize / 2 - GUIManager.OffsetY() * 2.0f, _actualElemSize, _actualElemSize / 2), (currentPage + 1) + " / " + pagesCount, GUIManager.Style.overMessage); }