37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
using UnityEngine;
|
|
|
|
namespace OTGIntegrated.Abilities
|
|
{
|
|
[CreateAssetMenu(fileName = "AbilityData", menuName = "OTG Integrated/Ability Data")]
|
|
public sealed class AbilityData : ScriptableObject
|
|
{
|
|
public string abilityId;
|
|
public string displayName;
|
|
[TextArea(2, 5)] public string description;
|
|
public float manaCost = 10f;
|
|
public float cooldown = 2f;
|
|
public float damage = 10f;
|
|
public float range = 8f;
|
|
public GameObject effectPrefab;
|
|
public Sprite icon;
|
|
|
|
private void OnValidate()
|
|
{
|
|
if (string.IsNullOrWhiteSpace(abilityId))
|
|
{
|
|
abilityId = name;
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(displayName))
|
|
{
|
|
displayName = abilityId;
|
|
}
|
|
|
|
manaCost = Mathf.Max(0f, manaCost);
|
|
cooldown = Mathf.Max(0f, cooldown);
|
|
damage = Mathf.Max(0f, damage);
|
|
range = Mathf.Max(0f, range);
|
|
}
|
|
}
|
|
}
|