diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp new file mode 100644 index 00000000..07db4b83 --- /dev/null +++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.cpp @@ -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(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; +} diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.h b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.h new file mode 100644 index 00000000..bc228d3d --- /dev/null +++ b/EndlessVendetta/Source/EndlessVendetta/AI/BTTask_AttackPlayer.h @@ -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; +};