From 16f9b5d2766f7d2532a5c5044d4c8440154b5154 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Mon, 28 Sep 2026 03:28:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(ux):=20T5=20=E6=88=98=E6=96=97=E8=83=9C?= =?UTF-8?q?=E5=88=A9=E7=BB=93=E7=AE=97=20GP=20=E6=8E=A5=E7=BA=BF=E2=80=94?= =?UTF-8?q?=E2=80=94=E6=80=BB=E9=87=8F+=E5=A2=9E=E9=87=8F=E8=90=BD?= =?UTF-8?q?=E8=83=9C=E5=88=A9=E6=80=BB=E7=BB=93=E7=BB=93=E7=AE=97(OQ14=20?= =?UTF-8?q?=E5=8F=A3=E5=BE=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BattleEndOverlay 新增战利品行(open_victory 可选参 gp_summary;失败侧恒不呈现——GP 总量+增量归胜利总结结算) - main 两个胜利分支(level_end/standalone_end)装配'战利品 GP +增量 · 合计总量':增量=battle_finished 载荷 gp_dropped,总量=runner.gp 现值(LevelRunner 入账连接先于组合根 handler——读数即战后总量) - 纯呈现接线,账本语义零改动;账本入账/清零路径零触碰 - 轻闸:冒烟 557/0+ui_probe+ui_click_probe(全冒险含胜利终局)+ui_input_probe 全绿 --- game/presentation/main.gd | 11 +++++++++-- game/presentation/views/battle_end_overlay.gd | 16 +++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/game/presentation/main.gd b/game/presentation/main.gd index 6a307b46..206061fa 100644 --- a/game/presentation/main.gd +++ b/game/presentation/main.gd @@ -449,11 +449,11 @@ func _on_battle_finished(payload: Dictionary) -> void: return "level_end": _end_overlay.open_victory(Narrator.battle_end_text("victory", true), - "返回", board_view.get_global_rect()) + "返回", board_view.get_global_rect(), _gp_summary_text(payload)) "standalone_end": if result == "victory": _end_overlay.open_victory(Narrator.battle_end_text("victory", false), - "回到遭遇选择", board_view.get_global_rect()) + "回到遭遇选择", board_view.get_global_rect(), _gp_summary_text(payload)) else: _end_overlay.open_defeat(Narrator.battle_end_text("defeat", false), "返回", board_view.get_global_rect()) @@ -461,6 +461,13 @@ func _on_battle_finished(payload: Dictionary) -> void: _refresh_presentations() +# 战利品行装配(battle.md OQ14——胜利总结结算展示 GP 总量+增量;账本语义零改动,纯呈现读数): +# 增量 = battle_finished 载荷 gp_dropped(战斗域上抛);总量 = runner.gp 现值(LevelRunner 入账 +# 连接先于组合根 handler——此读数即战后入账完毕的总量)。 +func _gp_summary_text(payload: Dictionary) -> String: + return "战利品 GP +%d · 合计 %d" % [int(payload.get("gp_dropped", 0)), int(runner.gp)] + + # ==================== core↔view 接线(战斗信号统一走这里)==================== func _wire_battle(settlement_ref) -> void: diff --git a/game/presentation/views/battle_end_overlay.gd b/game/presentation/views/battle_end_overlay.gd index 9f07e1e6..28c773f3 100644 --- a/game/presentation/views/battle_end_overlay.gd +++ b/game/presentation/views/battle_end_overlay.gd @@ -16,6 +16,7 @@ const COL_WARM := UiKit.WARM var _dim: ColorRect var _seal: Panel var _verdict: Label +var _gp_line: Label # 战利品行(OQ14 口径:胜利总结结算展示 GP 总量+增量——T5 接线 2026-09-28) var _review_btn: Button var _btn: Button var _board_rect := Rect2() @@ -36,6 +37,11 @@ func _init() -> void: _verdict.add_theme_color_override("font_color", COL_WARM) _verdict.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER box.add_child(_verdict) + _gp_line = UiKit.label("", 16, true) + _gp_line.add_theme_color_override("font_color", UiKit.GOLD) + _gp_line.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER + _gp_line.visible = false + box.add_child(_gp_line) _review_btn = UiKit.button("明细回看") _review_btn.pressed.connect(func(): review_pressed.emit()) box.add_child(_review_btn) @@ -54,11 +60,15 @@ func _init() -> void: visible = false -# 终局画面数据锚 = 战斗结算 判定行(verdict)——判定行文案由组合根装配传入 -func open_victory(verdict_line: String, continue_label: String, board_rect: Rect2) -> void: +# 终局画面数据锚 = 战斗结算 判定行(verdict)——判定行文案由组合根装配传入。 +# gp_summary(OQ14 口径——胜利总结结算展示 GP 总量+增量):组合根装配「战利品 +增量 · 合计总量」 +# 传入(入账次序 = LevelRunner 入账先于组合根 handler,runner.gp 即战后总量);空串 = 不显示(失败侧恒空)。 +func open_victory(verdict_line: String, continue_label: String, board_rect: Rect2, gp_summary: String = "") -> void: _dim.color = Color(COL_WARM, 0.28) _verdict.text = verdict_line _verdict.add_theme_color_override("font_color", UiKit.INK_ON_GOLD) + _gp_line.text = gp_summary + _gp_line.visible = gp_summary != "" _btn.text = continue_label _board_rect = board_rect visible = true @@ -71,7 +81,7 @@ func open_defeat(verdict_line: String, continue_label: String, board_rect: Rect2 _dim.color = Color(COL_DUSK, 0.45) _verdict.text = verdict_line _verdict.add_theme_color_override("font_color", COL_WARM) - _btn.text = continue_label + _gp_line.visible = false # GP 总量+增量归胜利总结结算(OQ14)——失败侧不呈现 _board_rect = board_rect visible = true _seal.visible = false