public BinaryTree findAndReplaceSkill() { BinaryTree TreeNode = null; //decide what tree to look in based on skill type of the selected skill switch (selectedSkill.skillType) { case (SkillTreeNode.SkillType.Q): { //find the Binary tree node with the selected skill in it TreeNode = SavedData.GetComponent <SkillSavedData>().QTree.findSkillElement(selectedSkill.skillObject.name); //remove old skill if (SavedData.GetComponent <PlayerSavedData>().QSkill != null) { Destroy(Player.transform.FindChild(SavedData.GetComponent <PlayerSavedData>().QSkill.name + "(Clone)").gameObject); } //update all texts needed equipedQText.text = Qstring + selectedSkill.GetComponentInChildren <Text>().text; //save data SavedData.GetComponent <PlayerSavedData>().QSkill = selectedSkill.skillObject; break; } case (SkillTreeNode.SkillType.E): { //TODO add the same case as Q just for all the other cases. break; } case (SkillTreeNode.SkillType.MS): { break; } case (SkillTreeNode.SkillType.MW): { break; } case (SkillTreeNode.SkillType.RS): { break; } case (SkillTreeNode.SkillType.RW): { break; } default: { break; } } //finally apply the skills to the player. SavedData.SendMessage("ApplySkillsToPlayer", Player); return(TreeNode); }
//this is called when we click on a skill node void SkillSelected(SkillTreeNode skill) { //Apply the skill to the player selectedSkill = skill; selectedSkillText.text = "Selected Ability:\n" + selectedSkill.GetComponentInChildren <Text>().text; if (selectedSkill.bought) { findAndReplaceSkill(); } }