Files
Defensaria/Game/Menu/mapselector.gd
2025-09-12 15:46:49 +02:00

80 lines
2.7 KiB
GDScript

extends Control
var save_path = "user://map_scores.save"
var map_scores = {}
func LoadMap1() -> void:
get_tree().change_scene_to_file("res://Game/Maps/map_1.tscn")
pass # Replace with function body.
func LoadMap2() -> void:
get_tree().change_scene_to_file("res://Game/Maps/map_2.tscn")
pass # Replace with function body.
func LoadMap3() -> void:
get_tree().change_scene_to_file("res://Game/Maps/map_3.tscn")
pass # Replace with function body.
func LoadMap4() -> void:
get_tree().change_scene_to_file("res://Game/Maps/map_4.tscn")
pass # Replace with function body.
func _ready() -> void:
loadData()
get_node("VBoxContainer/HBoxContainer/first/Button").connect("button_up", LoadMap1)
get_node("VBoxContainer/HBoxContainer/second/Button").connect("button_up", LoadMap2)
get_node("VBoxContainer/HBoxContainer/third/Button").connect("button_up", LoadMap3)
get_node("VBoxContainer/HBoxContainer/fourth/Button").connect("button_up", LoadMap4)
var unlocker = true
for i in get_node("VBoxContainer").get_children():
for ii in i.get_children():
if ii.get_node("Label2").text == "Haven't finished yet":
if unlocker:
unlocker = false
ii.get_node("Button").get_child(0).hide()
ii.get_node("Button").disabled = false
else:
ii.get_node("Button").get_child(0).show()
ii.get_node("Button").disabled = true
else:
ii.get_node("Button").get_child(0).hide()
ii.get_node("Button").disabled = false
func loadData() -> void:
if FileAccess.file_exists(save_path):
var file = FileAccess.open(save_path, FileAccess.READ)
if file:
map_scores = file.get_var()
print(map_scores)
file.close()
get_node("VBoxContainer/HBoxContainer/first/Label2").text = "Haven't finished yet" if map_scores["Map1"] == 0 else "Scored: " + str(map_scores["Map1"]) + " out of 10"
get_node("VBoxContainer/HBoxContainer/second/Label2").text = "Haven't finished yet" if map_scores["Map2"] == 0 else "Scored: " + str(map_scores["Map2"]) + " out of 10"
get_node("VBoxContainer/HBoxContainer/third/Label2").text = "Haven't finished yet" if map_scores["Map3"] == 0 else "Scored: " + str(map_scores["Map3"]) + " out of 10"
get_node("VBoxContainer/HBoxContainer/fourth/Label2").text = "Haven't finished yet" if map_scores["Map4"] == 0 else "Scored: " + str(map_scores["Map4"]) + " out of 10"
else:
map_scores["Map1"] = 0
map_scores["Map2"] = 0
map_scores["Map3"] = 0
map_scores["Map4"] = 0
save_scores()
loadData()
func save_scores():
var file = FileAccess.open(save_path, FileAccess.WRITE)
if file:
file.store_var(map_scores)
file.close()
func _on_button_pressed() -> void:
get_tree().change_scene_to_file("res://Game/Menu/main.tscn")
pass # Replace with function body.