#pragma once

#include "CoreMinimal.h"
#include "ProjectileAbilityKillerCosmeticHelperActor.h"
#include "K40ProjectileAbilityKillerCosmeticHelperActor.generated.h"

class ASurvivor;

UCLASS(Blueprintable)
class AK40ProjectileAbilityKillerCosmeticHelperActor : public AProjectileAbilityKillerCosmeticHelperActor
{
	GENERATED_BODY()

protected:
	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, BlueprintCosmetic)
	void Cosmetic_OnProjectileRecalledStart();

	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, BlueprintCosmetic)
	void Cosmetic_OnProjectileRecalledEnd();

	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, BlueprintCosmetic)
	void Cosmetic_OnAxeGrabAvailable_Stop(ASurvivor* attachedProjectileSurvivor);

	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, BlueprintCosmetic)
	void Cosmetic_OnAxeGrabAvailable_Start(ASurvivor* attachedProjectileSurvivor);

	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, BlueprintCosmetic)
	void Cosmetic_IsProjectileGrabbing(const bool isProjectileGrabbing);

public:
	AK40ProjectileAbilityKillerCosmeticHelperActor();
};

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