//========= 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 "basehlcombatweapon.h" class CWeaponAR2 : public CHLMachineGun { public: DECLARE_CLASS(CWeaponAR2, CHLMachineGun); CWeaponAR2(); DECLARE_SERVERCLASS(); void ItemPostFrame(void); void Precache(void); void SecondaryAttack(void); void DelayedAttack(void); const char *GetTracerType(void) { return "AR2Tracer"; } void AddViewKick(void); void FireNPCPrimaryAttack(CBaseCombatCharacter *pOperator, bool bUseWeaponAngles); void FireNPCSecondaryAttack(CBaseCombatCharacter *pOperator, bool bUseWeaponAngles); void Operator_ForceNPCFire(CBaseCombatCharacter *pOperator, bool bSecondary); void Operator_HandleAnimEvent(animevent_t *pEvent, CBaseCombatCharacter *pOperator); int GetMinBurst(void) { return 2; } int GetMaxBurst(void) { return 5; } float GetFireRate(void) { return 0.1f; } bool CanHolster(void); bool Reload(void); int CapabilitiesGet(void) { return bits_CAP_WEAPON_RANGE_ATTACK1; } Activity GetPrimaryAttackActivity(void); void DoImpactEffect(trace_t &tr, int nDamageType); virtual const Vector &GetBulletSpread(void) { static Vector cone; cone = VECTOR_CONE_3DEGREES; return cone; } const WeaponProficiencyInfo_t *GetProficiencyValues(); protected: float m_flDelayedFire; bool m_bShotDelayed; int m_nVentPose; DECLARE_ACTTABLE(); DECLARE_DATADESC(); }; #endif // WEAPONAR2_H