joywayer
|
bf8101b3f5
|
feat(enemy): PerceptionSkeleton——两层可插拔的感知骨架,自声明死亡终态
|
2026-07-29 14:10:46 +08:00 |
|
joywayer
|
faa210c789
|
revert(enemy): 收掉死亡层——死亡归物理层,AI 只需一个终态
|
2026-07-29 14:02:13 +08:00 |
|
joywayer
|
5a9c1fd569
|
chore(enemy): 补齐死亡层模块的 .meta 文件
|
2026-07-29 13:46:45 +08:00 |
|
joywayer
|
3bc7eb1855
|
feat(enemy): 死亡层三模块(终态/单段/两段)
|
2026-07-29 13:46:20 +08:00 |
|
joywayer
|
3d00c66677
|
test(enemy): 补测 Attack 单出边的自愈路径,写明边序依赖的射程前提
Approach 边序注释:attackInRange 先于 leftAllZones 的前提是攻击射程恒小于
感知区(EnemyAttackSelector.Eligible 的 InAttackRange 门),故两条件不会相争;
若未来出现射程更大的招式,应由 AI 配方校验器报错,而非靠调边序绕开。
FakeCombat 新增 BestAttackFails 开关(与 Eligible 解耦),补测 Attack 唯一出边
attackDone 的自愈不变量:UseBestAttack 触发失败时不留下运行中能力,下一帧即可
自愈回 Approach,不会永久卡死。
|
2026-07-29 13:08:46 +08:00 |
|
joywayer
|
9d632cd103
|
fix(enemy): 退回 Approach 边序——脱战优先属假件失真,改由测试贴合真实射程语义
HasEligibleAttack() 只看攻击射程圆(远小于追击/视野区),脱离全部感知区在真实系统里
必然已脱离攻击射程,原顺序(attackInRange 先于 leftAllZones)本就正确。
FakeCombat.Eligible 是裸字段不会随 Chase/Vision 联动,才让上一版看似需要调边序。
改法:边序退回原样,测试里玩家离开感知区时手工同步清 Eligible,贴合真实耦合关系。
|
2026-07-29 12:59:07 +08:00 |
|
joywayer
|
a700bef352
|
feat(enemy): ApproachAttackEngagement——攻击改为起手即打完,不中途收招
寻路逼近↔到射程选招攻击的交战模块。招式射程/冷却/权重归 EnemyAttackSelector,
本模块只决定何时逼近、何时出手。
有意的行为变更:Attack 态去掉 leftAllZones 边,玩家在前摇中跑出感知区不再
中途打断招式,招式完整打完后经 Approach 自然脱战。
|
2026-07-29 12:53:49 +08:00 |
|
joywayer
|
5771ac414e
|
test(enemy): 补测 Committed 冲锋的防抖动闭环,RushExit 写明冷却前提
|
2026-07-29 12:45:43 +08:00 |
|
joywayer
|
bb1e2f7705
|
feat(enemy): RushEngagement——两个耦合 flag 合并为 RushExit 语义枚举
|
2026-07-29 12:32:50 +08:00 |
|
joywayer
|
acfba66c5d
|
feat(enemy): 未发现层三模块(单一态/单向降级/定时交替)
|
2026-07-29 12:19:26 +08:00 |
|
joywayer
|
80fdc36762
|
feat(ai): BrainBuilder.DeclareState——重复声明状态即报错,防模块间同名静默覆盖
State() 仍保持宽松(有则取),用于给已声明的态挂边;DeclareState() 只用于
首次声明行为,重复声明同名状态会抛异常。AiStateFragments 的四个建态原语
(Locomotion/Ability/AbilityOnce/Terminal)改用 DeclareState。同时给
IEngagementModule/IDeathModule/IUnawareModule 补充不变量说明。
|
2026-07-29 12:01:19 +08:00 |
|
joywayer
|
17e71dac39
|
feat(enemy): 未发现层/交战层/死亡层三个模块契约
|
2026-07-29 11:47:29 +08:00 |
|
joywayer
|
68f615e9c1
|
fix(enemy): AiStateFragments 空能力 id 建图期报错,补 OnExit 收尾测试
Ability/AbilityOnce 建图期校验 abilityId 非空,与 BrainBuilder.RequireState
同一类"漏配即快速失败"约束保持一致,避免定制 AiScript 漏配 id 时产出静默
不作为的状态。同时补 4 个测试:Locomotion/Ability 的 OnExit 收尾行为,以及
两个原语对空 id 的报错行为。
|
2026-07-29 11:42:47 +08:00 |
|
joywayer
|
77a32cbf8a
|
feat(enemy): AiStateFragments 建态原语,新增 AbilityOnce 修死亡态重触发隐患
从 PerceptionStateMachine 的 private static 辅助方法提升为公开原语,供后续
模块化重构(骨架+可插拔模块)与定制 AiScript 复用。新增 AbilityOnce:
只在进入时触发能力、不每帧重触发,修复用 Ability() 驱动死亡态时演出播完
被 Tick 无限重播的隐患(现有 PerceptionStateMachine 因 E001 死亡能力 id
为空未暴露,本次不改它,留待 T11 整体退役)。
|
2026-07-29 11:35:47 +08:00 |
|