extends Control onready var countdown_timer = get_node("countdown_timer") onready var settings = get_node("menu/settings") onready var player_list = get_node("menu/players") func _ready(): game.connect("players_changed", self, "_players_changed") game.connect("game_ready", self, "_game_ready") game.connect("game_started", self, "_game_started") game.connect("server_disconnected", self, "_server_disconnected") func _physics_process(delta): if not countdown_timer.is_stopped(): get_node("countdown").text = str(int(countdown_timer.get_time_left()) + 1) func _players_changed(players): player_list.clear() for p_id in players: var player = players[p_id] if p_id == get_tree().get_network_unique_id(): player_list.add_item(player.name + " (You)") else: player_list.add_item(player.name) player_list.set_item_custom_bg_color(player_list.get_item_count()-1, player.color) if player.ready: player_list.set_item_icon(player_list.get_item_count()-1, player_list.get_node("ready_icon").get_button_icon()) else: player_list.set_item_icon(player_list.get_item_count()-1, player_list.get_node("not_ready_icon").get_button_icon()) func _game_ready(all_ready): if all_ready: get_node("countdown").show() countdown_timer.start() else: countdown_timer.stop() get_node("countdown").hide() func _game_started(): hide() queue_free() func _on_name_text_changed(new_text): _on_player_changed() func _on_color_color_changed(color): _on_player_changed() func _on_ready_toggled(button_pressed): _on_player_changed() settings.get_node("name").set_editable(not button_pressed) settings.get_node("color").set_disabled(button_pressed) func _on_player_changed(): var name = settings.get_node("name").text var color = settings.get_node("color").color var ready = get_node("menu/ready").pressed game.update_player(name,color,ready) func _on_back_pressed(): game.quit_game() queue_free() if get_tree().get_root().has_node("server"): get_tree().get_root().get_node("server").show() elif get_tree().get_root().has_node("main_menu"): get_tree().get_root().get_node("main_menu").show() func _server_disconnected(): get_node("disconnected_dialog").set_exclusive(true) get_node("disconnected_dialog").popup_centered() func _on_disconnected_dialog_popup_hide(): _on_back_pressed()