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.
77 lines
2.2 KiB
77 lines
2.2 KiB
#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 */ |