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;
|
// 现在表里面没有配AI类型,所以默认全部是Normal
|
AIType = EndlessBossSkillAIType.Normal;
|
}
|
|
/// <summary>
|
/// 技能AI类型
|
/// </summary>
|
/// <value></value>
|
public EndlessBossSkillAIType AIType { get; protected set; }
|
|
/// <summary>
|
/// 技能配置表数据
|
/// </summary>
|
public boss_skill SkillData { get; protected set; }
|
|
/// <summary>
|
/// 技能是否被激活,只有被激活才会开始cd,也才能去释放,取决于具体的AI怎么去实现它
|
/// </summary>
|
/// <value></value>
|
public bool IsActived { get; set; }
|
|
protected Timer timer;
|
|
/// <summary>
|
/// 帧刷新
|
/// </summary>
|
/// <param name="deltaTime"></param>
|
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()
|
{
|
|
}
|
|
/// <summary>
|
/// AI 初始化
|
/// </summary>
|
public virtual void Init()
|
{
|
AddEvent();
|
}
|
|
public virtual void Clear()
|
{
|
RemoveEvent();
|
}
|
|
/// <summary>
|
/// 重置AI,恢复到初始状态
|
/// </summary>
|
public abstract void Reset();
|
|
/// <summary>
|
/// 是否满足条件可以释放技能
|
/// </summary>
|
/// <returns></returns>
|
public abstract bool CanRelease();
|
}
|
}
|