extends Control ## Blinky death screen + absurd revive (Nein=revive, Ja=quit). @onready var title: Label = $Title @onready var cause: Label = $Cause @onready var btn_revive: Button = $ReviveButton @onready var btn_no: Button = $NoButton @onready var btn_yes: Button = $YesButton @onready var hint: Label = $Hint @onready var skull: TextureRect = $Skull @onready var bg: ColorRect = $Bg var _blink: float = 0.0 var _skull_timer: float = 0.0 var _colors: Array[Color] = [ Color(0.05, 0.05, 0.05), Color(0.9, 0.1, 0.4), Color(0.1, 0.8, 0.3), Color(0.2, 0.3, 1.0), Color(1.0, 0.8, 0.1), ] func _ready() -> void: GameState.current_scene_id = "death_screen" Input.mouse_mode = Input.MOUSE_MODE_VISIBLE _refresh() Locale.locale_changed.connect(_refresh) skull.visible = false SpriteFit.apply_texture_rect_budget(skull, SpriteFit.UI_POPUP_PX) func _refresh() -> void: title.text = Locale.tr_key("death_title") cause.text = Locale.tr_key(GameState.last_death_cause_key) btn_revive.text = Locale.tr_key("death_revive") btn_no.text = Locale.tr_key("death_no") btn_yes.text = Locale.tr_key("death_yes") hint.text = Locale.tr_key("death_no_hint") + "\n" + Locale.tr_key("death_yes_hint") func _process(delta: float) -> void: _blink += delta var idx := int(_blink) % _colors.size() bg.color = _colors[idx] _skull_timer += delta if skull.visible: if _skull_timer >= 1.0: skull.visible = false _skull_timer = 0.0 elif _skull_timer >= 10.0: skull.visible = true _skull_timer = 0.0 func _on_revive_pressed() -> void: GameState.revive_continue() func _on_no_pressed() -> void: ## Satire: Nein = trotzdem wiederbeleben GameState.revive_continue() func _on_yes_pressed() -> void: ## Satire: Ja = Spiel beenden → Title GameState.quit_to_title()