diff options
Diffstat (limited to 'game/server/hl2/grenade_spit.h')
| -rw-r--r-- | game/server/hl2/grenade_spit.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/game/server/hl2/grenade_spit.h b/game/server/hl2/grenade_spit.h new file mode 100644 index 0000000..562b852 --- /dev/null +++ b/game/server/hl2/grenade_spit.h @@ -0,0 +1,58 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Projectile shot by bullsquid +// +// $Workfile: $ +// $Date: $ +// +//----------------------------------------------------------------------------- +// $Log: $ +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef GRENADESPIT_H +#define GRENADESPIT_H + +#include "basegrenade_shared.h" + +class CParticleSystem; + +enum SpitSize_e +{ + SPIT_SMALL, + SPIT_MEDIUM, + SPIT_LARGE, +}; + +#define SPIT_GRAVITY 600 + +class CGrenadeSpit : public CBaseGrenade +{ + DECLARE_CLASS( CGrenadeSpit, CBaseGrenade ); + +public: + CGrenadeSpit( void ); + + virtual void Spawn( void ); + virtual void Precache( void ); + virtual void Event_Killed( const CTakeDamageInfo &info ); + + virtual unsigned int PhysicsSolidMaskForEntity( void ) const { return ( BaseClass::PhysicsSolidMaskForEntity() | CONTENTS_WATER ); } + + void GrenadeSpitTouch( CBaseEntity *pOther ); + void SetSpitSize( int nSize ); + void Detonate( void ); + void Think( void ); + +private: + DECLARE_DATADESC(); + + void InitHissSound( void ); + + CHandle< CParticleSystem > m_hSpitEffect; + CSoundPatch *m_pHissSound; + bool m_bPlaySound; +}; + +#endif //GRENADESPIT_H |