private void SelectLanguage() { // Select Language var languages = Language.GetAll() .Where(l => !l.IsDebug) .OrderBy(l => (l.CustomFont != null && l.CustomFont != Game.Language.CustomFont) ? l.EnglishName : l.Name) .ToArray(); var titles = languages .Select(l => string.Format("{0}", (l.CustomFont != null && l.CustomFont != Game.Language.CustomFont) ? l.EnglishName : l.Name)) .ToList(); if (App.Steam) { titles.Add(Game.Language.Translate("menus.campaign_select.open_steam_workshop")); } // else // { // titles.Add(Game.Language.Translate("menus.campaign_select.open_mod_directory")); // } var dialog = DialogBox.CreateMenuBox( Game.Language.Translate("menus.select_language.title"), titles.ToArray(), false ); dialog.OnClosed += delegate(object sender2, DialogBoxClosedEventArgs e2) { if (e2.Result >= 0 && e2.Result < languages.Length) { var language = languages[e2.Result]; if (language.Code != Game.Language.Code) { Game.User.Settings.Language = language.Code; Game.User.Settings.Save(); Game.SelectLanguage(); WipeToState(new MainOptionsState(Game)); } } else if (e2.Result == languages.Length) { if (App.Steam) { Game.Network.OpenWorkshopHub(new string[] { "Localisation" }); } else { Mods.InitLocalDirectory(); Game.Network.OpenFileBrowser(Path.Combine(App.SavePath, "mods")); } } }; ShowDialog(dialog); }
private void ShowMenu() { var lang = Game.Language; var options = new List <string>(); var optionActions = new List <Action>(); if (Game.User.Progress.GetStatistic(Statistic.LevelsCompleted) > 0) { options.Add(lang.Translate("menus.main.continue_game")); } else { options.Add(lang.Translate("menus.main.new_game")); } optionActions.Add(ContinueGame); if (ArcadeUtils.IsArcadeUnlocked(Game.User.Progress)) { options.Add(lang.Translate("menus.main.arcade")); optionActions.Add(Arcade); } options.Add(lang.Translate("menus.main.mod_editor")); optionActions.Add(ShowGamepadWarningThenModEditor); options.Add(lang.Translate("menus.main.options")); optionActions.Add(Options); options.Add(lang.Translate("menus.main.quit")); optionActions.Add(Quit); var dialog = DialogBox.CreateMenuBox( lang.Translate("menus.main.title"), options.ToArray(), false ); dialog.OnClosed += delegate(object sender, DialogBoxClosedEventArgs e) { int index = e.Result; if (index >= 0 && index < optionActions.Count) { optionActions[index].Invoke(); } else { GoBack(); } }; ShowDialog(dialog); }
private void ShowPauseMenu() { // Regular pause menu var pauseMenu = DialogBox.CreateMenuBox( Game.Language.Translate("menus.pause.title"), new string[] { Game.Language.Translate("menus.pause.reset_level"), //Game.Language.Translate( "menus.pause.skip_level" ), Game.Language.Translate("menus.pause.go_back"), }, false ); pauseMenu.OnClosed += delegate(object sender, DialogBoxClosedEventArgs e) { switch (e.Result) { case 0: { // Restart Level Reset(); break; } //case 1: //{ // // Skip Level // OnLevelCompleted( true, 0, 0 ); // break; //} //case 2: case 1: { // Go Back BackToMenu(m_playthrough.Level); break; } } }; ShowDialog(pauseMenu); }
private void ModEditor() { var mods = AllEditorMods(); var sortedMods = mods.OrderBy(m => m.Title).ToArray(); var titles = sortedMods.Select(m => m.Title).ToList(); titles.Add(Game.Language.Translate("menus.mod_select.create_new")); var dialog = DialogBox.CreateMenuBox( Game.Language.Translate("menus.mod_select.title"), titles.ToArray(), false ); dialog.OnClosed += delegate(object sender, DialogBoxClosedEventArgs e) { if (e.Result < 0) { // Go back EnableGamepad = true; ShowMenu(); } else if (e.Result >= 0 && e.Result < mods.Count) { // Select mod var mod = sortedMods[e.Result]; EditMod(mod); } else if (e.Result == sortedMods.Length) { // Create new CreateMod(); } }; EnableGamepad = false; ShowDialog(dialog); }
private void ShowPauseMenu() { // Editor pause menu string[] options = new string[] { Game.Language.Translate("menus.editor.show_guide"), Game.Language.Translate("menus.editor.capture_thumbnail"), Game.Language.Translate("menus.editor.edit_script"), Game.Language.Translate("menus.editor.reload"), Game.Language.Translate("menus.editor.go_back") }; var pauseMenu = DialogBox.CreateMenuBox(Game.Language.Translate("menus.editor.title"), options, false); pauseMenu.OnClosed += delegate(object sender, DialogBoxClosedEventArgs e) { switch (e.Result) { case 0: { // Show guide ShowGuide(); break; } case 1: { // Create thumbnail if (m_modified) { var tempPath = SaveLevelTemporary(); CutToState(new ThumbnailState(Game, m_mod, m_campaign, m_levelIndex, tempPath, LevelSavePath)); } else { CutToState(new ThumbnailState(Game, m_mod, m_campaign, m_levelIndex, LevelSavePath, LevelSavePath)); } break; } case 2: { // Edit Script EditScript(); break; } case 3: { // Reload level ReloadLevel(); break; } case 4: { // Back to Menu if (m_modified) { // Modified, so prompt for save first var promptMenu = DialogBox.CreateQueryBox( Game.Screen, Game.Language.Translate("menus.save_prompt.title"), Game.Language.Translate("menus.save_prompt.info"), new string[] { Game.Language.Translate("menus.yes"), Game.Language.Translate("menus.no"), }, true ); promptMenu.OnClosed += delegate(object sender2, DialogBoxClosedEventArgs e2) { switch (e2.Result) { case 0: { // YES SaveLevel(); BackToMenu(); break; } case 1: { // NO BackToMenu(); break; } } }; ShowDialog(promptMenu); } else { // Unmodified, so don't prompt: BackToMenu(); } break; } } }; ShowDialog(pauseMenu); }