// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "NiagaraFunctionLibrary.h"
#include "Components/RadialSlider.h"
#include "BehaviorTree/BlackboardComponent.h"
#include "TurnBaseCombatV2.h"
#include "HoldToInitCombat.generated.h"

class UNiagaraSystem;

UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class THE_TWILIGHT_ABYSS_API UHoldToInitCombat : public UActorComponent
{
	GENERATED_BODY()

public:
	// Sets default values for this component's properties
	UHoldToInitCombat();
	UPROPERTY()
	UUserWidget* InitCombatWidget;
	UPROPERTY()
	TSubclassOf<UUserWidget> InitCombatWidgetClass;

	UPROPERTY()
	UNiagaraSystem* GunEffect;

	UPROPERTY(EditAnywhere)
	float ReloadTime = 1.0f;

	UFUNCTION(BlueprintCallable)
	void OnClickDown();

protected:
	// Called when the game starts
	virtual void BeginPlay() override;
	UPROPERTY()
	UBlackboardComponent* EnemyBlackboard;

public:
	// Called every frame
	virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;

private:
	bool bClickDown = false;
	float ReloadTimer = 0.0f;
	ATurnBaseCombatV2* CombatSystem;
	
	float RedVignetteIntensity;

	UFUNCTION()
	AActor* LookingAtEnemy() const;
	AActor* TargetEnemy = nullptr;

	UPROPERTY()
	URadialSlider* ReloadSlider;
};