2020-12-23 12:01:07 +01:00
|
|
|
extends Control
|
|
|
|
|
|
|
|
onready var level_list = $ScrollContainer/MarginContainer/Levels
|
|
|
|
|
|
|
|
func _ready():
|
2021-01-05 13:27:52 +01:00
|
|
|
reload()
|
|
|
|
|
|
|
|
func load(chapter_id, level_id):
|
|
|
|
game.current_chapter = chapter_id
|
|
|
|
game.current_level = level_id
|
|
|
|
get_tree().change_scene("res://scenes/main.tscn")
|
|
|
|
|
|
|
|
func back():
|
|
|
|
get_tree().change_scene("res://scenes/title.tscn")
|
|
|
|
|
|
|
|
|
|
|
|
func reload():
|
2021-09-06 23:15:34 +02:00
|
|
|
|
2021-01-05 13:27:52 +01:00
|
|
|
for child in level_list.get_children():
|
|
|
|
child.queue_free()
|
|
|
|
|
2020-12-23 12:01:07 +01:00
|
|
|
var chapter_id = 0
|
|
|
|
|
2021-01-05 13:05:46 +01:00
|
|
|
levels.reload()
|
|
|
|
|
2020-12-23 12:01:07 +01:00
|
|
|
for chapter in levels.chapters:
|
|
|
|
var level_id = 0
|
|
|
|
|
|
|
|
var l = Label.new()
|
|
|
|
l.text = chapter.slug
|
|
|
|
l.set("custom_fonts/font", preload("res://fonts/big.tres"))
|
|
|
|
l.align = HALIGN_CENTER
|
|
|
|
level_list.add_child(l)
|
|
|
|
|
|
|
|
for level in chapter.levels:
|
2021-01-21 15:08:59 +01:00
|
|
|
var hb = HBoxContainer.new()
|
|
|
|
|
2020-12-23 12:01:07 +01:00
|
|
|
var b = Button.new()
|
|
|
|
b.text = level.title
|
|
|
|
b.align = HALIGN_LEFT
|
2021-01-21 15:08:59 +01:00
|
|
|
b.size_flags_horizontal = SIZE_EXPAND_FILL
|
|
|
|
|
2020-12-23 12:01:07 +01:00
|
|
|
b.connect("pressed", self, "load", [chapter_id, level_id])
|
2021-01-07 11:36:11 +01:00
|
|
|
var slug = chapter.slug + "/" + level.slug
|
|
|
|
if slug in game.state["solved_levels"]:
|
|
|
|
b.set("custom_colors/font_color", Color(0.1, 0.8, 0.1, 1))
|
|
|
|
b.set("custom_colors/font_color_hover", Color(0.1, 0.8, 0.1, 1))
|
|
|
|
b.set("custom_colors/font_color_pressed", Color(0.1, 0.8, 0.1, 1))
|
2021-01-21 15:08:59 +01:00
|
|
|
|
|
|
|
hb.add_child(b)
|
|
|
|
#
|
|
|
|
var badge = preload("res://scenes/cli_badge.tscn").instance()
|
|
|
|
hb.add_child(badge)
|
|
|
|
badge.active = slug in game.state["cli_badge"]
|
|
|
|
badge.sparkling = false
|
|
|
|
|
|
|
|
level_list.add_child(hb)
|
2021-02-04 15:19:54 +01:00
|
|
|
|
|
|
|
if badge.active:
|
2021-09-15 18:15:10 +02:00
|
|
|
game.notify("GOLDEN_BADGE", badge, "cli-badge")
|
2020-12-23 12:01:07 +01:00
|
|
|
level_id += 1
|
|
|
|
|
|
|
|
chapter_id += 1
|
2021-01-28 11:28:47 +01:00
|
|
|
|
|
|
|
|
2021-01-28 11:55:53 +01:00
|
|
|
|
2021-02-04 16:11:56 +01:00
|
|
|
|
|
|
|
|
2021-02-11 10:46:08 +01:00
|
|
|
|
2021-02-04 16:11:56 +01:00
|
|
|
|