feat(迭代26 T5b): 诊断转储钮退出玩家画面——入口迁调试浮窗(grilling Q8 裁甲)
- main.gd 卸载点删除(build_diag_button 挂载+连接);build_diag_button 工厂退役(ui_assembler); 连接随迁=debug_overlay.diagnose_requested→_on_diagnose_pressed(dump_diagnosis 卡死取证保留, 删除案否/门控隐藏案否——浮窗本就可全局可开,双轨无意义) - debug_overlay 新增 diagnose_requested 信号+区块⑤转储钮(_emit_diagnose_requested 外发,纯视图边界) - 探针同批入册:ui_tune_probe 只读巡检白名单+_emit_diagnose_requested、连接数 10→11(七钮), confirm_dialog/main 树序注释订正(诊断钮引用清除) - 冒烟新增 _smoke_diag_button_retired() 7 断言(V6:主区零残留+工厂退役+连接随迁+浮窗可达); 冒烟 1048→1055/0;probe --click/--full 全绿残留 0
This commit is contained in:
1 parent
02c87fc281
commit
260c9bbd9e
6 files changed
+48
-24
No files matched your search
@@ -330,19 +330,18 @@ func _build_ui() -> void:
|
||||
_inter_label = inter.label
|
||||
inter.next_btn.pressed.connect(_on_inter_next_pressed)
|
||||
|
||||
var diag_btn := UiAssembler.build_diag_button(self)
|
||||
diag_btn.pressed.connect(_on_diagnose_pressed)
|
||||
|
||||
# 确认弹窗(二轮修改批 A——新冒险互斥确认弹窗化):树序落在开始层/过场层/诊断钮之后 = 子级最末
|
||||
# 确认弹窗(二轮修改批 A——新冒险互斥确认弹窗化):树序落在开始层/过场层之后 = 子级最末
|
||||
#(T3 收口批——「登记序 = 树序 = z 序」纪律复位,confirm_dialog.open 的 move_child 运行时自提
|
||||
# 创可贴随之删除;弹窗只在开始菜单域弹出,绘制序恒最上)
|
||||
# 创可贴随之删除;弹窗只在开始菜单域弹出,绘制序恒最上。原诊断转储角落钮随迭代 26 T5b 退役,
|
||||
# 转储入口迁调试浮窗——grilling Q8 裁甲)
|
||||
confirm_dialog = ConfirmDialog.new()
|
||||
add_child(confirm_dialog)
|
||||
confirm_dialog.confirmed.connect(_on_confirm_new_adventure)
|
||||
confirm_dialog.cancelled.connect(_on_confirm_cancelled)
|
||||
|
||||
# 调试浮窗(迭代 14.5 调试整合批——主菜单三散件收一:随机种子/数值调整/批量模拟/两层调试入口;
|
||||
# 迭代 18 卡⑦——升级为全局可开浮窗:DS_DEBUG=1 启动即开〔_ready〕+两屏角标再开〔P2 甲〕+当局数据只读区块〔T3〕)。
|
||||
# 迭代 18 卡⑦——升级为全局可开浮窗:DS_DEBUG=1 启动即开〔_ready〕+两屏角标再开〔P2 甲〕+当局数据只读区块〔T3〕;
|
||||
# 迭代 26 T5b——诊断转储入口并入(原主画面左下角常驻钮退役,玩家画面清零))。
|
||||
# 树序在开始层与确认弹窗之后 = 浮于菜单之上的 Dialog(不隐藏开始层——与确认弹窗同款形态);
|
||||
# 开窗唯一入口 = _show_debug_overlay(C6 单口——角标/探针/启动路径全收口)
|
||||
debug_overlay = DebugOverlay.new(db, int(db.hero.atk), int(db.hero.max_hp))
|
||||
@@ -352,6 +351,7 @@ func _build_ui() -> void:
|
||||
debug_overlay.apply_requested.connect(_on_tune_apply)
|
||||
debug_overlay.simulate_requested.connect(_on_tune_simulate)
|
||||
debug_overlay.debug_levels_requested.connect(_start_debug_levels)
|
||||
debug_overlay.diagnose_requested.connect(_on_diagnose_pressed) # 迭代 26 T5b——诊断转储入口随迁(原角落钮连接)
|
||||
|
||||
# 模态登记(缺陷⑤纪律——登记序 = 树序:含 move_child 调位后的关卡画面/三选一终位;
|
||||
# 状态面板设置层同档、确认弹窗之前——P2 甲;生涯页同档随状态面板之后(迭代 18 卡④ P3 甲))
|
||||
|
||||
@@ -216,18 +216,6 @@ static func build_inter_overlay(host: Control) -> Dictionary:
|
||||
return {"overlay": overlay, "label": label, "next_btn": next_btn}
|
||||
|
||||
|
||||
# Playtest 诊断按钮(调试变体——battle.md §States 允许;卡死转储)
|
||||
static func build_diag_button(host: Control) -> Button:
|
||||
var diag_btn := UiKit.button("诊断转储", 0.0) # 角落小件豁免宽度基准(固定 offsets 112px 宽)
|
||||
diag_btn.set_anchors_preset(Control.PRESET_BOTTOM_LEFT)
|
||||
diag_btn.offset_left = 6.0
|
||||
diag_btn.offset_top = -30.0
|
||||
diag_btn.offset_right = 118.0
|
||||
diag_btn.offset_bottom = -6.0
|
||||
host.add_child(diag_btn)
|
||||
return diag_btn
|
||||
|
||||
|
||||
static func overlay_bg(host: Control, color: Color) -> ColorRect:
|
||||
var dim := ColorRect.new()
|
||||
dim.color = color
|
||||
|
||||
@@ -40,7 +40,8 @@ func open(text: String, confirm_label: String, cancel_label: String = "取消")
|
||||
_confirm_btn.text = confirm_label
|
||||
_cancel_btn.text = cancel_label
|
||||
# z 序纪律(T3 收口批 2026-10-02):树序由组合根构建序保证——本弹窗在 main._build_ui 尾部
|
||||
# add_child(开始层/过场层/诊断钮之后 = 子级最末,登记序 = 树序 = 绘制序恒最上),
|
||||
# add_child(开始层/过场层之后 = 子级最末,登记序 = 树序 = 绘制序恒最上;原诊断转储角落钮随
|
||||
# 迭代 26 T5b 退役迁调试浮窗,此处不再经其之后),
|
||||
# 「每次打开 move_child 运行时自提」创可贴随之删除。
|
||||
visible = true
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ extends Control
|
||||
signal apply_requested(atk_pct: int, hp_pct: int) # 应用并关闭——加成落表归组合根单一应用路径
|
||||
signal simulate_requested(count: int) # 批量模拟编排归组合根(表基线复位 + 单路径施加)
|
||||
signal debug_levels_requested # 两层调试对局入口(编排归 debug_session.gd)
|
||||
signal diagnose_requested # 诊断转储入口(迭代 26 T5b——原主画面角落钮迁入;卡死取证编排归组合根)
|
||||
signal closed
|
||||
|
||||
var seed_edit: LineEdit # 组合根 _seed_value 唯一读取面(原开始覆盖层种子行迁入)
|
||||
@@ -265,6 +266,18 @@ func _build() -> void:
|
||||
_dbg_btn.pressed.connect(_emit_debug_levels)
|
||||
list.add_child(_dbg_btn)
|
||||
|
||||
# 区块⑤诊断转储(迭代 26 T5b——原主画面左下角「诊断转储」常驻钮退役迁入:grilling Q8 裁甲,
|
||||
# 承迭代 18 卡⑦「主菜单三散件收一」纪律;dump_diagnosis 卡死取证功能保留〔删除案否〕,
|
||||
# 门控隐藏案否——本浮窗本就可全局可开,双轨无意义。纯视图边界:转储编排经信号外发归组合根)
|
||||
var diag_row := HBoxContainer.new()
|
||||
diag_row.add_theme_constant_override("separation", 10)
|
||||
list.add_child(diag_row)
|
||||
diag_row.add_child(UiKit.label("诊断转储",UiKit.FS_BODY, false))
|
||||
var diag_btn := UiKit.button("转储")
|
||||
diag_btn.tooltip_text = "卡死取证:全量核心状态+环形缓冲 → user://logs/diag_*.json"
|
||||
diag_btn.pressed.connect(_emit_diagnose_requested)
|
||||
diag_row.add_child(diag_btn)
|
||||
|
||||
var close_btn := UiKit.button("关闭")
|
||||
close_btn.pressed.connect(_emit_closed)
|
||||
box.add_child(close_btn)
|
||||
@@ -298,6 +311,10 @@ func _emit_simulate_requested() -> void:
|
||||
simulate_requested.emit(int(_sim_count.value))
|
||||
|
||||
|
||||
func _emit_diagnose_requested() -> void:
|
||||
diagnose_requested.emit()
|
||||
|
||||
|
||||
func _emit_debug_levels() -> void:
|
||||
debug_levels_requested.emit()
|
||||
|
||||
|
||||
@@ -111,6 +111,7 @@ func _run_core_smoke(db, rng) -> void:
|
||||
_smoke_texture_filter()
|
||||
_smoke_contrast_inks()
|
||||
_smoke_element_details()
|
||||
_smoke_diag_button_retired()
|
||||
_smoke_encounter_roll()
|
||||
_smoke_attack_chain_fresh_pool()
|
||||
_smoke_clear_reward_chain()
|
||||
@@ -5630,6 +5631,22 @@ func _smoke_element_details() -> void:
|
||||
check(camp_src.count("SIZE_SHRINK_CENTER") >= 3, "T5③ 三处锁文垂直居中在位")
|
||||
|
||||
|
||||
# ---- 诊断转储钮退役冒烟(迭代 26 T5b——角落钮退出玩家画面+转储入口迁调试浮窗;V6)----
|
||||
func _smoke_diag_button_retired() -> void:
|
||||
print("--- UI 诊断转储钮退役(V6:玩家画面清零+浮窗可达)---")
|
||||
var main_src: String = FileAccess.get_file_as_string("res://presentation/main.gd")
|
||||
check(not main_src.contains("build_diag_button"), "V6 主区无 build_diag_button 调用残留(旧实现同批清理)")
|
||||
check(main_src.contains("debug_overlay.diagnose_requested.connect(_on_diagnose_pressed)"),
|
||||
"V6 转储入口连接随迁(组合根接浮窗 diagnose_requested 信号)")
|
||||
check(main_src.contains("func _on_diagnose_pressed()"), "V6 转储编排承接函数在位(dump_diagnosis 卡死取证保留)")
|
||||
var asm_src: String = FileAccess.get_file_as_string("res://presentation/ui_assembler.gd")
|
||||
check(not asm_src.contains("build_diag_button"), "V6 build_diag_button 工厂已退役(ui_assembler 零残留)")
|
||||
var dbg_src: String = FileAccess.get_file_as_string("res://presentation/views/debug_overlay.gd")
|
||||
check(dbg_src.contains("signal diagnose_requested"), "V6 调试浮窗 diagnose_requested 信号在位")
|
||||
check(dbg_src.contains("_emit_diagnose_requested"), "V6 浮窗转储钮外发方法在位(纯视图边界)")
|
||||
check(dbg_src.contains('UiKit.button("转储")'), "V6 浮窗诊断转储钮在位(玩家画面角落钮清零后唯一入口)")
|
||||
|
||||
|
||||
# ---- 存档序列化冒烟(SaveManager——读写往返/新档合法/余额拒花/锻造出域拒/高版本拒读禁写/
|
||||
# 损坏兜底/迁移链/域界干净/摘要 cap/摘要集成/生涯终身计数域 v6)。测试文件统一 user://smoke_save_*.json 隔离,
|
||||
# 段首清场+段尾清理——绝不碰 user://save.json(红线)。
|
||||
|
||||
@@ -23,10 +23,11 @@ const _OVERLAY_READONLY_SIGNALS: Array[String] = [
|
||||
"text_changed", "text_submitted", "value_changed", "item_selected",
|
||||
"gui_input", "focus_entered", "focus_exited", "closed",
|
||||
]
|
||||
# 视图内白名单方法(fx 切换/应用/重置/模拟/两层调试/关闭/滑条联动——全部视图自身信号外发前置,
|
||||
# 视图内白名单方法(fx 切换/应用/重置/模拟/两层调试/诊断转储/关闭/滑条联动——全部视图自身信号外发前置,
|
||||
# 零跨对象写;清单外任何新连接一律红须入册)
|
||||
const _OVERLAY_VIEW_METHODS: Array[String] = ["_on_fx_toggle", "_apply_btn_pressed", "_reset_btn_pressed",
|
||||
"_emit_simulate_requested", "_emit_debug_levels", "_emit_closed", "_on_slider_value_changed"]
|
||||
"_emit_simulate_requested", "_emit_debug_levels", "_emit_diagnose_requested", "_emit_closed",
|
||||
"_on_slider_value_changed"]
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -194,7 +195,7 @@ func _ready() -> void:
|
||||
|
||||
|
||||
# 只读巡检(18卡⑦ T3——17卡③「白名单外零连接」形制沿用):浮窗子树全控件 × 游戏语义信号名清单
|
||||
# 全连接巡检——白名单={视图自身七方法 + 组合根 _on_modal_closed(closed 外发消费)};
|
||||
# 全连接巡检——白名单={视图自身八方法 + 组合根 _on_modal_closed(closed 外发消费)};
|
||||
# 当局数据区块=纯标签零连接在此被一并约束(新增任何连接=红须入册审查)。
|
||||
func _overlay_readonly_contract(main: Node, problems: Array) -> void:
|
||||
var overlay: Control = main.debug_overlay
|
||||
@@ -216,8 +217,8 @@ func _overlay_readonly_contract(main: Node, problems: Array) -> void:
|
||||
% [n.name, sig_name, host, m])
|
||||
for ch in n.get_children():
|
||||
stack.append(ch)
|
||||
if conn_count != 10:
|
||||
problems.append("[readonly] 信号连接数=%d 应=10(fx切换/应用/重置/模拟/两层调试/关闭六钮+滑条2+closed 外发+引擎滚动条 drag 1——多连接=写通路嫌疑)" % conn_count)
|
||||
if conn_count != 11:
|
||||
problems.append("[readonly] 信号连接数=%d 应=11(fx切换/应用/重置/模拟/两层调试/诊断转储/关闭七钮+滑条2+closed 外发+引擎滚动条 drag 1——多连接=写通路嫌疑)" % conn_count)
|
||||
|
||||
|
||||
# 零动效契约(17卡③ R5 形制——子树零 AnimationPlayer + 视图源码零 tween/动效包装调用)
|
||||
|
||||
Reference in new issue
Block a user