//////////////////////////////////////////////////////////////////////////////
//
// ToolsAVP_Entity_Squad_Alien.h
//
// Copyright (C) 2008 Rebellion. All Rights Reserved.
//
//////////////////////////////////////////////////////////////////////////////

// B E G I N   F I L E   W R A P P E R ///////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef __TOOLSAVP_ENTITY_SQUAD_ALIEN_H__
#define __TOOLSAVP_ENTITY_SQUAD_ALIEN_H__ 1

// E N D   F I L E   W R A P P E R ///////////////////////////////////////////

// I N C L U D E S ///////////////////////////////////////////////////////////

// avp
#include "Entity/Controller/ToolsAVP_Entity_Squad.h"

// F O R W A R D   D E C L A R A T I O N S ///////////////////////////////////

class AVP_ServerEntity_Squad_Alien;

//////////////////////////////////////////////////////////////////////////////
//
// ToolsAVP_Entity_Squad_Alien
//
//////////////////////////////////////////////////////////////////////////////

class ToolsAVP_Entity_Squad_Alien : public ToolsAVP_Entity_Squad
{
	typedef ToolsAVP_Entity_Squad PARENT;

public:
	ToolsAVP_Entity_Squad_Alien( Asura_Entity* pxEntity );

	virtual const char*	GetTypeDescription() { return "Alien Squad"; }
	virtual bool        CanBeDestroyed();
	virtual void		AddOverlayControls( Asura_Overlay* pxOverlay, Asura_Vector_2& xOffset );
	virtual void		OnSelection();
	virtual void		UpdateWhileSelected();
	virtual bool		HandlesThisEvent( int iEventID ) const;
	virtual bool		HandlesThisMessage( int iMessage );
	virtual void		Update();

	virtual bool GetParameter( Asura_Hash_ID uParamID, Tools_Parameter* pxParam ) const;

	static void			 Create();
	static void			 CreateDefault();
	static Tools_Object* Create( Asura_Entity* pxEntity );



private:
	AVP_ServerEntity_Squad_Alien* GetAlienSquad() const;
	void RequestRefreshOverlay() { m_bRefreshOverlay = true; }

	static void BehaviourChanged( int iThis );
	static void DropDownListChanged( int iThis );
	static void TickBoxChanged( int iThis );

	static void ChooseBehaviourBP( int iThis );


private:
	bool m_bRefreshOverlay;
};

//////////////////////////////////////////////////////////////////////////////
//
// 
//
//////////////////////////////////////////////////////////////////////////////

#endif //__TOOLSAVP_ENTITY_SQUAD_ALIEN_H__
