//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: Projectile shot from the AR2 // // $Workfile: $ // $Date: $ // //----------------------------------------------------------------------------- // $Log: $ // // $NoKeywords: $ //=============================================================================// #ifndef WEAPONAR2_H #define WEAPONAR2_H #include "basegrenade_shared.h" #include "weapon_hl2mpbase_machinegun.h" #ifdef CLIENT_DLL #define CWeaponAR2 C_WeaponAR2 #endif class CWeaponAR2 : public CHL2MPMachineGun { public: DECLARE_CLASS( CWeaponAR2, CHL2MPMachineGun ); CWeaponAR2(); DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE(); void ItemPostFrame( void ); void Precache( void ); void SecondaryAttack( void ); void DelayedAttack( void ); const char *GetTracerType( void ) { return "AR2Tracer"; } void AddViewKick( void ); int GetMinBurst( void ) { return 2; } int GetMaxBurst( void ) { return 5; } float GetFireRate( void ) { return 0.1f; } bool CanHolster( void ); bool Reload( void ); Activity GetPrimaryAttackActivity( void ); void DoImpactEffect( trace_t &tr, int nDamageType ); virtual bool Deploy( void ); virtual const Vector& GetBulletSpread( void ) { static Vector cone; cone = VECTOR_CONE_3DEGREES; return cone; } const WeaponProficiencyInfo_t *GetProficiencyValues(); private: CWeaponAR2( const CWeaponAR2 & ); protected: float m_flDelayedFire; bool m_bShotDelayed; int m_nVentPose; #ifndef CLIENT_DLL DECLARE_ACTTABLE(); #endif }; #endif //WEAPONAR2_H