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.
58 lines
1.6 KiB
GDScript
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()
|