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);
}
}