面=iter54-卡1(96123978)删掉 press_* 视图方法口后,注释里仍以现名指称这些方法,读者照名找方法会落到空处。逐件核当前驱动事实改写:armed_timer 头注三缝改登在位的三个公开读口(is_refresh_ready/confirm_visible/refresh_remaining_text)+结算框挂起态 settlement_stop_timer 组合根读写面(ui_click_probe:1336/1341/1358 与 journey_player:410 消费在案);level_map_screen 图上命中段与 ui_click_probe 选路段改指 candidate_rect 取热点真点(fx_shot/layout/shot 三探针 push_click_at(candidate_rect(i)) 在案);ui_input_probe ⑫ 由来句「press_candidate 直调」改「旧视图方法口直调」(保留真机 bug 由来、不冒充现行通道);ui_struct_probe 节点结算层关路径改「真点继续钮」(ProbeUiUtil.push_click(node_overlay._btn) 在案);reward_overlay_test ② 段改「玩家点选同一 _select_card 处理器」(curio_pick_overlay:142 处理器在位)。
件核:全仓 grep press_candidate/press_continue/press_card/press_confirm/press_refresh_for_probe 于 *.gd 零命中(reports/ 历史报告的现象句属当时实况叙述,不改)。
凭据:改动行逐行机器校验=6 个 .gd 非注释行改动 0(零行为变更证明);game/tests/static_scan.sh exit 0(S13/S8/S7/S12 ok+gdstyle 基线外新违规 0);tools/audit_file_headers.py ok(R0/R2/R3 零命中,160 个 .gd);纯注释批免冒烟(先例 9a723946 引 5843270)。
44 lines
1.5 KiB
GDScript
44 lines
1.5 KiB
GDScript
## 武装确认计时器:三处二次确认(AP 条弃图刷新/选路放弃钮/战斗总结结算框)共用的计时+脉冲机制,视觉各自保留。
|
|
## 探针接缝禁动:AP 条 is_refresh_ready()/confirm_visible()/refresh_remaining_text() 三读缝与结算框挂起态 settlement_stop_timer 的组合根读写面。
|
|
## 减动效档判据单点 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()
|