// 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; };