using Core.Utilities; /** * 无尽模式boss技能AI基类 * @Author: chenxin * @Date: 2020-11-02 20:23:32 */ namespace KTGMGemClient { public abstract class EndlessBossSkillAI { public EndlessBossSkillAI(boss_skill param) { SkillData = param; // cx test 现在表里面没有配AI类型,所以默认全部是Normal AIType = EndlessBossSkillAIType.Normal; } /// /// 技能AI类型 /// /// public EndlessBossSkillAIType AIType { get; protected set; } /// /// 技能配置表数据 /// public boss_skill SkillData { get; protected set; } /// /// 技能是否被激活,只有被激活才会开始cd,也才能去释放,取决于具体的AI怎么去实现它 /// /// public bool IsActived { get; set; } protected Timer timer; /// /// 帧刷新 /// /// public virtual void Update(float deltaTime) { } protected virtual void AddEvent() { EventCenter.Ins.Add((int)KTGMGemClient.EventType.EndlessBeginWave, OnEndlessBeginWave); } protected virtual void RemoveEvent() { EventCenter.Ins.Remove((int)KTGMGemClient.EventType.EndlessBeginWave, OnEndlessBeginWave); } protected virtual void OnEndlessBeginWave() { } /// /// AI 初始化 /// public virtual void Init() { AddEvent(); } public virtual void Clear() { RemoveEvent(); } /// /// 重置AI /// public abstract void Reset(); /// /// 是否满足条件可以释放技能 /// /// public abstract bool CanRelease(); } }