sqwarmed/sdk_src/game/server/swarm/asw_egg.h

77 lines
2.3 KiB
C++

#ifndef _INCLUDED_ASW_EGG_H
#define _INCLUDED_ASW_EGG_H
#pragma once
#include "asw_shareddefs.h"
class CASW_Parasite;
class CASW_Egg : public CBaseFlex
{
public:
DECLARE_CLASS( CASW_Egg, CBaseFlex );
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
virtual void Precache();
CASW_Egg();
virtual ~CASW_Egg();
void Spawn( void );
Class_T Classify( void ) { return (Class_T) CLASS_ASW_EGG; }
void AnimThink( void );
void SetupParasiteThink();
// virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo );
// int UpdateTransmitState();
virtual bool CreateVPhysics();
virtual void ReachedEndOfSequence();
void Open(CBaseEntity* pOther);
void Hatch(CBaseEntity* pOther);
void EggTouch(CBaseEntity* pOther);
void CheckEggSize();
void SpawnEffects(int flags);
void ResetEgg();
bool m_bOpen, m_bHatched, m_bOpening;
float m_fHatchTime, m_fEggResetTime;
string_t m_sParasiteClass;
bool m_bStoredEggSize;
Vector m_vecStartSurroundMins, m_vecStartSurroundMaxs;
bool m_bMadeParasiteVisible;
bool m_bFixedJumpDirection;
float m_fNextMarineCheckTime;
bool m_bSmallOpenRadius;
CNetworkVar( float, m_fEggAwake ); // controls green lines on the outside
void ParasiteDied(CASW_Parasite* pParasite);
CASW_Parasite* GetParasite();
EHANDLE m_hParasite;
// damage related
virtual int OnTakeDamage( const CTakeDamageInfo &info );
virtual void Event_Killed( const CTakeDamageInfo &info );
virtual void ASW_Ignite( float flFlameLifetime, float flSize, CBaseEntity *pAttacker, CBaseEntity *pDamagingWeapon = NULL );
virtual void Ignite( float flFlameLifetime, bool bNPCOnly = true, float flSize = 0.0f, bool bCalledByLevelDesigner = false );
virtual void TraceAttack( const CTakeDamageInfo &info, const Vector &vecDir, trace_t *ptr );
virtual void Bleed( const CTakeDamageInfo &info, const Vector &vecPos, const Vector &vecDir, trace_t *ptr );
EHANDLE m_hBurner;
EHANDLE m_hBurnerWeapon;
CNetworkVar(bool, m_bOnFire);
static float s_fNextSpottedChatterTime;
bool m_bSkipEggChatter;
// i/o
COutputEvent m_OnOpened;
COutputEvent m_OnHatched;
COutputEvent m_OnDestroyed;
COutputEvent m_OnEggReset;
void InputOpen( inputdata_t &inputdata );
void InputHatch( inputdata_t &inputdata );
};
#endif /* _INCLUDED_ASW_EGG_H */