ETeamAttitude::Type AMyAIController::GetTeamAttitudeTowards(const AActor& Other) const
{
auto Character = Cast(GetPawn());
if (Character == nullptr)
return ETeamAttitude::Neutral;
// My own implementation
return Character->GetTeamAttitudeTowards(Other);
}
ETeamAttitude::Type AMyCharacter::GetTeamAttitudeTowards(const AActor& Other) const
{
auto OtherCharacter = Cast<const AMyCharacter>(&Other);
if (OtherCharacter == nullptr)
return ETeamAttitude::Neutral;
if (OtherCharacter->Controller == nullptr)
{
return GetTeamAttitudeTowards(OtherCharacter...);
}
auto AIController = Cast<const AAIController>(OtherCharacter->Controller);
if (AIController == nullptr)
return ETeamAttitude::Neutral;
const auto& OtherId = AIController->GetGenericTeamId();
return GetTeamAttitudeTowards(OtherCharacter, OtherId ...);
}