#ifndef SHENLONG_H
#define SHENLONG_H

/**
* Shenlong
* @version 15-1-2002
* @author Herwin 'harSens' van Welbergen
*/
class CShenlong :public CBaseMonster
{	
public:
	/**
	* Spawns shenlong
	*/
	void Spawn( void );
	
	/**
	* Precaches the shenlong
	*/
	void Precache( void );

	/**
	* Creates a shenlong
	* @param Vector origin: where to place him
	*/
	static CShenlong *CreateShenlong(Vector vecStart, Vector vecDir, CDragonBall *dragonballs[]);

	/**
	* Shenlong is touched by something else
	* @param CBaseEntity *pOther: the one touching shenlong
	*/
	void Touch(CBaseEntity *pOther);

	/*
	* shenlong speakes and let his eyes glow
	*/
	void GrantWish();

	/**
	* Think function: grants the wish and leaves
	*/
	EXPORT void WishGrantThink ( void );
	
	/**
	* Think function: should shenlong get pissed yet?
	*/
	EXPORT void PissedThink( void );
private:
	CSprite *m_pEyes[2];			//shens eyes
	int m_iEyeBrightness;
	int m_fEyeFadeIn;				//true is eyes fade in, false is fade out
	int m_iFadeCount;
	CDragonBall *m_pDragonBalls[7];
};
#endif
