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.
76 lines
2.3 KiB
GDScript
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()
|