定义一个名为 `ai_autofight_find_target` 的类,继承自 `ai_base` 类。
这个类用于处理游戏中AI自动战斗中寻找目标的逻辑。以下是对代码的具体解释:
1. **引入基类**: 使用 `require` 函数引入 `ai_base` 类,作为基础类。
2. **定义 `ai_autofight_find_target` 类**: 使用 `class` 关键字定义了 `ai_autofight_find_target` 类,并继承自 `BASE`(即 `ai_base`)。
3. **构造函数 (`ctor`)**:
- - 构造函数 `entity` 游戏实体,并设置 `_type` 属性为 `eAType_AUTOFIGHT_FIND_TARGET`,表示自动战斗中寻找目标的行为。
- - 初始化 `_target` 为 `nil`,用于后续存储找到的目标。
4. **`IsValid` 方法**:
- - 这个方法用于验证AI是否应该寻找目标。它首先检查实体是否开启了自动战斗(`_AutoFight`),是否死亡或无法攻击。
- - 计算警报范围 `filterdist`,可能基于实体的属性或世界配置。
- - 检查实体的预命令类型,如果是点击移动或摇杆移动,则返回 `false`。
- - 检查实体的当前技能 `_curSkill`,根据技能类型(伤害、诅咒、祝福)和相关逻辑来确定目标。
5. **`OnEnter` 方法**:
- 当AI组件进入激活状态时执行。如果已经找到目标 `_target`,则根据当前技能设置目标或移动到目标位置。
6. **`OnLeave` 方法**:
- 当AI组件离开激活