extends Control onready var level_list = $ScrollContainer/MarginContainer/Levels func _ready(): 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(): for child in level_list.get_children(): child.queue_free() var chapter_id = 0 levels.reload() 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: var hb = HBoxContainer.new() var b = Button.new() b.text = level.title b.align = HALIGN_LEFT b.size_flags_horizontal = SIZE_EXPAND_FILL b.connect("pressed", self, "load", [chapter_id, level_id]) 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)) 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) if badge.active: game.notify("You get a golden badge for each level you solve without using the playing cards! Can you solve them all using the command line?", badge, "cli-badge") level_id += 1 chapter_id += 1