feat: include room assignments in start_game RPC

This commit is contained in:
2026-04-14 03:10:36 +02:00
parent 1970e51116
commit fb189ef534

View File

@@ -118,14 +118,27 @@ func request_start_game() -> void:
var requester_id := multiplayer.get_remote_sender_id()
if players.get(requester_id, {}).get("role", "") != "dm":
return
start_game.rpc()
var assignments := _build_room_assignments()
start_game.rpc(assignments)
@rpc("authority", "call_local", "reliable")
func start_game() -> void:
func start_game(room_assignments: Dictionary) -> void:
if my_id in room_assignments:
SceneManager.pending_room_index = room_assignments[my_id]
game_started.emit()
func _build_room_assignments() -> Dictionary:
var result := {}
var player_peers: Array = players.keys().filter(
func(id: int) -> bool: return players[id].role == "player"
)
for i in player_peers.size():
result[player_peers[i]] = i % 8 # 8 Gästezimmer (Index 07)
return result
# call_remote: Server hat lokal bereits gelöscht; nur Clients führen aus
@rpc("authority", "call_remote", "reliable")
func _broadcast_player_left(peer_id: int) -> void: