Commit Graph
5 Commits
Author SHA1 Message Date
joywayer d7be0cc119 @
feat(ai): 追击冲刺带冷却——CD 期巡逻,冷却结束仍在追逐区则再冲(PatrolBetweenChases)

按需求:冲刺打完 → CD 期切到巡逻(Move_Patrol) → 冷却结束且玩家仍在追逐区 → 再冲刺。

PerceptionStateMachine 加 opt-in 开关 PatrolBetweenChases:
- Chase → Patrol When !IsAbilityRunning(chase):冲刺是 committed 冲锋,感知丢失
  也不中途打断,打完(能力结束)即降巡逻。
- Idle/Patrol/Alert → Chase 加冷却门 CanUseAbility(chase):CD 中不回追击,
  避免"CD 期在追逐区每帧 Chase↔Patrol 来回抖"(用户担心的错切/抖动)。
- 默认关:不影响其他敌人(leftAllZones 旧行为保留)。
E001CaoZhiAi 打开开关。追击能力保持单次冲刺不变,冷却=ABL_E001_Chase.cooldown(1s)。

测试:PerceptionStateMachineTests +5(CD 转换矩阵含"CD 期多帧不抖动"负例),
FakeCombat 加可控 CanUse。全量 75/75 绿。PlayMode 实测循环
Move_Patrol(CD)→Chase(冲)→Move_Patrol,inChase 全程 true 亦不抖,0 报错。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
2026-07-20 13:11:28 +08:00
joywayerandClaude Opus 4.8 1ab0521061 refactor(ai): IAiContext.Mover→Locomotion,删除 IMover
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 12:14:53 +08:00
joywayerandClaude Opus 4.8 6c27993e09 feat(ai): 敌人感知↔状态模型——待机/警觉/追击/巡逻 + 可复用感知状态机
感知门面 EnemyBase.InChaseZone(追逐/aggro)/InVisionZone(视野/los,缺省回退aggro),纯查询;
转换逻辑归 AI 层: 新增可复用 PerceptionStateMachine(统一规则,HasAlert/视野缺省自动降级);
规则: 未发现进视野→警觉, 进追逐→追击(委托能力), 追击脱离视野→巡逻(永不回警觉,再进视野再警觉).
EnemyStatsSO.HasAlertState 勾选项; ContactChaseAbility 改纯执行器(退出由AI中断); E001 用可复用件.
PlayMode 验证四态转换全通过.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 15:10:39 +08:00
joywayerandClaude Opus 4.8 4ce798ea6e refactor(ai): E001 AI 重写为纯决策层,符合设计并委托能力模块
依据小怪设计文档重构 E001 状态机 Idle_Disguise→Skill_Start→Skill_Loop→Skill_End→Move_Patrol:
追击移动/接触伤害全部委托 e001_chase(ContactChaseAbility),AI 不再裸 MoveTo。
新增 ISensor.DetectsPlayer(视线OR近身,对齐设计)、IMover.UseChase/PatrolSpeed、
IEnemyActor.SetPhase(AI 声明阶段、EnemyBase 播动画)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 16:51:47 +08:00
joywayer cdd1053bec feat(ai): AiRuntime 条件转换+IsControllable让位门+状态计时+trace+Reset 2026-07-03 14:13:36 +08:00