#pragma once

#include "CoreMinimal.h"
#include "AnimLayerUpdateInterface.h"
#include "BaseSurvivorAnimInstance.h"
#include "ThrowingKnivesHitSubAnimInstance.generated.h"

UCLASS(Blueprintable, NonTransient)
class UThrowingKnivesHitSubAnimInstance : public UBaseSurvivorAnimInstance, public IAnimLayerUpdateInterface
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _hitByKnifeTrigger;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _knifeHitCausedKOTrigger;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _knifeHitCausedDamageTrigger;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _useAlternateHitReactionState;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	float _knifeHitStateHitAngle;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	float _alternateKnifeHitStateHitAngle;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _isCrawling;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _hitByKnifeTriggerEventDriven;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _knifeHitCausedDamageTriggerEventDriven;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool _knifeHitCausedKOTriggerEventDriven;

public:
	UThrowingKnivesHitSubAnimInstance();
};

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