mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-03-12 21:41:05 +00:00
90 lines
1.8 KiB
C++
90 lines
1.8 KiB
C++
#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:
|
|
#if !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 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
|