#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