public void DecodeTrackers()
    {
        using (StreamReader r = new StreamReader(@"savegame.json"))
        {
            string   json     = r.ReadToEnd();
            Encoders encoders = JsonUtility.FromJson <Encoders>(json);

            GoldTracker goldTracker = FindObjectOfType <GoldTracker>();
            JsonUtility.FromJsonOverwrite(encoders.goldTracker, goldTracker);

            GameSetupScenarioTracker gameSetupScenarioTracker = FindObjectOfType <GameSetupScenarioTracker>();
            JsonUtility.FromJsonOverwrite(encoders.gameSetupScenarioTracker, gameSetupScenarioTracker);
            gameSetupScenarioTracker.OnLoad();

            UnlockTracker unlockTracker = FindObjectOfType <UnlockTracker>();
            JsonUtility.FromJsonOverwrite(encoders.unlockTracker, unlockTracker);

            PerkTracker perkTracker = FindObjectOfType <PerkTracker>();
            JsonUtility.FromJsonOverwrite(encoders.perkTracker, perkTracker);

            ActionTracker actionTracker = FindObjectOfType <ActionTracker>();
            JsonUtility.FromJsonOverwrite(encoders.actionTracker, actionTracker);

            RandomTracker randomTracker = FindObjectOfType <RandomTracker>();
            JsonUtility.FromJsonOverwrite(encoders.randomTracker, randomTracker);
            randomTracker.OnLoad();
        }
    }
    public void updateGoldCost()
    {
        if (PlayerFinder.getPlayer())
        {
            CharacterDataTracker dataTracker = PlayerFinder.getPlayer().GetComponent <CharacterDataTracker>();

            if (dataTracker && dataTracker.charData != null)
            {
                goldCost = 100 + dataTracker.charData.respecs * 100;

                GoldTracker goldTracker = PlayerFinder.getPlayer().GetComponent <GoldTracker>();

                if (dataTracker.charData.characterTreeNodeProgression.Count <= 0)
                {
                    foreach (Transform child in transform)
                    {
                        if (child.name == "gold cost message")
                        {
                            child.GetComponent <TextMeshProUGUI>().text = "You do not have any points allocated on your passive grid";
                        }
                        else if (child.name == "Yes")
                        {
                            child.gameObject.SetActive(false);
                        }
                    }
                }
                else if (goldTracker.value < goldCost)
                {
                    foreach (Transform child in transform)
                    {
                        if (child.name == "gold cost message")
                        {
                            child.GetComponent <TextMeshProUGUI>().text = "You do not have the <color=#DAA520FF>" + goldCost + "</color> gold required to respec.";
                        }
                        else if (child.name == "Yes")
                        {
                            child.gameObject.SetActive(false);
                        }
                    }
                }
                else
                {
                    foreach (Transform child in transform)
                    {
                        if (child.name == "gold cost message")
                        {
                            child.GetComponent <TextMeshProUGUI>().text = "This will undo your latest allocation to your passive grid at the cost of <color=#DAA520FF>" + goldCost + "</color> gold.\n\nIt will also make subsequent respecs cost 100 more gold.";
                        }
                        else if (child.name == "Yes")
                        {
                            child.gameObject.SetActive(true);
                        }
                    }
                }
            }
        }
    }
    public void RespecLatestPassive()
    {
        bool open = UIBase.instance.passiveTreeOpen;

        if (!open)
        {
            UIBase.instance.openPassiveTree(true);
        }

        if (PlayerFinder.getPlayer())
        {
            CharacterDataTracker dataTracker = PlayerFinder.getPlayer().GetComponent <CharacterDataTracker>();
            GoldTracker          goldTracker = PlayerFinder.getPlayer().GetComponent <GoldTracker>();

            if (dataTracker && goldTracker && goldTracker.value >= goldCost)
            {
                if (dataTracker.charData != null && dataTracker.charData.characterTreeNodeProgression != null && dataTracker.charData.characterTreeNodeProgression.Count > 0)
                {
                    string nodeID = dataTracker.charData.characterTreeNodeProgression[dataTracker.charData.characterTreeNodeProgression.Count - 1];
                    foreach (CharacterTree tree in CharacterTree.all)
                    {
                        if (tree.characterClass == dataTracker.charData.characterClass)
                        {
                            foreach (SkillTreeNode node in tree.nodeList)
                            {
                                if (node.nodeID == nodeID)
                                {
                                    dataTracker.charData.respecs++;
                                    goldTracker.modifyGold(-goldCost);
                                    node.respecOnePoint(true);
                                }
                            }
                        }
                    }
                }
            }
        }

        if (!open)
        {
            UIBase.instance.closePassiveTree();
        }

        UIBase.instance.closePassiveRespecConfirmation();
    }
    public void EncodeTrackers()
    {
        GoldTracker              goldTracker              = FindObjectOfType <GoldTracker>();
        UnlockTracker            unlockTracker            = FindObjectOfType <UnlockTracker>();
        ActionTracker            actionTracker            = FindObjectOfType <ActionTracker>();
        RandomTracker            randomTracker            = FindObjectOfType <RandomTracker>();
        GameSetupScenarioTracker gameSetupScenarioTracker = FindObjectOfType <GameSetupScenarioTracker>();
        PerkTracker              perkTracker              = FindObjectOfType <PerkTracker>();

        Encoders encoders = new Encoders();

        encoders.goldTracker              = JsonUtility.ToJson(goldTracker);
        encoders.unlockTracker            = JsonUtility.ToJson(unlockTracker);
        encoders.actionTracker            = JsonUtility.ToJson(actionTracker);
        encoders.randomTracker            = JsonUtility.ToJson(randomTracker);
        encoders.perkTracker              = JsonUtility.ToJson(perkTracker);
        encoders.gameSetupScenarioTracker = JsonUtility.ToJson(gameSetupScenarioTracker);

        string json = JsonUtility.ToJson(encoders);

        System.IO.File.WriteAllText(@"savegame.json", json);
    }
Exemple #5
0
 // Start is called before the first frame update
 void Start()
 {
     goldTracker = FindObjectOfType <GoldTracker>();
     goldText    = this.gameObject.GetComponent <Text>();
 }