merge: 迭代14.5调试整合批(48c0b34——调试浮窗DebugOverlay收编主菜单三散件,角落角标+DS_DEBUG门控+悬浮Dialog+仅开始菜单可开+可扩展列表,TunePanel退役,四拍板全落P1甲/P2乙/P3仅菜单/P4可扩展,冒烟747/0+三探针绿)
This commit is contained in:
commit
d0a3c6bbfa
3 files changed
+58
-19
No files matched your search
@@ -1,17 +1,23 @@
|
||||
# VERTICAL SLICE - NOT FOR PRODUCTION
|
||||
# Date: 2026-09-11(2026-09-12 code-review 修复批重构)
|
||||
# 测试用角色数值调整板(模拟天赋树属性提升——仅测试,正式侧归元进度)。
|
||||
# 纯视图边界(规范 1.3):本类只承载滑杆 UI 与生效值预览;加成应用 / 批量模拟编排
|
||||
# 全部经信号外发由组合根承接(apply_requested / simulate_requested / closed);
|
||||
# 模拟进度与报告经 setter 注入——视图零核心写、零 smoke 脚本依赖、不拼报告文案(装配归 presenter)。
|
||||
# Date: 2026-10-04(迭代 14.5 调试整合批——主菜单三散件(随机种子/角色数值调整板/两层调试入口)收一张调试浮窗,
|
||||
# 原 views/tune_panel.gd 整体吸收退役)
|
||||
# 开发调试浮窗:入口 = 开始覆盖层右下角「调试」角标(DS_DEBUG=1 门控归组合根)——非主按钮组平级;
|
||||
# 仅开始菜单可开(浮于菜单之上的 Dialog 形态,不隐藏开始层——与确认弹窗同款;对局中不可达)。
|
||||
# 列表页形态可扩展:后续调试项按区块往下追加,超高滚动。
|
||||
# 纯视图边界(规范 1.3):数值应用/批量模拟/对局启动全部经信号外发由组合根承接
|
||||
#(apply_requested / simulate_requested / debug_levels_requested / closed);
|
||||
# 模拟进度与报告经 setter 注入——零核心写、不拼报告文案(装配归 HudPresenter)。
|
||||
# 探针接缝(ADR-0004"合成输入走真实翻译出口"口径):press_apply_for_probe 等三键 = 按钮真实信号路径。
|
||||
class_name TunePanel
|
||||
class_name DebugOverlay
|
||||
extends Control
|
||||
|
||||
signal apply_requested(atk_pct: int, hp_pct: int) # 应用并关闭——加成落表归组合根单一应用路径
|
||||
signal simulate_requested(count: int) # 批量模拟编排归组合根(表基线复位 + 单路径施加)
|
||||
signal debug_levels_requested # 两层调试对局入口(编排归 debug_session.gd)
|
||||
signal closed
|
||||
|
||||
var seed_edit: LineEdit # 组合根 _seed_value 唯一读取面(原开始覆盖层种子行迁入)
|
||||
|
||||
var _db
|
||||
var _base_atk := 0
|
||||
var _base_hp := 0
|
||||
@@ -31,6 +37,7 @@ func _init(db_ref, base_atk: int, base_hp: int) -> void:
|
||||
_base_hp = base_hp
|
||||
_build()
|
||||
_sync_labels()
|
||||
visible = false # 显式初始化——不靠树序巧合(缺陷⑤家族纪律)
|
||||
|
||||
|
||||
# ---- 对外语义面(组合根/探针)----
|
||||
@@ -115,41 +122,63 @@ func effective_max_hp() -> int:
|
||||
return UiKit.scaled(_base_hp, hp_pct())
|
||||
|
||||
|
||||
# ---- 内部构建 ----
|
||||
# ---- 内部构建(标题/关闭固定于浮窗骨架,可扩展列表区居中滚动)----
|
||||
|
||||
func _build() -> void:
|
||||
var box: VBoxContainer = UiKit.modal_shell(self, UiKit.BG_OVERLAY, Vector2(640, 0), 8).box
|
||||
var shell: Dictionary = UiKit.modal_shell(self, UiKit.BG_OVERLAY, Vector2(640, 0), 8)
|
||||
var box: VBoxContainer = shell.box
|
||||
|
||||
var title := UiKit.label("测试用 · 角色数值调整板", 26, true, UiKit.WARM)
|
||||
var title := UiKit.label("调试", 26, true, UiKit.WARM)
|
||||
box.add_child(title)
|
||||
var desc := UiKit.label(
|
||||
"模拟玩家在循环中解锁天赋获得的属性提升(仅测试工具,不落盘)。\n百分比叠加基础值:攻击 %d / 生命 %d。影响所有模式(手动与模拟)。" % [_base_atk, _base_hp],
|
||||
"开发调试专用——仅开始菜单可开(DS_DEBUG=1 时入口点亮)。\n百分比叠加基础值:攻击 %d / 生命 %d。影响所有模式(手动与模拟),不落盘。" % [_base_atk, _base_hp],
|
||||
13, false, UiKit.WARM_SOFT)
|
||||
box.add_child(desc)
|
||||
box.add_child(HSeparator.new())
|
||||
|
||||
var atk_row := _slider_row(box, "攻击加成")
|
||||
# 可扩展列表页(后续调试项按区块往下追加——超高滚动,滚轮下探)
|
||||
var scroll := ScrollContainer.new()
|
||||
scroll.custom_minimum_size = Vector2(0, 430)
|
||||
scroll.horizontal_scroll_mode = ScrollContainer.SCROLL_MODE_DISABLED
|
||||
box.add_child(scroll)
|
||||
var list := VBoxContainer.new()
|
||||
list.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||
list.add_theme_constant_override("separation", 8)
|
||||
scroll.add_child(list)
|
||||
|
||||
# 区块①随机种子(原开始覆盖层种子行迁入——非法定值回退 42 的口径归组合根 _seed_value)
|
||||
var seed_row := HBoxContainer.new()
|
||||
list.add_child(seed_row)
|
||||
seed_row.add_child(UiKit.label("随机种子", 15, false))
|
||||
seed_edit = LineEdit.new()
|
||||
seed_edit.text = "42"
|
||||
seed_edit.custom_minimum_size = Vector2(120, 0)
|
||||
seed_row.add_child(seed_edit)
|
||||
list.add_child(HSeparator.new())
|
||||
|
||||
# 区块②角色数值调整板(原 TunePanel 内容原样吸收)
|
||||
var atk_row := _slider_row(list, "攻击加成")
|
||||
_atk = atk_row.slider
|
||||
_atk_val = atk_row.value_label
|
||||
var hp_row := _slider_row(box, "生命加成")
|
||||
var hp_row := _slider_row(list, "生命加成")
|
||||
_hp = hp_row.slider
|
||||
_hp_val = hp_row.value_label
|
||||
_eff = UiKit.label("", 14, false)
|
||||
box.add_child(_eff)
|
||||
list.add_child(_eff)
|
||||
|
||||
var btn_row := HBoxContainer.new()
|
||||
box.add_child(btn_row)
|
||||
list.add_child(btn_row)
|
||||
var apply_btn := UiKit.button("应用并关闭")
|
||||
apply_btn.pressed.connect(_apply_btn_pressed)
|
||||
btn_row.add_child(apply_btn)
|
||||
var reset_btn := UiKit.button("重置为 0")
|
||||
reset_btn.pressed.connect(_reset_btn_pressed)
|
||||
btn_row.add_child(reset_btn)
|
||||
# 减动效开关已转正迁出(迭代 8 卡④——设置面唯一入口,本面板退役该开关;motion_scale 引擎态由设置面承载)
|
||||
box.add_child(HSeparator.new())
|
||||
list.add_child(HSeparator.new())
|
||||
|
||||
# 区块③批量模拟(与 headless 扫描同口径——编排归 tune_sim_controller)
|
||||
var sim_row := HBoxContainer.new()
|
||||
box.add_child(sim_row)
|
||||
list.add_child(sim_row)
|
||||
sim_row.add_child(UiKit.label("批量模拟第一关", 15, false))
|
||||
_sim_count = SpinBox.new()
|
||||
_sim_count.min_value = 10
|
||||
@@ -165,7 +194,13 @@ func _build() -> void:
|
||||
_sim_out = RichTextLabel.new()
|
||||
_sim_out.bbcode_enabled = true
|
||||
_sim_out.custom_minimum_size = Vector2(0, 300)
|
||||
box.add_child(_sim_out)
|
||||
list.add_child(_sim_out)
|
||||
list.add_child(HSeparator.new())
|
||||
|
||||
# 区块④两层调试对局入口(原开始覆盖层调试按钮迁入——HP 关内延续)
|
||||
var dbg_btn := UiKit.button("调试 · 连续关卡两层(HP 关内延续)")
|
||||
dbg_btn.pressed.connect(_emit_debug_levels)
|
||||
list.add_child(dbg_btn)
|
||||
|
||||
var close_btn := UiKit.button("关闭")
|
||||
close_btn.pressed.connect(_emit_closed)
|
||||
@@ -200,6 +235,10 @@ func _emit_simulate_requested() -> void:
|
||||
simulate_requested.emit(int(_sim_count.value))
|
||||
|
||||
|
||||
func _emit_debug_levels() -> void:
|
||||
debug_levels_requested.emit()
|
||||
|
||||
|
||||
func _emit_closed() -> void:
|
||||
closed.emit()
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
uid://bf0xtmxgbid4p
|
||||
@@ -1 +0,0 @@
|
||||
uid://dxafka2y1f2xg
|
||||
Reference in new issue
Block a user