diff --git a/Source/Nakatomi/TaskAcquireAttackToken.cpp b/Source/Nakatomi/TaskAcquireAttackToken.cpp index ff960f7..6452493 100644 --- a/Source/Nakatomi/TaskAcquireAttackToken.cpp +++ b/Source/Nakatomi/TaskAcquireAttackToken.cpp @@ -2,8 +2,21 @@ #include "TaskAcquireAttackToken.h" +#include "EnemyAIController.h" EBTNodeResult::Type UTaskAcquireAttackToken::ExecuteTask(UBehaviorTreeComponent& owner, uint8* memory) { - return EBTNodeResult::Succeeded; + auto enemyController = Cast(owner.GetAIOwner()); + + if (enemyController->TryObtainAttackToken()) + { + return EBTNodeResult::Succeeded; + } + + return EBTNodeResult::Failed; +} + +EBTNodeResult::Type UTaskAcquireAttackToken::AbortTask(UBehaviorTreeComponent& owner, uint8* memory) +{ + return EBTNodeResult::Aborted; } diff --git a/Source/Nakatomi/TaskAcquireAttackToken.h b/Source/Nakatomi/TaskAcquireAttackToken.h index d59208a..c6435f8 100644 --- a/Source/Nakatomi/TaskAcquireAttackToken.h +++ b/Source/Nakatomi/TaskAcquireAttackToken.h @@ -18,4 +18,5 @@ public: virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& owner, uint8* memory) override; + virtual EBTNodeResult::Type AbortTask(UBehaviorTreeComponent& owner, uint8* memory) override; };