xanarch-td/scripts/ui/GameOver.gd
2026-06-03 21:53:16 -04:00

30 lines
965 B
GDScript

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