using UnityEngine; public enum BehaviorTrigger { PreCast, // Before ability executes Execute, // MAIN EXECUTION - replaces your override Execute() PostCast, // After ability executes OnHit, // When ability hits target OnKill, // When ability kills target OnCrit, // When ability crits OnMiss, // When ability misses OnChannelTick, // During channeling OnChannelEnd // When channeling ends } public abstract class RuntimeBehavior { public BehaviorTrigger Trigger { get; set; } public string BehaviorName { get; set; } public abstract void Execute(RuntimeAbilityInstance ability, Taggable user, Transform target, Vector3 point); public abstract RuntimeBehavior Clone(); }