You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
1.8 KiB
91 lines
1.8 KiB
|
|
|
|
#ifndef EGON_H |
|
#define EGON_H |
|
|
|
#include "weapons.h" |
|
|
|
#define BUBBLE_SOUND_OFF "debris/flesh5.wav" |
|
#define BUBBLE_SOUND_RUN "debris/flesh5.wav" |
|
#define BUBBLE_SOUND_STARTUP "debris/flesh6.wav" |
|
#define EGON_PRIMARY_VOLUME 450 |
|
|
|
extern cvar_t bm_gluon_mod; |
|
|
|
class CEgon : public CBasePlayerWeapon |
|
{ |
|
public: |
|
#ifndef CLIENT_DLL |
|
int Save( CSave &save ); |
|
int Restore( CRestore &restore ); |
|
static TYPEDESCRIPTION m_SaveData[]; |
|
#endif |
|
|
|
void Spawn( void ); |
|
void Precache( void ); |
|
int iItemSlot( void ) { return 4; } |
|
int GetItemInfo(ItemInfo *p); |
|
int AddToPlayer( CBasePlayer *pPlayer ); |
|
|
|
BOOL Deploy( void ); |
|
void Holster( int skiplocal = 0 ); |
|
|
|
void UpdateEffect( const Vector &startPoint, const Vector &endPoint, float timeBlend ); |
|
|
|
void CreateEffect ( void ); |
|
void DestroyEffect ( void ); |
|
|
|
void EndAttack( void ); |
|
void Attack( void ); |
|
void PrimaryAttack( void ); |
|
void WeaponIdle( void ); |
|
|
|
float m_flAmmoUseTime;// since we use < 1 point of ammo per update, we subtract ammo on a timer. |
|
|
|
float GetPulseInterval( void ); |
|
float GetDischargeInterval( void ); |
|
|
|
void Fire( const Vector &vecOrigSrc, const Vector &vecDir ); |
|
|
|
BOOL HasAmmo( void ); |
|
|
|
void UseAmmo( int count ); |
|
|
|
enum EGON_FIREMODE { FIRE_NARROW, FIRE_WIDE}; |
|
|
|
CBeam *m_pBeam; |
|
CBeam *m_pNoise; |
|
CSprite *m_pSprite; |
|
|
|
virtual BOOL UseDecrement( void ) |
|
{ |
|
#if defined( CLIENT_WEAPONS ) |
|
return TRUE; |
|
#else |
|
return FALSE; |
|
#endif |
|
} |
|
|
|
unsigned short m_usEgonStop; |
|
|
|
// BMOD Begin - bubblegun |
|
void BubbleAttack( void ); |
|
void FireBubbles( void ); |
|
float m_bubbletime; |
|
void FireHeal( void ); |
|
static int g_fireAnims1[]; |
|
static int g_fireAnims2[]; |
|
float m_healAmmoUsed; |
|
float m_healAmmoUseTime; |
|
// BMOD End - bubblegun |
|
|
|
private: |
|
float m_shootTime; |
|
EGON_FIREMODE m_fireMode; |
|
float m_shakeTime; |
|
BOOL m_deployed; |
|
|
|
unsigned short m_usEgonFire; |
|
}; |
|
|
|
#endif |