Add Console Commands for AI Killing & Alert Level

This commit is contained in:
Philip W 2023-10-12 11:21:17 +01:00
parent 7bf1f7b59d
commit 32a5e64d00
3 changed files with 36 additions and 6 deletions

View File

@ -9,7 +9,8 @@
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": [
"Engine"
"Engine",
"AIModule"
]
}
],

View File

@ -3,12 +3,38 @@
#include "EndlessVendettaGameMode.h"
#include "EndlessVendettaCharacter.h"
#include "UObject/ConstructorHelpers.h"
#include "EndlessVendetta/AI/EnemyCharacter.h"
#include "EndlessVendetta/AI/AIControlHub.h"
#include "Kismet/GameplayStatics.h"
#include "Engine/DamageEvents.h"
AEndlessVendettaGameMode::AEndlessVendettaGameMode()
: Super()
AEndlessVendettaGameMode::AEndlessVendettaGameMode() : Super()
{
// set default pawn class to our Blueprinted character
static ConstructorHelpers::FClassFinder<APawn> PlayerPawnClassFinder(TEXT("/Game/FirstPerson/Blueprints/BP_FirstPersonCharacter"));
DefaultPawnClass = PlayerPawnClassFinder.Class;
}
void AEndlessVendettaGameMode::KillAllEnemies()
{
TArray<AActor*> EnemyCharacters;
UGameplayStatics::GetAllActorsOfClass(GetWorld(), AEnemyCharacter::StaticClass(), EnemyCharacters);
for (AActor* EnemyActor : EnemyCharacters)
{
AEnemyCharacter* EnemyCharacter = Cast<AEnemyCharacter>(EnemyActor);
EnemyCharacter->TakeDamage(EnemyCharacter->MaxHealth, FDamageEvent(), GetWorld()->GetFirstPlayerController(), GetWorld()->GetFirstPlayerController()->GetOwner());
}
}
void AEndlessVendettaGameMode::SetLocalAIAlertLevel(int NewAlertLevel)
{
TArray<AActor*> AIControlHubActors;
UGameplayStatics::GetAllActorsOfClass(GetWorld(), AAIControlHub::StaticClass(), AIControlHubActors);
for (AActor* AIControlHubActor : AIControlHubActors)
{
AAIControlHub* AIControlHub = Cast<AAIControlHub>(AIControlHubActor);
AIControlHub->SetPlayerLastKnownLocation();
AIControlHub->SetAlertLevel(NewAlertLevel);
}
}

View File

@ -13,7 +13,10 @@ class AEndlessVendettaGameMode : public AGameModeBase
public:
AEndlessVendettaGameMode();
UFUNCTION(Exec, Category = ExecFunctions)
void KillAllEnemies();
UFUNCTION(Exec, Category = ExecFunctions)
void SetLocalAIAlertLevel(int NewAlertLevel);
};