// Project Lab - NHTV Igad

#pragma once

#include "AIController.h"
#include "EnemyAIController.generated.h"

/**
*
*/
UCLASS()
class UNREALPROJECT_API AEnemyAIController : public AAIController
{
	GENERATED_BODY()

public:
	AEnemyAIController(const FObjectInitializer& PCIP);
	UPROPERTY(transient)
	class UBlackboardComponent* blackBoardComp;

	UPROPERTY(transient)
	class UBehaviorTreeComponent* behaviorTreeComp;
	UPROPERTY(transient)
	float climbSpeed;
	virtual void Tick(float deltaTime)override;
	virtual void Possess(APawn* pawn) override;
	virtual void BeginInactiveState() override;
	bool VerticleMoveTo(FVector destination,FVector direction, float acceptRadius);
	bool JumpFence(FVector destination);



	UFUNCTION(BlueprintCallable, Category = Behavior)
		void SetVector(FVector vector, FName name);
	UFUNCTION(BlueprintCallable, Category = Behavior)
		void SetBool(bool boolean, FName name);
	UFUNCTION(BlueprintCallable, Category = Behavior)
		void SetTarget(class ANetworkCharacter* player);
	UFUNCTION(BlueprintCallable, Category = Behavior)
	class ANetworkCharacter* GetTarget();
	UFUNCTION(BlueprintCallable, Category = Behavior)
		FVector GetLocationTarget();
	UFUNCTION(BlueprintCallable, Category = Behavior)
		FVector GetHomeLocation();
	UFUNCTION(BlueprintCallable, Category = Behavior)
		FVector GetSelfLocation();
	//	UFUNCTION(BlueprintCallable, Category = Behavior)
	//	bool GetEnableTree();
	UFUNCTION(BlueprintCallable, Category = Behavior)
		bool GetClimbKey();
protected:
	uint8 targetkey;


};

