diff options
Diffstat (limited to 'game/shared/hl2/citadel_effects_shared.h')
| -rw-r--r-- | game/shared/hl2/citadel_effects_shared.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/game/shared/hl2/citadel_effects_shared.h b/game/shared/hl2/citadel_effects_shared.h new file mode 100644 index 0000000..18304d3 --- /dev/null +++ b/game/shared/hl2/citadel_effects_shared.h @@ -0,0 +1,62 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef CITADEL_EFFECTS_SHARED_H +#define CITADEL_EFFECTS_SHARED_H +#ifdef _WIN32 +#pragma once +#endif + +#define SF_ENERGYCORE_NO_PARTICLES (1<<0) +#define SF_ENERGYCORE_START_ON (1<<1) + +enum +{ + ENERGYCORE_STATE_OFF, + ENERGYCORE_STATE_CHARGING, + ENERGYCORE_STATE_DISCHARGING, +}; + +#ifndef CLIENT_DLL + +// ============================================================================ +// +// Energy core - charges up and then releases energy from its position +// +// ============================================================================ + +class CCitadelEnergyCore : public CBaseEntity +{ + DECLARE_CLASS( CCitadelEnergyCore, CBaseEntity ); + DECLARE_SERVERCLASS(); + DECLARE_DATADESC(); + +public: + void InputStartCharge( inputdata_t &inputdata ); + void InputStartDischarge( inputdata_t &inputdata ); + void InputStop( inputdata_t &inputdata ); + void SetScale( float flScale ) { m_flScale = flScale; } + + void StartCharge( float flWarmUpTime ); + void StartDischarge(); + void StopDischarge( float flCoolDownTime ); + + virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo ); + virtual int UpdateTransmitState( void ); + + virtual void Precache(); + void Spawn( void ); + +private: + CNetworkVar( float, m_flScale ); + CNetworkVar( int, m_nState ); + CNetworkVar( float, m_flDuration ); + CNetworkVar( float, m_flStartTime ); +}; + +#endif + +#endif // CITADEL_EFFECTS_SHARED_H |