#ifndef CANDY_H
#define CANDY_H

/**
* Candy
* @version 16-4-2002
* @author Herwin 'harSens' van Welbergen
*/
class CCandy: public CBaseEntity
{
public:
	/**
	* Spawns the candy
	*/
	void Spawn( void );
	
	/**
	* Precaches the models
	*/
	void Precache( void );

	/**
	* the candy is touched by something else
	* @param CBaseEntity *pOther: the one touching the candy
	*/
	void Touch(CBaseEntity *pOther);
protected:
	/**
	* give the player some stuff from the candy
	* @param CBasePlayer *pPlayer: the player to give stuff
	*/
	virtual void GetStuff(CBasePlayer *pPlayer){}
};

/**
* Chocolate
* @version 16-4-2002
* @author Herwin 'harSens' van Welbergen
*/
class CChocolate: public CCandy
{
public:
	/**
	* Creates the chocolate
	* @param Vector origin: the origin of the candy
	* @param entvars_t *pevOwner: the one turned into chocolate
	*/
	static CChocolate *CreateChocolate(Vector origin,entvars_t *pevOwner);	
protected:
	/**
	* give the player some stuff from the candy
	* @param CBasePlayer *pPlayer: the player to give stuff
	*/
	virtual void GetStuff(CBasePlayer *pPlayer);
};

/**
* Cookie
* @version 16-4-2002
* @author Herwin 'harSens' van Welbergen
*/
class CCookie: public CCandy
{
public:
	/**
	* Creates the chocolate
	* @param Vector origin: the origin of the candy
	* @param entvars_t *pevOwner: the one turned into a cookie
	*/
	static CCookie *CreateCookie(Vector origin,entvars_t *pevOwner);
protected:
	/**
	* give the player some stuff from the candy
	* @param CBasePlayer *pPlayer: the player to give stuff
	*/
	virtual void GetStuff(CBasePlayer *pPlayer);
};

/**
* Donut
* @version 23-4-2002
* @author Herwin 'harSens' van Welbergen
*/
class CDonut: public CCandy
{
public:
	/**
	* Creates the donut
	* @param Vector origin: the origin of the candy
	* @param entvars_t *pevOwner: the one turned into a donut
	*/
	static CDonut *CreateDonut(Vector origin,entvars_t *pevOwner);
protected:
	/**
	* give the player some stuff from the candy
	* @param CBasePlayer *pPlayer: the player to give stuff
	*/
	virtual void GetStuff(CBasePlayer *pPlayer);
};
#endif
