2023-10-03 17:23:56 +03:00

45 lines
1.4 KiB
C++

#ifndef _INCLUDED_C_ASW_EGG_H
#define _INCLUDED_C_ASW_EGG_H
#include "iasw_client_aim_target.h"
#include "asw_shareddefs.h"
#include "glow_outline_effect.h"
class CNewParticleEffect;
class C_ASW_Egg : public C_BaseFlex, public IASW_Client_Aim_Target
{
public:
DECLARE_CLASS( C_ASW_Egg, C_BaseFlex );
DECLARE_CLIENTCLASS();
C_ASW_Egg();
virtual ~C_ASW_Egg();
// aim target interface
IMPLEMENT_AUTO_LIST_GET();
virtual float GetRadius() { return 20; }
virtual bool IsAimTarget() { return true; }
virtual const Vector& GetAimTargetPos(const Vector &vecFiringSrc, bool bWeaponPrefersFlatAiming) { return WorldSpaceCenter(); }
virtual const Vector& GetAimTargetRadiusPos(const Vector &vecFiringSrc) { return WorldSpaceCenter(); }
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 );
Class_T Classify( void ) { return (Class_T) CLASS_ASW_EGG; }
virtual void OnDataChanged( DataUpdateType_t type );
virtual void UpdateFireEmitters();
virtual void UpdateOnRemove();
virtual void ClientThink();
CGlowObject m_GlowObject;
bool m_bClientOnFire;
CNetworkVar(bool, m_bOnFire);
CNewParticleEffect *m_pBurningEffect;
float m_fEggAwake; // controls green lines on the outside
private:
C_ASW_Egg( const C_ASW_Egg & ); // not defined, not accessible
};
#endif // _INCLUDED_C_ASW_EGG_H