30 lines
965 B
GDScript
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()
|