## GameOver.gd ## Displayed when the Security System is destroyed or all 31 waves are survived. extends Control @onready var title_label: Label = $VBox/Title @onready var wave_label: Label = $VBox/WaveReached @onready var restart_btn: Button = $VBox/RestartButton @onready var quit_btn: Button = $VBox/QuitButton func _ready() -> void: hide() EventBus.security_system_destroyed.connect(_on_defeat) EventBus.wave_completed.connect(_on_wave_completed) restart_btn.pressed.connect(_on_restart) quit_btn.pressed.connect(get_tree().quit) func _on_defeat() -> void: title_label.text = "SECURITY SYSTEM DESTROYED" wave_label.text = "Survived %d / 31 waves" % GameState.wave_number show() func _on_wave_completed(wave_number: int) -> void: if wave_number >= 31: title_label.text = "VICTORY" wave_label.text = "All 31 waves survived!" GameState.set_phase(GameState.Phase.GAME_OVER) show() func _on_restart() -> void: get_tree().reload_current_scene()