diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset index dfd8779e..4ef4dffe 100644 --- a/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset +++ b/EndlessVendetta/Content/AI/Enemy/Basic/BP_BasicEnemyCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d3303248d6f8042f7821695c75f275128c8198ff1229097ad439b09fb12d423d -size 33443 +oid sha256:43f411636e7605c44c59066cacff070b330cc2e9853e487e55fa176b49e3ab6d +size 33434 diff --git a/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset index c09bdac3..fb2bdba6 100644 --- a/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset +++ b/EndlessVendetta/Content/AI/Enemy/Basic/BT_BasicEnemy.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b3a4bb63ecee2b90ddaf61c85f3d7bc03086141eac00a6c366858a827f5c16fe -size 24774 +oid sha256:c34f4b7820dd26e2577649567ec2d734d0d8b0df38e081f45a21b3fbe7ed1e5a +size 22715 diff --git a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset index b60728b0..70351202 100644 --- a/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset +++ b/EndlessVendetta/Content/__ExternalActors__/Levels/EnemyAITest/B/AZ/GX8EY01G00J28SE17R0FJV.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21099d36885bd35d8fc3ced5641695e285425bc2a8bd916912c9a35daa30b5a9 +oid sha256:d2c317194967f57a876bdccccaac78ebf287ae236df1595de335c27d12540f94 size 6064 diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/Services/BTService_ChangeSpeed.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/Services/BTService_ChangeSpeed.cpp new file mode 100644 index 00000000..1ae661ba --- /dev/null +++ b/EndlessVendetta/Source/EndlessVendetta/AI/Services/BTService_ChangeSpeed.cpp @@ -0,0 +1,26 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "BTService_ChangeSpeed.h" + +#include "EndlessVendetta/AI/AI_EnemyController.h" +#include "EndlessVendetta/AI/EnemyCharacter.h" +#include "GameFramework/CharacterMovementComponent.h" + +UBTService_ChangeSpeed::UBTService_ChangeSpeed() +{ + bNotifyBecomeRelevant = true; + NodeName = TEXT("Change Speed"); +} + +void UBTService_ChangeSpeed::OnBecomeRelevant(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) +{ + Super::OnBecomeRelevant(OwnerComp, NodeMemory); + if (const AAI_EnemyController* const EnemyController = Cast(OwnerComp.GetAIOwner())) + { + if (const AEnemyCharacter* const EnemyCharacter = Cast(EnemyController->GetPawn())) + { + EnemyCharacter->GetCharacterMovement()->MaxWalkSpeed = Speed; + } + } +} diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/Services/BTService_ChangeSpeed.h b/EndlessVendetta/Source/EndlessVendetta/AI/Services/BTService_ChangeSpeed.h new file mode 100644 index 00000000..9d8fff7e --- /dev/null +++ b/EndlessVendetta/Source/EndlessVendetta/AI/Services/BTService_ChangeSpeed.h @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "BehaviorTree/Services/BTService_BlackboardBase.h" +#include "BTService_ChangeSpeed.generated.h" + +/** + * + */ +UCLASS() +class ENDLESSVENDETTA_API UBTService_ChangeSpeed : public UBTService_BlackboardBase +{ + GENERATED_BODY() + + UBTService_ChangeSpeed(); + virtual void OnBecomeRelevant(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override; + +private: + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AI", meta = (AllowPrivateAccess = "true")) + float Speed = 600.0f; +}; diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/Tasks/BTTask_AttackPlayer.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/Tasks/BTTask_AttackPlayer.cpp index ce49ec2d..d7371066 100644 --- a/EndlessVendetta/Source/EndlessVendetta/AI/Tasks/BTTask_AttackPlayer.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/AI/Tasks/BTTask_AttackPlayer.cpp @@ -8,6 +8,7 @@ UBTTask_AttackPlayer::UBTTask_AttackPlayer(FObjectInitializer const& ObjectInitializer) { + NodeName = TEXT("Attack Player"); } EBTNodeResult::Type UBTTask_AttackPlayer::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)