示例#1
0
        /// <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;
        }
示例#2
0
        /// <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;
        }
示例#3
0
 /// <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 => { });
 }
示例#4
0
        /// <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 => {});
        }
示例#5
0
        /// <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();
                }
            });
        }
示例#6
0
        /// <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);
            });
        }
示例#7
0
        /// <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;
            });
        }
示例#8
0
        /// <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();
                }
            });
        }
示例#9
0
        /// <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);
                }
            });
        }