#pragma once

#include "CoreMinimal.h"
#include "BaseSurvivorAnimInstance.h"
#include "GameplayTagContainer.h"
#include "HookSurvivorSubAnimInstance.generated.h"

class UAnimSequence;
class UBlendSpace;

UCLASS(Blueprintable, NonTransient)
class DBDANIMATION_API UHookSurvivorSubAnimInstance : public UBaseSurvivorAnimInstance
{
	GENERATED_BODY()

protected:
	UPROPERTY(BlueprintReadWrite, Transient)
	bool _isDead;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool _isHooked;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool _isSacrificeStruggling;

	UPROPERTY(BlueprintReadWrite, Transient)
	float _sacrificeStrugglePercent;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float _struggleThreshold;

	UPROPERTY(EditAnywhere)
	FGameplayTag _asHookIdleTag;

	UPROPERTY(EditAnywhere)
	FGameplayTag _bsSacrificeStruggleTag;

	UPROPERTY(EditAnywhere)
	FGameplayTag _asSpiderStruggleTag;

	UPROPERTY(EditAnywhere)
	FGameplayTag _asHookedDeathTag;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	UAnimSequence* _asHookIdle;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	UBlendSpace* _bsSacrificeStruggle;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	UAnimSequence* _asSpiderStruggle;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	UAnimSequence* _asHookedDeath;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool _closetIdleToBaseRule;

public:
	UHookSurvivorSubAnimInstance();
};

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