From d1b2e519ceb00904f81a739ae524bb1e83516936 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Fri, 16 Oct 2026 03:07:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=B0=83=E8=AF=95):=20DS=5FDEBUG=20?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=E9=97=A8=E6=8E=A7=E5=86=99?= =?UTF-8?q?=E6=AD=BB=3Dtrue=E2=80=94=E2=80=94=E7=94=A8=E6=88=B7=E4=BB=A4?= =?UTF-8?q?=E3=80=8C=E7=9B=B4=E6=8E=A5=E5=86=99=E6=AD=BB=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=AF=BB=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=E3=80=8D=EF=BC=88?= =?UTF-8?q?2026-10-16=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - main.gd:219 原 OS.get_environment("DS_DEBUG")=="1" 读取退役,_debug_entry 恒 true (启动即开浮窗+两屏角标;var 注释与 6 处会话门控注释同步换代) - 闸断言换代:smoke V2f 由「态==环境变量」改「恒开」断言;ui_click_probe 原 「未设时浮窗不得默认开」反转为「未恒开即失守」;ui_tune_probe 删自设环境变量 死代码(OS.set_environment 行)+三处消息/注释换代 - 其余 6 文件 10 处注释/文案清扫(ui_assembler/debug_overlay 含浮窗内用户可见 工具提示/modal_stack/board_zone_view/level_map_screen/README)——全库 DS_DEBUG 引用清零,无新旧并存 - 发布前删除事项:main.gd:219 一行(用户知悉;无 CI,两道恒开断言会红兜底) --- game/README.md | 2 +- game/presentation/main.gd | 14 +++++++------- game/presentation/modal_stack.gd | 2 +- game/presentation/ui_assembler.gd | 6 +++--- game/presentation/views/board_zone_view.gd | 4 ++-- game/presentation/views/debug_overlay.gd | 4 ++-- game/presentation/views/level_map_screen.gd | 4 ++-- game/smoke/smoke_all.gd | 8 +++----- game/smoke/ui_click_probe.gd | 8 ++++---- game/smoke/ui_tune_probe.gd | 11 +++++------ 10 files changed, 30 insertions(+), 33 deletions(-) diff --git a/game/README.md b/game/README.md index 2c00c031..7c1bda05 100644 --- a/game/README.md +++ b/game/README.md @@ -13,7 +13,7 @@ 1. 用 Godot 4.7.2 打开本目录(含 `project.godot` 的文件夹) 2. 按 F5 运行(主场景 `presentation/main.tscn`) 3. **主入口:`▶ 开始冒险(三关连探:地精洞窟 → 幽暗地域 → 灰矮人矿城)`**——一条命走完三关(冒险结构实现批 2026-09-21:生命/GP/加算区跨关同账、非末关通关发大奖励〔上限提升+血回满+钥石〕、任意战斗倒下冒险终、结算屏出冒险摘要五件事;选路停点可「放弃冒险」(同失败结算,2026-09-21 用户拍板补入口));首关节点链:战→战→赏→战→战→疗→王。唯一试玩入口 = 完整冒险——单关测试直入口(L2/L3)已退役(2026-09-23 用户拍板) -4. `调试` 角标浮窗(开始界面右下角,`DS_DEBUG=1` 门控——2026-10-04 迭代 14.5 调试整合批:原数值调整板/随机种子框/两层调试三散件收一):攻击/生命百分比加成(模拟天赋树解锁)+ 批量模拟(输出通关率/承伤期望/败北节点分布)+ 两层调试入口 +4. `调试` 角标浮窗(恒开——2026-10-16 用户令 DS_DEBUG 写死,原环境变量门控退役;2026-10-04 迭代 14.5 调试整合批:原数值调整板/随机种子框/两层调试三散件收一):攻击/生命百分比加成(模拟天赋树解锁)+ 批量模拟(输出通关率/承伤期望/败北节点分布)+ 两层调试入口 headless 冒烟(752 项断言〔计数随批增长,现值以最新批末闸读数为准〕,含关卡线性推进/满配通关/裸装败北/回放确定性;2026-10-02 性能报告实测 60.55 秒,报告在 `性能实测报告(已退役,git 历史可查)`): diff --git a/game/presentation/main.gd b/game/presentation/main.gd index 87d11c64..7b5fdda2 100644 --- a/game/presentation/main.gd +++ b/game/presentation/main.gd @@ -88,7 +88,7 @@ var meta: MetaProgressionCore: get: return get_node(AUTOLOAD_PATH_META) var logger = null # 试玩日志器(JSONL 持久化 + 卡死诊断转储——呈现层组件) -var _debug_entry := false # 调试会话门控(迭代 18 卡⑦——DS_DEBUG=1:启动即开浮窗+两屏角标点亮;_ready 赋值) +var _debug_entry := false # 调试会话门控(2026-10-16 用户令写死=true——恒开:启动即开浮窗+两屏角标点亮;_ready 赋值) var _seed_edit: LineEdit var _resume_btn: Button # 继续上局按钮句柄(迭代 8 卡②——有断点才亮) var confirm_dialog: ConfirmDialog # 通用确认弹窗(二轮修改批 A——新冒险互斥确认弹窗化) @@ -216,7 +216,7 @@ func _ready() -> void: _begin_session(false) # 闲时会话(gp_ledger 等探针注入面自 _ready 起恒在——ui_probe 合成段时序) _refresh_resume_button() # 迭代 8 卡②——启动读盘后按断点在档态点亮「继续上局」 _start_overlay.visible = true - _debug_entry = OS.get_environment("DS_DEBUG") == "1" # 迭代 18 卡⑦ P3 甲——DS_DEBUG=1 调试会话门控 + _debug_entry = true # 2026-10-16 用户令:DS_DEBUG 环境变量门控写死(原 OS.get_environment 读取已退役;发布前清) if _debug_entry: _show_debug_overlay() # 启动即开(手动可关、两屏角标可再开——P3 甲) @@ -332,7 +332,7 @@ func _build_ui() -> void: _menu_screen.resumebtn.pressed.connect(_resume_from_menu) # 迭代 8 卡②——续玩入口 _resume_btn = _menu_screen.resumebtn # 调试角标入口退役(迭代 18 卡⑦ P2 甲——迁宿主:战斗屏 HUD+关卡地图屏各一枚, - # 接线见两屏装配段;开始层不再有调试入口,DS_DEBUG=1 会话=启动即开浮窗) + # 接线见两屏装配段;开始层不再有调试入口,调试会话恒开=启动即开浮窗) # 营地/商店投影(T4/D4 拆件批——迁 camp_shop_presenter.gd;本类只接线、探针缝保缝转发; # 购买写调用唯一经 MetaProgression/LevelRunner core 单口——组合根 lambda 现值注入) _camp_pres = CampShopPresenter.new(CampFlowContext.new(db, func() -> Variant: return meta, func() -> Variant: return save_manager, camp_overlay, shop_overlay, @@ -369,7 +369,7 @@ func _build_ui() -> void: confirm_dialog.cancelled.connect(_on_confirm_cancelled) # 调试浮窗(迭代 14.5 调试整合批——主菜单三散件收一:随机种子/数值调整/批量模拟/两层调试入口; - # 迭代 18 卡⑦——升级为全局可开浮窗:DS_DEBUG=1 启动即开〔_ready〕+两屏角标再开〔P2 甲〕+当局数据只读区块〔T3〕; + # 迭代 18 卡⑦——升级为全局可开浮窗:调试会话恒开=启动即开〔_ready〕+两屏角标再开〔P2 甲〕+当局数据只读区块〔T3〕; # 迭代 26 T5b——诊断转储入口并入(原主画面左下角常驻钮退役,玩家画面清零))。 # 树序在开始层与确认弹窗之后 = 浮于菜单之上的 Dialog(不隐藏开始层——与确认弹窗同款形态); # 开窗唯一入口 = _show_debug_overlay(C6 单口——角标/探针/启动路径全收口) @@ -597,7 +597,7 @@ static func build_adventure_params(save_manager_ref, meta_ref, extra: Dictionary # 冒险模式(三关连探——AdventureRunner 编排;转发信号签名与 runner 一致,接线照原样对接; # 信号连接只在组合根) func _start_adventure() -> void: - _close_modal(debug_overlay) # 开冒险路径显式关浮窗(迭代 18 卡⑦ T2 防护——DS_DEBUG 默认开态下开局不带窗;对局中经角标再开) + _close_modal(debug_overlay) # 开冒险路径显式关浮窗(迭代 18 卡⑦ T2 防护——调试浮窗默认开态下开局不带窗;对局中经角标再开) _begin_session(true) _wire_adventure() run_scope.level_active = true @@ -1169,8 +1169,8 @@ func _sync_status_entry() -> void: # 置灰判据改排除式(迭代 18 卡⑦ T2——调试浮窗开态不计入:对局中浮窗开着时角标仍可点) board_zone.status_badge.disabled = _modal_flow.badge_greyed_battle() # 迭代 27 T4——互斥域谓词 level_screen.status_badge.disabled = _modal_flow.badge_greyed_map() - # 调试浮窗角标(迭代 18 卡⑦ P2 甲——迁宿主两屏,DS_DEBUG 门控;17卡③状态角标同形制同守卫): - # 战斗屏=对局内(冒险或调试两层)且地图屏未激活;地图屏=随屏;开始菜单零角标(DS_DEBUG=1 启动即开) + # 调试浮窗角标(迭代 18 卡⑦ P2 甲——迁宿主两屏,调试会话门控恒开;17卡③状态角标同形制同守卫): + # 战斗屏=对局内(冒险或调试两层)且地图屏未激活;地图屏=随屏;开始菜单零角标(恒开=启动即开) board_zone.debug_badge.visible = _debug_entry and not map_on and battle_live level_screen.debug_badge.visible = _debug_entry and map_on board_zone.debug_badge.disabled = board_zone.status_badge.disabled diff --git a/game/presentation/modal_stack.gd b/game/presentation/modal_stack.gd index 3b51f27e..12f2225c 100644 --- a/game/presentation/modal_stack.gd +++ b/game/presentation/modal_stack.gd @@ -11,7 +11,7 @@ var _occluded := {} # modal → 被其隐藏的上方层(关闭恢复) var _tags := {} # modal → 排除组标签集(迭代 27 T4——互斥域随层登记;P2-7 开态谓词收口) # 排除组封闭词表(组合根登记用——新标签=改此处+评审,防调用点拼装回潮) -const TAG_NON_LOCKING := "non_locking" # 开态不计入棋盘输入锁与角标置灰(调试浮窗——迭代 18 卡⑦ T2 防线:DS_DEBUG 默认开×遮挡复活×has_open 组合=棋盘永久锁死) +const TAG_NON_LOCKING := "non_locking" # 开态不计入棋盘输入锁与角标置灰(调试浮窗——迭代 18 卡⑦ T2 防线:调试浮窗默认开×遮挡复活×has_open 组合=棋盘永久锁死) const TAG_SCREEN_STATE := "screen_state" # 常驻屏态(关卡地图屏——自身开态不计入本屏角标判据) diff --git a/game/presentation/ui_assembler.gd b/game/presentation/ui_assembler.gd index 1e1b7310..eabeae87 100644 --- a/game/presentation/ui_assembler.gd +++ b/game/presentation/ui_assembler.gd @@ -91,7 +91,7 @@ static func build_overlays(host: Control, db) -> Dictionary: # 开始覆盖层(返回 {overlay, box, lvbtn, resumebtn, campbtn, careerbtn, settingsbtn, quitbtn}——按钮接线归组合根; # 迭代 14.5 调试整合批:随机种子/数值调整板/两层调试三散件撤出主按钮组,收进调试浮窗—— # 迭代 18 卡⑦ P2 甲:右下角「调试」角标亦退役(入口迁宿主=战斗屏 HUD+关卡地图屏两枚角标, -# DS_DEBUG=1 会话浮窗启动即开——本层零调试入口) +# 调试会话恒开,浮窗启动即开——本层零调试入口) # UI 落码批 M2(2026-10-04):单列 VBox→双列(左操作 56% + 右舞台);按钮动词化+悬停解释 #(解释全迁 tooltip,G5);lvbtn 升主操作钮(烛光黄 CANDLE);右列=立绘看台。**玩法速览牌已退役 #(2026-10-06 用户令:界面禁玩法文字墙——教学内容归 Beta 帮助手册〔教学引导定稿批 P4 丙〕,历史文案在 git)**; @@ -158,8 +158,8 @@ static func build_start_overlay(host: Control, db = null) -> Dictionary: box.add_child(quitbtn) # 迭代 18 卡⑦ P2 甲——旧右下角调试角标退役(原迭代 14.5 装配段删除):入口迁宿主两屏 - #(board_zone_view.debug_badge / level_map_screen.debug_badge),DS_DEBUG 门控与可见性 - # 同步归组合根 _sync_status_entry;开始层零调试入口(DS_DEBUG=1 会话=浮窗启动即开) + #(board_zone_view.debug_badge / level_map_screen.debug_badge),调试门控与可见性 + # 同步归组合根 _sync_status_entry;开始层零调试入口(调试会话恒开=浮窗启动即开) # 右列:立绘看台 + 玩法速览牌(M2——帮助全文保留表值驱动,仅容器化;内容含地形变异段不删) var right := VBoxContainer.new() diff --git a/game/presentation/views/board_zone_view.gd b/game/presentation/views/board_zone_view.gd index 7dfd627d..01385140 100644 --- a/game/presentation/views/board_zone_view.gd +++ b/game/presentation/views/board_zone_view.gd @@ -11,7 +11,7 @@ var board_view: BoardView var toast: ToastStack var fx: BoardFxView var status_badge: Button # 状态面板入口角标(迭代 17 卡③ P1 丁——debug 角标同形制;连接归组合根) -var debug_badge: Button # 调试浮窗入口角标(迭代 18 卡⑦ P2 甲——DS_DEBUG 门控归组合根;状态角标同形制) +var debug_badge: Button # 调试浮窗入口角标(迭代 18 卡⑦ P2 甲——调试门控归组合根;状态角标同形制) var _board_area: Control # resized 命名转发用(原 lambda 局部捕获——P1-3 转命名 2026-09-29) signal action_requested(cell: Vector2i, kind: String) @@ -44,7 +44,7 @@ func _init() -> void: board_area.add_child(toast) # 角标对(迭代 18 卡⑦ P2 甲——调试+状态两枚右下角常驻,HBox 并排锚角距 16px): # 17卡③状态角标同形制:紧凑钮豁免宽度基准+字号降档。可见性/置灰归组合根 _sync_status_entry - #(DS_DEBUG 门控/其他模态开着=置灰不可点——排除式开态查询);信号连接归组合根。 + #(调试门控/其他模态开着=置灰不可点——排除式开态查询);信号连接归组合根。 # preset 在子件全部入列后调用——MINSIZE 锚按当时最小尺寸计偏移(空容器调用=零尺寸锚外溢屏边) var corner := HBoxContainer.new() corner.add_theme_constant_override("separation", 8) diff --git a/game/presentation/views/debug_overlay.gd b/game/presentation/views/debug_overlay.gd index f1852d94..014d1433 100644 --- a/game/presentation/views/debug_overlay.gd +++ b/game/presentation/views/debug_overlay.gd @@ -1,6 +1,6 @@ # VERTICAL SLICE - NOT FOR PRODUCTION # Date: 2026-10-04(主菜单调试三散件(随机种子/角色数值调整板/两层调试入口)收一张调试浮窗) -# 开发调试浮窗:全局可开(DS_DEBUG=1 会话启动即开〔组合根 _ready〕+战斗屏 HUD/关卡地图屏 +# 开发调试浮窗:全局可开(调试会话恒开,启动即开〔组合根 _ready〕+战斗屏 HUD/关卡地图屏 # 两枚角标再开;遮挡语义=ModalStack 登记制:他模态开时暂隐、关后自动恢复)。 # 当局数据只读区块=本局种子唯一查看位(六项)。 # 列表页形态可扩展:后续调试项按区块往下追加,超高滚动。 @@ -163,7 +163,7 @@ func _build() -> void: var title := UiKit.label("调试",UiKit.FS_TITLE, true, UiKit.WARM) box.add_child(title) var desc := UiKit.label( - "开发调试专用(DS_DEBUG=1 会话:启动即开;战斗屏/地图屏「调试」角标可再开)。当局数据=本局只读投影,种子即本局种子唯一查看位。\n百分比叠加基础值:攻击 %d / 生命 %d。影响所有模式(手动与模拟),不落盘。" % [_base_atk, _base_hp], + "开发调试专用(恒开:启动即开;战斗屏/地图屏「调试」角标可再开)。当局数据=本局只读投影,种子即本局种子唯一查看位。\n百分比叠加基础值:攻击 %d / 生命 %d。影响所有模式(手动与模拟),不落盘。" % [_base_atk, _base_hp], 13, false, UiKit.WARM_SOFT) box.add_child(desc) box.add_child(HSeparator.new()) diff --git a/game/presentation/views/level_map_screen.gd b/game/presentation/views/level_map_screen.gd index 38f29eb6..900dcf9f 100644 --- a/game/presentation/views/level_map_screen.gd +++ b/game/presentation/views/level_map_screen.gd @@ -58,7 +58,7 @@ var _content_size := Vector2(620, 240) # 图内容包络(open_choices 按图 var _hover_id := -1 # 悬停预承诺候选(-1 = 无) var abandon_btn: Button # 放弃入口(可见性归组合根 set_abandon_available——只在冒险模式开) var status_badge: Button # 状态面板入口角标(迭代 17 卡③ P1 丁——顶栏 GP 徽右侧;连接归组合根) -var debug_badge: Button # 调试浮窗入口角标(迭代 18 卡⑦ P2 甲——DS_DEBUG 门控;状态角标同形制) +var debug_badge: Button # 调试浮窗入口角标(迭代 18 卡⑦ P2 甲——调试门控;状态角标同形制) var _abandon_timer := ArmedTimer.new() # 放弃确认窗(T3/D3 P4 乙——_process 帧驱动倒计时机制收口;窗口=CONFIRM_WINDOW_S) var _node_icons := {} # 节点图标贴图(load_tex 守卫——缺位 null → 字形回退,冒烟/无素材检出安全) var _noise_rect: TextureRect # 屏底石纹(换层色板渐变承载面——null = 纯色回退无挂点) @@ -119,7 +119,7 @@ func _init() -> void: status_badge.size_flags_vertical = Control.SIZE_SHRINK_CENTER top.add_child(status_badge) # 调试浮窗入口角标(迭代 18 卡⑦ P2 甲——顶栏状态角标右侧;17卡③同形制:紧凑钮豁免宽度基准+ - # 字号降档。可见性/置灰归组合根 _sync_status_entry(DS_DEBUG 门控/其他模态开着=置灰——排除式 + # 字号降档。可见性/置灰归组合根 _sync_status_entry(调试门控/其他模态开着=置灰——排除式 # 开态查询,本屏自身开态不计);信号连接归组合根(视图零连接)) debug_badge = UiKit.button("调试", 0.0) debug_badge.add_theme_font_size_override("font_size", UiKit.FS_HINT) diff --git a/game/smoke/smoke_all.gd b/game/smoke/smoke_all.gd index 2bb72023..dba54e7f 100644 --- a/game/smoke/smoke_all.gd +++ b/game/smoke/smoke_all.gd @@ -291,11 +291,9 @@ func _smoke_boot_chain() -> void: # ⑤ 闲时会话(_ready 即建、永非 null、在树) check(main.run_scope != null and not main.run_scope.is_adventure and main.run_scope.is_inside_tree(), "V2e run_scope 非空且为闲时会话(is_adventure=false+is_inside_tree)〔装配生命批 V2〕") - # ⑥ DS_DEBUG 门控一致性(未设=浮窗隐藏;设了=启动即开——两侧同一判据) - var debug_on: bool = OS.get_environment("DS_DEBUG") == "1" - check(main.debug_overlay.visible == debug_on, - "V2f 调试浮窗态==DS_DEBUG 门控(visible=%s DS_DEBUG=%s)〔装配生命批 V2〕" % [ - str(main.debug_overlay.visible), str(debug_on)]) + # ⑥ 调试浮窗恒开(2026-10-16 用户令 DS_DEBUG 写死=true——原环境变量门控退役,启动即开为常态) + check(main.debug_overlay.visible, + "V2f 调试浮窗恒开(visible=%s)〔2026-10-16 写死令〕" % str(main.debug_overlay.visible)) main.queue_free() await process_frame for p in ["user://smoke_boot_chain.json", "user://smoke_boot_chain.json.tmp"]: diff --git a/game/smoke/ui_click_probe.gd b/game/smoke/ui_click_probe.gd index a3adb10d..96870226 100644 --- a/game/smoke/ui_click_probe.gd +++ b/game/smoke/ui_click_probe.gd @@ -167,12 +167,12 @@ 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) - # 调试入口断言改向(迭代 18 卡⑦ P2 甲——开始层角标退役迁宿主两屏;探针环境 DS_DEBUG 未设 - # =浮窗不默认开〔P3 门控〕、DS_DEBUG 门控由开始层角标移两屏角标) + # 调试入口断言改向(迭代 18 卡⑦ P2 甲——开始层角标退役迁宿主两屏;2026-10-16 用户令 + # DS_DEBUG 写死=true=浮窗恒开〔原环境变量门控退役〕、角标门控由开始层移两屏) if ProbeUiUtil.find_button(main._start_overlay, "调试", "prefix") != null: _problems.append("开始层调试角标未退役(迭代 18 卡⑦ P2 甲迁宿主失守)") - if main.debug_overlay.visible: - _problems.append("DS_DEBUG 未设时浮窗默认开(P3 启动门控失守)") + if not main.debug_overlay.visible: + _problems.append("调试浮窗未恒开(2026-10-16 写死令失守)") var settings_close: Button = ProbeUiUtil.find_button(main.settings_overlay, "返回", "prefix") if settings_close == null: _problems.append("设置面返回按钮缺失") diff --git a/game/smoke/ui_tune_probe.gd b/game/smoke/ui_tune_probe.gd index 6d5fa0e3..a68cedb2 100644 --- a/game/smoke/ui_tune_probe.gd +++ b/game/smoke/ui_tune_probe.gd @@ -2,7 +2,7 @@ # Date: 2026-09-11(加成应用契约 = 组合根单一应用路径) # 调试浮窗场景探针(原数值调整板收进 debug_overlay; # 角标挂宿主 / 启动即开 / 当局数据只读区块 / 输入锁防护配套): -# 驱动真实 UI 路径——①启动即开(DS_DEBUG=1 默认打开,探针自设环境变量)+悬浮菜单之上+登记册末位树序 +# 驱动真实 UI 路径——①启动即开(调试会话恒开)+悬浮菜单之上+登记册末位树序 # ②滑条联动 ③应用 ④重置 ⑤批量模拟 N=10 ⑥关闭 ⑦hero 表运行期不可变 # ⑧单次加成生效(经 _start_adventure_from_menu 真实路径+显式种子钉死)+开冒险路径显式关浮窗 # ⑨对局中可开(战斗屏角标真实信号路径)+棋盘输入不锁+状态角标不置灰(停机点回归闸) @@ -30,7 +30,6 @@ const _OVERLAY_VIEW_METHODS: Array[String] = ["_on_fx_toggle", "_apply_btn_press func _ready() -> void: - OS.set_environment("DS_DEBUG", "1") # P3 甲断言前提——探针自设调试会话环境(headless 进程内生效) await get_tree().process_frame var main: Node = load("res://presentation/main.tscn").instantiate() add_child(main) @@ -41,11 +40,11 @@ func _ready() -> void: var base_hp := int(main.db.hero.max_hp) var boosted_atk := base_atk * 2 # 攻击滑条 100 → ×2 var boosted_hp := int(round(base_hp * 1.5)) # 生命滑条 50 → +50% - # ① 启动即开(18卡⑦ P3 甲——DS_DEBUG=1 会话组合根 _ready 即开;悬浮于菜单之上——开始层不隐藏; + # ① 启动即开(2026-10-16 用户令写死=恒开——组合根 _ready 即开;悬浮于菜单之上——开始层不隐藏; # 树序新基准=登记册末位(确认弹窗之后=绘制序最上);旧「_show_debug_overlay 打开+开始层在屏」 # 断言随入口迁宿主换代——打开动作本身移至 ⑨ 角标真实路径承载) if not main.debug_overlay.visible: - problems.append("DS_DEBUG=1 启动浮窗未即开(P3 甲失守)") + problems.append("调试浮窗启动未即开(恒开门控失守)") if not main._start_overlay.visible: problems.append("开始覆盖层被隐藏——浮窗应悬浮于菜单之上(14.5 形态失守)") if main.debug_overlay.get_index() < main.confirm_dialog.get_index(): @@ -95,7 +94,7 @@ func _ready() -> void: main._start_adventure_from_menu() # 完整冒险路径(唯一试玩入口;_start_single 按语义清零滑条 = 恒基线,不承载加成断言) await get_tree().process_frame await get_tree().process_frame - # ⑧b 开冒险路径显式关浮窗(18卡⑦ T2 防护——DS_DEBUG 会话默认开态下开局不带窗,对局中经角标再开) + # ⑧b 开冒险路径显式关浮窗(18卡⑦ T2 防护——调试会话默认开态下开局不带窗,对局中经角标再开) if main.debug_overlay.visible: problems.append("开冒险路径未显式关浮窗(T2 防护失守)") if int(main.run_scope.adventure.master_seed) != 42: @@ -114,7 +113,7 @@ func _ready() -> void: # 对局中批量模拟/两层调试两钮禁用;当局数据六项与只读访问器逐项一致;关闭钮真实路径收窗恢复 var dbg_badge: Button = main.board_zone.debug_badge if dbg_badge == null or not dbg_badge.visible: - problems.append("战斗屏调试角标未点亮(P2 甲 DS_DEBUG 门控失守)") + problems.append("战斗屏调试角标未点亮(P2 甲恒开门控失守)") else: if dbg_badge.disabled: problems.append("战斗屏调试角标被置灰(T2 排除式判据失守)")