2026-02-10 00:05:50 -05:00
|
|
|
extends Control
|
|
|
|
|
|
|
|
|
|
var game_mode
|
2026-02-10 22:11:47 -05:00
|
|
|
var stage = 0
|
2026-02-10 00:05:50 -05:00
|
|
|
var word_select
|
|
|
|
|
var main_buttons
|
|
|
|
|
var fade
|
2026-02-10 22:11:47 -05:00
|
|
|
var header
|
2026-02-10 00:05:50 -05:00
|
|
|
var word_select_button = preload("res://scenes/objects/ui/word_select_button.tscn")
|
2026-02-15 11:22:10 -05:00
|
|
|
var audio_phase = false
|
2026-02-10 00:05:50 -05:00
|
|
|
|
|
|
|
|
func check_text_files(path):
|
|
|
|
|
var dir = DirAccess.open(path)
|
|
|
|
|
if dir:
|
|
|
|
|
dir.list_dir_begin()
|
|
|
|
|
var file_name = dir.get_next()
|
|
|
|
|
while file_name != "":
|
|
|
|
|
if not dir.current_is_dir():
|
|
|
|
|
var set_name = file_name.trim_suffix(".txt").capitalize()
|
|
|
|
|
var new_select_button = word_select_button.instantiate()
|
|
|
|
|
new_select_button.text = set_name
|
|
|
|
|
#print(set_name)
|
|
|
|
|
word_select.add_child(new_select_button)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
file_name = dir.get_next()
|
|
|
|
|
else:
|
|
|
|
|
print("An error occurred when trying to access the path.")
|
|
|
|
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
|
|
|
func _ready() -> void:
|
2026-02-14 18:01:27 -05:00
|
|
|
$BackgroundMusic.play()
|
|
|
|
|
$BackgroundMusicAlt.play()
|
2026-02-10 00:05:50 -05:00
|
|
|
game_mode = null
|
2026-02-10 22:11:47 -05:00
|
|
|
header = self.get_node("Header")
|
2026-02-10 00:05:50 -05:00
|
|
|
fade = self.get_node("Fade")
|
|
|
|
|
fade.visible = true
|
|
|
|
|
main_buttons = self.get_node("MainButtons")
|
|
|
|
|
word_select = self.get_node("WordSelectScroll").get_node("WordSelect")
|
|
|
|
|
check_text_files("res://gameplay/word_sets")
|
|
|
|
|
|
|
|
|
|
var tween := create_tween()
|
|
|
|
|
tween.parallel().tween_property(fade, "modulate:a", 0, 0.5).set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT)
|
|
|
|
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
|
|
|
func _process(delta: float) -> void:
|
2026-02-15 11:22:10 -05:00
|
|
|
if audio_phase == true:
|
|
|
|
|
$BackgroundMusic.volume_db = -80
|
|
|
|
|
$BackgroundMusicAlt.volume_db = -10
|
|
|
|
|
else:
|
|
|
|
|
$BackgroundMusic.volume_db = -10
|
|
|
|
|
$BackgroundMusicAlt.volume_db = -80
|
2026-02-10 00:05:50 -05:00
|
|
|
|
|
|
|
|
func open_word_menu():
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
func _on_comet_pressed() -> void:
|
2026-02-10 22:11:47 -05:00
|
|
|
header.text = "Select Word Set"
|
|
|
|
|
stage = 1
|
2026-02-10 00:05:50 -05:00
|
|
|
game_mode = "comet"
|
|
|
|
|
self.get_node("ButtonPress").play()
|
|
|
|
|
main_buttons.visible = false
|
|
|
|
|
word_select.visible = true
|
2026-02-15 11:22:10 -05:00
|
|
|
audio_phase = true
|
2026-02-14 18:01:27 -05:00
|
|
|
|
2026-02-10 00:05:50 -05:00
|
|
|
func _on_cascade_pressed() -> void:
|
2026-02-10 22:11:47 -05:00
|
|
|
header.text = "Select Word Set"
|
|
|
|
|
stage = 1
|
2026-02-10 00:05:50 -05:00
|
|
|
game_mode = "cascade"
|
|
|
|
|
self.get_node("ButtonPress").play()
|
|
|
|
|
main_buttons.visible = false
|
|
|
|
|
word_select.visible = true
|
2026-02-15 11:22:10 -05:00
|
|
|
audio_phase = true
|
2026-02-14 18:01:27 -05:00
|
|
|
|
|
|
|
|
func _on_lessons_pressed() -> void:
|
|
|
|
|
$Error.play()
|
|
|
|
|
|
|
|
|
|
func _on_options_pressed() -> void:
|
|
|
|
|
$Error.play()
|
2026-02-10 22:11:47 -05:00
|
|
|
|
|
|
|
|
func _on_quit_pressed() -> void:
|
|
|
|
|
$BackgroundMusic.stop()
|
|
|
|
|
$Bye.play()
|
|
|
|
|
var tween := create_tween()
|
|
|
|
|
tween.parallel().tween_property(fade, "modulate:a", 1, 0.5).set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT)
|
|
|
|
|
await get_tree().create_timer(1.5).timeout
|
|
|
|
|
get_tree().quit()
|
|
|
|
|
|
|
|
|
|
func _input(event):
|
|
|
|
|
if event is InputEventKey and event.pressed:
|
|
|
|
|
if event.keycode == KEY_ESCAPE:
|
|
|
|
|
if stage == 1:
|
|
|
|
|
header.text = "Select Mode"
|
|
|
|
|
$Back.play()
|
|
|
|
|
stage = 0
|
|
|
|
|
game_mode = null
|
|
|
|
|
main_buttons.visible = true
|
|
|
|
|
word_select.visible = false
|
2026-02-15 11:22:10 -05:00
|
|
|
audio_phase = false
|