// Project Lab - NHTV Igad

#pragma once
#include "AbilityState.generated.h"

UCLASS()
class AAbilityState : public AActor
{
	GENERATED_BODY()
public:
	// Sets the ability to be on cooldown
	virtual void NativeSetCooldown();
	UFUNCTION(BlueprintNativeEvent, Category = "Ability State")
	void SetCooldown();

	UFUNCTION(BlueprintCallable, Category = "Ability State")
	bool IsMaxed() const;

	// Total duration of cooldown
	UPROPERTY(BlueprintReadWrite)
	float currentCooldownDuration;

	// Current state of cooldown going from max->0
	UPROPERTY(BlueprintReadWrite)
	float onCooldownTimer;

	// Current state of cooldown going from 1->0
	UPROPERTY(BlueprintReadOnly)
	float cooldownRate;

	UPROPERTY(BlueprintReadOnly)
	float power;
	UPROPERTY(BlueprintReadOnly)
	bool toggleState;
	UPROPERTY(BlueprintReadOnly)
	class UAbilityInfo* info;
};
