/// <summary>
        /// Save the current game with the provided name.
        /// </summary>
        public void SaveGame()
        {
            // Do nothing if the input field is empty.
            string baseFileName = this.inputField.text.RemoveEnd(".tscgame");

            if (IsInvalidBaseFileName(baseFileName))
            {
                return;
            }

            // Otherwise, create a Path object from the provided text content and check it for validity. If the file
            // path provided is illegal, then simply return.
            // TODO_LATER Add a message about illegal file name.
            PathInst targetPath = SaveGameManager.InitializeSaveFilePathFromFileName($"{baseFileName}.tscgame");
            string   path       = targetPath.ToString();

            if (!LocalFileUtils.ValidateDllPath(ref path))
            {
                return;
            }

            // Save the game at the desired path.
            SaveGameManager.SaveGame(SaveFile.CreateSaveFile(this.gameSceneManager.gameState), targetPath);

            // Clear out the text input, and reload the saved games.
            this.inputField.text = "";
            this.LoadSavedGames();
        }
Exemple #2
0
 public void ModHealth(int mod)
 {
     health         += mod;
     healthText.text = health.ToString();
     hpBar.UpdateHP((float)health / (float)maxHealth);
     if (mod < 0)
     {
         GetComponent <Animator>().SetTrigger("Damage");
     }
     if (health <= 0)
     {
         print("Victory!");
         if (CombatInfo.FightType != -1)
         {
             CombatInfo.CombatsFinished++;
         }
         else
         {
             CombatInfo.HealthPotionCount = 3;
         }
         if (CombatInfo.FightType == -1)
         {
             CombatInfo.FightType = 0;
         }
         SaveGameManager.SaveGame(new Vector3(0, 0, 0), CombatInfo.CombatsFinished);
         GameState.curHealth   = cm.player.health;
         CombatInfo.CoinCount += CombatInfo.CoinsToDrop;
         Die();
     }
 }
    /// <summary>
    /// Saves the game.
    /// </summary>
    public void SaveGame()
    {
        var save = new SaveGame();

        if (HeroManager != null)
        {
            HeroManager.Save(ref save);
        }
        if (AbilityManager != null)
        {
            AbilityManager.Save(ref save);
        }
        if (RosterManager != null)
        {
            RosterManager.Save(ref save);
        }
        if (InventoryManager != null)
        {
            InventoryManager.Save(ref save);
        }
        if (WorldManager != null)
        {
            WorldManager.Save(ref save);
        }
        save.LastRewardTime = lastRewardTime;
        save.IsFilled       = true;

        SaveGameManager.SaveGame(save);
    }
Exemple #4
0
    void Start()
    {
        if (loadIfExists)
        {
            // Load test
            if (SaveGameManager.SaveGameExists)
            {
                Debug.Log("Save exists, loading.");
                testSaveGame = SaveGameManager.LoadGame();
            }
            else
            {
                Debug.Log("Save file does not exist.");
                SaveGameManager.SaveGame(testSaveGame);
            }
        }

        if (deleteIfExists)
        {
            // Delete test
            SaveGameManager.DeleteSaveGame();
            if (SaveGameManager.SaveGameExists)
            {
                Debug.Log("Save still exists, deleting failed.");
            }
            else
            {
                Debug.Log("Save deleted.");
            }
        }
    }
Exemple #5
0
 private void OnDestroy()
 {
     if (saveOnDestroy)
     {
         Debug.Log("Saving.");
         testSaveGame.IsFilled = true;
         SaveGameManager.SaveGame(testSaveGame);
     }
 }
Exemple #6
0
        public void ActivateNode(GameObject other)
        {
            MapNodeManager mapNodeManager = MapNodeManager.GetInstance();

            //node activation
            if (mapNodeManager != null && other != null)
            {
                if (other.GetComponent <MapPlayerController>() != null && GameState.GetInstance().ReadyToBattle)
                {
                    if (nodeState == NodeState.Start ||
                        (nodeState == NodeState.Incomplete &&
                         MapNodeList.nodes[previusIndex].nodeState == NodeState.Current))
                    {
                        SaveGameManager.SaveGame(other.transform.position, CombatInfo.CombatsFinished);

                        if (nodeState != NodeState.Start)
                        {
                            MapNodeList.nodes[previusIndex].spriteRenderer.color = completeNormalColor;
                            MapNodeList.nodes[previusIndex].nodeState            = NodeState.Complete;
                        }

                        spriteRenderer.color = currentNormalColor;
                        nodeState            = NodeState.Current;

                        //get combat info from the gameobject sprite render is on
                        Combat combat = spriteRenderer.gameObject.GetComponent <Combat>();
                        if (combat != null)
                        {
                            //node based fight info
                            if (previusIndex == 1)
                            {
                                CombatInfo.FightType = 1;
                            }

                            if (previusIndex == -1)
                            {
                                CombatInfo.Env = Environment.Grass;
                            }
                            else
                            {
                                CombatInfo.Env = Environment.City;
                            }

                            GameObject.FindObjectOfType <FadeOut>().Fade(combat);
                        }
                    }
                }
            }
        }
