21 lines
541 B
C#
21 lines
541 B
C#
using UnityEngine;
|
|
|
|
public abstract class Ability : ScriptableObject
|
|
{
|
|
[Header("Meta")]
|
|
public string displayName = "Ability";
|
|
public string key = "";
|
|
public Sprite icon;
|
|
|
|
[Header("Cost & Cooldown")]
|
|
public float manaCost = 10f;
|
|
public float cooldown = 2f;
|
|
|
|
[TextArea] public string description;
|
|
|
|
// Called after cost/cooldown checks pass
|
|
public abstract void Activate(AbilityUser user);
|
|
|
|
// Optional pre-checks (override if needed)
|
|
public virtual bool CanActivate(AbilityUser user) => true;
|
|
} |