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