public static void MultiplayerLeaveLobby() { ConfirmMenu menu = MenuSystem.instance.GetMenu <ConfirmMenu>(); if (NetGame.isServer) { if (NetGame.instance.allclients.Count <= 0) { App.instance.StopServer(); return; } menu.SetUp("MULTIPLAYER/CONFIRM.StopLobby", "MULTIPLAYER/CONFIRM.WillDestroyLobby", "MULTIPLAYER/CONFIRM.STOPLOBBY", "MULTIPLAYER/CONFIRM.CANCEL", delegate { App.instance.StopServer(); }, delegate { menu.TransitionBack <MultiplayerLobbyMenu>(); }); } else { menu.SetUp("MULTIPLAYER/CONFIRM.LeaveLobby", "MULTIPLAYER/CONFIRM.Leaving", "MULTIPLAYER/CONFIRM.LEAVE", "MULTIPLAYER/CONFIRM.CANCEL", delegate { App.instance.LeaveLobby(); }, delegate { menu.TransitionBack <MultiplayerLobbyMenu>(); }); } MenuSystem.instance.activeMenu.TransitionForward <ConfirmMenu>(); }
public void WeaponSelectAction() { ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM); Action onYesAction = () => { string currentScene = SceneTracker.CurrentSceneName; Action loadWeaponSelectAction = () => { WeaponSelectMenu weaponMenu = (WeaponSelectMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.WEAPON_SELECT); weaponMenu.DefineNavigation(Strings.MenuStrings.MAIN, Strings.MenuStrings.LOAD); LoadMenu lm = (LoadMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.LOAD); lm.SetNavigation(currentScene); MenuManager.Instance.DoTransition(weaponMenu, Transition.SHOW, new Effect[] { Effect.EXCLUSIVE }); }; MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { }); LoadMenu loadMenu = (LoadMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.LOAD); loadMenu.SetNavigation(Strings.Scenes.ScenePaths.MainMenu, loadWeaponSelectAction); MenuManager.Instance.DoTransition(loadMenu, Transition.SHOW, new Effect[] { Effect.EXCLUSIVE }); }; Action onNoAction = () => { MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT }); SelectInitialButton(); }; confirmMenu.DefineActions("This will end your current game. Are you sure?", onYesAction, onNoAction); MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT }); }
public void LeaveClick() { if (MenuSystem.CanInvoke && App.state != AppSate.Menu) { ConfirmMenu.MultiplayerLeaveLobby(); } }
public static void MultiplayerExitGame() { ConfirmMenu menu = MenuSystem.instance.GetMenu <ConfirmMenu>(); if (NetGame.isServer) { menu.SetUp("MULTIPLAYER/CONFIRM.ExitToLobby", "MULTIPLAYER/CONFIRM.WillTransferToLobby", "MULTIPLAYER/CONFIRM.EXIT", "MULTIPLAYER/CONFIRM.CANCEL", delegate { App.instance.PauseLeave(); }, delegate { menu.TransitionBack <MultiplayerPauseMenu>(); }); } else { menu.SetUp("MULTIPLAYER/CONFIRM.ExitMultiplayer", "MULTIPLAYER/CONFIRM.WillExitMultiplayer", "MULTIPLAYER/CONFIRM.EXIT", "MULTIPLAYER/CONFIRM.CANCEL", delegate { App.instance.PauseLeave(); }, delegate { menu.TransitionBack <MultiplayerPauseMenu>(); }); } MenuSystem.instance.activeMenu.TransitionForward <ConfirmMenu>(); }
private void SwitchToMenu(PLEMenuType i_newMenu) { if (i_newMenu != currentDisplayedMenu) { HideAllMenusExceptMain(); ConfirmMenu confirmMenu = MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM) as ConfirmMenu; MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT }); Menu newMenu = GetMenu(i_newMenu); MenuManager.Instance.DoTransition(this, Transition.SHOW, new Effect[] { Effect.INSTANT }); MenuManager.Instance.DoTransition(newMenu, Transition.SHOW, new Effect[] { Effect.INSTANT }); currentDisplayedMenu = i_newMenu; bool allowCameraMovement = !IsMenu(currentDisplayedMenu, PLEMenuType.SAVE, PLEMenuType.LEVELSELECT, PLEMenuType.TEST); levelEditor.ToggleCameraController(allowCameraMovement); bool hideSideBar = IsMenu(currentDisplayedMenu, PLEMenuType.HELP, PLEMenuType.LEVELSELECT, PLEMenuType.TEST); if (hideSideBar) { helpSideBarToggler.HidePane(); } helpSideBarToggler.LockPane(hideSideBar); } SetMenuButtonInteractabilityByState(); }
public void OpenSaveAction() { SelectMenuItem(PLEMenuType.SAVE); SaveMenu saveMenu = GetMenu(PLEMenuType.SAVE) as SaveMenu; ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM); confirmMenu.SetYesButtonText("SAVE"); confirmMenu.SetNoButtonText("SAVE AS"); //set interactibility of buttons bool isSaveButtonInteractable = saveMenu.IsOverwriteButtonInteractable(); confirmMenu.SetYesButtonInteractibility(isSaveButtonInteractable); Action saveAction = () => { MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT }); saveMenu.Save(); }; Action saveAsAction = () => { saveMenu.CanvasGroup.alpha = 1; saveMenu.CanvasGroup.interactable = true; saveMenu.CanvasGroup.blocksRaycasts = true; MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT }); }; Action cancelAction = () => { BackAction(); MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT }); }; confirmMenu.DefineActions("Save?", saveAction, saveAsAction, cancelAction); MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT }); }
public void ExitClick() { if (MenuSystem.CanInvoke) { ConfirmMenu.MultiplayerExitGame(); NetGame.instance.transport.SetLobbyStatus(status: false); } }
public void OpenConfirmMenu(string message, Action onYes, Action onNo) { GameObject confirmMenuGob = Instantiate(confirmMenuPrefab, transform); ConfirmMenu confirmMenu = confirmMenuGob.GetComponent <ConfirmMenu>(); confirmMenu.message.text = message; confirmMenu.onYes = onYes; confirmMenu.onNo = onNo; }
public DropdownMenu( Control c, NetworkInterface nif) { control = c; endGame = new ConfirmMenu("Quit Game",(int)positionOpen.x,(int)positionOpen.y); resign = new ConfirmMenu("Resign",(int)positionOpen.x,(int)positionOpen.y+30); Console.buttonRect = new Rect(positionOpen.x,positionOpen.y+60,80,25); if(nif != null){ networkGUI = new NetworkWindow(nif); networkGUI.togglePos = new Rect(positionOpen.x,positionOpen.y+90,80,55); } }
private void SetUpButtons(int border, int buttonHeight) { endGame = new ConfirmMenu("Quit Game",new Rect(positionOpen.x,positionOpen.y+border,positionOpen.width,buttonHeight), new Rect(positionOpen.x-positionOpen.width,positionOpen.y+border,positionOpen.width,2*buttonHeight)); resign = new ConfirmMenu("Resign",new Rect(positionOpen.x,positionOpen.y+buttonHeight+2*border,positionOpen.width,buttonHeight), new Rect(positionOpen.x-positionOpen.width,positionOpen.y+buttonHeight+2*border,positionOpen.width,buttonHeight*2)); Console.buttonRect = new Rect(positionOpen.x,positionOpen.y+buttonHeight*2+border*3,positionOpen.width,buttonHeight); positionOpen.height = 3*buttonHeight+4*border; if(networkGUI != null){ networkGUI.togglePos = new Rect(positionOpen.x,positionOpen.y+buttonHeight*4+border*5,positionOpen.width,buttonHeight*2+border); positionOpen.height = 5*buttonHeight+6*border; } }
public void DeleteSelectedLevel() { ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM); Action onYesAction = () => { levelDataManager.TryDeleteLevel(SelectedLevelUI.levelData.UniqueSteamName); SetButtonsInteractabilityAndNavigation(); ClearAndGenerateLevelUI(); }; Action onNoAction = () => { MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT }); SelectInitialButton(); }; string confirmationMessage = SelectedLevelUI.levelData.isDownloaded ? "Unsubscribe from this Steam Workshop item to permanently remove. Are you sure?" : "This cannot be undone. Are you sure?"; confirmMenu.DefineActions(confirmationMessage, onYesAction, onNoAction); MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT }); }
public void QuitAction() { SelectMenuItem(PLEMenuType.EXIT); ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM); Action onYesAction = () => { Menu menu = MenuManager.Instance.GetMenuByName(Strings.MenuStrings.LOAD); LoadMenu loadMenu = (LoadMenu)menu; loadMenu.SetNavigation(Strings.Scenes.ScenePaths.MainMenu); MenuManager.Instance.DoTransition(loadMenu, Transition.SHOW, new Effect[] { Effect.EXCLUSIVE }); }; Action onNoAction = () => { MenuManager.Instance.DoTransition(Strings.MenuStrings.CONFIRM, Transition.HIDE, new Effect[] { Effect.INSTANT }); MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT }); OpenFloorSystemAction(); }; confirmMenu.DefineActions("You will lose any unsaved data. Are you sure?", onYesAction, onNoAction); MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT }); }
public void LoadLevel() { if (SceneTracker.IsCurrentSceneEditor) { ConfirmMenu confirmMenu = (ConfirmMenu)MenuManager.Instance.GetMenuByName(Strings.MenuStrings.CONFIRM); Action onYesAction = () => { TryLoadSelectedLevel(); }; Action onNoAction = () => { MenuManager.Instance.DoTransition(confirmMenu, Transition.HIDE, new Effect[] { Effect.INSTANT }); SelectInitialButton(); }; confirmMenu.DefineActions("You will lose any unsaved data. Are you sure?", onYesAction, onNoAction); MenuManager.Instance.DoTransition(confirmMenu, Transition.SHOW, new Effect[] { Effect.INSTANT }); } else { TryLoadSelectedLevel(); } }
private void MouseClicked(MouseState mouseState) { Point MouseClick = new Point(mouseState.X, mouseState.Y); Rectangle MouseClickRect = new Rectangle(MouseClick, new Point(10, 10)); switch (GState) { case NotebookState.SelectedTestimony: if (ConfirmContradictMenu.IsConfirming(MouseClickRect)) { GState = NotebookState.Returning; } if (ConfirmContradictMenu.IsCancelling(MouseClickRect)) { GState = NotebookState.Testimonies; } break; case NotebookState.ClickedQuitGame: if (ConfirmQuitMenu.IsConfirming(MouseClickRect)) { GState = NotebookState.ConfirmedQuitGame; } if (ConfirmQuitMenu.IsCancelling(MouseClickRect)) { GState = NotebookState.Options; // replace with whichever state exposes the quit button } break; default: if (MouseClickRect.Intersects(StatsTab.Rect)) { GState = NotebookState.Stats; MainOptionsList = null; TopicOptionsList = null; } if (MouseClickRect.Intersects(PeopleTab.Rect)) { GState = NotebookState.Profiles; MainOptionsList = null; TopicOptionsList = null; } if (MouseClickRect.Intersects(OptionsTab.Rect)) { GState = NotebookState.Options; MainOptionsList = null; TopicOptionsList = null; } if (MouseClickRect.Intersects(TestimonyTab.Rect)) { GState = NotebookState.Testimonies; MainOptionsList = null; TopicOptionsList = null; } if (MouseClickRect.Intersects(ReturnIconRect)) { GState = NotebookState.Returning; } if (MainOptionsList?.SelectedOption == "savequit") { if (QuitButton != null && MouseClickRect.Intersects(QuitButton.Rect)) { GState = NotebookState.ClickedQuitGame; string Query = "Are you sure you want to quit the game?"; ConfirmQuitMenu = new ConfirmMenu(Query, Content, Arial); } if (SaveButton != null && MouseClickRect.Intersects(SaveButton.Rect)) { SaveGame(); } } if (SeekingTestimony && SelectTestimonyButton != null) { if (MouseClickRect.Intersects(SelectTestimonyButton.Rect)) { GState = NotebookState.SelectedTestimony; string Query = "Are you sure you want to contradict?"; ConfirmContradictMenu = new ConfirmMenu(Query, Content, Arial); } } break; } }
public void Awake() { #region finding objects/setting refferences if ((instance == null) || (instance == this)) // singleton pattern { instance = this; } else { Debug.Log("Duplicate GameManager destroyed"); DestroyImmediate(this.gameObject); } IState[] objList = (IState[])Resources.FindObjectsOfTypeAll(typeof(IState)); // find all IState objects // should be easily tweakable to work when switching between scenes foreach (IState state in objList) { if (istates[(int)state._stateType] == null) // add one of each type to list of istates, delete any duplicates { istates[(int)state._stateType] = state; // the type enum is used to put each istate in a unique nd predictable slot state.gameObject.SetActive(false); } else { Debug.Log("Destroyed duplicate of IState " + state._stateType); DestroyImmediate(state.gameObject); } } for (int i = 0; i < istates.Length; i++) // check that one of each type exists { if (istates[i] == null) { Debug.Log("Error: IState object of type \"" + (IStateType)i + "\" not found"); } else { istates[i].initialize(); // initialize each that exists } } ConfirmMenu[] conList = (ConfirmMenu[])Resources.FindObjectsOfTypeAll(typeof(ConfirmMenu)); if (conList.Length > 0) { confirmMenu = conList[0]; // only use one copy of the ConfirmMenu object confirmMenu.gameObject.SetActive(false); } else { Debug.Log("Error: No ConfirmMenu object is exists"); } for (int i = 1; i < conList.Length; i++) { DestroyImmediate(conList[i].gameObject); // destroy extras } #endregion //settup spritebook & index spriteBook = _spriteBook; // move info from non-static variables to static variables errorSprite = _errorSprite; for (int s = 0; s < spriteBook.Length; s++) // get the index and name of every sprite, so you can look them up by name { if (spriteBook[s] != null) { string lowercase = spriteBook[s].name.ToLowerInvariant(); //Debug.Log(string.Format("Trying to add sprite {0} to sprite index", lowercase)); if (!spriteIndex.ContainsKey(lowercase)) // don't add any duplicate names { spriteIndex.Add(lowercase, s); } else { throw new System.Exception("Error: sprite with name" + spriteBook[s].name + " present in spritebook more than once"); } } } // load settings stuff, and apply them. if (SettingsObj.settingsExists()) //load the settings if the file exists { settings = SettingsObj.loadSettings(); } else // else create new file { Debug.Log("Creating new settings file"); settings = new SettingsObj(); SettingsObj.saveSettings(settings); } applySettings(settings); // apply the saved settings // consider changing so that it keeps resolution settings from start-up menu // load from save if possible, or load default save. if (settings.saveNum >= 1 && settings.saveNum <= 3) // if saveNum = 1, 2, or 3, savefile should exist, else one won't { saveGame = SaveObj.LoadGame(settings.saveNum); if (saveGame == null) { Debug.Log("Indicated save does not exist, load an existing save or create a new one."); settings.saveNum = 0; SettingsObj.saveSettings(settings); } } gameplay = (Gameplay)istates[(int)GameManager.IStateType.gameplay]; // get gameplay IState from istate[Enum.gameplay] slot of array if (istates[(int)GameManager.IStateType.gameMenu] != null) // set current state to gamemenu, or complain if gameMenu istate doesn't exist { currentstate = istates[(int)GameManager.IStateType.gameMenu]; currentstate.StartState(null); istates[(int)GameManager.IStateType.gameMenu].gameObject.SetActive(true); } //InputManager.instance.LoadKeybinds(); // load keybindings eventSystem = (EventSystem)FindObjectOfType(typeof(EventSystem)); }
private void MouseClicked(MouseState mouseState) { Point MouseClick = new Point(mouseState.X, mouseState.Y); Rectangle MouseClickRect = new Rectangle(MouseClick, new Point(10, 10)); switch (GState) { // If nothing selected, check whether location was selected case LocationState.Normal: foreach (string CharName in CharPics.Keys) { if (MouseClickRect.Intersects(CharPics[CharName].Rect)) { GState = LocationState.ClickedPerson; SpeechMenu = new SpeechMenu(Greetings[CharName], CharPics[CharName].Rect, Content, Arial); SelectedPersonName = CharName; } } if (MouseClickRect.Intersects(NotebookRect)) { GState = LocationState.ToNotebook; } if (MouseClickRect.Intersects(MapIconRect)) { GState = LocationState.ClickedReturn; string query = "Are you sure you're done exploring for now?"; ConfirmMenu = new ConfirmMenu(query, Content, Arial); } break; case LocationState.ClickedPerson: if (SpeechMenu.IsCancelling(MouseClickRect)) { GState = LocationState.Normal; SpeechMenu = null; } else if (SpeechMenu.IsConfirming(MouseClickRect)) { GState = LocationState.ConfirmedPerson; Interviewees.Add(SelectedPersonName); SpeechMenu = null; } break; case LocationState.ClickedReturn: if (ConfirmMenu.IsCancelling(MouseClickRect)) { GState = LocationState.Normal; ConfirmMenu = null; } else if (ConfirmMenu.IsConfirming(MouseClickRect)) { GState = LocationState.ConfirmedReturn; ConfirmMenu = null; } break; default: break; } }