42 lines
1.2 KiB
GDScript
42 lines
1.2 KiB
GDScript
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()
|