Explosion_der_Spiele/scripts/levels/death_screen.gd
copilot 1d9e0a6532 Wire quest flow and combat across all levels.
Connect bear-save, massage, farm paywall, cheese catapults, Dressler hijack, final boss phases, fat-stim UI, and scene fixes so the satire path plays through.
2026-09-14 19:08:00 +02:00

58 lines
1.6 KiB
GDScript

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: ColorRect = $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
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_timer >= 10.0:
_skull_timer = 0.0
skull.visible = true
await get_tree().create_timer(1.0).timeout
skull.visible = false
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()