//========= Copyright Valve Corporation, All rights reserved. ============// // boss_alpha_chase_victim.h // Michael Booth, November 2010 #ifndef BOSS_ALPHA_CHASE_VICTIM_H #define BOSS_ALPHA_CHASE_VICTIM_H #ifdef TF_RAID_MODE #include "nav_mesh/tf_path_follower.h" //--------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------- class CBossAlphaChaseVictim : public Action< CBossAlpha > { public: CBossAlphaChaseVictim( CBaseCombatCharacter *chaseTarget ); virtual ActionResult< CBossAlpha > OnStart( CBossAlpha *me, Action< CBossAlpha > *priorAction ); virtual ActionResult< CBossAlpha > Update( CBossAlpha *me, float interval ); virtual void OnEnd( CBossAlpha *me, Action< CBossAlpha > *nextAction ); virtual EventDesiredResult< CBossAlpha > OnStuck( CBossAlpha *me ); virtual EventDesiredResult< CBossAlpha > OnMoveToSuccess( CBossAlpha *me, const Path *path ); virtual EventDesiredResult< CBossAlpha > OnMoveToFailure( CBossAlpha *me, const Path *path, MoveToFailureType reason ); virtual const char *GetName( void ) const { return "ChaseVictim"; } // return name of this action private: CTFPathFollower m_path; IntervalTimer m_visibleTimer; CHandle< CBaseCombatCharacter > m_lastTarget; CHandle< CBaseCombatCharacter > m_chaseTarget; Vector m_lastKnownTargetSpot; }; #endif // TF_RAID_MODE #endif // BOSS_ALPHA_CHASE_VICTIM_H