Initial Combat Implementation
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
using ProjectM.Simulation;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ProjectM.Authoring
|
||||
{
|
||||
/// <summary>
|
||||
/// Designer-facing definition of one ability. Numeric fields are baked into the AbilityDatabase blob
|
||||
/// (immutable, Burst-fast runtime config); the projectile prefab is baked into the companion
|
||||
/// AbilityPrefabElement buffer (entity refs cannot live inside a blob). UI fields (icon/description)
|
||||
/// are deliberately deferred to a later managed lookup keyed by id.
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Project M/Ability Definition", fileName = "Ability_")]
|
||||
public class AbilityDefinition : ScriptableObject
|
||||
{
|
||||
public AbilityId Id = AbilityId.Primary;
|
||||
public string DisplayName = "Ability";
|
||||
|
||||
[Header("Combat")]
|
||||
[Min(0f)] public float Damage = 20f;
|
||||
[Min(0f)] public float ProjectileSpeed = 25f;
|
||||
[Min(0f)] public float Range = 20f;
|
||||
|
||||
[Header("Auto-target assist")]
|
||||
[Min(0f)] public float AutoTargetRange = 12f;
|
||||
[Min(0f)] public float AutoTargetConeDegrees = 35f;
|
||||
|
||||
[Header("Timing")]
|
||||
[Min(1)] public int CooldownTicks = 12;
|
||||
|
||||
[Header("Prefab (baked into the prefab buffer, not the blob)")]
|
||||
public GameObject ProjectilePrefab;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user