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.
82 lines
1.9 KiB
82 lines
1.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef GRENADE_EMP_H |
|
#define GRENADE_EMP_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
class CSprite; |
|
|
|
#include "grenade_base_empable.h" |
|
|
|
#if defined( CLIENT_DLL ) |
|
|
|
#define CGrenadeEMP C_GrenadeEMP |
|
|
|
#endif |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: EMP grenade |
|
//----------------------------------------------------------------------------- |
|
class CGrenadeEMP : public CBaseEMPableGrenade |
|
{ |
|
DECLARE_CLASS( CGrenadeEMP, CBaseEMPableGrenade ); |
|
public: |
|
CGrenadeEMP(); |
|
|
|
DECLARE_PREDICTABLE(); |
|
DECLARE_NETWORKCLASS(); |
|
|
|
virtual void Spawn( void ); |
|
virtual void Precache( void ); |
|
virtual void UpdateOnRemove( void ); |
|
virtual void Explode( trace_t *pTrace, int bitsDamageType ); |
|
virtual void BounceTouch( CBaseEntity *pOther ); |
|
virtual void BounceSound( void ); |
|
virtual float GetShakeAmplitude( void ); |
|
virtual int GetDamageType() const { return DMG_BLAST; } |
|
|
|
void ApplyRadiusEMPEffect( CBaseEntity *pOwner, const Vector& vecCenter ); |
|
|
|
static CGrenadeEMP *CGrenadeEMP::Create( const Vector &vecOrigin, const Vector &vecAngles, CBasePlayer *pOwner ); |
|
|
|
// A derived class should return true here so that weapon sounds, etc, can |
|
// apply the proper filter |
|
virtual bool IsPredicted( void ) const |
|
{ |
|
return true; |
|
} |
|
|
|
#if defined( CLIENT_DLL ) |
|
virtual bool ShouldPredict( void ) |
|
{ |
|
if ( GetThrower() && |
|
GetThrower() == C_BasePlayer::GetLocalPlayer() ) |
|
return true; |
|
|
|
return BaseClass::ShouldPredict(); |
|
} |
|
|
|
virtual void OnDataChanged( DataUpdateType_t updateType ); |
|
virtual void ClientThink( void ); |
|
|
|
TimedEvent m_ParticleEvent; |
|
|
|
virtual int DrawModel( int flags ); |
|
|
|
#endif |
|
|
|
private: |
|
CNetworkHandle( CSprite, m_hLiveSprite ); |
|
|
|
private: |
|
CGrenadeEMP( const CGrenadeEMP & ); |
|
}; |
|
|
|
#endif // GRENADE_EMP_H
|
|
|