|
|
|
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;
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Executes the ability's specific behavior.
|
|
|
|
/// </summary>
|
|
|
|
public abstract void Execute(ServerCharacter character, Vector3 targetPosition, Vector3 targetRotation);
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Retrieves the prefab associated with this ability.
|
|
|
|
/// </summary>
|
|
|
|
public GameObject GetPrefab()
|
|
|
|
{
|
|
|
|
return prefab;
|
|
|
|
}
|
|
|
|
}
|