コード例 #1
0
 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"];
     }
 }
コード例 #2
0
ファイル: LevelSelector.cs プロジェクト: ruttlej/CS7038
 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"];
     }
 }
コード例 #3
0
ファイル: LevelOverGUI.cs プロジェクト: ruttlej/CS7038
    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");
            });
        });
    }
コード例 #4
0
ファイル: LevelSelector.cs プロジェクト: ruttlej/CS7038
    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"]);
            });
        }
    }
コード例 #5
0
ファイル: PausedGUI.cs プロジェクト: ruttlej/CS7038
    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");
            });
        });
    }
コード例 #6
0
ファイル: LevelSelector.cs プロジェクト: ruttlej/CS7038
    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);
    }