Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//========= 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
|