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.
62 lines
1.8 KiB
62 lines
1.8 KiB
#ifndef _INCLUDED_ASW_LASER_MINE_H |
|
#define _INCLUDED_ASW_LASER_MINE_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "asw_shareddefs.h" |
|
|
|
static const char *s_pLaserMineSpawnFlipThink = "LaserMineSpawnFlipThink"; |
|
|
|
class CASW_Laser_Mine : public CBaseCombatCharacter, public IEntityListener |
|
{ |
|
DECLARE_CLASS( CASW_Laser_Mine, CBaseCombatCharacter ); |
|
DECLARE_SERVERCLASS(); |
|
DECLARE_DATADESC(); |
|
|
|
CASW_Laser_Mine(); |
|
virtual ~CASW_Laser_Mine(); |
|
|
|
public: |
|
void Spawn( void ); |
|
void Precache( void ); |
|
unsigned int PhysicsSolidMaskForEntity() const { return MASK_NPCSOLID; } |
|
static CASW_Laser_Mine* ASW_Laser_Mine_Create( const Vector &position, const QAngle &angles, const QAngle &angLaserAim, CBaseEntity *pOwner, CBaseEntity *pMoveParent, bool bFriendly, CBaseEntity *pCreatorWeapon ); |
|
void LaserThink( void ); |
|
|
|
void StartSpawnFlipping( Vector vecStart, Vector vecEnd, QAngle angEnd, float flDuration ); |
|
void SpawnFlipThink(); |
|
|
|
bool ValidMineTarget(CBaseEntity *pOther); |
|
void Prime(); |
|
void Explode( bool bRemove = true ); |
|
virtual void StopLoopingSounds(); |
|
void SetLaserAngle( const QAngle &angLaser ) { m_angLaserAim = angLaser; } |
|
void UpdateLaser(); |
|
|
|
virtual void OnEntityDeleted( CBaseEntity *pEntity ); |
|
|
|
CNetworkVar( QAngle, m_angLaserAim ); |
|
CNetworkVar( bool, m_bFriendly ); |
|
CNetworkVar( bool, m_bMineActive ); |
|
|
|
float m_flDamageRadius; |
|
float m_flDamage; |
|
|
|
bool m_bIsSpawnFlipping; |
|
bool m_bIsSpawnLanded; |
|
float m_flSpawnFlipStartTime; |
|
float m_flSpawnFlipEndTime; |
|
Vector m_vecSpawnFlipStartPos; |
|
Vector m_vecSpawnFlipEndPos; |
|
QAngle m_angSpawnFlipEndAngle; |
|
|
|
EHANDLE m_hCreatorWeapon; |
|
Class_T m_CreatorWeaponClass; |
|
|
|
// Classification |
|
virtual Class_T Classify( void ) { return (Class_T) CLASS_ASW_LASER_MINE_PROJECTILE; } |
|
}; |
|
|
|
|
|
#endif // _INCLUDED_ASW_LASER_MINE_H
|
|
|