// 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);
        }
    }