/// <summary> /// Closes the application. /// </summary> public void QuitToDesktop() { if (quitCurrentPopup != null) { return; } mainMenuGroup.interactable = false; var buttons = new List <CanvasPopupDialog.ButtonSettings>() { new CanvasPopupDialog.ButtonSettings(confirmKey.key, CanvasPopupDialog.PopupButtonHighlight.StrongHighlight, 0), new CanvasPopupDialog.ButtonSettings(cancelKey.key, CanvasPopupDialog.PopupButtonHighlight.Normal, 1) }; var popup = Instantiate(popupPrefab).GetComponent <CanvasPopupDialog>(); popup.SetUpPopup(quitTitleKey.key, quitMessageKey.key, buttons, ExecutionState.Normal, i => { mainMenuGroup.interactable = true; if (i < 1) { Application.Quit(); } }); quitCurrentPopup = popup; }
/// <summary> /// Loads the game and creates a new save. /// </summary> public void CreateNewGame() { if (newGameCurrentPopup != null) { return; } loadGameGroup.interactable = false; if (GameMaster.Instance.MasterSaveData.brandSpankingNewSave) { GameMaster.Instance.GameSceneWasLoaded = false; SceneManager.LoadSceneAsync(loadingSceneIndex, LoadSceneMode.Additive); return; } var buttons = new List <CanvasPopupDialog.ButtonSettings>() { new CanvasPopupDialog.ButtonSettings(confirmKey.key, CanvasPopupDialog.PopupButtonHighlight.StrongHighlight, 0), new CanvasPopupDialog.ButtonSettings(cancelKey.key, CanvasPopupDialog.PopupButtonHighlight.Normal, 1) }; var popup = Instantiate(popupPrefab).GetComponent <CanvasPopupDialog>(); popup.SetUpPopup(newGameTitleKey.key, newGameMessageKey.key, buttons, ExecutionState.Normal, i => { loadGameGroup.interactable = true; if (i >= 1) { return; } loadGameGroup.interactable = false; SaveSystem.LoadedData = new SaveData(); GameMaster.Instance.SetSaveData(new SaveData()); GameMaster.Instance.MasterSaveData.currentPlayerStats = new PlayerStats() { Health = 35, MaxHealth = 35, Stamina = 20, MaxStamina = 20, MeleeDamage = 7, RangedDamage = 5, MovementSpeed = 15, Level = 1, Experience = 0, TotalExperience = 0, Coins = 0, CurrentInventory = new List <InventoryItemEntry>(), CurrentUpgradeLevel = 0 }; GameMaster.Instance.SaveGame(); GameMaster.Instance.PlayerStats = new PlayerStats() { Health = 35, MaxHealth = 35, Stamina = 20, MaxStamina = 20, MeleeDamage = 7, RangedDamage = 5, MovementSpeed = 15, Level = 1, Experience = 0, TotalExperience = 0, Coins = 0, CurrentInventory = new List <InventoryItemEntry>(), CurrentUpgradeLevel = 0 }; GameMaster.Instance.DialogsCleared = new List <bool>(); GameMaster.Instance.CurrentGameDay = 1; GameMaster.Instance.CurrentTimeOfDay = TimeOfDay.Morning; GameMaster.Instance.GameSceneWasLoaded = false; SceneManager.LoadSceneAsync(loadingSceneIndex, LoadSceneMode.Additive); }); newGameCurrentPopup = popup; }
/// <summary> /// Instantiates a popup. /// </summary> private void FullInventoryPopup() { if (popupDialog != null) { return; } SetUpPopup(); popupDialog = GameObject.Instantiate(popupPrefab).GetComponent <CanvasPopupDialog>(); popupDialog.SetUpPopup(inventoryFullTitleKey, inventoryFullMessageKey, buttons, ExecutionState.PopupPause, i => { }); }
/// <summary> /// Saves the game. /// </summary> public void SaveGame() { if (popup != null) { return; } GameMaster.Instance.SaveGame(); popup = Instantiate(popupPrefab).GetComponent <CanvasPopupDialog>(); var button = new List <CanvasPopupDialog.ButtonSettings> { confirmCancelButtons[0] }; popup.SetUpPopup(gameSavedTitleKey.key, gameSavedMessageKey.key, button, ExecutionState.PopupPause, i => {}); }
/// <summary> /// Return to the main menu. /// </summary> public void ReturnToMainMenu() { if (popup != null) { return; } popup = Instantiate(popupPrefab).GetComponent <CanvasPopupDialog>(); popup.SetUpPopup(backToMenuTitleKey.key, backToMenuMessageKey.key, gameSaveProgressSavedKey.key, confirmCancelButtons, ExecutionState.PopupPause, i => { if (i == 0) { BackToMenu(); } }); }
/// <summary> /// Quits the game. /// </summary> public void QuitGame() { if (popup != null) { return; } popup = Instantiate(popupPrefab).GetComponent <CanvasPopupDialog>(); popup.SetUpPopup(quitGameTitleKey.key, quitGameMessageKey.key, gameSaveProgressSavedKey.key, confirmCancelButtons, ExecutionState.PopupPause, i => { if (i != 0) { return; } GameMaster.Instance.SaveGame(); Invoke(nameof(Quit), fadeAnimationDuration); }); }
/// <summary> /// Starts the store closing sequence. /// </summary> public void TriggerStoreClose() { if (popupDialog != null) { return; } closeButton.interactable = false; popupDialog = Instantiate(popupPrefab).GetComponent <CanvasPopupDialog>(); popupDialog.SetUpPopup(closeStoreTitleKey.key, closeStoreMessageKey.key, confirmCancelButtons, ExecutionState.PopupPause, i => { if (i == 0) { CloseStore(); } closeButton.interactable = true; }); }
/// <summary> /// Opens the popup to change floors. /// </summary> private void DisplayPopupToChangeFloors() { if (popupDialog != null) { return; } popupDialog = Instantiate(popupPrefab).GetComponent <CanvasPopupDialog>(); popupDialog.SetUpPopup(titleKey.key, messageKey.key, travelButtons, ExecutionState.PopupPause, i => { if (i <= 0) { TeleportPlayerToNextFloor(); } else { FloorTravelTrigger.OnResetTriggerLock?.Invoke(); } }); }
/// <summary> /// Triggers the sleep popup. /// </summary> public void StartSleep() { if (popupDialog != null) { return; } popupDialog = Instantiate(popupPrefab).GetComponent <CanvasPopupDialog>(); canTriggerSleep = false; canvasGroup.interactable = true; popupDialog.SetUpPopup(titleKey.key, messageKey.key, sleepButtons, ExecutionState.PopupPause, i => { if (i == 0) { Sleep(); } else { Invoke(nameof(SleepCooldown), sleepTriggerCooldown); } }); }