This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

57 lines
1.3 KiB
C++

//========= 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