extends SceneTree func _initialize() -> void: call_deferred("run") func run() -> void: create_timer(40).timeout.connect(func(): quit(2)) var server := "--server" in OS.get_cmdline_user_args() var game := (load("res://scenes/main.tscn") as PackedScene).instantiate() as Node3D root.add_child(game) game.port = 27992 if server: var settings: Dictionary = game.config.duplicate() settings["map"] = "dust2" if not game.host(settings): quit(1) return var ready := FileAccess.open("res://logs/map-lan-ready.flag", FileAccess.WRITE) ready.store_string("ready") ready.close() else: game.join("127.0.0.1:27992") var passed := false for tick in (220 if server else 100): await create_timer(0.1).timeout if tick % 20 == 0: print("NET ", server, " peers=", game.multiplayer.get_peers(), " status=", game.multiplayer.multiplayer_peer.get_connection_status(), " connecting=", game.connecting) var humans := 0 for p: Fighter in game.players.values(): if not p.bot: humans += 1 if game.active and humans == 2 and game.players.size() == 8 and game.arena.map_id == "dust2" and game.config.get("map") == "dust2": passed = true print("MAP LAN ", "server" if server else "client", " passed=", passed, " map=", game.arena.map_id, " roster=", game.players.size()) game.leave() await process_frame game.free() quit(0 if passed else 1)