## 武装确认计时器:三处二次确认(AP 条弃图刷新/选路放弃钮/战斗总结结算框)共用的计时+脉冲机制,视觉各自保留。 ## 探针接缝禁动:AP 条 press_refresh_for_probe/confirm_visible/press_confirm_for_probe 三缝与结算框挂起态的组合根读写面。 ## 减动效档判据单点 motion_still()——视觉层共用此处取相位/静态化,禁各自内联 motion_scale 判断。 class_name ArmedTimer extends RefCounted signal expired # 窗口到点回落边沿(仅 window_s > 0 时发出;宿主接回落视觉复位) var window_s := 0.0 # 超时窗口秒(<=0 = 无窗口——挂起直到显式回落,结算框语义) var elapsed := 0.0 # 武装起算累计秒(视觉层呼吸相位取数;tick 累计) var _armed := false # 档判据单点(减动效档四能力之一——两处视觉层共用,替代各自内联 UiKit.motion_scale 判断) static func motion_still() -> bool: return UiKit.motion_scale < 1.0 func arm(window_override := -1.0) -> void: if window_override >= 0.0: window_s = window_override _armed = true elapsed = 0.0 func disarm() -> void: _armed = false elapsed = 0.0 func is_armed() -> bool: return _armed # 帧驱动(宿主 _process 委托;unarmed 或无窗口时零开销直返——结算框挂起态无需接 tick) func tick(delta: float) -> void: if not _armed or window_s <= 0.0: return elapsed += delta if elapsed >= window_s: disarm() expired.emit()