refactor(改名批): 暂停层/暂停角标→状态面板/状态角标——用户令全量改名(文案4处+标识符全套PauseOverlay→StatusPanel/pause_overlay.gd→status_panel.gd/成员方法族+探针快照键+注释与探针消息86处清零;行为契约四件零动——只读R4/模态遮罩P2甲/输入锁R3/零动效P4甲)+render_gate截图键shot_pause→shot_status同步+文档六面(元进度v1.19/07/生涯/06条/architecture json+html;camp零命中;08-Alpha版本标准untracked禁碰留置)——冒烟938/0+run_all24套+probe --click/--full+render_gate全绿;rg 暂停|pause game/归零
This commit is contained in:
1 parent
187632f75d
commit
c5a09fd90c
23 files changed
+212
-211
No files matched your search
@@ -94,19 +94,19 @@ func _ready() -> void:
|
||||
_settle(6)
|
||||
_audit("battle_hud", [main.board_zone, main.info_panel, main.stage])
|
||||
_standeefit_contract(main)
|
||||
# ---- 暂停层(迭代 17 卡③):组合根真实路径开层→结构断言→关闭。附只读性契约
|
||||
# ---- 状态面板(迭代 17 卡③):组合根真实路径开层→结构断言→关闭。附只读性契约
|
||||
#(R4——子树信号连接白名单巡检)与零动效契约(R5/P4 甲——零 AnimationPlayer/零 tween)。
|
||||
# 巡检信号名清单=子树全控件的 get_signal_list() 全集(不放行任何未列名信号——新连接
|
||||
# 一律红,须先入册审查);白名单={视图自身 _emit_closed, 组合根 _on_pause_closed}。
|
||||
main._open_pause_layer()
|
||||
# 一律红,须先入册审查);白名单={视图自身 _emit_closed, 组合根 _on_status_closed}。
|
||||
main._open_status_panel()
|
||||
_settle()
|
||||
await _audit("pause", [main.pause_overlay])
|
||||
_pause_readonly_contract(main)
|
||||
_pause_zero_motion_contract(main)
|
||||
main._on_pause_closed()
|
||||
await _audit("status", [main.status_panel])
|
||||
_status_readonly_contract(main)
|
||||
_status_zero_motion_contract(main)
|
||||
main._on_status_closed()
|
||||
_settle()
|
||||
if main.pause_overlay.visible:
|
||||
problems.append("[pause] 关闭后层未隐藏(模态栈单口失守)")
|
||||
if main.status_panel.visible:
|
||||
problems.append("[status] 关闭后层未隐藏(模态栈单口失守)")
|
||||
|
||||
# ---- 图例层(迭代 19 卡②——两枚从未过结构族的旧模态之一):ap_bar legend_toggled
|
||||
# 信号真路径开(board_zone 信号→组合根 _on_legend_toggled→_open_modal)→结构断言族→
|
||||
@@ -226,7 +226,7 @@ func _pick_battle_node(main: Node) -> int:
|
||||
return -1
|
||||
|
||||
|
||||
# ⑧pause 只读性契约(迭代 17 卡③ R4):暂停层子树全控件 × 游戏语义信号连接巡检——清单外零连接。
|
||||
# ⑧status 只读性契约(迭代 17 卡③ R4):状态面板子树全控件 × 游戏语义信号连接巡检——清单外零连接。
|
||||
# 巡检信号名清单(需求卡片 v1.1「巡检信号名清单落码时列全进探针」)= 玩家交互可携带写意图的通道
|
||||
# 全集(按钮按下/拨杆/文本/滑值/选项/键盘焦点)+ 本层外发信号 closed;引擎内部布局生命线信号
|
||||
# 不计(child_order_changed/item_rect_changed/visibility_changed/size_flags_changed/
|
||||
@@ -240,8 +240,8 @@ const _PAUSE_READONLY_SIGNALS: Array[String] = [
|
||||
]
|
||||
|
||||
|
||||
func _pause_readonly_contract(main: Node) -> void:
|
||||
var overlay: Control = main.pause_overlay
|
||||
func _status_readonly_contract(main: Node) -> void:
|
||||
var overlay: Control = main.status_panel
|
||||
var stack: Array = [overlay]
|
||||
var conn_count := 0
|
||||
while not stack.is_empty():
|
||||
@@ -254,36 +254,36 @@ func _pause_readonly_contract(main: Node) -> void:
|
||||
var m := String(cb.get_method())
|
||||
if host == overlay and m == "_emit_closed":
|
||||
continue
|
||||
if host == main and m == "_on_pause_closed":
|
||||
if host == main and m == "_on_status_closed":
|
||||
continue
|
||||
problems.append("[pause][readonly] 非法信号连接 %s.%s → %s.%s(零写通路巡检——白名单=视图 _emit_closed/组合根 _on_pause_closed)"
|
||||
problems.append("[status][readonly] 非法信号连接 %s.%s → %s.%s(零写通路巡检——白名单=视图 _emit_closed/组合根 _on_status_closed)"
|
||||
% [n.name, sig_name, host, m])
|
||||
for ch in n.get_children():
|
||||
stack.append(ch)
|
||||
if conn_count != 2:
|
||||
problems.append("[pause][readonly] 信号连接数=%d 应=2(关闭钮 pressed+closed 外发——多连接=写通路嫌疑)" % conn_count)
|
||||
problems.append("[status][readonly] 信号连接数=%d 应=2(关闭钮 pressed+closed 外发——多连接=写通路嫌疑)" % conn_count)
|
||||
|
||||
|
||||
# ⑨pause 零动效契约(迭代 17 卡③ R5/P4 甲——零动效直开直关路径存在断言):
|
||||
# ⑨status 零动效契约(迭代 17 卡③ R5/P4 甲——零动效直开直关路径存在断言):
|
||||
# 子树零 AnimationPlayer + 视图源码零 tween/动效包装调用(源码 token 扫描=ui_contrast 静态段同手法)
|
||||
func _pause_zero_motion_contract(main: Node) -> void:
|
||||
var overlay: Control = main.pause_overlay
|
||||
func _status_zero_motion_contract(main: Node) -> void:
|
||||
var overlay: Control = main.status_panel
|
||||
var stack: Array = [overlay]
|
||||
while not stack.is_empty():
|
||||
var n: Node = stack.pop_back()
|
||||
if n is AnimationPlayer:
|
||||
problems.append("[pause][motion] 子树含 AnimationPlayer(R5 零动效破)")
|
||||
problems.append("[status][motion] 子树含 AnimationPlayer(R5 零动效破)")
|
||||
for ch in n.get_children():
|
||||
stack.append(ch)
|
||||
var src := FileAccess.get_file_as_string("res://presentation/views/pause_overlay.gd")
|
||||
var src := FileAccess.get_file_as_string("res://presentation/views/status_panel.gd")
|
||||
for token in ["create_tween", "UiKit.motion"]:
|
||||
if src.contains(token):
|
||||
problems.append("[pause][motion] 视图源码含「%s」(R5 零动效直开直关破——P4 甲)" % token)
|
||||
problems.append("[status][motion] 视图源码含「%s」(R5 零动效直开直关破——P4 甲)" % token)
|
||||
|
||||
|
||||
# ---- 生涯页契约族(迭代 18 卡④——需求卡片契约 3/4+提纲 P3/P4 甲)----
|
||||
|
||||
# ⑩career 只读性契约(契约 3——暂停层 ⑧ 同形制):生涯页子树全控件 × 游戏语义信号连接巡检——
|
||||
# ⑩career 只读性契约(契约 3——状态面板 ⑧ 同形制):生涯页子树全控件 × 游戏语义信号连接巡检——
|
||||
# 清单外零连接。白名单={视图自身 _emit_closed〔返回钮〕, 组合根 _on_career_closed};页内任何
|
||||
# 购买/导航/写入方向的新连接一律红,须先入册审查。
|
||||
func _career_readonly_contract(main: Node) -> void:
|
||||
@@ -310,7 +310,7 @@ func _career_readonly_contract(main: Node) -> void:
|
||||
problems.append("[career][readonly] 信号连接数=%d 应=2(返回钮 pressed+closed 外发——多连接=写通路嫌疑)" % conn_count)
|
||||
|
||||
|
||||
# ⑪career 零动效契约(暂停层 ⑨ 同形制——P4 甲直开直关)
|
||||
# ⑪career 零动效契约(状态面板 ⑨ 同形制——P4 甲直开直关)
|
||||
func _career_zero_motion_contract(main: Node) -> void:
|
||||
var overlay: Control = main.career_overlay
|
||||
var stack: Array = [overlay]
|
||||
@@ -326,21 +326,21 @@ func _career_zero_motion_contract(main: Node) -> void:
|
||||
problems.append("[career][motion] 视图源码含「%s」(零动效直开直关破)" % token)
|
||||
|
||||
|
||||
# ⑫career 登记/树序契约(P3 甲——登记序=营地同档:暂停层之后、确认弹窗之前;树序同步=addChild
|
||||
# ⑫career 登记/树序契约(P3 甲——登记序=营地同档:状态面板之后、确认弹窗之前;树序同步=addChild
|
||||
# 同位。登记序=树序=z 序纪律〔缺陷⑤〕——两序任一失守即红)
|
||||
func _career_registry_contract(main: Node) -> void:
|
||||
var list: Array = main._modals._list
|
||||
var ci: int = list.find(main.career_overlay)
|
||||
var pi: int = list.find(main.pause_overlay)
|
||||
var pi: int = list.find(main.status_panel)
|
||||
var fi: int = list.find(main.confirm_dialog)
|
||||
if ci < 0 or pi < 0 or fi < 0:
|
||||
problems.append("[career][registry] 生涯页未入登记册(或暂停层/确认弹窗缺登记)")
|
||||
problems.append("[career][registry] 生涯页未入登记册(或状态面板/确认弹窗缺登记)")
|
||||
return
|
||||
if ci != pi + 1 or ci > fi:
|
||||
problems.append("[career][registry] 登记序违约(应=暂停层后、确认弹窗前——P3 甲营地同档;pause=%d career=%d confirm=%d)" % [pi, ci, fi])
|
||||
problems.append("[career][registry] 登记序违约(应=状态面板后、确认弹窗前——P3 甲营地同档;status=%d career=%d confirm=%d)" % [pi, ci, fi])
|
||||
var ti: int = main.career_overlay.get_index()
|
||||
if ti <= main.pause_overlay.get_index() or ti > main.confirm_dialog.get_index():
|
||||
problems.append("[career][registry] 树序与登记序不同步(addChild 位应=暂停层后、确认弹窗前;tree_index=%d)" % ti)
|
||||
if ti <= main.status_panel.get_index() or ti > main.confirm_dialog.get_index():
|
||||
problems.append("[career][registry] 树序与登记序不同步(addChild 位应=状态面板后、确认弹窗前;tree_index=%d)" % ti)
|
||||
|
||||
|
||||
# ⑬career 零跳转契约(提纲 P4 甲——页内零「前往他处」入口:除「返回」外任何导航钮=红)
|
||||
|
||||
Reference in new issue
Block a user