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 static void loadAbilityBar() { CharacterDataTracker tracker = PlayerFinder.getPlayer().GetComponent <CharacterDataTracker>(); AbilityList abilityList = PlayerFinder.getPlayer().GetComponent <AbilityList>(); List <string> savedAbilities = tracker.charData.abilityBar; for (int i = 0; i < savedAbilities.Count; i++) { Ability ability = AbilityIDList.getPlayerAbility(savedAbilities[i]); if (ability == null) { abilityList.abilities[i] = AbilityIDList.getAbility(AbilityID.nullAbility); } else { abilityList.abilities[i] = ability; } } }
public static void selectionChange(int abilityNumber1to5, string newPlayerAbilityID) { CharacterDataTracker tracker = PlayerFinder.getPlayer().GetComponent <CharacterDataTracker>(); if (tracker.charData.abilityBar == null) { tracker.charData.abilityBar = new List <string>(); } while (tracker.charData.abilityBar.Count < abilityNumber1to5) { tracker.charData.abilityBar.Add(""); } tracker.charData.abilityBar[abilityNumber1to5 - 1] = newPlayerAbilityID; if (tracker.charData.characterName != "") { tracker.SaveCharacterData(); } }