feat: HUD 绑定灵石/声望显示,完成 D2 资源管理

This commit is contained in:
2026-08-05 22:55:57 +08:00
parent 5e5763028c
commit d907637606
3 changed files with 22 additions and 2 deletions
+1 -1
View File
@@ -22,4 +22,4 @@ func add_reputation(amount: int) -> void:
func remove_reputation(amount: int) -> void:
reputation -= amount
emit_signal("reputation_changed", reputation, -amount)
emit_signal("reputation_changed", reputation, -amount)
+2
View File
@@ -31,6 +31,7 @@ text = "灵石"
label_settings = SubResource("LabelSettings_bn2o5")
[node name="Value_Currency" type="Label" parent="HBoxContainer" unique_id=1150573727]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 8
@@ -59,6 +60,7 @@ text = "声望"
label_settings = SubResource("LabelSettings_bn2o5")
[node name="Value_Reputation" type="Label" parent="HBoxContainer" unique_id=2011931119]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 8
+19 -1
View File
@@ -6,6 +6,8 @@ extends Control
signal sign_return_mainmenu
@onready var time_label: Label = %Value_Time
@onready var currency_label: Label = %Value_Currency
@onready var reputation_label: Label = %Value_Reputation
@onready var pause_button: Button = %Button_Pause
@onready var speed_buttons: Array[Button] = [%Button_Speed1, %Button_Speed5, %Button_Speed20]
@@ -14,14 +16,30 @@ func _ready() -> void:
var btn := speed_buttons[i]
btn.toggle_mode = true
btn.button_up.connect(_on_speed_button_up.bind(i))
# 时间:每日推进时刷新日期
TimeSystem.day_passed.connect(_on_day_passed)
_update_speed_ui()
# 资源数值:信号仅在变化时触发,初始值需手动设置一次
SectManager.spirit_stones_changed.connect(_on_spirit_stones_changed)
SectManager.reputation_changed.connect(_on_reputation_changed)
currency_label.text = str(SectManager.spirit_stones)
reputation_label.text = str(SectManager.reputation)
time_label.text = TimeSystem.get_date_text()
_update_speed_ui()
## 每日推进时刷新日期显示。
func _on_day_passed(_year: int, _month: int, _day: int) -> void:
time_label.text = TimeSystem.get_date_text()
## 灵石数量变化时刷新显示。
## @param new_value: 变化后的灵石总量
func _on_spirit_stones_changed(new_value: int, _delta: int) -> void:
currency_label.text = str(new_value)
## 声望变化时刷新显示。
## @param new_value: 变化后的声望总量
func _on_reputation_changed(new_value: int, _delta: int) -> void:
reputation_label.text = str(new_value)
## 点击"返回"按钮。
func _on_button_return_button_up() -> void:
sign_return_mainmenu.emit()