fix: 判官复验四修——①styled_slider 槽轨实高(HSlider 槽=按 stylebox min 高绘制,零 margin=0-2px 不可见实测;12px 实高+深棕填充+描边)②三选一卡类型脚注行(demo .src 同位五族词——卡下半空底修)③地图顶栏对齐 demo(关卡名入框板+GP 烛光胶囊+左右两极,裸文本/居中悬置退役)④审计探针标题屏种子断点(有档态=继续上局主钮亮出对齐⑤;开始冒险前收种子避清档确认断流)——冒烟782/0+probe_gate --click全绿+ui_audit_probe 问题=0
This commit is contained in:
1 parent
2ca628840a
commit
56e1ae3b45
4 files changed
+51
-10
No files matched your search
@@ -105,7 +105,8 @@ func open_pick(header: String, cards: Array) -> void:
|
||||
var desc := "\n".join(lines.slice(1)) if lines.size() > 1 else ""
|
||||
var idl := cid.to_lower()
|
||||
var band := UiKit.tg_band(idl) # 类型色带单点(N4c 2026-10-06——TG_* 五族同源判定;aoe/blast 归 TG_AOE)
|
||||
var card := UiKit.bcard(title, desc, band, _icon_for_id(idl))
|
||||
# 类型脚注(T7 判官 checkpoint:demo .bcard .src 底部类型行——实机缺=卡下半空底;词=demo 同款)
|
||||
var card := UiKit.bcard(title, desc, band, _icon_for_id(idl), "", _type_label(idl))
|
||||
card.gui_input.connect(func(ev: InputEvent) -> void:
|
||||
if ev is InputEventMouseButton and ev.pressed and ev.button_index == MOUSE_BUTTON_LEFT:
|
||||
_select_card(cid))
|
||||
@@ -246,3 +247,16 @@ func _icon_for_id(idl: String) -> String:
|
||||
if idl.contains("ap") or idl.contains("action"):
|
||||
return UiKit.TEX_ICON_POUCH
|
||||
return UiKit.TEX_ICON_COINBAG
|
||||
|
||||
|
||||
# T7 类型脚注词(demo .bcard .src 同款五族——与 tg_band 同域子串判定,卡底填空对齐)
|
||||
func _type_label(idl: String) -> String:
|
||||
if idl.contains("heal"):
|
||||
return "治疗"
|
||||
if idl.contains("blast") or idl.contains("magic"):
|
||||
return "魔法"
|
||||
if idl.contains("pierce"):
|
||||
return "穿甲"
|
||||
if idl.contains("aoe"):
|
||||
return "群伤"
|
||||
return "通用增益"
|
||||
@@ -87,20 +87,30 @@ func _init() -> void:
|
||||
var box := VBoxContainer.new()
|
||||
box.add_theme_constant_override("separation", 10)
|
||||
center.add_child(box)
|
||||
# 顶栏语境(spec Layout:左关卡名 / 右 GP 常驻徽章——直角细线数据框)
|
||||
# 顶栏语境(spec Layout:左关卡名 / 右 GP 常驻徽章——直角细线数据框;
|
||||
# T5 判官 checkpoint 对齐 demo ④:关卡名入框板(裸文本退役)+GP 徽章=烛光胶囊(同商店金币框)+
|
||||
# 左右两极排布(原居中悬置))
|
||||
var top := HBoxContainer.new()
|
||||
top.add_theme_constant_override("separation", 12)
|
||||
top.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||
box.add_child(top)
|
||||
var lvl_plate := PanelContainer.new()
|
||||
lvl_plate.add_theme_stylebox_override("panel",
|
||||
UiKit.panel_flat(UiKit.DARK_UPCOMING, UiKit.PANEL_BORDER, 0, 1, Vector4(12, 3, 12, 3)))
|
||||
top.add_child(lvl_plate)
|
||||
_level_label = UiKit.label("",UiKit.FS_BODY, true, UiKit.WARM)
|
||||
_level_label.custom_minimum_size.x = 420
|
||||
top.add_child(_level_label)
|
||||
lvl_plate.add_child(_level_label)
|
||||
var top_sp := Control.new()
|
||||
top_sp.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||
top.add_child(top_sp)
|
||||
var gp_box := PanelContainer.new()
|
||||
gp_box.add_theme_stylebox_override("panel", UiKit.panel_flat(UiKit.DARK_UPCOMING, UiKit.PANEL_BORDER, 0, 1))
|
||||
gp_box.add_theme_stylebox_override("panel",
|
||||
UiKit.panel_flat(UiKit.CANDLE, UiKit.CAMP_HEADER_BAND,UiKit.RADIUS_OBJECT, 1, Vector4(12, 4, 12, 4)))
|
||||
top.add_child(gp_box)
|
||||
var gp_row := HBoxContainer.new()
|
||||
gp_row.add_theme_constant_override("separation", 6)
|
||||
gp_box.add_child(gp_row)
|
||||
_gp_value = UiKit.label("",UiKit.FS_BODY, true, UiKit.GOLD)
|
||||
_gp_value = UiKit.label("",UiKit.FS_BODY, true, UiKit.INK_ON_GOLD)
|
||||
gp_row.add_child(_gp_value)
|
||||
_title = UiKit.label(TITLE_FORK,UiKit.FS_SUB, true, UiKit.WARM)
|
||||
_title.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
|
||||
@@ -703,9 +703,13 @@ static func styled_slider(value: float, minv := 0.0, maxv := 100.0) -> HSlider:
|
||||
s.min_value = minv
|
||||
s.max_value = maxv
|
||||
s.value = value
|
||||
s.custom_minimum_size = Vector2(200, 20)
|
||||
s.add_theme_stylebox_override("slider", panel_flat(Color8(184, 165, 130), PANEL_BORDER, 0, 1))
|
||||
s.add_theme_stylebox_override("grabber_area", panel_flat(Color8(122, 82, 50), Color8(0, 0, 0, 0), 0, 0))
|
||||
s.custom_minimum_size = Vector2(200, 24)
|
||||
# 槽轨/填充实高(2026-10-06 判官实checkpoint:HSlider 槽=按 stylebox min 高绘制——零 margin
|
||||
# StyleBoxFlat min 高 0-2px=轨道整条不可见;6px 上下 content margin=12px 实高)
|
||||
s.add_theme_stylebox_override("slider",
|
||||
panel_flat(Color8(184, 165, 130), PANEL_BORDER, 0, 1, Vector4(0, 6, 0, 6)))
|
||||
s.add_theme_stylebox_override("grabber_area",
|
||||
panel_flat(Color8(122, 82, 50), Color8(0, 0, 0, 0), 0, 0, Vector4(0, 6, 0, 6)))
|
||||
return s
|
||||
|
||||
|
||||
|
||||
@@ -29,8 +29,17 @@ func _ready() -> void:
|
||||
await get_tree().process_frame
|
||||
ProbeUiUtil.isolate_save(main, "smoke_ui_audit", true, true, false)
|
||||
await get_tree().process_frame
|
||||
# 断点种子(2026-10-06 判官 checkpoint——demo 标题屏=有档态「继续上局」主钮亮出;无种子=
|
||||
# 续玩钮隐藏,主操作语义对齐⑤无从呈现。最小合法断点快照;后续「开始冒险」流程自然覆盖)
|
||||
main.save_manager.set_breakpoint({
|
||||
"master_seed": 42, "rng_counter": 0, "hero_hp": 20, "gp": 24, "keystone": 4,
|
||||
"level_index": 1, "bonus": {}, "shop_purchased": {}, "relics": [],
|
||||
"bonus_aux_carry": [], "keystone_drops": [], "bonus_taken": {},
|
||||
})
|
||||
main._refresh_resume_button()
|
||||
await get_tree().process_frame
|
||||
|
||||
# 1 标题屏(启动态)
|
||||
# 1 标题屏(启动态=有档态)
|
||||
await _snap("1_start")
|
||||
# 2 调试浮窗(P3 仅开始菜单可开——趁 _level_active=false 先截)
|
||||
main._show_debug_overlay()
|
||||
@@ -55,6 +64,10 @@ func _ready() -> void:
|
||||
close_btn.pressed.emit()
|
||||
await _settle()
|
||||
# 5 关卡地图(开始冒险→停点出图)
|
||||
# 收种子断点(有断点时「开始冒险」=清档确认互斥弹窗——不收则断流,5_battle 截不上)
|
||||
main.save_manager.clear_breakpoint()
|
||||
main._refresh_resume_button()
|
||||
await get_tree().process_frame
|
||||
var lvbtn: Button = ProbeUiUtil.find_button(main._start_overlay, "开始冒险", "contains")
|
||||
if lvbtn != null:
|
||||
lvbtn.pressed.emit()
|
||||
|
||||
Reference in new issue
Block a user