class_name GameStateManager extends Node ## THIS SHOULD NOT EXIST HERE BUT I AM NOT GOING TO MAKE A NEW CLASS FOR IT RIGHT NOW @onready var default_cursor = preload("res://resources/cursors/pointer_a.png") var placing_drone : bool = false var level_timer : float = 0.0 var level_number : int = 0 var level_started : bool = false var level_complete : bool = false var game_over : bool = false var gathered_nectar : int = 0 : get: return gathered_nectar set(value): gathered_nectar = value if gathered_nectar > required_nectar and !level_complete: game_win() var required_nectar : int = 100 var level_par : int = 2 var drones_used : int = 0 var bees_available : int = 0 var dead_bees : int = 0 : get: return dead_bees set(value): dead_bees = value if dead_bees >= bees_available and !game_over: game_lose() var level_points : int = 0 : get: return required_nectar * 100 - round(level_timer) * 10 - drones_used * 100 var judge_level_par : int = 0 : get: ## Return an amount of points based on the difference between the number of drones_used and the level_par ## Using more drones than the par is bad and should result in less points var diff = drones_used - level_par if diff > 0: return -diff * 100 else: return 0 func _process(delta): if level_started and !level_complete and !game_over: level_timer += delta func bee_died(): dead_bees += 1 func add_nectar(): gathered_nectar += 1 func add_drone(): drones_used += 1 func remove_drone(): drones_used -= 1 func game_start(): level_started = true func game_win(): Log.pr("Game win") level_complete = true HighScoreMgr.add_honey(gathered_nectar) HighScoreMgr.update_highscore(level_number, level_points) HighScoreMgr.add_dead_bees(dead_bees) HighScoreMgr.save() func game_lose(): Log.pr("Game lose") game_over = true HighScoreMgr.add_dead_bees(dead_bees) HighScoreMgr.save() func reset(): level_timer = 0.0 level_started = false level_complete = false gathered_nectar = 0 drones_used = 0 dead_bees = 0 func reset_cursor(): Input.set_custom_mouse_cursor(default_cursor, Input.CURSOR_ARROW, Vector2(8, 8))