using UnityEngine; namespace BaseGames.Enemies.StatusEffects { /// /// 状态效果类型枚举。 /// public enum StatusEffectType { Frozen, // 冻结:停止移动、降低 BT Tick 频率 Sleep, // 睡眠:受击即唤醒 Burning, // 灼烧:持续扣血 } /// /// 状态效果接口。 /// 每种效果实现此接口,由 统一管理生命周期。 /// public interface IStatusEffect { StatusEffectType Type { get; } /// 持续时间(秒),负值 = 永久(直到手动移除)。 float Duration { get; } /// 效果是否已自然结束(超时或条件不满足)。 bool IsFinished { get; } /// 效果挂载到 enemy 时调用一次。 void OnApplied(EnemyBase enemy); /// 效果每帧 Tick(由 EnemyStatusEffectManager 驱动)。 void Tick(EnemyBase enemy, float deltaTime); /// 效果移除(超时 / 手动 / 死亡)时调用一次。 void OnRemoved(EnemyBase enemy); } }