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(): open_scoreboard() evaluate_player(current_strokes, PAR[current_level_id]) post_game = true 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 current_strokes = 0 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() $Evaluation.hide() func evaluate_player(strokes, par): if strokes <= 1: $Evaluation/EvaluationLabel.text = "HOLE IN ONE" $Evaluation.show() return var diff = strokes - par if diff < -2: $Evaluation/EvaluationLabel.text = "%d" % diff elif diff == -2: $Evaluation/EvaluationLabel.text = "EAGLE" elif diff == -1: $Evaluation/EvaluationLabel.text = "BIRDIE" elif diff == 0: $Evaluation/EvaluationLabel.text = "PAR" elif diff == 1: $Evaluation/EvaluationLabel.text = "BOGEY" elif diff == 2: $Evaluation/EvaluationLabel.text = "DOUBLE BOGEY" else: $Evaluation/EvaluationLabel.text = "+%d" % diff $Evaluation.show()