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
@@ -86,9 +86,9 @@ static func build_overlays(host: Control, db) -> Dictionary:
|
||||
}
|
||||
|
||||
|
||||
# 开始覆盖层(返回 {overlay, box, lvbtn, resumebtn, campbtn, careerbtn, settingsbtn, quitbtn, dbgbtn}——按钮接线归组合根;
|
||||
# 开始覆盖层(返回 {overlay, box, lvbtn, resumebtn, campbtn, careerbtn, settingsbtn, quitbtn}——按钮接线归组合根;
|
||||
# 迭代 14.5 调试整合批:随机种子/数值调整板/两层调试三散件撤出主按钮组,收进调试浮窗——
|
||||
# 2026-10-16 用户令:右下角「调试」角标恢复(boot 菜单优先,浮窗按需开——见装配段注)
|
||||
# 2026-10-16 用户令:调试入口=UI 最顶层全局浮层角标(build_debug_badge,本层零调试入口)
|
||||
# UI 落码批 M2(2026-10-04):单列 VBox→双列(左操作 56% + 右舞台);按钮动词化+悬停解释
|
||||
#(解释全迁 tooltip,G5);lvbtn 升主操作钮(烛光黄 CANDLE);右列=立绘看台。**玩法速览牌已退役
|
||||
#(2026-10-06 用户令:界面禁玩法文字墙——教学内容归 Beta 帮助手册〔教学引导定稿批 P4 丙〕,历史文案在 git)**;
|
||||
@@ -152,14 +152,9 @@ static func build_start_overlay(host: Control, db = null) -> Dictionary:
|
||||
var quitbtn := UiKit.button("退出游戏")
|
||||
box.add_child(quitbtn)
|
||||
|
||||
# 迭代 14.5 调试整合批——调试入口收右下角标(与主按钮组非平级;调试会话恒开点亮,可见性归组合根)。
|
||||
# 2026-10-16 用户令修正:boot 菜单优先不开浮窗(原「启动即开」浮窗盖住开始屏,用户实测否决),
|
||||
# 角标恢复为菜单层唯一调试入口(iter18 卡⑦ P2 甲迁宿主两屏的理由=启动即开,已不成立)
|
||||
var dbgbtn := UiKit.button("调试", 0.0) # 角标豁免宽度基准(0=不设 min/flags——角落小件)
|
||||
dbgbtn.add_theme_font_size_override("font_size", UiKit.FS_HINT)
|
||||
dbgbtn.tooltip_text = "打开调试浮窗(当局数据/种子/数值调整)"
|
||||
dbgbtn.set_anchors_and_offsets_preset(Control.PRESET_BOTTOM_RIGHT, Control.PRESET_MODE_MINSIZE, 16)
|
||||
overlay.add_child(dbgbtn)
|
||||
# 迭代 14.5 调试整合批——调试入口收浮层角标;2026-10-16 用户令修正:boot 菜单优先不开
|
||||
# 浮窗,调试入口=UI 最顶层全局浮层角标(build_debug_badge——LAYER_CONTRACT 末位、
|
||||
# ModalStack 登记外,任何 UI 不遮挡;对局中两屏角标形态随之退役,全局浮层全场景承载)
|
||||
|
||||
# 右列:立绘看台 + 玩法速览牌(M2——帮助全文保留表值驱动,仅容器化;内容含地形变异段不删)
|
||||
var right := VBoxContainer.new()
|
||||
@@ -197,7 +192,22 @@ static func build_start_overlay(host: Control, db = null) -> Dictionary:
|
||||
return {"overlay": overlay, "box": box,
|
||||
"lvbtn": lvbtn, "resumebtn": resumebtn,
|
||||
"campbtn": campbtn, "careerbtn": careerbtn,
|
||||
"settingsbtn": settingsbtn, "quitbtn": quitbtn, "dbgbtn": dbgbtn}
|
||||
"settingsbtn": settingsbtn, "quitbtn": quitbtn}
|
||||
|
||||
|
||||
# 调试浮层入口角标(2026-10-16 用户令:UI 最顶层浮层,任何 UI 不遮挡)——main 直接子层、
|
||||
# LAYER_CONTRACT 末位(float 类:只落树序、不注册 ModalStack——open() 遮挡记账只动登记层,
|
||||
# 故永不被隐藏);右下角 16px(拇指区惯例,与旧三屏角标同域);可见性归组合根(_debug_entry
|
||||
# 门控落定后赋值);地图屏底栏 85px 常驻,offset 抬升本函数不处理(组合根 _sync_status_entry)。
|
||||
static func build_debug_badge(host: Control) -> Button:
|
||||
var badge := UiKit.button("调试", 0.0) # 角落小件豁免宽度基准(0=不设 min/flags——同状态角标)
|
||||
badge.add_theme_font_size_override("font_size", UiKit.FS_HINT)
|
||||
badge.tooltip_text = "打开调试浮窗(当局数据/种子/数值调整)"
|
||||
badge.grow_horizontal = Control.GROW_DIRECTION_BEGIN # 向左上生长——尺寸变化向屏内
|
||||
badge.grow_vertical = Control.GROW_DIRECTION_BEGIN
|
||||
badge.set_anchors_and_offsets_preset(Control.PRESET_BOTTOM_RIGHT, Control.PRESET_MODE_MINSIZE, 16)
|
||||
badge.visible = false # 显式初始化——门控落定后由组合根置位
|
||||
return badge
|
||||
|
||||
|
||||
# 调试两层模式的层间过渡覆盖层(历史入口专用)。返回 {overlay, label, next_btn}——接线归组合根
|
||||
|
||||
Reference in new issue
Block a user