extends Node2D var lvl = null var next_level = null func _ready(): var sz = Gstate.musics.size() $AudioStreamPlayer.stream = Gstate.musics[randi_range(0, sz-1)] $AudioStreamPlayer.play() var nxt = Gstate.next_level() if nxt: self.next_level = nxt go_next_level() func _process(_delta): var nxt = Gstate.next_level() if nxt: $SFXTeleport.play() self.next_level = nxt Gstate.waiting = true $NextLevelTimer.start() func go_next_level(): for c in get_node('%Slot').get_children(): get_node('%Slot').remove_child(c) get_node('%Slot').add_child(self.next_level) for actor in get_tree().get_nodes_in_group('actors'): if actor.player: Gstate.camera.position = actor.position Gstate.current_actor_possessed = actor actor.set_state(ActorPossessed.new(actor)) if not Gstate.is_final: var start = preload("res://StartLevel/start_level.tscn").instantiate() add_child(start) get_tree().paused = true else: get_tree().change_scene_to_file("res://Level/final_level.tscn") func _on_next_level_timer_timeout(): Gstate.waiting = false go_next_level() func _on_change_music_timer_timeout(): var sz = Gstate.musics.size() $AudioStreamPlayer.stream = Gstate.musics[randi_range(0, sz-1)] $AudioStreamPlayer.play()