From acd927eef6119b8d92aebb66dca9227fd8e8bf23 Mon Sep 17 00:00:00 2001 From: adtpdn Date: Mon, 6 Jul 2026 14:37:22 +0800 Subject: [PATCH] fix: correct JSON payload key for gacha pull RPC and update gacha panel UI labels --- scenes/ui/gacha_panel.tscn | 6 ++++-- scripts/managers/gacha_manager.gd | 3 ++- scripts/services/backend_service.gd | 4 ++-- scripts/ui/gacha_panel.gd | 7 +++++++ 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/scenes/ui/gacha_panel.tscn b/scenes/ui/gacha_panel.tscn index d2500ba..f0ef0ac 100644 --- a/scenes/ui/gacha_panel.tscn +++ b/scenes/ui/gacha_panel.tscn @@ -293,7 +293,8 @@ size_flags_horizontal = 0 size_flags_vertical = 4 texture = ExtResource("tex_gold") -[node name="GoldLabel" type="Label" parent="MainMargin/MainVBox/ContentHBox/LeftPanel/LeftMargin/LeftVBox/BalanceRow/GoldPanel/MarginContainer/HBoxContainer" unique_id=1159494172] +[node name="LeftGoldLabel" type="Label" parent="MainMargin/MainVBox/ContentHBox/LeftPanel/LeftMargin/LeftVBox/BalanceRow/GoldPanel/MarginContainer/HBoxContainer" unique_id=1159494172] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 theme_override_fonts/font = ExtResource("3_font") @@ -327,7 +328,8 @@ size_flags_horizontal = 0 size_flags_vertical = 4 texture = ExtResource("tex_star") -[node name="StarLabel" type="Label" parent="MainMargin/MainVBox/ContentHBox/LeftPanel/LeftMargin/LeftVBox/BalanceRow/StarPanel/MarginContainer/HBoxContainer" unique_id=1357103504] +[node name="LeftStarLabel" type="Label" parent="MainMargin/MainVBox/ContentHBox/LeftPanel/LeftMargin/LeftVBox/BalanceRow/StarPanel/MarginContainer/HBoxContainer" unique_id=1357103504] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 theme_override_fonts/font = ExtResource("3_font") diff --git a/scripts/managers/gacha_manager.gd b/scripts/managers/gacha_manager.gd index 5920b6c..c07d7b8 100644 --- a/scripts/managers/gacha_manager.gd +++ b/scripts/managers/gacha_manager.gd @@ -40,7 +40,8 @@ func pull(banner_id: String, count: int) -> Array: var result = await BackendService.perform_gacha_pull(banner_id, count) if result.get("success", false) == false: - var msg = str(result.get("error", "Unknown error")) + var err_val = result.get("error", "Unknown error") + var msg = result.get("message", str(err_val)) push_error("[GachaManager] Gacha pull failed: " + msg) return [] diff --git a/scripts/services/backend_service.gd b/scripts/services/backend_service.gd index 254c8f4..17b71ad 100644 --- a/scripts/services/backend_service.gd +++ b/scripts/services/backend_service.gd @@ -181,8 +181,8 @@ func respond_friend_request(target_id: String, accept: bool) -> Dictionary: var payload = JSON.stringify({"target_user_id": target_id, "accept": accept}) return await api_rpc_async("respond_friend_request", payload) -func perform_gacha_pull(gacha_id: String, count: int) -> Dictionary: - var payload = JSON.stringify({"gacha_id": gacha_id, "count": count}) +func perform_gacha_pull(banner_id: String, count: int) -> Dictionary: + var payload = JSON.stringify({"banner_id": banner_id, "count": count}) return await api_rpc_async("perform_gacha_pull", payload) func get_mail(payload: String = "{}") -> Dictionary: diff --git a/scripts/ui/gacha_panel.gd b/scripts/ui/gacha_panel.gd index 2169839..b83a77d 100644 --- a/scripts/ui/gacha_panel.gd +++ b/scripts/ui/gacha_panel.gd @@ -12,6 +12,8 @@ signal closed @onready var banner_label := %BannerLabel as Label @onready var gold_label := %GoldLabel as Label @onready var star_label := %StarLabel as Label +@onready var left_gold_label := %LeftGoldLabel as Label +@onready var left_star_label := %LeftStarLabel as Label @onready var pity_label := %PityLabel as Label @onready var pull_1_btn := %Pull1Btn as Button @onready var pull_10_btn := %Pull10Btn as Button @@ -142,6 +144,11 @@ func _refresh_ui() -> void: star_label.text = str(UserProfileManager.wallet.get("star", 0)) gold_label.text = str(UserProfileManager.wallet.get("gold", 0)) + if left_star_label: + left_star_label.text = str(UserProfileManager.wallet.get("star", 0)) + if left_gold_label: + left_gold_label.text = str(UserProfileManager.wallet.get("gold", 0)) + pity_label.text = "Pity: %d / %d" % [pity, pity_at] cost_1_label.text = "%s %d" % [icon, c1] cost_10_label.text = "%s %d" % [icon, c10]