pollen-not-included/utility/game_state.gd

65 lines
1.3 KiB
GDScript

class_name GameStateManager extends Node
var placing_drone : bool = false
var level_timer : float = 0.0
var level_started : bool = false
var level_complete : bool = false
var gathered_nectar : int = 0 :
get:
return gathered_nectar
set(value):
gathered_nectar = value
if gathered_nectar > required_nectar:
game_win()
@export var required_nectar : int = 100
@export var level_par : int = 2
@export var drones_used : int = 0
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:
level_timer += delta
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
# get_tree().paused = true
func game_lose():
pass
func reset():
level_timer = 0.0
level_started = false
level_complete = false
gathered_nectar = 0
drones_used = 0