retrace/Global/Pills.gd

42 lines
936 B
GDScript

extends Node
var _level: float setget _set_level, get_level
var _min: float = 0.0
var _max: float = 6.0
var _decrease_per_second: float = 0.2
var _pill_add_amount: float = 2.0
# Returns the max level
func get_max() -> float:
return _max
# Returns the exact current level as a floating point number between min and max
func get_level() -> float:
return _level
# Returns the rounded level, e.g. for behavior which changes stepwise (X at level 6, Y at level 5, ...)
func get_round_level():
return ceil(get_level())
func _set_level(new_level: float):
# Make sure the level stays between min and max
_level = clamp(new_level, _min, _max)
func _ready() -> void:
# Start with the maximum druggedness
_set_level(_max)
func _process(delta: float) -> void:
# Gradually decrease the level by the decrease per second
_set_level(_level - _decrease_per_second * delta)
func take_pill():
_set_level(_level + _pill_add_amount)