class_name GameManagerType extends Node ## Autoloaded singleton encapsulating game state. ## Emitted just after `delta` is added to the player's grunk tank. signal grunk_collected(delta: float) ## Emitted just before the alert level is raised to `new_value`. signal alert_raised(new_value: int) ## Emitted just before the alert level is reset to zero. signal alert_cleared const MAX_ALERT := 6 var grunk_tank := 0.0 var alert_level := 0 ## Add to the player's grunk tank. func collect_grunk(delta: float) -> void: grunk_tank += delta grunk_collected.emit(delta) ## Raise the alert level, if possible. func raise_alert(delta: int) -> void: var new_value := clampi(alert_level + delta, 0, MAX_ALERT) if new_value != alert_level: alert_raised.emit(new_value) alert_level = new_value ## Reset the alert level to zero. func clear_alert() -> void: alert_cleared.emit() alert_level = 0