taqin/src/NewGamePanel.gd

64 lines
1.6 KiB
GDScript3
Raw Normal View History

2020-04-13 17:54:11 +02:00
tool
class_name NewGamePanel
extends PopupPanel
signal start_triggered(config)
2020-05-22 15:34:52 +02:00
const pref_path = "user://preferences.cfg"
var preferences = ConfigFile.new()
2020-05-23 18:27:02 +02:00
var fade_duration = 0.2
onready var tween = $Tween
2020-05-22 15:34:52 +02:00
2020-04-13 17:54:11 +02:00
func _init():
2020-05-22 15:34:52 +02:00
var err = preferences.load(pref_path)
2020-04-13 17:54:11 +02:00
func _ready():
pass
2020-05-23 18:27:02 +02:00
func fade_out():
tween.remove_all()
tween.interpolate_property(self, "modulate:a", 1.0, 0.0, fade_duration, Tween.TRANS_LINEAR, Tween.EASE_IN)
tween.interpolate_callback(self, fade_duration, "hide")
tween.start()
2020-04-13 17:54:11 +02:00
func _on_Cancel_pressed():
2020-05-23 18:27:02 +02:00
fade_out()
2020-04-13 17:54:11 +02:00
func _on_Start_pressed():
2020-05-22 15:34:52 +02:00
if $Panel/HBoxContainer/Easy.pressed:
preferences.set_value("game", "difficulty", "easy")
if $Panel/HBoxContainer/Normal.pressed:
preferences.set_value("game", "difficulty", "normal")
if $Panel/HBoxContainer/Hard.pressed:
preferences.set_value("game", "difficulty", "hard")
preferences.save(pref_path)
emit_signal("start_triggered", preferences)
2020-05-23 18:27:02 +02:00
fade_out()
2020-05-22 15:34:52 +02:00
func _on_NewGamePanel_about_to_show():
$Panel/HBoxContainer/Easy.pressed = false
$Panel/HBoxContainer/Normal.pressed = false
$Panel/HBoxContainer/Hard.pressed = false
var difficulty = preferences.get_value("game", "difficulty", "normal")
match difficulty:
"easy":
$Panel/HBoxContainer/Easy.pressed = true
"normal":
$Panel/HBoxContainer/Normal.pressed = true
"hard":
$Panel/HBoxContainer/Hard.pressed = true
_:
assert("Invalid value")
2020-05-22 15:34:52 +02:00
$Panel/HBoxContainer/Normal.pressed = true
$Panel/Start.grab_focus()
2020-05-23 18:27:02 +02:00
tween.interpolate_property(self, "modulate:a", 0.0, 1.0, 0.3, Tween.TRANS_LINEAR, Tween.EASE_IN)
tween.start()