| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- class_name AchievementMenu
- extends Node
- const ACHIEVEMENT_CONTAINER = ("uid://8wnmuhtwu8ib")
- var total_unlocked := 0
- static var unlocked_achievements := "0000000000000000000000000000"
- func _ready() -> void:
- unlocked_achievements = Global.achievements
- spawn_achievement_containers()
- $BG/Border/MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer.get_child(0).grab_focus()
- Global.get_node("GameHUD").hide()
- var percent = int((float(total_unlocked) / Global.achievements.length()) * 100)
- %Progress.text = str(percent) + "% "
- if percent == 100:
- %Progress.modulate = Color("FFB259")
- func _process(_delta: float) -> void:
- if Input.is_action_just_pressed("ui_back"):
- Global.transition_to_scene("res://Scenes/Levels/TitleScreen.tscn")
- func spawn_achievement_containers() -> void:
- var idx := 0
- for i in Global.achievements:
- if Global.HIDDEN_ACHIEVEMENTS.has(idx) and Global.achievements[idx] == "0":
- idx += 1
- continue
- var container = load(ACHIEVEMENT_CONTAINER).instantiate()
- container.achievement_id = idx
- container.unlocked = i == "1" or Global.debug_mode
- if i == "1":
- total_unlocked += 1
- else:
- if $ProgressCalculators.has_node(str(idx)):
- container.total_needed = $ProgressCalculators.get_node(str(idx)).target_number
- container.progress = $ProgressCalculators.get_node(str(idx)).get_progress()
- $BG/Border/MarginContainer/VBoxContainer/ScrollContainer/VBoxContainer.add_child(container)
- idx += 1
- func _exit_tree() -> void:
- Global.get_node("GameHUD").show()
|