//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Base class for object upgrading objects
//
//=============================================================================//

#ifndef TF_OBJ_BASEUPGRADE_H
#define TF_OBJ_BASEUPGRADE_H
#ifdef _WIN32
#pragma once
#endif


#include "baseobject_shared.h"
#include "takedamageinfo.h"

#if defined( CLIENT_DLL )
#define CBaseObjectUpgrade C_BaseObjectUpgrade
#endif

// ------------------------------------------------------------------------ //
// Base class for object upgrading objects
// ------------------------------------------------------------------------ //
class CBaseObjectUpgrade : public CBaseObject
{
DECLARE_CLASS( CBaseObjectUpgrade, CBaseObject );

public:
	DECLARE_NETWORKCLASS();

	CBaseObjectUpgrade();

	virtual void	Spawn( void );
	virtual bool	IsAnUpgrade( void )			{ return true; }
	virtual int		OnTakeDamage( const CTakeDamageInfo &info );

private:
	CBaseObjectUpgrade( const CBaseObjectUpgrade & ); // not defined, not accessible
};

#endif // TF_OBJ_BASEUPGRADE_H