sqwarmed/sdk_src/game/server/swarm/asw_t75.h

54 lines
1.6 KiB
C
Raw Normal View History

2024-08-29 19:18:30 -04:00
#ifndef _INCLUDED_ASW_T75_H
#define _INCLUDED_ASW_T75_H
#ifdef _WIN32
#pragma once
#endif
#include "basecombatcharacter.h"
#include "iasw_server_usable_entity.h"
class CASW_T75 : public CBaseCombatCharacter, public IASW_Server_Usable_Entity
{
DECLARE_CLASS( CASW_T75, CBaseCombatCharacter );
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
CASW_T75();
virtual ~CASW_T75();
public:
void Spawn( void );
void Precache( void );
unsigned int PhysicsSolidMaskForEntity() const { return MASK_NPCSOLID; }
static CASW_T75* ASW_T75_Create( const Vector &position, const QAngle &angles, const Vector &velocity, const AngularImpulse &angVelocity, CBaseEntity *pOwner, CBaseEntity *pCreatorWeapon = NULL );
void TouchT75( CBaseEntity *pOther );
Class_T Classify( void ) { return (Class_T) CLASS_ASW_T75; }
void Arm();
void Explode();
void CountdownThink( void );
// IASW_Server_Usable_Entity implementation
virtual CBaseEntity* GetEntity() { return this; }
virtual bool IsUsable(CBaseEntity *pUser);
virtual bool RequirementsMet( CBaseEntity *pUser ) { return true; }
virtual void ActivateUseIcon( CASW_Marine* pMarine, int nHoldType );
virtual void MarineUsing(CASW_Marine* pMarine, float deltatime);
virtual void MarineStartedUsing(CASW_Marine* pMarine);
virtual void MarineStoppedUsing(CASW_Marine* pMarine);
virtual bool NeedsLOSCheck() { return true; }
CNetworkVar( bool, m_bArmed );
CNetworkVar( bool, m_bIsInUse );
CNetworkVar( float, m_flArmProgress );
int m_iCountdown;
float m_flDamageRadius;
float m_flDamage;
EHANDLE m_hCreatorWeapon;
};
#endif // _INCLUDED_ASW_T75_H