M2 标题屏双列重构(UI落码第二波)——左操作56%(分组+动词化+tooltip)+右立绘看台/速览牌(帮助全文保留表值驱动);lvbtn升CANDLE主操作钮;root挂tooltip全站主题;返回键集不变组合根零改。闸=冒烟747/0+probe_gate全绿+layout 0
This commit is contained in:
1 parent
80e6d047bd
commit
566e3bdaa9
1 file changed
+74
-14
@@ -97,9 +97,13 @@ static func build_overlays(host: Control, db) -> Dictionary:
|
||||
|
||||
# 开始覆盖层(返回 {overlay, box, lvbtn, resumebtn, campbtn, settingsbtn, quitbtn, dbgbtn}——按钮接线归组合根;
|
||||
# 迭代 14.5 调试整合批:随机种子/数值调整板/两层调试三散件撤出主按钮组,收进调试浮窗——
|
||||
# 本层只留右下角「调试」角标入口(DS_DEBUG=1 门控归组合根),dbgbtn 即该角标)
|
||||
# 本层只留右下角「调试」角标入口(DS_DEBUG=1 门控归组合根),dbgbtn 即该角标。
|
||||
# UI 落码批 M2(2026-10-04):单列 VBox→双列(左操作 56% + 右舞台/帮助牌);按钮动词化+悬停解释
|
||||
#(解释全迁 tooltip,G5);lvbtn 升主操作钮(烛光黄 CANDLE);右列=立绘看台+玩法速览牌(帮助全文保留,
|
||||
# 表值驱动不变);root 挂 UiKit.tooltip_theme() 全树生效。返回键集不变,组合根接线零改)
|
||||
static func build_start_overlay(host: Control, db = null) -> Dictionary:
|
||||
var overlay := overlay_bg(host, UiKit.BG_OVERLAY)
|
||||
var overlay := overlay_bg(host, UiKit.BG_BRIGHT)
|
||||
overlay.theme = UiKit.tooltip_theme()
|
||||
# 石纹底噪底层(样张 v2 冻结批 T2——z 序=dim 之上/内容之下;缺位不挂即回退平色)
|
||||
var bd_tex := UiKit.load_tex(UiKit.TEX_BACKDROP_STONE)
|
||||
if bd_tex != null:
|
||||
@@ -110,23 +114,44 @@ static func build_start_overlay(host: Control, db = null) -> Dictionary:
|
||||
bd.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||
bd.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
overlay.add_child(bd)
|
||||
var box := overlay_box(overlay)
|
||||
var title := UiKit.label("Dungeon Sweeper", 34, true, UiKit.WARM)
|
||||
# 双列骨架(M2):左=操作列 56% / 右=舞台+速览
|
||||
var cols := HBoxContainer.new()
|
||||
cols.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||
cols.add_theme_constant_override("separation", 32)
|
||||
var pad := MarginContainer.new()
|
||||
pad.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||
for side in ["margin_left", "margin_right", "margin_top", "margin_bottom"]:
|
||||
pad.add_theme_constant_override(side, 56)
|
||||
cols.add_child(pad)
|
||||
overlay.add_child(cols)
|
||||
var box := VBoxContainer.new()
|
||||
box.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||
box.size_flags_stretch_ratio = 1.4
|
||||
box.add_theme_constant_override("separation", 10)
|
||||
pad.add_child(box)
|
||||
|
||||
var title := UiKit.label("Dungeon Sweeper", 40, true, Color8(246, 238, 218))
|
||||
box.add_child(title)
|
||||
# 对比度修复(v3.5 批 B3——WARM_SOFT 对深石底实测 3.54:1→暖白 ≥6:1)
|
||||
var sub := UiKit.label("战斗屏战斗屏改造批 —— 扫雷的因,逐行兑现的果", 16, false, UiKit.WARM)
|
||||
var sub := UiKit.label("扫雷的因 · 逐行兑现的果", 16, false, UiKit.WARM_SOFT)
|
||||
box.add_child(sub)
|
||||
box.add_child(HSeparator.new())
|
||||
|
||||
# 组帽·冒险(M2 分组)
|
||||
box.add_child(UiKit.label("── 冒 险 ──", 12, false, UiKit.WARM_FAINT))
|
||||
# 唯一试玩入口 = 正式「开始冒险」(三关序列);单关测试直入口(L2/L3)退役(2026-09-23 用户拍板)
|
||||
var resumebtn := UiKit.button("▶ 继续上局(自最近停点恢复)") # 迭代 8 卡②——有断点才亮(可见性归组合根刷新)
|
||||
var resumebtn := UiKit.button("▶ 继续上局") # 迭代 8 卡②——有断点才亮(可见性与关数文案归组合根刷新)
|
||||
resumebtn.tooltip_text = "自最近停点恢复"
|
||||
resumebtn.visible = false
|
||||
box.add_child(resumebtn)
|
||||
var lvbtn := UiKit.button("▶ 开始冒险(三关连探:地精洞窟 → 幽暗地域 → 灰矮人矿城)")
|
||||
var lvbtn := UiKit.primary_button("▶ 开始冒险", "三关连探:地精洞窟 → 幽暗地域 → 灰矮人矿城")
|
||||
box.add_child(lvbtn)
|
||||
var campbtn := UiKit.button("营地 · 永久强化(钥石换永久属性——跨局成长账本)") # 元进度实现批——主菜单营地入口(双入口框架的主菜单一侧)
|
||||
|
||||
# 组帽·营地与系统
|
||||
box.add_child(UiKit.label("── 营地与系统 ──", 12, false, UiKit.WARM_FAINT))
|
||||
var campbtn := UiKit.verb_button("营地", UiKit.TEX_ICON_KEYSTONE, "永久强化:钥石换永久属性——跨局成长账本") # 元进度实现批——主菜单营地入口
|
||||
box.add_child(campbtn)
|
||||
var settingsbtn := UiKit.button("设置(音量 / 全屏 / 减动效)") # 迭代 8 卡④——最小设置面入口
|
||||
var settingsbtn := UiKit.button("设置") # 迭代 8 卡④——最小设置面入口
|
||||
settingsbtn.tooltip_text = "音量 / 全屏 / 减动效"
|
||||
box.add_child(settingsbtn)
|
||||
# 二轮修改批 D1(2026-09-29 用户目检裁决):退出游戏与设置同层并行——只在一级菜单出现
|
||||
var quitbtn := UiKit.button("退出游戏")
|
||||
@@ -139,12 +164,47 @@ static func build_start_overlay(host: Control, db = null) -> Dictionary:
|
||||
dbgbtn.set_anchors_and_offsets_preset(Control.PRESET_BOTTOM_RIGHT, Control.PRESET_MODE_MINSIZE, 16)
|
||||
overlay.add_child(dbgbtn)
|
||||
|
||||
# 玩法帮助文案(表值驱动——2026-09-16 AP 压速批遗留硬编码 8 随手修正;护甲等级掷点批同步"减伤"→"护甲强化")
|
||||
# 右列:立绘看台 + 玩法速览牌(M2——帮助全文保留表值驱动,仅容器化;内容含地形变异段不删)
|
||||
var right := VBoxContainer.new()
|
||||
right.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||
right.add_theme_constant_override("separation", 18)
|
||||
right.alignment = BoxContainer.ALIGNMENT_CENTER
|
||||
pad.add_child(right)
|
||||
var stage := VBoxContainer.new()
|
||||
stage.alignment = BoxContainer.ALIGNMENT_CENTER
|
||||
var foe_row := HBoxContainer.new()
|
||||
foe_row.alignment = BoxContainer.ALIGNMENT_CENTER
|
||||
foe_row.add_theme_constant_override("separation", 36)
|
||||
for cfg in [[UiKit.TEX_ENEMY_GOBLIN, 46, 96], [UiKit.TEX_HERO_PORTRAIT, 138, 144], [UiKit.TEX_ENEMY_OGRE_CHIEF, 80, 96]]:
|
||||
var tr := TextureRect.new()
|
||||
var tex := UiKit.load_tex(cfg[0])
|
||||
if tex != null:
|
||||
tr.texture = tex
|
||||
tr.custom_minimum_size = Vector2(cfg[1], cfg[2])
|
||||
tr.expand_mode = TextureRect.EXPAND_IGNORE_SIZE
|
||||
tr.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED
|
||||
tr.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST
|
||||
if cfg[0] != UiKit.TEX_HERO_PORTRAIT:
|
||||
tr.modulate = Color(0.7, 0.7, 0.7, 0.4) # 敌影剪影退后(§6.1 立绘>背景)
|
||||
foe_row.add_child(tr)
|
||||
stage.add_child(foe_row)
|
||||
var pedestal := Panel.new()
|
||||
var ped_sb := UiKit.panel_flat(Color8(90, 74, 56), Color8(58, 46, 34), 17, 2)
|
||||
pedestal.add_theme_stylebox_override("panel", ped_sb)
|
||||
pedestal.custom_minimum_size = Vector2(240, 22)
|
||||
pedestal.size_flags_horizontal = Control.SIZE_SHRINK_CENTER
|
||||
stage.add_child(pedestal)
|
||||
right.add_child(stage)
|
||||
# 玩法帮助文案(表值驱动——2026-09-16 AP 压速批遗留硬编码 8 随手修正;护甲等级掷点批同步"减伤"→"护甲强化";
|
||||
# M2 容器化=石板牌承载〔文字禁直接压纹理/深底——§7.2〕,内容逐字保留含地形变异段)
|
||||
var help_text := "玩法:每轮 %d AP——挖开(1AP)/插旗(1AP)/移动(免费)/连锁(免费)。\n每个非封锁格都藏一种格面资源(增伤/护甲强化/回血/爆裂/削弱)。开安全格、标中雷 = 正向兑付;\n开雷格、标错安全格 = 负向兑付——全部在轮末结算逐行兑现;吃掷点的基础攻击按护甲等级判定,无 miss、最低保底 1 点。\n停手:剩余 AP 转存 RAP;弃图刷新:RAP−%d 当场换图继续挖(每轮剩 %d 次)。\n敌人全灭胜、主角倒下负。悬停可看三态光标与可挖域微光。\n地形变异:第二关起 Boss 图带整图变异(贫矿脉——回复与护甲资源减少、攻击资源增多;开战横幅与 HUD 角标常驻提示)。" % [
|
||||
int(db.action_economy.ap_per_round), int(db.action_economy.rap_refresh_cost), int(db.action_economy.refresh_cap_per_round)]
|
||||
# 字号下限(v3.5 批 B3——正文 ≥16);对比度修复(v3.5 批 B3——WARM_FAINT 对深石底实测 2.58:1→暖白 ≥6:1;暗底双色墨制)
|
||||
var help := UiKit.label(help_text, 16, false, UiKit.WARM)
|
||||
box.add_child(help)
|
||||
var help_plate := PanelContainer.new()
|
||||
help_plate.add_theme_stylebox_override("panel", UiKit.panel_skinned(Vector4(14, 10, 14, 10)))
|
||||
help_plate.size_flags_horizontal = Control.SIZE_SHRINK_CENTER
|
||||
var help := UiKit.label(help_text, 16, false, UiKit.INK)
|
||||
help_plate.add_child(help)
|
||||
right.add_child(help_plate)
|
||||
|
||||
return {"overlay": overlay, "box": box,
|
||||
"lvbtn": lvbtn, "resumebtn": resumebtn,
|
||||
|
||||
Reference in new issue
Block a user