extends Spatial const NUM_LEVELS = 9 const PAR = [1,2,3,4,5,6,7,8,9] # level control var current_level_id = 0 var levels = [] var post_game = false # stroke control var current_strokes = 0 var strokes_per_level = [0,0,0,0,0,0,0,0,0] # Called when the node enters the scene tree for the first time. func _ready(): for i in range(NUM_LEVELS): levels.append(get_node("/root/Game/Level%d" % (i+1))) current_strokes = 0 levels[0].show() # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): if Input.is_action_just_pressed("ui_cancel"): close_scoreboard() get_tree().paused = true $PausePopup.show() Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) func _on_QuitButton_pressed(): get_tree().quit() func _on_ResumeButton_pressed(): $PausePopup.hide() get_tree().paused = false Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) func _on_MainMenuButton_pressed(): get_tree().paused = false get_tree().change_scene("res://scenes/levels/MainMenu.tscn") func end_level(): # save current strokes and reset strokes_per_level[current_level_id] = current_strokes current_strokes = 0 post_game = true open_scoreboard() func add_stroke(): current_strokes += 1 func revoke_stroke(): current_strokes -= 1 func open_scoreboard(): strokes_per_level[current_level_id] = current_strokes $Scoreboard.update_values(strokes_per_level, PAR) $Scoreboard.show() func close_scoreboard(): $Scoreboard.hide() func is_post_game(): return post_game func next_level(): post_game = false levels[current_level_id].hide() current_level_id = current_level_id + 1 if current_level_id >= NUM_LEVELS: get_tree().change_scene("res://scenes/levels/MainMenu.tscn") return # load next level levels[current_level_id].show() close_scoreboard()