2022-05-13 07:02:34 +00:00
|
|
|
class KFGI_Access extends Object
|
2022-05-20 20:45:26 +00:00
|
|
|
within KFGameInfo;
|
2022-05-13 07:02:34 +00:00
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
public function Array<class<KFPawn_Monster> > GetAIClassList(E_LogLevel LogLevel)
|
2022-05-20 20:45:26 +00:00
|
|
|
{
|
|
|
|
local Array<class<KFPawn_Monster> > RV;
|
|
|
|
local class<KFPawn_Monster> KFPMC;
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
`Log_Trace();
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
foreach AIClassList(KFPMC)
|
|
|
|
RV.AddItem(KFPMC);
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
return RV;
|
|
|
|
}
|
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
public function Array<class<KFPawn_Monster> > GetNonSpawnAIClassList(E_LogLevel LogLevel)
|
2022-05-20 20:45:26 +00:00
|
|
|
{
|
|
|
|
local Array<class<KFPawn_Monster> > RV;
|
|
|
|
local class<KFPawn_Monster> KFPMC;
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
`Log_Trace();
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
foreach NonSpawnAIClassList(KFPMC)
|
|
|
|
RV.AddItem(KFPMC);
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
return RV;
|
|
|
|
}
|
2022-05-13 07:02:34 +00:00
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
public function Array<class<KFPawn_Monster> > GetAIBossClassList(E_LogLevel LogLevel)
|
2022-05-20 20:45:26 +00:00
|
|
|
{
|
|
|
|
local Array<class<KFPawn_Monster> > RV;
|
|
|
|
local class<KFPawn_Monster> KFPMC;
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
`Log_Trace();
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
foreach AIBossClassList(KFPMC)
|
|
|
|
RV.AddItem(KFPMC);
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
return RV;
|
|
|
|
}
|
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
public function bool IsCustomZed(class<KFPawn_Monster> KFPM, E_LogLevel LogLevel)
|
2022-05-13 07:02:34 +00:00
|
|
|
{
|
|
|
|
if (AIClassList.Find(KFPM) != INDEX_NONE) return false;
|
|
|
|
if (NonSpawnAIClassList.Find(KFPM) != INDEX_NONE) return false;
|
|
|
|
if (AIBossClassList.Find(KFPM) != INDEX_NONE) return false;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
public function bool IsOriginalAI(class<KFPawn_Monster> KFPM, optional out EAIType AIType, optional E_LogLevel LogLevel = LL_None)
|
2022-05-20 20:45:26 +00:00
|
|
|
{
|
|
|
|
local int Type;
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
`Log_Trace();
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
Type = AIClassList.Find(KFPM);
|
|
|
|
if (Type != INDEX_NONE)
|
|
|
|
{
|
|
|
|
AIType = EAIType(Type);
|
|
|
|
return true;
|
|
|
|
}
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
public function bool IsOriginalAIBoss(class<KFPawn_Monster> KFPM, optional out EBossAIType AIType, optional E_LogLevel LogLevel = LL_None)
|
2022-05-20 20:45:26 +00:00
|
|
|
{
|
|
|
|
local int Type;
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
`Log_Trace();
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
Type = AIBossClassList.Find(KFPM);
|
|
|
|
if (Type != INDEX_NONE)
|
|
|
|
{
|
|
|
|
AIType = EBossAIType(Type);
|
|
|
|
return true;
|
|
|
|
}
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
public function class<KFPawn_Monster> AITypePawn(EAIType AIType, E_LogLevel LogLevel)
|
2022-05-20 20:45:26 +00:00
|
|
|
{
|
2022-07-19 10:28:43 +00:00
|
|
|
`Log_Trace();
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
if (AIType < AIClassList.Length)
|
|
|
|
return AIClassList[AIType];
|
|
|
|
else
|
|
|
|
return None;
|
|
|
|
}
|
|
|
|
|
2022-07-19 10:28:43 +00:00
|
|
|
public function class<KFPawn_Monster> BossAITypePawn(EBossAIType AIType, E_LogLevel LogLevel)
|
2022-05-20 20:45:26 +00:00
|
|
|
{
|
2022-07-19 10:28:43 +00:00
|
|
|
`Log_Trace();
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-20 20:45:26 +00:00
|
|
|
if (AIType < AIBossClassList.Length)
|
|
|
|
return AIBossClassList[AIType];
|
|
|
|
else
|
|
|
|
return None;
|
|
|
|
}
|
|
|
|
|
2022-05-13 07:02:34 +00:00
|
|
|
defaultproperties
|
|
|
|
{
|
2023-05-14 06:38:02 +00:00
|
|
|
|
2022-05-13 07:02:34 +00:00
|
|
|
}
|