#pragma once

#include "CoreMinimal.h"
#include "FirecrackerSpawner.h"
#include "FogVialSpawner.generated.h"

class UFloatValueStrategy;

UCLASS(Blueprintable)
class DBDSURVIVORCOLLECTABLES_API AFogVialSpawner : public AFirecrackerSpawner
{
	GENERATED_BODY()

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

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

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

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

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

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

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

protected:
	UFUNCTION(BlueprintCallable)
	void OnItemCooldownTimerEnd();

public:
	UFUNCTION(BlueprintCallable, Exec)
	void DBD_FogVialResetCharge();

protected:
	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, BlueprintCosmetic)
	void Cosmetic_OnCreateFogCloud();

	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, BlueprintCosmetic)
	void Cosmetic_OnCooldownTimerEnd();

public:
	AFogVialSpawner();
};

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