diff options
Diffstat (limited to 'game/server/hl2/grenade_tripwire.h')
| -rw-r--r-- | game/server/hl2/grenade_tripwire.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/game/server/hl2/grenade_tripwire.h b/game/server/hl2/grenade_tripwire.h new file mode 100644 index 0000000..1da7c92 --- /dev/null +++ b/game/server/hl2/grenade_tripwire.h @@ -0,0 +1,80 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Tripmine +// +// $Workfile: $ +// $Date: $ +// $NoKeywords: $ +//=============================================================================// + +#ifndef TRIPWIRE_H +#define TRIPWIRE_H + +#ifdef _WIN32 +#pragma once +#endif + +#include "basegrenade_shared.h" + +class CRopeKeyframe; + +// #################################################################### +// CTripwireHook +// +// This is what the tripwire shoots out at the end of the rope +// #################################################################### +class CTripwireHook : public CBaseAnimating +{ + DECLARE_DATADESC(); +public: + DECLARE_CLASS( CTripwireHook, CBaseAnimating ); + + EHANDLE m_hGrenade; + bool m_bAttached; + + void Spawn( void ); + void Precache( void ); + bool CreateVPhysics( void ); + void EndTouch( CBaseEntity *pOther ); + void SetVelocity( const Vector &velocity, const AngularImpulse &angVelocity ); +}; + +class CTripwireGrenade : public CBaseGrenade +{ +public: + DECLARE_CLASS( CTripwireGrenade, CBaseGrenade ); + + CTripwireGrenade(); + void Spawn( void ); + void Precache( void ); + + int OnTakeDamage_Alive( const CTakeDamageInfo &info ); + + void WarningThink( void ); + void PowerupThink( void ); + void RopeBreakThink( void ); + void FireThink( void ); + void Event_Killed( const CTakeDamageInfo &info ); + void Attach( void ); + + void MakeRope( void ); + void BreakRope( void ); + void ShakeRope( void ); + void FireMissile(const Vector &vTargetPos); + +private: + float m_flPowerUp; + Vector m_vecDir; + + int m_nMissileCount; + + Vector m_vTargetPos; + Vector m_vTargetOffset; + + CRopeKeyframe* m_pRope; + CTripwireHook* m_pHook; + + DECLARE_DATADESC(); +}; + +#endif //TRIPWIRE_H |