//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: Projectile shot from the MP5 // // $Workfile: $ // $Date: $ // //----------------------------------------------------------------------------- // $Log: $ // // $NoKeywords: $ //=============================================================================// #ifndef NPC_SNARK_H #define NPC_SNARK_H #include "hl1_ai_basenpc.h" class CSnark : public CHL1BaseNPC { DECLARE_CLASS( CSnark, CHL1BaseNPC ); public: DECLARE_DATADESC(); void Precache( void ); void Spawn( void ); Class_T Classify( void ); void Event_Killed( const CTakeDamageInfo &info ); bool Event_Gibbed( const CTakeDamageInfo &info ); void HuntThink( void ); void SuperBounceTouch( CBaseEntity *pOther ); virtual void ResolveFlyCollisionCustom( trace_t &trace, Vector &vecVelocity ); virtual unsigned int PhysicsSolidMaskForEntity( void ) const; virtual bool ShouldGib( const CTakeDamageInfo &info ) { return false; } static float m_flNextBounceSoundTime; virtual bool IsValidEnemy( CBaseEntity *pEnemy ); private: Class_T m_iMyClass; float m_flDie; Vector m_vecTarget; float m_flNextHunt; float m_flNextHit; Vector m_posPrev; EHANDLE m_hOwner; }; #endif // NPC_SNARK_H