Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.

63 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