56 lines
1.2 KiB
GDScript
56 lines
1.2 KiB
GDScript
class_name GameStateManager extends Node
|
|
|
|
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
|