mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-30 14:09:19 +00:00
upload "kind" alien swarm
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================//
|
||||
|
||||
#include "cbase.h"
|
||||
#include "baseanimating.h"
|
||||
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
|
||||
class CProp_Hallucination : public CBaseAnimating
|
||||
{
|
||||
public:
|
||||
DECLARE_CLASS( CProp_Hallucination, CBaseAnimating );
|
||||
DECLARE_SERVERCLASS();
|
||||
DECLARE_DATADESC();
|
||||
|
||||
CProp_Hallucination( void );
|
||||
virtual void Precache( void );
|
||||
virtual void Spawn( void );
|
||||
virtual int DrawDebugTextOverlays( void );
|
||||
void InputEnable( inputdata_t &inputdata );
|
||||
void InputDisable( inputdata_t &inputdata );
|
||||
void InputSetVisibleTime( inputdata_t &inputdata );
|
||||
void InputSetRechargeTime( inputdata_t &inputdata );
|
||||
|
||||
CNetworkVar( bool, m_bEnabled );
|
||||
float m_fStartEnabledChance; //0.0 - 100.0% chance that this hallucination will start enabled
|
||||
CNetworkVar( float, m_fVisibleTime ); //how long in seconds this hallucination can remain on screen from first sighting
|
||||
CNetworkVar( float, m_fRechargeTime ); //how long in seconds it takes the hallucination to recharge before becoming visible again. 0 to disable
|
||||
};
|
||||
|
||||
BEGIN_DATADESC( CProp_Hallucination )
|
||||
DEFINE_FIELD( m_bEnabled, FIELD_BOOLEAN ),
|
||||
DEFINE_KEYFIELD( m_fStartEnabledChance, FIELD_FLOAT, "EnabledChance" ),
|
||||
DEFINE_KEYFIELD( m_fVisibleTime, FIELD_FLOAT, "VisibleTime" ),
|
||||
DEFINE_KEYFIELD( m_fRechargeTime, FIELD_FLOAT, "RechargeTime" ),
|
||||
DEFINE_INPUTFUNC( FIELD_VOID, "Enable", InputEnable ),
|
||||
DEFINE_INPUTFUNC( FIELD_VOID, "Disable", InputDisable ),
|
||||
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetVisibleTime", InputSetVisibleTime ),
|
||||
DEFINE_INPUTFUNC( FIELD_FLOAT, "SetRechargeTime", InputSetRechargeTime ),
|
||||
END_DATADESC()
|
||||
|
||||
IMPLEMENT_SERVERCLASS_ST( CProp_Hallucination, DT_Prop_Hallucination )
|
||||
SendPropBool( SENDINFO(m_bEnabled) ),
|
||||
SendPropFloat( SENDINFO(m_fVisibleTime) ),
|
||||
SendPropFloat( SENDINFO(m_fRechargeTime) ),
|
||||
END_SEND_TABLE()
|
||||
|
||||
LINK_ENTITY_TO_CLASS( prop_hallucination, CProp_Hallucination );
|
||||
|
||||
|
||||
CProp_Hallucination::CProp_Hallucination( void )
|
||||
{
|
||||
}
|
||||
|
||||
void CProp_Hallucination::Precache( void )
|
||||
{
|
||||
BaseClass::Precache();
|
||||
PrecacheModel( m_ModelName.ToCStr() );
|
||||
}
|
||||
|
||||
void CProp_Hallucination::Spawn( void )
|
||||
{
|
||||
Precache();
|
||||
BaseClass::Spawn();
|
||||
SetModel( m_ModelName.ToCStr() );
|
||||
|
||||
if( m_fStartEnabledChance > 0.0f )
|
||||
{
|
||||
m_bEnabled = RandomFloat() <= (m_fStartEnabledChance * 0.01f);
|
||||
}
|
||||
}
|
||||
|
||||
void CProp_Hallucination::InputEnable( inputdata_t &inputdata )
|
||||
{
|
||||
m_bEnabled = true;
|
||||
}
|
||||
|
||||
void CProp_Hallucination::InputDisable( inputdata_t &inputdata )
|
||||
{
|
||||
m_bEnabled = false;
|
||||
}
|
||||
|
||||
void CProp_Hallucination::InputSetVisibleTime( inputdata_t &inputdata )
|
||||
{
|
||||
m_fVisibleTime = inputdata.value.Float();
|
||||
}
|
||||
|
||||
void CProp_Hallucination::InputSetRechargeTime( inputdata_t &inputdata )
|
||||
{
|
||||
m_fRechargeTime = inputdata.value.Float();
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Draw debug overlays
|
||||
//-----------------------------------------------------------------------------
|
||||
int CProp_Hallucination::DrawDebugTextOverlays()
|
||||
{
|
||||
int text_offset = BaseClass::DrawDebugTextOverlays();
|
||||
|
||||
if (m_debugOverlays & OVERLAY_TEXT_BIT)
|
||||
{
|
||||
char tempstr[255];
|
||||
|
||||
Q_snprintf( tempstr, sizeof(tempstr), "%s", m_bEnabled ? "Enabled" : "Disabled" );
|
||||
EntityText( text_offset++, tempstr, 0 );
|
||||
|
||||
Q_snprintf( tempstr, sizeof(tempstr), "Start Enabled Chance: %f%%", m_fStartEnabledChance );
|
||||
EntityText( text_offset++, tempstr, 0 );
|
||||
|
||||
Q_snprintf( tempstr, sizeof(tempstr), "Visible Time: %fs", m_fVisibleTime.Get() );
|
||||
EntityText( text_offset++, tempstr, 0 );
|
||||
|
||||
Q_snprintf( tempstr, sizeof(tempstr), "Recharge Time: %fs", m_fRechargeTime.Get() );
|
||||
EntityText( text_offset++, tempstr, 0 );
|
||||
}
|
||||
|
||||
|
||||
return text_offset;
|
||||
}
|
||||
Reference in New Issue
Block a user