extends Control var port = null # Defined by command-line argument with default onready var hero_select = get_node("HeroSelect/Hero") onready var level_select = get_node("LevelSelect") func _ready(): get_node("Username").connect("text_changed", self, "_send_name") get_node("StartGame").connect("pressed", networking, "start_game") var spectating = util.args.get_value("-silent") get_node("Spectating").pressed = spectating get_node("Spectating").connect("toggled", networking, "set_spectating") if get_tree().is_network_server(): # We put level in our players dict because it's automatically broadcast to other players var level = util.args.get_value("-level") if level == "r": level = randi() % level_select.get_item_count() _set_level(level) level_select.show() level_select.select(level) level_select.connect("item_selected", self, "_set_level") else: level_select.hide() networking.connect("info_updated", self, "render_player_list") get_tree().connect("connected_to_server", self, "_connected") if get_tree().is_network_server(): _connected() func _connected(): _send_name() hero_select.random_hero() if util.args.get_value("-start-game"): networking.start_game() func _set_level(level): networking.set_info("level", level) sync func set_hero(peer, hero): networking.players[peer].hero = hero render_player_list() func _send_name(): var name = get_node("Username").text networking.set_info("username", name) func render_player_list(): var list = "" var hero_names = hero_select.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" list += "\n" get_node("PlayerList").set_text(list)