diff --git a/game/smoke/t17_defer_probe.gd b/game/smoke/t17_defer_probe.gd index e08f336a..4590ff73 100644 --- a/game/smoke/t17_defer_probe.gd +++ b/game/smoke/t17_defer_probe.gd @@ -65,6 +65,8 @@ func _ready() -> void: if String(main.settlement.battle_result) != "victory": _fail("战斗未胜利(result='%s')" % str(main.settlement.battle_result)) return + var t_settle := Time.get_ticks_msec() + var _rows_at_victory: int = main._row_pacer.pending_rows().size() # 时间戳①:结算入队完成帧(AP 耗尽/停手→五行段同步跑完→行全在队) # 断言①胜利同帧:终局面未开 + 挂起在案 + 队列非空(判别性——旧行为同帧开窗即红) if main._end_overlay.is_open(): _problems.append("胜利同帧终局面已开(演播后排窗失效——同帧 flush 旧路径回潮)") @@ -72,11 +74,15 @@ func _ready() -> void: _problems.append("胜利同帧挂起态缺失(_deferred_modal == null)") if main._row_pacer.pending_rows().is_empty(): _problems.append("胜利同帧排播队列已空(结算行未走排播链)") + var _played_rows: int = _rows_at_victory # 断言②排播放完:终局面开启(20s 守卫——0.22s×行数 ×10 余量) var waited := 0.0 while not main._end_overlay.is_open() and waited < 20.0: await get_tree().process_frame waited += get_process_delta_time() + var t_popup := Time.get_ticks_msec() # 时间戳②:终局面可见帧 + print("[t17_defer] 时间戳: 结算入队=%d ms · 弹窗可见=%d ms · 相差=%d ms(行数=%d)" % [ + t_settle, t_popup, t_popup - t_settle, main._row_pacer.pending_rows().size() + _played_rows]) if not main._end_overlay.is_open(): _problems.append("排播放完后终局面未开(%.1fs——演播完边沿派发失守)" % waited) if _problems.is_empty():