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; [SerializeField] private GameObject abilityPrefab; // Prefab associated with this ability public GameObject GetPrefab() { return abilityPrefab; } public void ActivateAbility(GameObject owner) { Activate(owner); } protected abstract void Activate(GameObject owner); // Logic for the specific ability }