#pragma once

#include "CoreMinimal.h"
#include "KillerAbilityData.h"
#include "DBDTunableRowHandle.h"
#include "PlayerPerspectiveChangeTargetData.h"
#include "K41HeadModeData.generated.h"

class UFloatValueStrategy;

UCLASS(Blueprintable)
class THEK41_API UK41HeadModeData : public UKillerAbilityData
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced, meta=(AllowPrivateAccess=true))
	UFloatValueStrategy* _fastTravelChargePercentageRate;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced, meta=(AllowPrivateAccess=true))
	UFloatValueStrategy* _fastTravelDischargePercentageRate;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FDBDTunableRowHandle _fastTravelPauseDurationBeforeActivatingCharge;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FPlayerPerspectiveChangeTargetData _fastTravelPlayerPerspectiveSettings;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FDBDTunableRowHandle _fastTravelPlayerPerspectiveChangeDuration;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FDBDTunableRowHandle _minChargeRequiredToTriggerInteraction;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FDBDTunableRowHandle _gutsAttackObstructionAngle;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced, meta=(AllowPrivateAccess=true))
	UFloatValueStrategy* _lowModeVignetteIntensity;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced, meta=(AllowPrivateAccess=true))
	UFloatValueStrategy* _lowModeNonDistortedAreaIntensity;

public:
	UK41HeadModeData();
};

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