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.
74 lines
1.8 KiB
74 lines
1.8 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: Projectile shot by mortar synth |
|
// |
|
// $Workfile: $ |
|
// $Date: $ |
|
// |
|
//----------------------------------------------------------------------------- |
|
// $Log: $ |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef GRENADEBEAM_H |
|
#define GRENADEBEAM_H |
|
|
|
#include "basegrenade_shared.h" |
|
|
|
#define GRENADEBEAM_MAXBEAMS 2 |
|
#define GRENADEBEAM_MAXHITS GRENADEBEAM_MAXBEAMS-1 |
|
|
|
class CGrenadeBeam; |
|
class CBeam; |
|
|
|
// End of the grenade beam |
|
class CGrenadeBeamChaser : public CBaseAnimating |
|
{ |
|
public: |
|
DECLARE_CLASS( CGrenadeBeamChaser, CBaseAnimating ); |
|
DECLARE_DATADESC(); |
|
|
|
static CGrenadeBeamChaser* ChaserCreate( CGrenadeBeam *pTarget ); |
|
|
|
void Spawn( void ); |
|
void ChaserThink(); |
|
|
|
CGrenadeBeam* m_pTarget; |
|
}; |
|
|
|
class CGrenadeBeam : public CBaseGrenade |
|
{ |
|
public: |
|
DECLARE_CLASS( CGrenadeBeam, CBaseGrenade ); |
|
DECLARE_DATADESC(); |
|
|
|
static CGrenadeBeam* Create( CBaseEntity* pOwner, const Vector &vStart); |
|
|
|
public: |
|
void Spawn( void ); |
|
void Precache( void ); |
|
void Format( color32 clrColor, float flWidth); |
|
void GrenadeBeamTouch( CBaseEntity *pOther ); |
|
void KillBeam(); |
|
void CreateBeams(void); |
|
void UpdateBeams(void); |
|
//void DebugBeams(void); |
|
void GetChaserTargetPos(Vector *vPosition); |
|
void GetNextTargetPos(Vector *vPosition); |
|
int UpdateTransmitState(void); |
|
void Shoot(Vector vDirection, float flSpeed, float flLifetime, float flLag, float flDamage ); |
|
|
|
Vector m_vLaunchPos; |
|
float m_flBeamWidth; |
|
float m_flBeamSpeed; |
|
float m_flBeamLag; |
|
float m_flLaunchTime; |
|
float m_flLastTouchTime; |
|
EHANDLE m_hBeamChaser; |
|
int m_nNumHits; |
|
Vector m_pHitLocation[GRENADEBEAM_MAXHITS]; |
|
CBeam* m_pBeam[GRENADEBEAM_MAXBEAMS]; |
|
}; |
|
|
|
#endif //GRENADEBEAM_H
|
|
|