Exemple #7
0
    IEnumerator ResetGame()
    {
        if (GameManager.currentGameState == GameState.GameOverScene)
        {
            gameOver         = GameObject.FindWithTag("GameOver").GetComponent <TextMeshProUGUI>();
            gameOver.enabled = true;

            // Save Game
            SaveGameManager.SaveGame((int)score, timePlaying.TotalSeconds);

            yield return(new WaitForSecondsRealtime(3f));

            Reset();

            Time.timeScale    = 1;
            gameOverCoroutine = null;

            SceneManager.LoadScene(0);
            SceneManager.sceneLoaded += OnSceneLoaded;
        }
    }
    // Update is called once per frame
    void Update()
    {
        //  Check if the user has entered the right combo
        if (Input.GetKeyDown(KeyCode.V))
        {
            if (count == 0)
            {
                count++;
            }
        }
        if (Input.GetKeyDown(KeyCode.I))
        {
            if (count == 1)
            {
                count++;
            }
        }
        if (Input.GetKeyDown(KeyCode.P))
        {
            if (count == 2)
            {
                count++;
            }
        }
        if (Input.GetKeyDown(KeyCode.E))
        {
            if (count == 3)
            {
                count++;
            }
        }
        if (Input.GetKeyDown(KeyCode.R))
        {
            if (count == 4)
            {
                if (activated)
                {
                    Debug.Log("cheat deactivated");
                }
                else
                {
                    Debug.Log("cheat activated");
                }
                activated = !activated;
                count     = 0;
            }
        }
        if (activated)
        {
            //  Skip to Boss
            if (Input.GetKeyDown(KeyCode.F2))
            {
                if (MapNodeList.nodes.Count == 3)
                {
                    MapNodeList.nodes[0].nodeState = NodeState.Complete;
                    MapNodeList.nodes[1].nodeState = NodeState.Current;
                    Debug.Log("Skip to Boss Cheat");
                    CombatInfo.CombatsFinished = 2;
                    //  If we are already on the map, save and then load the scene to have the nodes update visually
                    if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Map"))
                    {
                        SaveGameManager.SaveGame(GameState.Player, CombatInfo.CombatsFinished);
                        SaveGameManager.LoadGame();
                        SceneManager.LoadScene("Map");
                    }
                }
                else
                {
                    Debug.LogError("MAP NODES NOT INITIALIZED. THERE ARE NOT 3 MAP NODES IN THE LIST");
                }
            }

            //  Win Current Combat
            if (Input.GetKeyDown(KeyCode.F3))
            {
                if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Combat"))
                {
                    CombatManager cm = FindObjectOfType <CombatManager>();
                    cm.AttackEnemy(cm.enemy.maxHealth);
                    Debug.Log("Finished Combat Cheat");
                }
            }

            //  Heal Player to Full
            if (Input.GetKeyDown(KeyCode.F4))
            {
                Debug.Log("Heal Cheat");
                if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Combat"))
                {
                    CombatManager cm = FindObjectOfType <CombatManager>();
                    cm.player.ModHealth(GameState.GetInstance().MaxHealth);
                }
                else
                {
                    GameState.curHealth = GameState.GetInstance().MaxHealth;
                }
            }
        }
    }
Exemple #9
0
    // Update is called once per frame
    void Update()
    {
        if (transform.parent.gameObject.activeSelf)
        {
            if (Input.GetKeyDown(downKey) || Input.GetKeyDown(downKey2))
            {
                if (selected == options.Length - 1)
                {
                    selected = 0;
                }
                else
                {
                    selected++;
                }
            }
            else if (Input.GetKeyDown(upKey) || Input.GetKeyDown(upKey2))
            {
                if (selected == 0)
                {
                    selected = options.Length - 1;
                }
                else
                {
                    selected--;
                }
            }
            if (Input.GetKeyDown(pickKey))
            {
                if (store)
                {
                    //print(selected);
                    switch (selected)
                    {
                    case 0:
                        if (CombatInfo.CoinCount > 1)
                        {
                            CombatInfo.HealthPotionCount++;
                            CombatInfo.CoinCount -= 2;
                            print("get potion");
                        }
                        else
                        {
                            print("not enough bucks");
                        }
                        break;

                    case 1:
                        transform.parent.gameObject.SetActive(false);
                        break;
                    }
                }
                else
                {
                    switch (selected)
                    {
                    case 0:
                        print("use potion");
                        break;

                    case 1:
                        SaveGameManager.SaveGame(Player.transform.position, CombatInfo.CombatsFinished);
                        break;

                    case 2:
                        SceneManager.LoadScene("MainMenu");
                        break;
                    }
                }
            }
            for (int i = 0; i < options.Length; i++)
            {
                if (i == selected)
                {
                    options[i].enabled = true;
                }
                else
                {
                    options[i].enabled = false;
                }
            }
        }
    }