2024-12-21 10:04:04 +08:00
|
|
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "MAScannerFilter.h"
|
|
|
|
|
#include "DnActor.h"
|
|
|
|
|
|
|
|
|
|
// SameTeam Filter
|
|
|
|
|
bool MAScanSameTeamFilter::bIsCheck( DnActorHandle hActor, DnActorHandle hDestActor, float fMin/*=0.f*/ )
|
|
|
|
|
{
|
|
|
|
|
return hActor->GetTeam() == hDestActor->GetTeam();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// OpponentTeam Filter
|
|
|
|
|
bool MAScanOpponentTeamFilter::bIsCheck( DnActorHandle hActor, DnActorHandle hDestActor, float fMin/*=0.f*/ )
|
|
|
|
|
{
|
|
|
|
|
return hActor->GetTeam() != hDestActor->GetTeam();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// DestActor Die Filter
|
|
|
|
|
bool MAScanDestActorDieFilter::bIsCheck( DnActorHandle hActor, DnActorHandle hDestActor, float fMin/*=0.f*/ )
|
|
|
|
|
{
|
|
|
|
|
return hDestActor->IsDie();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// DestActor Npc Filter
|
|
|
|
|
bool MAScanDestActorNpcFilter::bIsCheck( DnActorHandle hActor, DnActorHandle hDestActor, float fMin/*=0.f*/ )
|
|
|
|
|
{
|
|
|
|
|
return hDestActor->IsNpcActor();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MinDistance Filter
|
|
|
|
|
bool MAScanMinDistanceFilter::bIsCheck( DnActorHandle hActor, DnActorHandle hDestActor, float fMin/*=0.f*/ )
|
|
|
|
|
{
|
|
|
|
|
if( fMin <= 0.f )
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
EtVector3 vPos = *(hDestActor->GetPosition()) - *(hActor->GetPosition());
|
|
|
|
|
float fDistSq = EtVec3LengthSq( &vPos );
|
|
|
|
|
|
|
|
|
|
if ( fDistSq < fMin*fMin )
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// EqualActor Filter
|
|
|
|
|
bool MAScanEqualActorFilter::bIsCheck( DnActorHandle hActor, DnActorHandle hDestActor, float fMin/*=0.f*/ )
|
|
|
|
|
{
|
|
|
|
|
return hActor == hDestActor;
|
|
|
|
|
}
|