9120964be04e58b60939e386320130982e11a8aa
EnemyHurtState 与 EnemyStaggerState 的 Enter 在对应 Clip 为空时守卫式早退, **同时丢掉了恢复安排**:_currentState 永远停在该态,IsControllable 恒假, AiRuntime 的让位门永久挡住条件边求值——敌人被打一次即永久失能。 美术未接入时这影响的是大部分敌人。 TakeDamage 是分发点:霸体被破进 Stagger、否则进 Hurt,两条都可达, 所以这是两个活 bug 而非一个。EnemyKnockUpState 本就有 else 分支走 ScheduleStateRecovery,是正确范式;本次把该分支补给另外两个,并加一条 KnockUp 回归测试守住它。 时长权威没有新造: - Hurt 接上 DamageSourceSO.HitStunDuration——该字段一路铺到 DamageInfo 却零消费者,本就是「这一击让对方僵多久」的既有权威;经 PendingHitStun 传给状态,形状与既有的 PendingLaunchDir 一致。 - Stagger 用 HitTierConfig.staggerDuration——该结构 tooltip 本就写着 「Stagger / KnockUp 参数」却只有 KnockUp 的字段,属补齐而非发明。 顺带修 ScheduleStateRecovery 不取消前一次安排的问题:两个重叠安排里较短的 会先把状态改回 Controlled,静默缩短调用方想要的时长(ReceiveParry 接线后 就会撞上)。并在 OnSpawn 清掉跨池化周期残留的协程句柄。 注:Knockback 目前零调用者,其中的 PendingHitStun 赋值今天是死代码, 但它是 public virtual 且会进 Hurt 态,不设则将来接线时会用到陈旧时长。 验证:编译 0 错;EditMode 263/263(260 + 新增 3)。 变异验证——移除两个 else 分支后恰好 Hurt/Stagger 两条测试变红、 KnockUp 回归测试保持绿,恢复后复验 263/263。
Description
No description provided
209 MiB
Languages
C#
85.5%
GLSL
12.4%
ShaderLab
1.9%
HLSL
0.1%