extends Node func _ready() -> void: Lobby.lobby_joined.connect(hide_host_buttons) Lobby.lobby_created.connect(show_host_buttons) Lobby.lobby_closed.connect(cleanup_lobby) Lobby.update_teams_state.connect(on_player_switched_team) func _on_leave_button_pressed() -> void: Lobby.leave() cleanup_lobby() func cleanup_lobby() -> void: $Lobby.hide() $MainMenu.show() %JoinAttackButton.show() %JoinDefenceButton.show() %JoinSpectatorsButton.hide() func _on_start_button_pressed() -> void: Lobby.start_game.rpc() func hide_host_buttons() -> void: %StartButton.hide() func show_host_buttons() -> void: %StartButton.show() func _on_host_button_pressed() -> void: Lobby.host() $MainMenu.hide() $Lobby.show() func _on_connect_button_pressed() -> void: var ip = $MainMenu/VBoxContainer/LineEdit.text if ip == "": ip = "localhost" var joined = Lobby.join(ip) if joined != Error.OK: return $MainMenu.hide() $Lobby.show() func on_player_switched_team(): %JoinAttackButton.hide() %JoinDefenceButton.hide() %JoinSpectatorsButton.visible = Lobby.specators_team.has(multiplayer.get_unique_id()) == false if Lobby.attack_team.size() < 5 and not Lobby.attack_team.has(multiplayer.get_unique_id()): %JoinAttackButton.show() if Lobby.defence_team.size() < 5 and not Lobby.defence_team.has(multiplayer.get_unique_id()): %JoinDefenceButton.show() for child in %AttackTeam.get_children(): if child.name == "TeamName": continue child.queue_free() for child in %DefenceTeam.get_children(): if child.name == "TeamName": continue child.queue_free() for child in %SpectatorsTeam.get_children(): if child.name == "TeamName": continue child.queue_free() for attacker in Lobby.attack_team: var label = Label.new() label.text = str(attacker) %AttackTeam.add_child(label) for defender in Lobby.defence_team: var label = Label.new() label.text = str(defender) %DefenceTeam.add_child(label) for spectator in Lobby.specators_team: var label = Label.new() label.text = str(spectator) %SpectatorsTeam.add_child(label) func _on_join_attack_button_pressed() -> void: Lobby.switch_team(Session.TEAMS.ATTACK) func _on_join_defence_button_pressed() -> void: Lobby.switch_team(Session.TEAMS.DEFENCE) func _on_join_spectators_button_pressed() -> void: Lobby.switch_team(Session.TEAMS.SPECTATE)