//============================================================================= // AnimationProxy //============================================================================= // //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC //============================================================================= class BaseAISubsystem extends AISubsystem config(Engine) native inherits(FCallbackEventDevice,FTickableObject); var AIDebugTool AIDebug; var const array Squads; var const array TeamSizes; // ----------------------------------------------------------------------- // // @deprecated with __TW_BASEAI_LEAN_ // ----------------------------------------------------------------------- // `if(`notdefined(__TW_BASEAI_LEAN_)) var ETQSystem ETQSys; var BTManager BTMgr; var MessageSystem MsgSys; var NavigationSystem NavSys; var DigitalActingManager DAM; var SightSystem SightSys; var const SmartObjectReplicationActor SmartObjectReplication; var const array SmartObjects; var const array InitPendingSmartObjects; var const array SpawnedCovers; var const array AvoidanceComponents; native static final noexport function ETQSystem GetETQSystem(); native static final noexport function BTManager GetBTManager(); native static final noexport function MessageSystem GetMessageSystem(); native static final noexport function NavigationSystem GetNavigationSystem(); native static final noexport function DigitalActingManager GetDAM(); native static final noexport function SightSystem GetSightSystem(); native static final noexport function RegisterSmartObject(SOHubComponent SO); native static final noexport function UnRegisterSmartObject(SOHubComponent SO); native static final noexport function RegisterSpawnedCover(CoverLink Cover); native static final noexport function UnRegisterSpawnedCover(CoverLink Cover); native static final noexport function RegisterAvoidanceComponent(AIAvoidanceComponent AvoidanceComponent); native static final noexport function UnRegisterAvoidanceComponent(AIAvoidanceComponent AvoidanceComponent); `endif // ----------------------------------------------------------------------- // // END __TW_BASEAI_LEAN_ // ----------------------------------------------------------------------- // native static final noexport function BaseAISubsystem GetInstance(); native static final noexport function AIDebugTool GetAIDebugTool(); native static final noexport function RegisterSquad(BaseAISquad Squad); native static final noexport function UnRegisterSquad(BaseAISquad Squad); native static final noexport function IncreaseTeamSize(BYTE TeamId); native static final noexport function DecreaseTeamSize(BYTE TeamId); native static final noexport function int GetTeamSize(byte TeamId); native static final noexport function int GetEnemyTeamsSize(byte TeamId); //NotifyKilled(Controller Killer, Controller Killed, pawn KilledPawn, class damageType) native static final function NotifyKilled(Controller Killer, Controller KilledController, Pawn KilledPawn, class damageType); cpptext { virtual void Init(UBOOL bEngineStart = FALSE); virtual void Tick(FLOAT DeltaSeconds); virtual void CleanUp(UBOOL bShutDown = FALSE); virtual void PrepareMapChange(); virtual void OnLevelStreamedOut(ULevel* Level); static UAIDebugTool* GetAIDebugTool(void); static void RegisterSquad(class ABaseAISquad* Squad); static void UnRegisterSquad(class ABaseAISquad* Squad); static TArray* GetSquads(); static void ObjectDestroyed(UObject* Object); static void IncreaseTeamSize(BYTE TeamId); static void DecreaseTeamSize(BYTE TeamId); static void OnPawnDestroyed(class ABaseAIPawn* Pawn); void OnCheckPointLoad(); private: void DecreaseTeamSizeInternal(BYTE TeamId); public: static int GetTeamSize(BYTE TeamId); static int GetEnemyTeamsSize(BYTE TeamId, BYTE TeamIdLimit = 255); //-- editor related methods --// void OnPIEEnd(); void OnPIEMapSwitch(); virtual void Send(ECallbackEventType InType); virtual void Send(ECallbackEventType InType, DWORD Flags); virtual UBOOL IsTickable() const { return TRUE; } }; defaultproperties { bImplementsNavMeshGeneration=true }