extends SceneTree class State extends Node: var active := false var paused := false var connecting := false var match_over := false var winner := "DRAW" func _initialize() -> void: call_deferred("run") func run() -> void: var game := State.new() root.add_child(game) var music := MusicDirector.new() music.game = game game.add_child(music) await process_frame await process_frame assert(music.layers.size() == 4) for player in music.layers: assert(player.playing) assert(player.stream.loop_mode == AudioStreamWAV.LOOP_FORWARD) assert(music.state == "menu") game.connecting = true await create_timer(0.1).timeout assert(music.state == "lobby") game.active = true await create_timer(0.1).timeout assert(music.state == "combat" and music.cue.playing) game.paused = true await create_timer(0.1).timeout assert(music.state == "pause") game.match_over = true await create_timer(0.1).timeout assert(music.state == "results") MusicDirector.volume = 0 await create_timer(0.1).timeout assert(AudioServer.is_bus_mute(AudioServer.get_bus_index("Music"))) game.queue_free() await process_frame print("MUSIC MENU / LOBBY / COMBAT / PAUSE / RESULTS / MUTE PASS") quit()