public void AttemptSpecialAbility(int index, GameObject target = null) { if (abilities.Length > 0) { SpecialAbilities energy = GetComponent <SpecialAbilities>(); float energyCost = abilities[index].GetEnergyCost(); if (energyCost <= currentEnergyPoints) { energy.ConsumeEnergy(energyCost); abilities[index].Use(target); } else { if (!audioSource.isPlaying && outOfEnergyClip) { audioSource.PlayOneShot(outOfEnergyClip); } } } }