Update AI Attack Task for Instigating Damage
This commit is contained in:
parent
3721fff015
commit
91c3e8163b
@ -5,7 +5,9 @@
|
|||||||
|
|
||||||
#include "EndlessVendetta/AI/AI_EnemyController.h"
|
#include "EndlessVendetta/AI/AI_EnemyController.h"
|
||||||
#include "BehaviorTree/BlackboardComponent.h"
|
#include "BehaviorTree/BlackboardComponent.h"
|
||||||
|
#include "EndlessVendetta/EndlessVendettaCharacter.h"
|
||||||
#include "EndlessVendetta/AI/EnemyCharacter.h"
|
#include "EndlessVendetta/AI/EnemyCharacter.h"
|
||||||
|
#include "Engine/DamageEvents.h"
|
||||||
|
|
||||||
UBTTask_AttackPlayer::UBTTask_AttackPlayer(FObjectInitializer const& ObjectInitializer)
|
UBTTask_AttackPlayer::UBTTask_AttackPlayer(FObjectInitializer const& ObjectInitializer)
|
||||||
{
|
{
|
||||||
@ -19,9 +21,22 @@ EBTNodeResult::Type UBTTask_AttackPlayer::ExecuteTask(UBehaviorTreeComponent& Ow
|
|||||||
if (const UBlackboardComponent* const Blackboard = OwnerComp.GetBlackboardComponent())
|
if (const UBlackboardComponent* const Blackboard = OwnerComp.GetBlackboardComponent())
|
||||||
{
|
{
|
||||||
FVector const Origin = AIController->GetPawn()->GetActorLocation();
|
FVector const Origin = AIController->GetPawn()->GetActorLocation();
|
||||||
|
FVector const Start = Origin + FVector(0.f, 0.f, 30.f);
|
||||||
FVector const PlayerLocation = Blackboard->GetValueAsVector("TargetLocation");
|
FVector const PlayerLocation = Blackboard->GetValueAsVector("TargetLocation");
|
||||||
//DrawDebugLine(GetWorld(), Origin, PlayerLocation, FColor::Green, false, 1.f, 0, 1.f);
|
DrawDebugLine(GetWorld(), Start, PlayerLocation, FColor::Black, false, 1.f, 0, 1.f);
|
||||||
|
|
||||||
|
FCollisionQueryParams QueryParams;
|
||||||
|
QueryParams.AddIgnoredActor(AIController->GetPawn());
|
||||||
|
if (FHitResult HitResult; GetWorld()->LineTraceSingleByChannel(HitResult, Start, PlayerLocation, ECC_Pawn, QueryParams))
|
||||||
|
{
|
||||||
|
if (IsValid(HitResult.GetActor()))
|
||||||
|
{
|
||||||
|
if (HitResult.GetActor()->ActorHasTag("Player"))
|
||||||
|
{
|
||||||
|
Cast<AEndlessVendettaCharacter>(HitResult.GetActor())->TakeDamage(5.0f, FPointDamageEvent(), AIController->GetInstigatorController(), AIController->GetPawn());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (AEnemyCharacter* const EnemyCharacter = Cast<AEnemyCharacter>(AIController->GetPawn()))
|
if (AEnemyCharacter* const EnemyCharacter = Cast<AEnemyCharacter>(AIController->GetPawn()))
|
||||||
{
|
{
|
||||||
EnemyCharacter->SetFiring(true);
|
EnemyCharacter->SetFiring(true);
|
||||||
|
Loading…
Reference in New Issue
Block a user