- select screen portraits load via pck-safe loader (the blank-cards bug in the shipped build) - Settings (title menu + persisted user://settings.json): fullscreen, hitbox viewer default, master volume - Esc: pause menu in fights (resume/rematch/select/menu), back-to-title from select/editor/settings - FOITIN_SHOT env hook smoke-tests exported builds end-to-end Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
61 lines
1.8 KiB
GDScript
61 lines
1.8 KiB
GDScript
extends Node2D
|
|
## Settings page: fullscreen, hitbox viewer default, master volume.
|
|
|
|
func _ready() -> void:
|
|
var bg := ColorRect.new()
|
|
bg.color = Color("#14161c")
|
|
bg.size = Vector2(1280, 720)
|
|
add_child(bg)
|
|
var title := Label.new()
|
|
title.text = "SETTINGS"
|
|
title.add_theme_font_size_override("font_size", 48)
|
|
title.position = Vector2(540, 80)
|
|
add_child(title)
|
|
|
|
var fs := CheckBox.new()
|
|
fs.text = "Fullscreen"
|
|
fs.button_pressed = Settings.fullscreen
|
|
fs.position = Vector2(480, 220)
|
|
fs.add_theme_font_size_override("font_size", 26)
|
|
fs.toggled.connect(func(v): Settings.fullscreen = v; Settings.save())
|
|
add_child(fs)
|
|
|
|
var boxes := CheckBox.new()
|
|
boxes.text = "Show hitboxes (training)"
|
|
boxes.button_pressed = Settings.show_boxes
|
|
boxes.position = Vector2(480, 280)
|
|
boxes.add_theme_font_size_override("font_size", 26)
|
|
boxes.toggled.connect(func(v): Settings.show_boxes = v; Settings.save())
|
|
add_child(boxes)
|
|
|
|
var vol_label := Label.new()
|
|
vol_label.text = "Master volume"
|
|
vol_label.position = Vector2(480, 360)
|
|
vol_label.add_theme_font_size_override("font_size", 26)
|
|
add_child(vol_label)
|
|
var vol := HSlider.new()
|
|
vol.min_value = 0
|
|
vol.max_value = 100
|
|
vol.value = Settings.volume
|
|
vol.position = Vector2(480, 400)
|
|
vol.size = Vector2(320, 30)
|
|
vol.value_changed.connect(func(v): Settings.volume = v; Settings.save())
|
|
add_child(vol)
|
|
|
|
var back := Button.new()
|
|
back.text = "BACK (Esc)"
|
|
back.position = Vector2(540, 520)
|
|
back.size = Vector2(200, 52)
|
|
back.add_theme_font_size_override("font_size", 24)
|
|
back.pressed.connect(_back)
|
|
add_child(back)
|
|
|
|
|
|
func _back() -> void:
|
|
get_tree().change_scene_to_file("res://engine/scenes/Title.tscn")
|
|
|
|
|
|
func _input(event: InputEvent) -> void:
|
|
if event is InputEventKey and event.pressed and event.keycode == KEY_ESCAPE:
|
|
_back()
|