From 036f03194aea79c08a8354dd7773a29aa6ba1480 Mon Sep 17 00:00:00 2001 From: Joywayer Date: Mon, 20 Jul 2026 16:32:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(mana):=20HUD=20=E8=93=9D=E6=9D=A1=EF=BC=88?= =?UTF-8?q?ProgressBar=EF=BC=8C=E6=AF=8F=E5=B8=A7=E5=88=B7=E6=96=B0?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/main/combat_s2.gd | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/scenes/main/combat_s2.gd b/scenes/main/combat_s2.gd index 4e3210c..9925794 100644 --- a/scenes/main/combat_s2.gd +++ b/scenes/main/combat_s2.gd @@ -26,6 +26,7 @@ var _lbl_deck: Label = null var _lbl_dps: Label = null var _lbl_charge: Label = null var _lbl_statuses: Label = null +var _mana_bar: ProgressBar = null var _dps_poll_timer: float = 0.0 @@ -229,6 +230,19 @@ func _setup_hud() -> void: _lbl_charge = make_label.call(Vector2(200, 62)) _lbl_deck = make_label.call(Vector2(20, 122), 13) _lbl_statuses = make_label.call(Vector2(20, 142), 13) + _mana_bar = ProgressBar.new() + _mana_bar.position = Vector2(200, 86) + _mana_bar.custom_minimum_size = Vector2(170, 16) + _mana_bar.size = Vector2(170, 16) + _mana_bar.min_value = 0.0 + _mana_bar.show_percentage = false + var mana_fill := StyleBoxFlat.new() + mana_fill.bg_color = Color(0.3, 0.55, 1.0) + _mana_bar.add_theme_stylebox_override("fill", mana_fill) + var mana_bg := StyleBoxFlat.new() + mana_bg.bg_color = Color(0.12, 0.12, 0.22) + _mana_bar.add_theme_stylebox_override("background", mana_bg) + _hud_layer.add_child(_mana_bar) _lbl_status = make_label.call(Vector2(20, 620), 20) _lbl_status.modulate = Color.YELLOW @@ -324,6 +338,9 @@ func _refresh_hud() -> void: if _cm: _lbl_deck.text = "[%s] %s" % [_cm.get_core_display(), str(_cm.get_deck_spell_ids())] _lbl_statuses.text = tr("UI_STATUSES") % [StatusManager.get_active_count(), VFXManager.get_active_count()] + if _mana_bar: + _mana_bar.max_value = PlayerStats.mana_max + _mana_bar.value = PlayerStats.mana func _refresh_shop_ui() -> void: for i in _shop_btns.size():