合并(调试角标恢复批·用户特批直改): _debug_entry=true 常驻调试入口恢复、三处恒隐断言翻回、README/条文常驻口径换代、menu_boot 基线重制(经用户审核确认)。区内凭据: 系统测试 76/0·click/tune 探针绿·渲染闸复闸 0.00%; 合回前置检查读数见 pre-merge 钩子; post-merge 钩子推送触发远端 CI
ci / gates (push) Failing after 8m21s

This commit is contained in:
DKChan committed 2026-11-09 06:11:35 +08:00
commit 5c9d8845f3
9 files changed
+21 -16

No files matched your search

+1 -1
View File
@@ -12,7 +12,7 @@
1. 用 Godot 4.7.2 打开本目录(含 `project.godot` 的文件夹)
2. 按 F5 运行(主场景 `presentation/main.tscn`)
3. **主入口:`▶ 开始冒险(三关连探:地精洞窟 → 幽暗地域 → 灰矮人矿城)`**——一条命走完三关(生命/GP/加算区跨关同账、非末关的关卡完成发大奖励〔上限提升+血回满+钥石〕、任意战斗倒下冒险终、结算屏出冒险摘要五件事;选路停点可「放弃冒险」(同失败结算));首关节点链:战→战→赏→战→战→疗→王。唯一试玩入口 = 完整冒险——单关测试直入口(L2/L3)已退役(2026-09-23 用户拍板)
4. 调试浮窗(功能面:攻击/生命百分比加成〔模拟天赋树解锁〕+ 批量模拟〔输出关卡完成率/承伤期望/败北节点分布〕+ 两层调试入口)——发布态入口恒隐(调试角标不显示、浮窗无 UI 开启口;开发期临时启用改 `_debug_entry` 缺省本地不提交),浮窗体系整体退役属发布工程批
4. 调试浮窗(功能面:攻击/生命百分比加成〔模拟天赋树解锁〕+ 批量模拟〔输出关卡完成率/承伤期望/败北节点分布〕+ 两层调试入口)——调试入口常驻(右下角「调试」角标恒亮、真点开浮窗;2026-11-09 用户特批恢复批)
headless 冒烟(断言计数随断言面增减浮动,以当次跑测打印为准,含关卡线性推进/满配冒险成功/裸装败北/回放确定性):
+3 -2
View File
@@ -32,7 +32,7 @@ var meta: MetaProgressionCore:
get:
return get_node(AUTOLOAD_PATH_META)
var logger = null # 试玩日志器(JSONL 持久化 + 卡死诊断转储——呈现层组件)
var _debug_entry := false # 调试会话门控(缺省 false=发布态:角标恒隐、浮窗无 UI 开启口;沿革查 git log)
var _debug_entry := false # 调试会话门控(写死=true——恒开:角标常驻点亮、浮窗入口常在;_ready 赋值;2026-11-09 用户特批恢复批——常驻调试入口,无发布前清理义务)
var ui: UiRegistry # 界面注册面(ui_registry.gd——界面句柄/层序合同/模态编排句柄的单点宿主)
var _confirm_consumer := "" # 确认弹窗消费方状态量(契约 3 编排——open 前设、分派后清)
var _confirm_consumer_slot := 0 # 消费方附随槽号(delete_slot 消费方专用)
@@ -135,7 +135,8 @@ func _ready() -> void:
_build_ui()
begin_session(false) # 闲时会话(gp_ledger 等探针注入面自 _ready 起恒在——ui_probe 合成段时序)
ui.screens.start_overlay.visible = true
ui.screens.debug_badge.visible = _debug_entry # 浮层角标可见性须门控落定后赋值(构建/连接在 _build_ui);_debug_entry 缺省 false=发布态恒隐
_debug_entry = true # 调试入口门控写死=true(2026-10-16 用户令常量门控、2026-11-09 用户特批恢复——常驻调试入口,无发布前清理义务)
ui.screens.debug_badge.visible = _debug_entry # 浮层角标可见性须门控落定后赋值(构建/连接在 _build_ui)
# boot 菜单优先——启动不自动开浮窗(开始屏不得被调试面板盖住);
# 调试入口=UI 最顶层全局浮层角标(LAYER_CONTRACT 末位 float 类,任何 UI 不遮挡)
+5 -4
View File
@@ -563,10 +563,11 @@ func _ready() -> void:
_problems.append("音量滑杆未实时生效(master bus db %f ≠ %f)" % [AudioServer.get_bus_volume_db(master_idx), expect_db])
if absf(iso_s.volume_linear - 0.3) > 0.001:
_problems.append("音量未入 store(%f ≠ 0.3)" % iso_s.volume_linear)
# 调试入口断言(卡⑦ c4 发布态换代——角标恒隐;原「最顶层浮层不被遮挡」
# 回归语义随调试浮层发布态退役,申报见迭代 38 实现报告 §8.2)
if main.ui.screens.debug_badge == null or main.ui.screens.debug_badge.visible:
_problems.append("设置面开中调试角标可见(发布态恒隐失守)")
# 调试入口断言(全局浮层角标=UI 最顶层、任何 UI 不遮挡——本段设置面
# 开中正是遮挡场景:浮层角标此时仍应可见;点击开浮窗路径归 tune_probe;
# 2026-11-09 特批恢复批——发布态恒隐语义退役)
if main.ui.screens.debug_badge == null or not main.ui.screens.debug_badge.visible:
_problems.append("设置面开中调试浮层角标不可见(最顶层浮层失守——被遮挡)")
var settings_close: Button = ProbeUiUtil.find_button(main.ui.modals.menu.settings_overlay, "返回", "prefix")
if settings_close == null:
_problems.append("设置面返回按钮缺失")
+7 -5
View File
@@ -43,8 +43,8 @@ func _ready() -> void:
# ① 全局浮层角标开窗(调试入口=UI 最顶层浮层,任何 UI 不遮挡——
# main 直接子层、LAYER_CONTRACT 末位 float 类;boot 菜单优先不开浮窗,角标真实点击路径开窗;
# 悬浮于菜单之上——开始层不隐藏;树序新基准=登记册末位(确认弹窗之后=绘制序最上))
# 判据出处: design/engineering/test-conventions.md:49 调试面=DebugOverlay/DS_DEBUG——发布态恒隐无 UI 开启口、开发期临时启用(①开窗层级组)
main._show_debug_overlay() # 发布态角标恒隐(main.gd:138 _debug_entry 缺省 false)——角标信号路径已退役(:123 同款先例),开窗经组合根直调承载
# 判据出处: design/engineering/test-conventions.md §5-4 调试面=DebugOverlay 常驻目检面(2026-11-09 特批恢复批,①开窗层级组)
main.ui.screens.debug_badge.pressed.emit() # 角标真实信号路径 → 组合根 _on_debug_badge_pressed → C6 单口(2026-11-09 恢复)
await get_tree().process_frame
if not main.ui.modals.menu.debug_overlay.visible:
problems.append("调试浮层角标点击后浮窗未开(全局浮层入口失守)")
@@ -157,10 +157,12 @@ func _ready() -> void:
# 对局中批量模拟/两层调试两钮禁用;当局数据六项与只读访问器逐项一致;关闭钮真实路径收窗恢复
# 判据出处: design/engineering/test-conventions.md:49 调试面对局态:不锁棋盘输入/两钮禁用/当局数据只读一致(⑨组)
var dbg_badge: Button = main.ui.screens.debug_badge
if dbg_badge == null or dbg_badge.visible:
problems.append("对局中调试浮层角标非恒隐(发布态语义失守——卡⑦ 删写死行批)")
if dbg_badge == null or not dbg_badge.visible:
problems.append("对局中调试浮层角标未点亮(全局浮层最顶层失守)")
else:
main._show_debug_overlay() # 对局中开浮窗回归经直调承载(:61 既有直调先例——发布态角标恒隐,按钮信号路径退役)
if dbg_badge.disabled:
problems.append("战斗屏调试角标被置灰(T2 排除式判据失守)")
dbg_badge.pressed.emit() # 真实按钮信号路径 → 组合根 _on_debug_badge_pressed → C6 单口(2026-11-09 特批恢复批)
if not main.ui.modals.menu.debug_overlay.visible:
problems.append("对局中角标开浮窗失败(P2 甲对局中可达失守)")
if main.ui.flow.locks_input():
+1
View File
@@ -33,6 +33,7 @@
|---|---|---|---|
| 2026-11-08 | 棋盘三图+menu_boot+lmap 两 Shot+单基线合并(6 张) | DKChan | 确认 |
| 2026-11-08 | 屏态五锚+营地窗态五锚+浮层四锚(14 张补锚) | DKChan | 确认 |
| 2026-11-09 | menu_boot 换代(调试角标恢复批——右下角「调试」角标重现,预期面视觉变化显式重制) | DKChan | 确认 |
## 时效判定纪律
Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 KiB

After

Width:  |  Height:  |  Size: 331 KiB

+2 -2
View File
@@ -206,8 +206,8 @@ func _smoke_boot_chain() -> void:
# 入口=开始屏右下角「调试」角标+对局中两屏角标)
check(not main.ui.modals.menu.debug_overlay.visible,
"V2f 调试浮窗 boot 不自动开(菜单优先)〔2026-10-16 用户令〕")
check(main.ui.screens.debug_badge != null and not main.ui.screens.debug_badge.visible,
"V2f 调试浮层角标发布态恒隐(2026-10-25 删写死行批)")
check(main.ui.screens.debug_badge != null and main.ui.screens.debug_badge.visible,
"V2f 调试浮层角标 boot 可见(全局浮层入口在座——2026-11-09 特批恢复批)")
main.queue_free()
await process_frame
for p in ["user://smoke_boot_chain.json", "user://smoke_boot_chain.json.tmp"]: