using UnityEngine; public abstract class Ability : ScriptableObject { [Header("Ability Settings")] public string abilityName; public string abilityKey; public KeyCode keybind; // Key to activate the ability public float cooldownTime; // Cooldown duration in seconds public float abilityRadius; public float abilityDuration; public float abilityMagnitude; public void ActivateAbility(GameObject owner) { Activate(owner); } protected abstract void Activate(GameObject owner); // Logic for the specific ability public abstract void OnDrawAbilityGizmos(Vector3 pos); }