//========= Copyright Valve Corporation, All rights reserved. ============// // bot_npc_mini.h // A NextBot non-player derived actor // Michael Booth, March 2011 #ifndef BOT_NPC_MINI_H #define BOT_NPC_MINI_H #ifdef TF_RAID_MODE #include "NextBot.h" #include "NextBotBehavior.h" #include "NextBotGroundLocomotion.h" #include "Path/NextBotPathFollow.h" #include "bot_npc_body.h" #include "bot/map_entities/tf_spawner_boss.h" #include "player_vs_environment/boss_alpha/boss_alpha.h" //---------------------------------------------------------------------------- class CBotNPCMiniRockets : public CBossAlpha { public: DECLARE_CLASS( CBotNPCMiniRockets, CBossAlpha ); virtual void Precache(); virtual void Spawn( void ); virtual bool HasAbility( Ability ability ) const; virtual bool IsMiniBoss( void ) const { return true; } virtual float GetMoveSpeed( void ) const { return 150.0f; } virtual int GetRocketLaunchCount( void ) const { return 3; } virtual float GetRocketDamage( void ) const { return 25.0f; } virtual float GetRocketAimError( void ) const { return 3.0f; } virtual float GetRocketInterval( void ) const { return 0.5f; } virtual const char *GetRocketSoundEffect( void ) const { return "RobotMiniBoss.LaunchRocket"; } virtual float GetBecomeStunnedDamage( void ) const { return 300.0f; } }; inline bool CBotNPCMiniRockets::HasAbility( Ability ability ) const { const int myAbilities = CAN_BE_STUNNED | CAN_FIRE_ROCKETS; return myAbilities & ability ? true : false; } //---------------------------------------------------------------------------- class CBotNPCMiniNuker : public CBossAlpha { public: DECLARE_CLASS( CBotNPCMiniNuker, CBossAlpha ); virtual void Precache(); virtual void Spawn( void ); virtual bool HasAbility( Ability ability ) const; virtual bool IsMiniBoss( void ) const { return true; } virtual float GetMoveSpeed( void ) const { return 150.0f; } virtual float GetGrenadeInterval( void ) const { return 2.0f; } virtual float GetBecomeStunnedDamage( void ) const { return 300.0f; } }; inline bool CBotNPCMiniNuker::HasAbility( Ability ability ) const { const int myAbilities = CAN_BE_STUNNED | CAN_NUKE | CAN_LAUNCH_STICKIES; return myAbilities & ability ? true : false; } #endif // TF_RAID_MODE #endif // BOT_NPC_MINI_H