#pragma once

#include "CoreMinimal.h"
#include "BaseSurvivorAnimInstance.h"
#include "EGuidedState.h"
#include "EInteractionAnimation.h"
#include "SurvivorAnimInstance.generated.h"

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

protected:
	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHooked;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool _isFrightScreaming;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsBeingCarried;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsCrouched;

	UPROPERTY(BlueprintReadWrite, Transient)
	EGuidedState GuidedAction;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsCrawling;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsDead;

	UPROPERTY(BlueprintReadWrite, Transient)
	float MaxSpeed;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsInsideLocker;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsBeingHealed;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsUsingAimItem;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingAimItem;

	UPROPERTY(BlueprintReadWrite, Transient)
	float DropStaggerTimeLeft;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsInteracting;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool Injured;

	UPROPERTY(BlueprintReadWrite, Transient)
	EInteractionAnimation InteractionType;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingHandleItem;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingSmallItem;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingMapItem;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingFirecracker;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingFlashbang;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingVaccine;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingLamentConfiguration;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingFragileObject;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingSprayObject;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingVhs;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingJerryCan;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingWormholeFatherKeyCard;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsHoldingLantern;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool IsArmOverrideDisabled;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool InAir;

	UPROPERTY(BlueprintReadWrite, Transient)
	float _walkAnimSpeed;

	UPROPERTY(BlueprintReadWrite, Transient)
	float Pitch;

	UPROPERTY(BlueprintReadWrite, Transient)
	float Yaw;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool Idle;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool HasAnyMontagePlaying;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool _isMale;

public:
	USurvivorAnimInstance();
};

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