using Unity.BossRoom.Gameplay.GameplayObjects.Character; using UnityEngine; public abstract class Ability : ScriptableObject { public string abilityKey; public string abilityName; [Header("Common Ability Settings")] public float abilityRadius; public float abilityMagnitude; public float abilityDuration; public float abilityCooldownTime; [Header("Ability Prefab")] public GameObject prefab; /// /// Executes the ability's specific behavior. /// public abstract void Execute(ServerCharacter character, Vector3 targetPosition, Vector3 targetRotation); /// /// Retrieves the prefab associated with this ability. /// public GameObject GetPrefab() { return prefab; } }