feat: Implement the main game scene with manager initialization, comprehensive UI setup including a dynamic message bar, tile respawn logic, and core multiplayer integration.

This commit is contained in:
Yogi Wiguna
2026-02-06 12:30:20 +08:00
parent e34a7467d0
commit b3c044e1e9
10 changed files with 1182 additions and 136 deletions
+18
View File
@@ -1123,6 +1123,24 @@ func _on_leaderboard_updated(sorted_scores: Array):
})
rpc("sync_leaderboard_data", player_data)
# Update player rank visuals for everyone (Client + Server)
var all_players = get_tree().get_nodes_in_group("Players")
var sorted_players = []
for p in all_players:
var peer_id = p.name.to_int()
var score = goals_cycle_manager.get_player_score(peer_id) if goals_cycle_manager else 0
sorted_players.append({"node": p, "score": score})
# Sort by score descending
sorted_players.sort_custom(func(a, b): return a.score > b.score)
# Assign rank
for i in range(sorted_players.size()):
var p_node = sorted_players[i].node
var rank = i + 1
if p_node.has_method("update_rank_visuals"):
p_node.update_rank_visuals(rank)
func _on_global_timer_updated(time_remaining: float):
"""Update the global match timer display."""
var global_timer_panel = get_node_or_null("GlobalMatchTimer")