Files
gplan-2/game/presentation/views/settlement_review_overlay.gd
T

61 lines
1.6 KiB
GDScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 dim := ColorRect.new()
dim.color = Color(UiKit.DIM, 0.62)
dim.set_anchors_preset(Control.PRESET_FULL_RECT)
dim.gui_input.connect(_on_dim_gui_input)
add_child(dim)
var center := CenterContainer.new()
center.set_anchors_preset(Control.PRESET_FULL_RECT)
dim.add_child(center)
var panel := PanelContainer.new()
center.add_child(panel)
var box := VBoxContainer.new()
box.custom_minimum_size = Vector2(760, 560)
box.add_theme_constant_override("separation", 6)
panel.add_child(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()