三池共同顺序与统一效果更新(v37)
2026-09-20。将回复、DoT、控制三个实例池接成共享dynamic顺序,并把正式Godot主循环切换为一次核心更新。TYPE52的正式挂载条件和表现仍未全部接好,武器构造准入没有放宽。
状态和挂载
新增CombatUnit.DynamicOrder,使用(Kind,Id):0回复、1DoT、2控制。各池ID仍独立,不能只拿整数ID去重。
原PeriodicOrder保留为回复/DoT的子序列。恢复会核对完整顺序的覆盖、重复、控制相对顺序,以及两个顺序表是否一致。数组随v37保存并复制。
新HIT按实际顺序登记:先运行时击退,随后按转移TYPE顺序附加DoT、眩晕/限制效果;受击回复随后追加。延长已有眩晕不新建顺序项;EXCLUSIVE退休项保留到清理阶段。同一命中不会由后提交的回血分支覆盖先前的控制或DoT。
旧v36及更早快照没有这份三池顺序。只有单个控制池,或没有控制且已有可靠PeriodicOrder时可以从已有信息读取;真正混合却丢失顺序的状态报dynamic_legacy_order_unknown,不按TYPE或池名猜顺序。
统一事务
SimState.AdvanceCombatEffects(delta, activationBlocked)遵循已验证的帧阶段:
- 按共同顺序推进时间、处理眩晕和击退。
- 保留清理前HP效果缓存。
- 在完整列表上末项补位清理,再投影回三个实例池。
- 合并回复/DoT,处理致死与奖励/成长/proc。
- 全部成功后提交,并返回死亡事件和控制位移。
非致死帧沿用工作数组;致死帧复用隔离副本事务,同时提交控制状态和完整顺序。后面的声望接收器失败时,前面准备的控制衰减、DoT、HP、RNG、顺序和成长时钟全部回滚。
旧的分离接口仍可用于其独立场景,但已表示的混合状态不能再单独推进控制,避免同一substep推进两次。periodic_control_order_pending只保留在旧分离周期接口;完整顺序已知的正式统一入口不再因此拒绝。
Godot接线
正式_sim_step现在只调用AdvanceCombatEffects。怪物组件先收集脚本控制/高台动作的阻止激活ID,再消费核心返回的死亡通知和控制状态/位移,不另跑一次控制计时。
现有墙面扫掠及切向移动代码复用。致死单位的控制位移为零;重复死亡通知仍由已有一次性入口保护。技能点变化继续通知技能树UI。
自然回复单位若没有控制,不回传多余控制行;力为零时也不查询不必要的速度倍率。
已验证
1637条核心断言通过,包括:
- 同一真实HIT在已有回复后按击退→DoT→眩晕追加。
- 同一HIT同时产生击退、DoT、眩晕和原版装备的受击回血proc,完整顺序为2→1→2→0。
- 一次命令只推进一次时钟;到期回复把末尾眩晕补到前面,控制池相对顺序随之改变。
- v37状态、HP、力和位移重放一致;重复/丢失引用被拒绝。
- 旧混合顺序未知时整体拒绝;脚本激活门不阻止DoT寿命推进。
- 混合致死的晚失败回滚,以及冠军死亡只结算一次声望/技能点。
shared_dynamic_world探针在实际ECHO PASS主场景安装显式三池夹具,原装备击杀回血proc、死亡通知与共享清理成功,两个0.1秒substep后控制和DoT均为0.2秒。DoT仍是隔离安装夹具,不是正式TYPE52装备自动挂载验收。
control_world探针也改为走正式_sim_step,验证弓、步枪、加农炮的非致死控制运动、正墙阻挡、斜墙滑动及重放。所有此处主场景检查均为headless数值/节点验证,不是像素对拍。
最终330项相关Python回归通过;Godot构建零警告零错误,lint及diff检查通过。五个实际场景探针(共享混合、统一控制运动、普通击杀、原版眩晕转移、沉默/定身)均通过。旧隔离夹具在清空或替换控制数组时同步维护顺序引用,未降低正式恢复校验。
主要结果位于build/shared_dynamic_core.log、shared_dynamic_build.log、shared_dynamic_python.log、shared_dynamic_audit.log,以及shared_dynamic_world、shared_control_world、shared_direct_world、shared_transfer_world、shared_restriction_world各自的run.log。
未完成项
- 正式DoT接收条件、MIMIC/免疫及来源上下文生产者。
- 其他dynamic类型、完整passive来源、owner-skill/modifier、TYPE80及主从更新门。
- UNITTHEME等表现,原版完整死亡分支与角色XP升级。
- 全武器逐定义的剩余处理器和完整场景验收。
审计仍为1419:1053可构造、319处理/上下文阻塞、47基础缺口、0意外构造失败。全武器目标仍在进行。
main原地修改,未提交;默认warp_autosave.json未改,SHA256仍为9840fe858b6e311c73f8c2d4ed49912d59d71365f6278392811730e012d32a7f。