public void saveAbilityXP(SpecialisedAbilityList sal) { CharacterData data = PlayerFinder.getPlayer().GetComponent <CharacterDataTracker>().charData; for (int i = 0; i < sal.abilities.Count; i++) { foreach (CharacterData.SavedSkillTree tree in data.savedSkillTrees) { if (tree.treeID == sal.abilities[i].playerAbilityID) { tree.abilityXP = (int)sal.abilityXP[i]; } } } PlayerFinder.getPlayer().GetComponent <CharacterDataTracker>().SaveCharacterData(); }
public void GetListReference() { // get a reference to the player's specialised ability list if (!list) { if (PlayerFinder.getPlayer() == null) { return; } list = PlayerFinder.getPlayer().GetComponent <SpecialisedAbilityList>(); if (list.abilities.Count > abilityNumber && list.abilities[abilityNumber] != null) { ability = list.abilities[abilityNumber]; icon.sprite = ability.abilitySprite; findSkillTree(); } list.abilityChangedEvent += checkIfAbilityChanged; } }
public void loadAbility(string playerAbilityID, int slotNumber, float abilityXP, int unspentPoints, List <StringIntPair> nodesTaken) { UIBase uiBase = UIBase.instance; uiBase.openSkills(); // specialised in the ability SpecialisedAbilityList specialisedAbilityList = PlayerFinder.getPlayer().GetComponent <SpecialisedAbilityList>(); specialisedAbilityList.Specialise(AbilityIDList.getPlayerAbility(playerAbilityID), slotNumber, false); // set the ability xp specialisedAbilityList.abilityXP[slotNumber] = abilityXP; // set the ability level specialisedAbilityList.abilityLevels[slotNumber] = SpecialisedAbilityManager.getAbilityLevel(abilityXP); // update the tree loadTree(playerAbilityID, unspentPoints, 0, nodesTaken); uiBase.closeSkills(); }