/
Azarel
/
Metro2
Обзор
Документация
Войти
/
Azarel
/
Metro2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Source/GameJam/Private/BTTask_Attack.cpp
41 строка
1 KB
arseniy.mazurenko.03@gmail.com
Huge Enemy Update
29 сен 2024, 14:04
29 сен 2024, 14:04
17e3b3d
Код
Авторство
О чём код?
// Fill out your copyright notice in the Description page of Project Settings. #include "BTTask_Attack.h" #include "EnemyCombatInterface.h" #include "Base_AIController.h" #include "Kismet/KismetSystemLibrary.h" #include "Runtime/Engine/Classes/Engine/World.h" #include "Engine/LatentActionManager.h" #include "EnemyBase.h" #include "BehaviorTree/BlackboardComponent.h" UBTTask_Attack::UBTTask_Attack() { NodeName = TEXT("Melee Attack"); } EBTNodeResult::Type UBTTask_Attack::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) { auto const OutOfRange = !OwnerComp.GetBlackboardComponent()->GetValueAsBool(GetSelectedBlackboardKey()); if (OutOfRange) { FinishLatentTask(OwnerComp, EBTNodeResult::Succeeded); return EBTNodeResult::Succeeded; } auto const* const cont = OwnerComp.GetAIOwner(); auto* const enemy = Cast<AEnemyBase>(cont->GetPawn()); if (auto* const icombat = Cast<IEnemyCombatInterface>(enemy)) { if (!enemy->IsAttacking) { icombat->Execute_MeleeAttack(enemy); } } FinishLatentTask(OwnerComp, EBTNodeResult::Succeeded); return EBTNodeResult::Type(); }