source-engine/game/shared/swarm/asw_mortarbug_shell_shared.h
2023-10-03 17:23:56 +03:00

61 lines
1.4 KiB
C++

#ifndef _INCLUDED_ASW_MORTARBUG_SHELL_SHARED_H
#define _INCLUDED_ASW_MORTARBUG_SHELL_SHARED_H
#ifdef _WIN32
#pragma once
#endif
#ifdef CLIENT_DLL
#include "c_basecombatcharacter.h"
#define CASW_Mortarbug_Shell C_ASW_Mortarbug_Shell
#define CBaseCombatCharacter C_BaseCombatCharacter
class Beam_t;
#else
#include "basecombatcharacter.h"
#endif
class CSprite;
class CASW_Mortarbug_Shell : public CBaseCombatCharacter
{
DECLARE_CLASS( CASW_Mortarbug_Shell, CBaseCombatCharacter );
public:
CASW_Mortarbug_Shell();
DECLARE_NETWORKCLASS();
#ifdef GAME_DLL
virtual ~CASW_Mortarbug_Shell();
DECLARE_DATADESC();
virtual void Spawn( void );
virtual void Precache( void );
virtual void ShellFlyThink();
virtual void ShellThink();
virtual void VShellTouch( CBaseEntity *pOther );
virtual void SetFuseLength(float fSeconds);
virtual void Detonate();
static CASW_Mortarbug_Shell *CASW_Mortarbug_Shell::CreateShell( const Vector &vecOrigin, const Vector &vecForward, CBaseEntity *pOwner );
bool m_bDoScreenShake;
private:
float m_flDamage;
float m_DmgRadius;
bool m_bModelOpening;
float m_fDetonateTime;
Vector m_vecLastPosition;
#else
virtual void PostDataUpdate( DataUpdateType_t updateType );
#endif
Class_T Classify( void ) { return (Class_T) CLASS_ASW_MORTAR_SHELL; }
private:
CASW_Mortarbug_Shell( const CASW_Mortarbug_Shell & );
};
#endif // _INCLUDED_ASW_MORTARBUG_SHELL_SHARED_H