#pragma once

#include "CoreMinimal.h"
#include "PlayerAnimInstance.h"
#include "GuardAnimInstance.generated.h"

class AKnightGuard;

UCLASS(Blueprintable, NonTransient)
class UGuardAnimInstance : public UPlayerAnimInstance
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	AKnightGuard* _owningGuard;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	float _forwardVelocity;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	float _lateralVelocity;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	float _animSpeed;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	float _animDirection;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _isActive;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _isPatrolling;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _isPatrollingForward;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _isHunting;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _isTeleporting;

public:
	UGuardAnimInstance();
};

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