void AWalkerAIController::SenseActors(const TArray<AActor *> Actors) { const auto *aPawn = GetPawn(); if ((Status == EWalkerStatus::Moving) && (aPawn != nullptr) && IntersectsWithVehicle(*aPawn, Actors)) { TryPauseMovement(); } }
void AWalkerAIController::OnPawnTookDamage( AActor *DamagedActor, float Damage, const UDamageType *DamageType, AController *InstigatedBy, AActor *DamageCauser) { LOG_AI_WALKER(Warning, "has been run over"); constexpr bool bItWasRunOver = true; TryPauseMovement(bItWasRunOver); Status = EWalkerStatus::RunOver; }
void AWalkerAIController::TrySetMovement(bool paused) { if(paused) TryPauseMovement(false); else TryResumeMovement(); }