Explosion_der_Spiele/scripts/levels/title_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

76 lines
2.3 KiB
GDScript

extends Control
## Title: pixel rain, Pay2Win, loud music, Burger-Cham, first-run language.
@onready var subtitle: Label = $Subtitle
@onready var bubble: Label = $Bubble
@onready var start_btn: Button = $StartButton
@onready var rain: Node2D = $Rain
@onready var lang_panel: PanelContainer = $LangPanel
@onready var music_hint: Label = $MusicHint
var _rain_sprites: Array[Sprite2D] = []
func _ready() -> void:
GameState.current_scene_id = "title_screen"
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
AudioDirector.burger_cham_enabled = true
AudioDirector.play_title_music()
_refresh()
Locale.locale_changed.connect(_refresh)
_spawn_rain()
lang_panel.visible = Settings.needs_language_picker()
start_btn.visible = not lang_panel.visible
func _refresh() -> void:
subtitle.text = Locale.tr_key("title_pay2win")
bubble.text = Locale.tr_key("title_bubble")
start_btn.text = Locale.tr_key("menu_start")
music_hint.text = Locale.tr_key("title_music_hint")
$LangPanel/Margin/VBox/Title.text = Locale.tr_key("lang_pick_title")
$LangPanel/Margin/VBox/BtnDE.text = Locale.tr_key("lang_de")
$LangPanel/Margin/VBox/BtnEN.text = Locale.tr_key("lang_en")
$LangPanel/Margin/VBox/BtnBY.text = Locale.tr_key("lang_by")
func _spawn_rain() -> void:
var paths = [
"res://assets/sprites/placeholders/mario.png",
"res://assets/sprites/placeholders/sonic.png",
"res://assets/sprites/placeholders/burger.png",
]
for i in range(28):
var s := Sprite2D.new()
s.texture = load(paths[i % paths.size()])
s.position = Vector2(randf() * 1280.0, randf() * -720.0)
s.scale = Vector2(3, 3)
s.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST
rain.add_child(s)
_rain_sprites.append(s)
func _process(delta: float) -> void:
for s in _rain_sprites:
s.position.y += (90.0 + s.get_index() * 2.5) * delta
if s.position.y > 760.0:
s.position.y = -40.0
s.position.x = randf() * 1280.0
func _pick_lang(lang: String) -> void:
Settings.set_language(lang)
lang_panel.visible = false
start_btn.visible = true
_refresh()
func _on_lang_de() -> void:
_pick_lang("de")
func _on_lang_en() -> void:
_pick_lang("en")
func _on_lang_by() -> void:
_pick_lang("by")
func _on_start_pressed() -> void:
if Settings.needs_language_picker():
lang_panel.visible = true
return
AudioDirector.burger_cham_enabled = false
GameState.start_new_game()