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 ( ) :
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 :
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 " )
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
func toggle_music ( ) :
var music = game . find_node ( " Music " )
if music . volume_db > - 20 :
music . volume_db -= 100
else :
music . volume_db += 100