39 lines
1 KiB
C++
39 lines
1 KiB
C++
|
|
#pragma once
|
|
|
|
#include "MAScannerFilter.h"
|
|
|
|
class MAScanner : public CSingleton<MAScanner>
|
|
{
|
|
public:
|
|
|
|
MAScanner();
|
|
~MAScanner();
|
|
|
|
enum eType
|
|
{
|
|
OpponentTeamScan = 0, // 상대팀 스캔(NPC 제외)
|
|
MonsterSkillSameTeam, // 몬스터 스킬 사용시 같은팀 스캔
|
|
MonsterSkillSameTeamExpectMe, // 몬스터 스킬 사용시 나를 제외한 같은팀 스캔
|
|
MonsterSkillOpponentTeam, // 몬스터 스킬 사용시 상대팀 스캔
|
|
Max,
|
|
};
|
|
|
|
void Scan( MAScanner::eType Type, DnActorHandle hActor, float fMinRange, float fMaxRange, DNVector(DnActorHandle)& vOutputActor );
|
|
|
|
private:
|
|
|
|
void _CreateFilter();
|
|
void _CreateScanner();
|
|
void _CreateOpponentTeamScanner();
|
|
void _CreateMonsterSkillSameTeamScanner();
|
|
void _CreateMonsterSkillSameTeamExpectMeScanner();
|
|
void _CreateMonsterSkillOpponentTeamScanner();
|
|
|
|
IMAScanFilter* _GetFilter( IMAScanFilter::eFilterType Type );
|
|
|
|
std::vector<IMAScanFilter*> m_vFilterRepository;
|
|
std::vector<IMAScanFilter*> m_vScanner[MAScanner::eType::Max];
|
|
};
|
|
|
|
#define GetMAScanner() MAScanner::GetInstance()
|