fix(candy-survival): resolve persistent candy color bugs, sync HUD scores and counts, bypass Mekton face delivery requirement, and correct STAR/COIN color switch

This commit is contained in:
2026-07-08 15:37:23 +08:00
parent 950b1969d8
commit 38d09a50e7
5 changed files with 53 additions and 14 deletions
+3 -1
View File
@@ -1409,7 +1409,7 @@ func _on_peer_connected(new_peer_id: int):
var player_goals = GoalManager.preset_goals[player_index].duplicate()
player.goals = player_goals
# Update goals UI for all clients
call_deferred("_deferred_set_player_goals", new_peer_id, player_goals)
rpc("sync_player_goals", new_peer_id, player_goals)
@rpc
func add_newly_connected_player_character(new_peer_id: int):
@@ -2041,6 +2041,8 @@ func request_full_grid_sync():
if stop_n_go_manager.player_missions.has(sender_id):
var mission_dict = {sender_id: stop_n_go_manager.player_missions[sender_id]}
stop_n_go_manager.rpc_id(sender_id, "sync_missions", mission_dict)
elif LobbyManager.game_mode == "Candy Survival" and candy_survival_manager:
candy_survival_manager.sync_state_to_player(sender_id)
# For all modes, only sync Floor 1 (Items) to prevent MTU packet overflow.
# Floor 0 logic is deterministic and generated locally on level load.
+3 -3
View File
@@ -624,12 +624,12 @@ func sync_candy_stack(colors: Array) -> void:
var candy_colors = {
0: Color(1.0, 0.3, 0.3), # HEART = red
1: Color(0.3, 0.6, 1.0), # DIAMOND = blue
2: Color(1.0, 0.8, 0.0), # STAR = gold
3: Color(0.0, 1.0, 0.4), # COIN = green
2: Color(0.0, 1.0, 0.4), # STAR = green
3: Color(1.0, 0.8, 0.0), # COIN = gold
}
for i in range(colors.size()):
var color_id = colors[i]
var color_id = int(colors[i])
var base_color = candy_colors.get(color_id, Color.WHITE)
var candy = _candy_scene.instantiate()
candy.position = Vector3(0, i * 0.35, 0)