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); }
// Start is called before the first frame update void Start() { goldTracker = FindObjectOfType <GoldTracker>(); goldText = this.gameObject.GetComponent <Text>(); }