Example #1
0
        public MenuOptions(MenuUI ui, string mainPage)
        {
            _ui = ui;

            MenuPage optionsPage = new MenuPage(150);

            _fullscreenButton = optionsPage.Add(new MenuButton(optionsPage, "Fullscreen: ?", "icons/fullscreen.png", "", "Displays the game over the\nwhole monitor")) as MenuButton;
            _fullscreenButton.RegisterEvent(MenuElement.EventType.Clicked,
                                            (e, h) => { if (!h)
                                                        {
                                                            ui.Parent.Game.Fullscreen = !ui.Parent.Game.Fullscreen;
                                                        }
                                            });

            _vsyncButton = optionsPage.Add(new MenuButton(optionsPage, "V-sync: ?", "icons/vsync.png", "", "Synchronizes the game to\nthe monitor")) as MenuButton;
            _vsyncButton.RegisterEvent(MenuElement.EventType.Clicked,
                                       (e, h) => { if (!h)
                                                   {
                                                       ui.Parent.Game.VSync = !ui.Parent.Game.VSync;
                                                   }
                                       });

            optionsPage.Add(new MenuSpacer(4));
            optionsPage.Add(new MenuButton(optionsPage, "Audio", "icons/audio.png", "", "")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                     {
                                                                         ui.SwitchPage("__options/audio", false);
                                                                     }
                          });
            optionsPage.Add(new MenuButton(optionsPage, "Input", "icons/input.png", "", "")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                     {
                                                                         ui.SwitchPage("__options/input", false);
                                                                     }
                          });
            optionsPage.Add(new MenuSpacer(4));
            optionsPage.Add(new MenuButton(optionsPage, "Back", "icons/arrow_left.png")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                     {
                                                                         ui.SwitchPage(mainPage, true);
                                                                     }
                          });

            MenuPage audioPage = new MenuPage(150);

            _masterVolume = audioPage.Add(new MenuButton(audioPage, "Master Volume: Muted", "icons/audio.png")) as MenuButton;
            _musicVolume  = audioPage.Add(new MenuButton(audioPage, "Music Volume: Muted", "icons/music.png")) as MenuButton;

            _masterVolume.RegisterEvent(MenuElement.EventType.Left, (e, h) =>
            {
                if (!h)
                {
                    Settings.MasterVolume -= 10;
                }
                if (Settings.MasterVolume < 0)
                {
                    Settings.MasterVolume = 0;
                }
            });
            _masterVolume.RegisterEvent(MenuElement.EventType.Right, (e, h) =>
            {
                if (!h)
                {
                    Settings.MasterVolume += 10;
                }
                if (Settings.MasterVolume > 100)
                {
                    Settings.MasterVolume = 100;
                }
            });

            _musicVolume.RegisterEvent(MenuElement.EventType.Left, (e, h) =>
            {
                if (!h)
                {
                    Settings.MusicVolume -= 10;
                }
                if (Settings.MusicVolume < 0)
                {
                    Settings.MusicVolume = 0;
                }
            });
            _musicVolume.RegisterEvent(MenuElement.EventType.Right, (e, h) =>
            {
                if (!h)
                {
                    Settings.MusicVolume += 10;
                }
                if (Settings.MusicVolume > 100)
                {
                    Settings.MusicVolume = 100;
                }
            });

            audioPage.Add(new MenuSpacer(4));
            audioPage.Add(new MenuButton(audioPage, "Back", "icons/arrow_left.png")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                     {
                                                                         ui.SwitchPage("__options", true);
                                                                     }
                          });

            MenuPage inputPage = new MenuPage(150);

            inputPage.Add(new MenuSpacer(4));
            inputPage.Add(new MenuButton(inputPage, "Back", "icons/arrow_left.png")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                     {
                                                                         ui.SwitchPage("__options", true);
                                                                     }
                          });

            ui.AddPage("__options", optionsPage);
            ui.AddPage("__options/audio", audioPage);
            ui.AddPage("__options/input", inputPage);
        }
Example #2
0
        public override void OnEnter(GameState previousState)
        {
            _exitTransition = new TweenedDouble(Game, 0);

            MenuPage startGamePage = new MenuPage(150);

            startGamePage.Add(new MenuLabel(startGamePage, "Choose a name to begin"));
            startGamePage.Add(new MenuSpacer(4));
            startGamePage.Add(new MenuTextInput(startGamePage, "Player", "Name: "));
            startGamePage.Add(new MenuButton(startGamePage, "Start Game")).RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                                                                                    {
                                                                                                                                        _doneWithName = true;
                                                                                                                                    }
                                                                                         });

            MenuPage mainPage = new MenuPage(150);

            mainPage.Add(new MenuButton(mainPage, "Start New Game", "icons/start_game.png")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) =>
            {
                if (!h && Coroutine.Active.Count == 0)
                {
                    Coroutine.Start(TransitionToStoryCoroutine);
                }
            });

            mainPage.Add(new MenuButton(mainPage, "Load Game", "icons/load_game.png"));
            mainPage.Add(new MenuSpacer(4));
            mainPage.Add(new MenuButton(mainPage, "Options", "icons/settings.png", "", "")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                     {
                                                                         OptionsUI.SwitchToOptionsPage();
                                                                     }
                          });
            mainPage.Add(new MenuButton(mainPage, "Credits", "icons/credits.png", "", "")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                     {
                                                                         UI.SwitchPage("credits", false);
                                                                     }
                          });
            mainPage.Add(new MenuSpacer(4));
            mainPage.Add(new MenuButton(mainPage, "Exit Game", "icons/arrow_left.png")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                     {
                                                                         Game.Exit();
                                                                     }
                          });

            MenuPage creditsPage = new MenuPage(250);

            creditsPage.Add(new MenuLabel(creditsPage, "Age of Darkness " + Program.VERSION));
            creditsPage.Add(new MenuLabel(creditsPage, "Made with MonoGame and Team STOR Engine"));
            creditsPage.Add(new MenuLabel(creditsPage, ""));
            creditsPage.Add(new MenuLabel(creditsPage, "Programming"));
            creditsPage.Add(new MenuLabel(creditsPage, "Hannes Mann", "", "", 0.8f));
            creditsPage.Add(new MenuLabel(creditsPage, ""));
            creditsPage.Add(new MenuLabel(creditsPage, "Game Design and Art"));
            creditsPage.Add(new MenuLabel(creditsPage, "Kasper Kjällström", "", "", 0.8f));
            creditsPage.Add(new MenuLabel(creditsPage, "Henrik Eriksson", "", "", 0.8f));
            creditsPage.Add(new MenuSpacer(4));
            creditsPage.Add(new MenuButton(creditsPage, "Back", "icons/arrow_left.png")).
            RegisterEvent(MenuElement.EventType.Clicked, (e, h) => { if (!h)
                                                                     {
                                                                         UI.SwitchPage("main", true);
                                                                     }
                          });

            UI = new MenuUI(this, "main", mainPage, true);
            UI.AddPage("credits", creditsPage);
            UI.AddPage("start-game", startGamePage);

            OptionsUI = new MenuOptions(UI, "main");

            UI.Toggle();

            Game.IsMouseVisible = false;
        }