class_name CooldownTimer var cooldown: float = 100 var lastStart: int = 0 var speedScale: float = 1 func _init(cd: float = 100): cooldown = cd func centralTime() -> float: return cooldown / speedScale func isCooldowned() -> bool: return timeSinceLastStart() >= centralTime() func start() -> bool: var state = isCooldowned() if state: lastStart = WorldManager.getTime() return state func timeSinceLastStart() -> float: return WorldManager.getTime() - lastStart func percent() -> float: return timeSinceLastStart() / centralTime()