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); }
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; }