diff options
Diffstat (limited to 'game/server/hl2/weapon_alyxgun.h')
| -rw-r--r-- | game/server/hl2/weapon_alyxgun.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/game/server/hl2/weapon_alyxgun.h b/game/server/hl2/weapon_alyxgun.h new file mode 100644 index 0000000..cc3e862 --- /dev/null +++ b/game/server/hl2/weapon_alyxgun.h @@ -0,0 +1,60 @@ +//========= 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 |