From 088e18b03c22a3fa549cc31a70c248ba32208815 Mon Sep 17 00:00:00 2001 From: Luna Date: Sat, 26 May 2018 12:40:53 -0400 Subject: [PATCH] Assign is_right_team correctly --- scripts/networking.gd | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/scripts/networking.gd b/scripts/networking.gd index 08eda14..77a8bba 100644 --- a/scripts/networking.gd +++ b/scripts/networking.gd @@ -71,29 +71,23 @@ func send_all_info(new_peer): if p != new_peer: for key in players[p]: var val = players[p][key] + # TODO: This broadcasts every connected peer, + # which isn't really a problem but it's lazy set_info(key, val, p) +func _right_team_next(): + var right_team_count = 0 + for p in players: + var player = players[p] + if player.has("is_right_team") and player.is_right_team: + right_team_count += 1 + return (right_team_count <= players.size() / 2) + remote func register_player(new_peer): if get_tree().is_network_server(): # I tell new player about all the existing people send_all_info(new_peer) - emit_signal("info_updated") - # var right_team_count = 0 - # Send current players' info to new player - # if old_peer != new_peer: - # # We need to assign team later, so count current - # if players[old_peer].is_right_team: - # right_team_count += 1 - # if begun: TODO this should belong to lobby? - # rpc_id(old_peer, "_spawn_player", new_peer) - # rpc_id(old_peer, "_begin_player_deferred", new_peer) # Spawning is deferred - # var assign_right_team = right_team_count * 2 < players.size() - # set_info("is_right_team", assign_right_team, new_peer) - # if not begun and players.size() == matchmaking.GAME_SIZE: - # start_game() - # if begun: - # rpc_id(new_peer, "_pre_configure_game", my_info.level) - # rpc_id(new_peer, "_post_configure_game") + set_info("is_right_team", _right_team_next(), new_peer) sync func unregister_player(peer): players.erase(peer)