feat(调试入口): 全局浮层角标——UI 最顶层、任何 UI 不遮挡(2026-10-16 用户令)
用户定稿:调试入口不做置顶钮式按需出现,要的是「UI 最顶层浮层、不被任何 UI 遮挡」。
实现=三枚屏内角标(菜单右下/战斗 HUD 右下/地图顶栏)合并为一枚全局浮层角标:
- LAYER_CONTRACT 末位新增 {"key": "debug_badge", "kind": "float"}——只落树序(最顶绘制序)、
不注册 ModalStack:open() 遮挡记账只隐藏登记层,故任何模态/覆盖层开都不遮它(用户需求
的机制根因);_layer_node 补映射;main 直接子层、构建走 ui_assembler.build_debug_badge
- 位置:右下角 16px 惯例位;地图屏底栏 85px 常驻→_sync_status_entry 按 map_on 抬 offset
至底栏上方 16px;战斗屏状态角标经 MarginContainer 让位(right 16/bottom 52)不再被压
- 屏内角标全退役:menu_screen/board_zone_view/level_map_screen 三处 debug_badge 删除,
main 两处接线与 _sync_status_entry 四条可见性/置灰行清除(浮层常显不置灰——点它就是开浮窗)
- 浮窗 desc 文案改「UI 最顶层「调试」浮层角标随时可开——任何界面不遮挡」
- 断言/探针换代:smoke V2f 查 main.debug_badge boot 可见;click_probe 遮挡判据移至设置面
开中段(浮层角标此时仍应可见=直接验「不遮挡」);tune_probe ①点击路径与⑨对局中角标
全改 main.debug_badge(T2 防线断言不动——浮窗 non_locking×遮挡复活×has_open 组合回归)
冒烟 1127/0 过;全量闸待跑。
This commit is contained in:
1 parent
cc575b2ce3
commit
6b1e447d27
9 files changed
+72
-70
No files matched your search
@@ -7,8 +7,7 @@ var ap_bar: ApBarView
|
||||
var board_view: BoardView
|
||||
var toast: ToastStack
|
||||
var fx: BoardFxView
|
||||
var status_badge: Button # 状态面板入口角标(迭代 17 卡③ P1 丁——debug 角标同形制;连接归组合根)
|
||||
var debug_badge: Button # 调试浮窗入口角标(迭代 18 卡⑦ P2 甲——调试门控归组合根;状态角标同形制)
|
||||
var status_badge: Button # 状态面板入口角标(迭代 17 卡③ P1 丁;连接归组合根)
|
||||
var _board_area: Control # resized 命名转发用(原 lambda 局部捕获——P1-3 转命名 2026-09-29)
|
||||
|
||||
signal action_requested(cell: Vector2i, kind: String)
|
||||
@@ -39,29 +38,27 @@ func _init() -> void:
|
||||
board_area.add_child(fx)
|
||||
toast = ToastStack.new()
|
||||
board_area.add_child(toast)
|
||||
# 角标对(迭代 18 卡⑦ P2 甲——调试+状态两枚右下角常驻,HBox 并排锚角距 16px):
|
||||
# 17卡③状态角标同形制:紧凑钮豁免宽度基准+字号降档。可见性/置灰归组合根 _sync_status_entry
|
||||
#(调试门控/其他模态开着=置灰不可点——排除式开态查询);信号连接归组合根。
|
||||
# 状态角标(迭代 17 卡③ P1 丁——右下角常驻;2026-10-16 调试角标迁全局浮层后本屏只留状态):
|
||||
# 17卡③同形制:紧凑钮豁免宽度基准+字号降档。可见性/置灰归组合根 _sync_status_entry
|
||||
#(其他模态开着=置灰不可点——排除式开态查询);信号连接归组合根。
|
||||
# 全局调试浮层角标常驻右下角 16px(main 直接子层、ModalStack 登记外——任何 UI 不遮挡),
|
||||
# 状态角标经 MarginContainer 让位抬高(right 16/bottom 52=浮层钮高约24+间距8+16 贴底);
|
||||
# preset 在子件全部入列后调用——MINSIZE 锚按当时最小尺寸计偏移(空容器调用=零尺寸锚外溢屏边)
|
||||
var corner_wrap := MarginContainer.new()
|
||||
corner_wrap.add_theme_constant_override("margin_right", 16)
|
||||
corner_wrap.add_theme_constant_override("margin_bottom", 52)
|
||||
corner_wrap.grow_horizontal = Control.GROW_DIRECTION_BEGIN
|
||||
corner_wrap.grow_vertical = Control.GROW_DIRECTION_BEGIN
|
||||
corner_wrap.set_anchors_and_offsets_preset.call_deferred(Control.PRESET_BOTTOM_RIGHT, Control.PRESET_MODE_MINSIZE, 0)
|
||||
board_area.add_child(corner_wrap)
|
||||
var corner := HBoxContainer.new()
|
||||
corner.add_theme_constant_override("separation", 8)
|
||||
debug_badge = UiKit.button("调试", 0.0) # 角落小件豁免宽度基准(同状态角标)
|
||||
debug_badge.add_theme_font_size_override("font_size", UiKit.FS_HINT)
|
||||
debug_badge.tooltip_text = "打开调试浮窗(当局数据/种子/数值调整)"
|
||||
debug_badge.visible = false # 显式初始化——非调试会话不误现(可见性归组合根同步)
|
||||
corner.add_child(debug_badge)
|
||||
status_badge = UiKit.button("状态", 0.0) # 角落小件豁免宽度基准(同调试角标)
|
||||
status_badge = UiKit.button("状态", 0.0) # 角落小件豁免宽度基准
|
||||
status_badge.add_theme_font_size_override("font_size", UiKit.FS_HINT)
|
||||
status_badge.tooltip_text = "查看钥石与永久强化进度(只读)"
|
||||
status_badge.visible = false # 显式初始化——非对局期不误现(可见性归组合根同步)
|
||||
corner.add_child(status_badge)
|
||||
# 右下角锚定(迭代 18 卡⑦):MINSIZE 预设须在入树后调用——容器出树的最小尺寸缓存陈旧为 0
|
||||
#(裸 Button 无此病,容器延迟到首轮排序才重算),零尺寸锚角会使钮对悬出屏边;
|
||||
# grow 向左上=后续最小尺寸变化向屏内生长。预设延迟帧尾——届时容器最小尺寸已就绪
|
||||
corner.grow_horizontal = Control.GROW_DIRECTION_BEGIN
|
||||
corner.grow_vertical = Control.GROW_DIRECTION_BEGIN
|
||||
corner.set_anchors_and_offsets_preset.call_deferred(Control.PRESET_BOTTOM_RIGHT, Control.PRESET_MODE_MINSIZE, 16)
|
||||
board_area.add_child(corner)
|
||||
corner_wrap.add_child(corner)
|
||||
# M8(UI 落码批):棋盘底常驻操作提示条(demo ⑦——文案经 board_view 输入代码证实;
|
||||
# 旧 chord 一次性 toast 提示退役归此常驻条;审计第 7 条用户批)
|
||||
var hint := PanelContainer.new()
|
||||
|
||||
@@ -155,7 +155,7 @@ func _build() -> void:
|
||||
var title := UiKit.label("调试",UiKit.FS_TITLE, true, UiKit.WARM)
|
||||
box.add_child(title)
|
||||
var desc := UiKit.label(
|
||||
"开发调试专用(开始屏右下角/战斗屏 HUD/关卡地图屏「调试」角标均可开)。当局数据=本局只读投影,种子即本局种子唯一查看位。\n百分比叠加基础值:攻击 %d / 生命 %d。影响所有模式(手动与模拟),不落盘。" % [_base_atk, _base_hp],
|
||||
"开发调试专用(UI 最顶层「调试」浮层角标随时可开——任何界面不遮挡)。当局数据=本局只读投影,种子即本局种子唯一查看位。\n百分比叠加基础值:攻击 %d / 生命 %d。影响所有模式(手动与模拟),不落盘。" % [_base_atk, _base_hp],
|
||||
13, false, UiKit.WARM_SOFT)
|
||||
box.add_child(desc)
|
||||
box.add_child(HSeparator.new())
|
||||
|
||||
@@ -47,7 +47,6 @@ 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 甲——调试门控;状态角标同形制)
|
||||
var _abandon_timer := ArmedTimer.new() # 放弃确认窗(T3/D3 P4 乙——_process 帧驱动倒计时机制收口;窗口=CONFIRM_WINDOW_S)
|
||||
var _node_icons := {} # 节点图标贴图(load_tex 守卫——缺位 null → 字形回退,冒烟/无素材检出安全)
|
||||
var _noise_rect: TextureRect # 屏底石纹(换层色板渐变承载面——null = 纯色回退无挂点)
|
||||
@@ -99,7 +98,7 @@ func _init() -> void:
|
||||
gp_box.add_child(gp_row)
|
||||
_gp_value = UiKit.label("",UiKit.FS_BODY, true, UiKit.INK_ON_GOLD)
|
||||
gp_row.add_child(_gp_value)
|
||||
# 状态面板入口角标(迭代 17 卡③ P1 丁——顶栏常驻;debug 角标同形制:紧凑钮豁免宽度基准+字号降档。
|
||||
# 状态面板入口角标(迭代 17 卡③ P1 丁——顶栏常驻;2026-10-16 调试角标迁全局浮层后本屏只留状态。
|
||||
# 置灰守卫归组合根 _sync_status_entry(其他模态开着=不可点;本屏自身的登记开态不计——has_open_excluding);
|
||||
# 信号连接归组合根(视图零连接))
|
||||
status_badge = UiKit.button("状态", 0.0)
|
||||
@@ -107,14 +106,6 @@ func _init() -> void:
|
||||
status_badge.tooltip_text = "查看钥石与永久强化进度(只读)"
|
||||
status_badge.size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
||||
top.add_child(status_badge)
|
||||
# 调试浮窗入口角标(迭代 18 卡⑦ P2 甲——顶栏状态角标右侧;17卡③同形制:紧凑钮豁免宽度基准+
|
||||
# 字号降档。可见性/置灰归组合根 _sync_status_entry(调试门控/其他模态开着=置灰——排除式
|
||||
# 开态查询,本屏自身开态不计);信号连接归组合根(视图零连接))
|
||||
debug_badge = UiKit.button("调试", 0.0)
|
||||
debug_badge.add_theme_font_size_override("font_size", UiKit.FS_HINT)
|
||||
debug_badge.tooltip_text = "打开调试浮窗(当局数据/种子/数值调整)"
|
||||
debug_badge.size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
||||
top.add_child(debug_badge)
|
||||
_title = UiKit.label(TITLE_FORK,UiKit.FS_SUB, true, UiKit.WARM)
|
||||
_title.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
box.add_child(_title)
|
||||
|
||||
Reference in new issue
Block a user