implement auto tile pickup and visual candy stacking on player head

This commit is contained in:
god
2026-07-06 02:31:17 +08:00
parent b3a421bb55
commit 717e8cedae
3 changed files with 63 additions and 4 deletions
+12 -2
View File
@@ -253,7 +253,17 @@ func _give_candy(pid: int, color: int) -> void:
func _update_candy_badge(pid: int) -> void:
var count = player_candies.get(pid, 0)
var mult = 1.0 + count * MULTI_STEP
var color = player_candy_color.get(pid, -1)
rpc("sync_candy_badge", pid, count, mult)
# Update the 3D meshes on the player's head across all clients
var all_players = get_tree().get_nodes_in_group("Players")
for player in all_players:
var curr_pid = player.get("peer_id") if "peer_id" in player else player.name.to_int()
if curr_pid == pid:
if player.has_method("sync_candy_stack"):
player.rpc("sync_candy_stack", count, color)
break
func get_multiplier(pid: int) -> float:
var count = player_candies.get(pid, 0)
@@ -420,8 +430,8 @@ func setup_mission_tiles() -> void:
func get_spawn_points(count: int) -> Array:
var points = []
var corners = [
Vector2i(2, 2), Vector2i(ARENA_COLS - 3, 2),
Vector2i(2, ARENA_ROWS - 3), Vector2i(ARENA_COLS - 3, ARENA_ROWS - 3)
Vector2i(2, 2), Vector2i(ARENA_COLS - 2, 2),
Vector2i(2, ARENA_ROWS - 2), Vector2i(ARENA_COLS - 2, ARENA_ROWS - 2)
]
for i in range(count):
points.append(corners[i % corners.size()])