# VERTICAL SLICE - NOT FOR PRODUCTION # 实现 GDD:design/ux/battle.md(B 区结算明细回看——模态 overlay:完整流水逐行、只读、关闭恢复; # pattern 6 模态 overlay 层级纪律——打开时组合根隐藏上方遮挡层 + 锁棋盘输入,场景级断言承载)。 # Date: 2026-09-12 class_name SettlementReviewOverlay extends Control signal closed var _log: RichTextLabel func _init() -> void: var shell := UiKit.modal_shell(self, Color(UiKit.DIM, 0.62), Vector2(760, 560), 6, true) (shell.dim as ColorRect).gui_input.connect(_on_dim_gui_input) var box: VBoxContainer = shell.box box.add_child(UiKit.label("结算明细回看(完整流水 · 逐行归因)", 18, true)) _log = RichTextLabel.new() _log.bbcode_enabled = true _log.size_flags_vertical = Control.SIZE_EXPAND_FILL _log.clip_contents = true _log.scroll_active = true box.add_child(_log) var close_btn := UiKit.button("关闭") close_btn.pressed.connect(close) box.add_child(close_btn) visible = false func is_open() -> bool: return visible func open(full_bb_text: String) -> void: _log.clear() _log.append_text(full_bb_text) visible = true func close() -> void: if not visible: return visible = false closed.emit() func _on_dim_gui_input(ev: InputEvent) -> void: if ev is InputEventMouseButton and ev.pressed: close()