// Performs a skill at a given index within the skillbar public bool performSkillAtIndex(int i, List <AbstractCreature> targets, CombatData data, AbstractCreature skillUser) { if (i < 0 || i >= skillBar.Length) { //Attempting to get a skill out of array bounds SkillEvent("No skill found!"); return(false); } else { if (skillToUse != null && skillToUse != skillBar[i]) { skillToUse.destroySRI(); SkillEvent(skillToUse.unprepareSkill()); } skillToUse = skillBar[i]; if (skillToUse.isPrepared()) { SkillEvent(skillToUse.attemptSkill(targets, data)); Destroy(skillRadiusIndicator); } else { SkillEvent(skillToUse.prepareSkill()); if (skillToUse.isPrepared()) { skillRadiusIndicator = (GameObject)Instantiate(Resources.Load("SRI")); skillRadiusIndicator.transform.localScale = skillRadiusIndicator.transform.localScale * skillBar[i].skillRadius; skillRadiusIndicator.transform.position = parent.transform.position; skillToUse.SkillRadiusIndicator = skillRadiusIndicator; } } return(skillBar[i].skillSuccessful); } }