public void loadSkills() { // if (charaSkills != null) // { // for (int i = charaSkills.Length; i > 0; i--) // { // Destroy(charaSkills[i]); // } // } // int numSkills = playerCharaStatuses[selectedCharacter].availSkills.Count; // charaSkills = new skillData[numSkills]; charaSkills = playerCharaStatuses[selectedCharacter].availSkills.ToArray(); skillItems = new GameObject[charaSkills.Length - 2]; for (int i = 2; i < charaSkills.Length; i++) { skillItems[i - 2] = Instantiate(skillPrefab); skillItems[i - 2].transform.SetParent(skillsMenuContent.transform, false); skillItems[i - 2].name = charaSkills[i].skillName; battleSkillController = skillItems[i - 2].GetComponent <battleSkillController>(); battleSkillController.battleController = this; battleSkillController.skillID = charaSkills[i].skillID; battleSkillController.skillIndex = i - 2; battleSkillController.skillName = charaSkills[i].skillName; battleSkillController.MPCost = charaSkills[i].MPCost; if (battleSkillController.MPCost > playerCharaStatuses[selectedCharacter].currentMP) { skillItems[i - 2].GetComponent <Button>().interactable = false; } battleSkillController.rechargeTime = charaSkills[i].rechargeTime; battleSkillController.castingTime = charaSkills[i].castingTime; battleSkillController.skillTimer = playerCharaStatuses[selectedCharacter].skillTimers[i]; skillText = skillItems[i - 2].GetComponentsInChildren <Text>(); skillText[0].text = charaSkills[i].skillName + " (" + charaSkills[i].MPCost + ")"; // if (playerCharaStatuses[selectedCharacter].skillTimers.Count >= i) // { // skillText[1].text = playerCharaStatuses[selectedCharacter].skillTimers[i].ToString("F"); // } // else // { // skillText[1].text = 0.ToString("F"); // } } if (charaSkills.Length < 3) { skillsButton.interactable = false; } }
public void useSkill() { skillData skill = charaSkills[selectedSkill + 2]; GameObject target = targets[selectedTarget]; characterStatusController targetStatus = target.GetComponent <characterStatusController>(); battleSkillController skillController = skillItems[selectedSkill].GetComponent <battleSkillController>(); skillController.skillTimer = skillController.rechargeTime + skillController.castingTime; playerCharaStatuses[selectedCharacter].currentMP -= skill.MPCost; targetStatus.calculateDamage(skill, playerParty[selectedCharacter]); targetMenu.SetActive(false); skillsMenu.SetActive(false); selectedSkill = -1; selectedTarget = -1; }