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 |
|
joywayer
|
55b6255ce6
|
@
test(ai): BrainGraph 全面测试——框架边界 + 全感知矩阵(70 tests 全绿)
保证自研 AI 状态机(BrainGraph)稳定与功能正确性。EditMode AI 测试从 31 增至 70。
新增 AiFrameworkTests(17)——框架健壮性/边界(与 AiRuntimeTests 主干互补):
- 构图校验:Entry 未设/未声明、全局转换目标未声明、GlobalBuilder 顺序错用抛异常
- 转换优先级:同态多条件首声明胜、全局条件转换、全局优先于局部
- 事件 vs 条件:事件优先(Tick 首步)、未匹配信号被消费不阻塞、多信号首个匹配胜
- 时序:条件自转换 no-op、转换当帧跳过 OnTick、Tick 双参传 dt
- trace 环形上限 16、事件推进后清挂起、State 重声明累加转换
重写 PerceptionStateMachineTests(22)——完整感知↔状态矩阵:
- 待机/巡逻/警觉/追击/死亡 全转换 + HasAlert 分支(无警觉态不进警觉)
- 追击优先于警觉;追击永不回警觉、脱离全部感知才降级 R(=Patrol)
- 视野单独/追逐区单独仍维持追击;locomotion 意图(Idle/Patrol/Face)
- 追击触发能力、离开中断能力;死亡为终态不复活
验证:反射调用全部 [Test] 方法(负对照确认能捕获失败),70/70 通过。
去重:Blackboard/局部转换目标校验已由 BlackboardTests/BrainBuilderTests 覆盖,不重复。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
|
2026-07-20 11:11:54 +08:00 |
|
joywayer
|
63b3701fc7
|
@
test(ai): PerceptionStateMachine locomotion 意图回归测试(绿)
新增 PerceptionStateMachineTests:待机态声明 Idle locomotion 意图、进追逐区
转 Chase 并触发追击能力、Chase 态不再直接声明 locomotion 意图。测试程序集
补 BaseGames.Enemies 引用。断言经真实状态机 + 测试 fake 验证通过。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
|
2026-07-10 12:21:28 +08:00 |
|