Add Enemy AI Behaviour Task for Attacking Player

This commit is contained in:
Philip W 2023-10-02 01:31:38 +01:00
parent 174becfdf1
commit b1531a5acf
2 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,27 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "BTTask_AttackPlayer.h"
#include "AI_EnemyController.h"
#include "BehaviorTree/BlackboardComponent.h"
UBTTask_AttackPlayer::UBTTask_AttackPlayer(FObjectInitializer const& ObjectInitializer)
{
}
EBTNodeResult::Type UBTTask_AttackPlayer::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
{
if (const AAI_EnemyController* const AIController = Cast<AAI_EnemyController>(OwnerComp.GetAIOwner()))
{
if (const UBlackboardComponent* const Blackboard = OwnerComp.GetBlackboardComponent())
{
FVector const Origin = AIController->GetPawn()->GetActorLocation();
FVector const PlayerLocation = Blackboard->GetValueAsVector("TargetLocation");
DrawDebugLine(GetWorld(), Origin, PlayerLocation, FColor::Green, false, 1.f, 0, 1.f);
FinishLatentTask(OwnerComp, EBTNodeResult::Succeeded);
return EBTNodeResult::Succeeded;
}
}
return EBTNodeResult::Failed;
}

View File

@ -0,0 +1,19 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "BehaviorTree/Tasks/BTTask_BlackboardBase.h"
#include "BTTask_AttackPlayer.generated.h"
/**
*
*/
UCLASS()
class ENDLESSVENDETTA_API UBTTask_AttackPlayer : public UBTTask_BlackboardBase
{
GENERATED_BODY()
public:
explicit UBTTask_AttackPlayer(FObjectInitializer const& ObjectInitializer);
virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;
};