#pragma once

#include "CoreMinimal.h"
#include "K39BaseTentacleSwingState.h"
#include "GameplayTagContainer.h"
#include "K39TentacleSwingSwingingState.generated.h"

class UCurveFloat;

UCLASS(Blueprintable)
class THEK39_API UK39TentacleSwingSwingingState : public UK39BaseTentacleSwingState
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	UCurveFloat* _fovCurve;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	UCurveFloat* _fovCurvePoweredUp;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FGameplayTagContainer _allowedInteractionSemanticTagsDuringSwing;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FGameplayTagContainer _ignoreCollisionWithPlayerTags;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	float _endSwingDestinationDistanceThreshold;

private:
	UFUNCTION(BlueprintCallable)
	void OnSurvivorInOwnerRangeChanged(const bool inRange);

public:
	UK39TentacleSwingSwingingState();
};

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