This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

62 lines
1.6 KiB
C++

//========= 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