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.3 KiB
63 lines
1.3 KiB
5 years ago
|
//========= 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
|