//========= Copyright Valve Corporation, All rights reserved. ============//
// eyeball_boss_idle.h
// The 2011 Halloween Boss
// Michael Booth, October 2011

#ifndef EYEBALL_BOSS_IDLE_H
#define EYEBALL_BOSS_IDLE_H

//---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------
class CEyeballBossIdle : public Action< CEyeballBoss >
{
public:
	virtual ActionResult< CEyeballBoss > OnStart( CEyeballBoss *me, Action< CEyeballBoss > *priorAction );
	virtual ActionResult< CEyeballBoss > Update( CEyeballBoss *me, float interval );

	virtual ActionResult< CEyeballBoss > OnResume( CEyeballBoss *me, Action< CEyeballBoss > *interruptingAction );

	virtual EventDesiredResult< CEyeballBoss > OnInjured( CEyeballBoss *me, const CTakeDamageInfo &info );
	virtual EventDesiredResult< CEyeballBoss > OnOtherKilled( CEyeballBoss *me, CBaseCombatCharacter *victim, const CTakeDamageInfo &info );

	virtual const char *GetName( void ) const	{ return "Idle"; }		// return name of this action

private:
	CountdownTimer m_lookAroundTimer;
	PathFollower m_path;
	CountdownTimer m_repathTimer;
	CHandle< CBaseEntity > m_attacker;
	CountdownTimer m_talkTimer;
	CountdownTimer m_lifeTimer;
	CountdownTimer m_moveTimer;
	float m_lastWarnTime;
	int m_lastHealth;
	bool m_isLaughReady;
};

#endif // EYEBALL_BOSS_IDLE_H