#pragma once

#include "CoreMinimal.h"
#include "Perk.h"
#include "Templates/SubclassOf.h"
#include "BitterMurmur.generated.h"

class UStatusEffect;
class UFloatValueStrategy;
class UPerkTierValueStrategy;

UCLASS(Blueprintable, meta=(BlueprintSpawnableComponent))
class DBDCOMPETENCE_API UBitterMurmur : public UPerk
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TSubclassOf<UStatusEffect> _revealAuraStatusEffect;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Export, meta=(AllowPrivateAccess=true))
	UFloatValueStrategy* _onGeneratorFixedAuraRevealTime;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Export, meta=(AllowPrivateAccess=true))
	UPerkTierValueStrategy* _onFinalGeneratorRevealTimes;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Export, meta=(AllowPrivateAccess=true))
	UFloatValueStrategy* _maxDistanceFromGenerator;

public:
	UFUNCTION(BlueprintPure)
	float GetRevealTime() const;

	UFUNCTION(BlueprintPure)
	float GetMaxDistanceFromGenerator() const;

	UFUNCTION(BlueprintPure)
	float GetFixedRevealTime() const;

public:
	UBitterMurmur();
};

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