ld55/src3/Level/level.gd

50 lines
1.2 KiB
GDScript

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()