//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #ifndef WEAPON_ALYXGUN_H #define WEAPON_ALYXGUN_H #include "basehlcombatweapon.h" #if defined( _WIN32 ) #pragma once #endif class CWeaponAlyxGun : public CHLSelectFireMachineGun { DECLARE_DATADESC(); public: DECLARE_CLASS( CWeaponAlyxGun, CHLSelectFireMachineGun ); CWeaponAlyxGun(); ~CWeaponAlyxGun(); DECLARE_SERVERCLASS(); void Precache( void ); virtual int GetMinBurst( void ) { return 4; } virtual int GetMaxBurst( void ) { return 7; } virtual float GetMinRestTime( void ); virtual float GetMaxRestTime( void ); virtual void Equip( CBaseCombatCharacter *pOwner ); float GetFireRate( void ) { return 0.1f; } int CapabilitiesGet( void ) { return bits_CAP_WEAPON_RANGE_ATTACK1; } int WeaponRangeAttack1Condition( float flDot, float flDist ); int WeaponRangeAttack2Condition( float flDot, float flDist ); virtual const Vector& GetBulletSpread( void ); void FireNPCPrimaryAttack( CBaseCombatCharacter *pOperator, bool bUseWeaponAngles ); void Operator_ForceNPCFire( CBaseCombatCharacter *pOperator, bool bSecondary ); void Operator_HandleAnimEvent( animevent_t *pEvent, CBaseCombatCharacter *pOperator ); virtual void SetPickupTouch( void ) { // Alyx gun cannot be picked up SetTouch(NULL); } float m_flTooCloseTimer; DECLARE_ACTTABLE(); }; #endif // WEAPON_ALYXGUN_H