joywayer
|
ca36974ec3
|
feat(enemy): EnemyAbilityBase 加 ResolveConfig<T> 类型化配置解析(不匹配显式报错) + EditMode 测试
|
2026-07-21 11:14:28 +08:00 |
|
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 |
|
 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 |
|
 joywayerandClaude Opus 4.8
|
63e241af92
|
fix(ai): AiRuntime 自转换设为no-op(根治死亡双发Died再入) + EnemyBase.OnSpawn复位brain.enabled + 测试
Switch 对 target==当前态直接 no-op(不重跑Exit/Enter),循环改为 if(Switch(t))return true;
OnSpawn 复用时恢复被 QuotaManager 裁剪禁用的 brain。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-03 16:26:28 +08:00 |
|
joywayer
|
683a2d9ffb
|
feat(ai): AiDefinitionRegistry——反射按id提供共享AiGraph(关域重载重置)
|
2026-07-03 14:55:42 +08:00 |
|
joywayer
|
11e4c9f1ea
|
refactor(ai): 终审收尾——删死字段/事件转换刷新IsSuspended + 局部事件与双实例独立性测试
|
2026-07-03 14:33:23 +08:00 |
|
joywayer
|
747d39072e
|
test(ai): BrainGraph 第1阶段收尾——flyweight 共享测试 + 全量绿
|
2026-07-03 14:26:01 +08:00 |
|
joywayer
|
d01df7b5f0
|
feat(ai): AiRuntime 事件转换(push,不受门限制)+trace触发原因+池复用测试
|
2026-07-03 14:23:28 +08:00 |
|
joywayer
|
5ad26b16e8
|
perf(ai): AiRuntime 热路径去装箱/弱表一次注册 + 补 OnExit/Entry OnEnter 测试
|
2026-07-03 14:20:19 +08:00 |
|
joywayer
|
cdd1053bec
|
feat(ai): AiRuntime 条件转换+IsControllable让位门+状态计时+trace+Reset
|
2026-07-03 14:13:36 +08:00 |
|
joywayer
|
6f9fa8c4b8
|
feat(ai): BrainGraph AiGraph + BrainBuilder(fluent, 显式标签, 目标校验)
|
2026-07-03 14:04:51 +08:00 |
|
joywayer
|
db5bd019f8
|
feat(ai): BrainGraph 核心程序集 + AiSignal + Blackboard(可自省)
|
2026-07-03 13:56:11 +08:00 |
|
joywayer
|
a1f9122153
|
UI相关优化补充
|
2026-05-25 13:21:41 +08:00 |
|
joywayer
|
8ae2de5bcb
|
存档完善和修复
|
2026-05-20 15:26:51 +08:00 |
|
joywayer
|
ec633d9b79
|
存档完善和修复
|
2026-05-20 15:10:35 +08:00 |
|
joywayer
|
f264329751
|
摄像机区域的架构改动
|
2026-05-15 14:47:24 +08:00 |
|
joywayer
|
1b37297585
|
多轮审查评估
|
2026-05-13 09:19:54 +08:00 |
|