road-rage-tank/levels/level.gd
2026-04-30 05:26:04 -04:00

43 lines
779 B
GDScript

class_name Level
extends Node3D
signal level_started
static var level: Level
@export var active := false
var start_time_msec := 0
static func start_game() -> void:
if level:
level._start_sequence()
static func is_active() -> bool:
if level:
return level.active
else:
return false
func _start_sequence() -> void:
%IntroCutscene.play("intro_cutscene")
func _anim_intro_cutscene_done() -> void:
level.active = true
level.level_started.emit()
level.start_time_msec = Time.get_ticks_msec()
func _ready() -> void:
%ResultsScreen.hide()
level = self
if active:
await get_tree().process_frame
start_game.call_deferred()
func _on_player_died() -> void:
active = false
%DeathAnimation.play(&"death")
%ResultsScreen.update_labels()
%ResultsScreen.show()