diff --git a/scripts/lobby.gd b/scripts/lobby.gd index 7feb999..f126de1 100644 --- a/scripts/lobby.gd +++ b/scripts/lobby.gd @@ -2,8 +2,7 @@ extends Control var port = null # Defined by command-line argument with default -var player_info = [] -var my_info = {} +# var my_info = {} var server_playing = true var global_server_ip = "nv.cosinegaming.com" var ip = null @@ -23,45 +22,49 @@ func _ready(): if get_tree().is_network_server(): get_node("LevelSelect").show() - get_node("Username").connect("text_changed", self, "resend_name") + get_node("Username").connect("text_changed", self, "_send_name") get_node("StartGame").connect("pressed", self, "_start_game") # get_node("CustomGame/LevelSelect").connect("item_selected", self, "select_level") TODO + _send_name() -func collect_info(): +func _collect_info(): + var my_id = get_tree().get_network_unique_id() + var my_info = networking.players[my_id] if not "username" in my_info: - my_info.username = get_node("PlayerSettings/Username").get_text() + my_info.username = get_node("Username").get_text() if not "hero" in my_info: - my_info.hero = get_node("PlayerSettings/HeroSelect").get_selected_id() + my_info.hero = get_node("HeroSelect/Hero").get_selected_id() if not "is_right_team" in my_info: my_info.is_right_team = false # Server assigns team, wait for that func select_hero(hero): - var description = get_node("PlayerSettings/HeroSelect").hero_text[hero] - get_node("PlayerSettings/HeroDescription").set_text(description) - if is_connected: - rpc("set_hero", get_tree().get_network_unique_id(), hero) + var description = get_node("HeroSelect").hero_text[hero] + get_node("HeroDescription").set_text(description) + var my_id = get_tree().get_network_unique_id() + networking.players[my_id].hero = hero + rpc("set_hero", get_tree().get_network_unique_id(), hero) sync func set_hero(peer, hero): - player_info[peer].hero = hero + networking.players[peer].hero = hero render_player_list() -func resend_name(): +func _send_name(): if is_connected: - var name = get_node("PlayerSettings/Username").get_text() - rpc("set_name", get_tree().get_network_unique_id(), name) + var name = get_node("Username").text + rpc("_set_name", get_tree().get_network_unique_id(), name) -sync func set_name(peer, name): - player_info[peer].username = name +sync func _set_name(peer, name): + networking.players[peer].username = name render_player_list() func render_player_list(): if has_node("PlayerSettings"): var list = "" - var hero_names = get_node("PlayerSettings/HeroSelect").hero_names - for p in player_info: - list += "%-15s" % player_info[p].username - list += "%-20s" % hero_names[player_info[p].hero] - if player_info[p].is_right_team: + var hero_names = get_node("HeroSelect").hero_names + for p in networking.players: + list += "%-15s" % networking.players[p].username + list += "%-20s" % hero_names[networking.players[p].hero] + if networking.players[p].is_right_team: list += "Right Team" else: list += "Left Team" @@ -69,15 +72,16 @@ func render_player_list(): get_node("JoinedGameLobby/PlayerList").set_text(list) sync func assign_team(peer, is_right_team): - player_info[peer].is_right_team = is_right_team + networking.players[peer].is_right_team = is_right_team if peer == get_tree().get_network_unique_id(): if is_right_team: - get_node("PlayerSettings/Team").set_text("Right Team") + get_node("Team").set_text("Right Team") else: - get_node("PlayerSettings/Team").set_text("Left Team") + get_node("Team").set_text("Left Team") render_player_list() func _start_game(): + _collect_info() var level = 2 # TODO networking.rpc_id(1, "start_game", level) diff --git a/scripts/networking.gd b/scripts/networking.gd index d5bb9fd..f06bb4a 100644 --- a/scripts/networking.gd +++ b/scripts/networking.gd @@ -117,7 +117,7 @@ sync func _spawn_player(p): var player = load("res://scenes/heroes/" + str(hero) + ".tscn").instance() player.set_name(str(p)) player.set_network_master(p) - player.players = players[p] + player.player_info = players[p] get_node("/root/Level/Players").call_deferred("add_child", player) sync func _pre_configure_game(level):