//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #ifndef TESLA_H #define TESLA_H #ifdef _WIN32 #pragma once #endif #include "baseentity.h" class CTesla : public CBaseEntity { public: DECLARE_CLASS( CTesla, CBaseEntity ); DECLARE_DATADESC(); DECLARE_SERVERCLASS(); CTesla(); virtual void Spawn(); virtual void Activate(); virtual void Precache(); void InputTurnOn( inputdata_t &inputdata ); void InputTurnOff( inputdata_t &inputdata ); void InputDoSpark( inputdata_t &inputdata ); void DoSpark(); void ShootArcThink(); void SetupForNextArc(); CBaseEntity* GetSourceEntity(); public: // Tesla parameters. string_t m_SourceEntityName; // Which entity the arcs come from. CNetworkVar( string_t, m_SoundName ); // What sound to play when arcing. color32 m_Color; int m_NumBeams[2]; // Number of beams per spark. float m_flRadius; // Radius it looks for surfaces to arc to. float m_flThickness[2]; // Beam thickness. float m_flTimeVisible[2]; // How long each beam stays around (min/max). float m_flArcInterval[2]; // Time between args (min/max). bool m_bOn; CNetworkVar( string_t, m_iszSpriteName ); }; #endif // TESLA_H