#pragma once

#include "CoreMinimal.h"
#include "StatusEffect.h"
#include "StalkerCooldownEffect.generated.h"

class UFloatValueStrategy;

UCLASS(Blueprintable, EditInlineNew, meta=(BlueprintSpawnableComponent))
class CALAMARI_API UStalkerCooldownEffect : public UStatusEffect
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced)
	UFloatValueStrategy* _range;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced)
	UFloatValueStrategy* _inRangeCooldownRate;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced)
	UFloatValueStrategy* _outOfRangeCooldownRate;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced)
	UFloatValueStrategy* _hasteAmount;

protected:
	UFUNCTION(BlueprintPure)
	float GetHasteAmount() const;

public:
	UStalkerCooldownEffect();
};

FORCEINLINE uint32 GetTypeHash(const UStalkerCooldownEffect) { return 0; }
