
#ifndef GROUPENNEMY_H
#define GROUPENNEMY_H

#include <vector>
#include "EnnemyUnit.h"
#include "Point2D.h"

#include "MemoryManager/DebugNew.h"

class GroupEnnemy
{
	friend class EnnemyManager;	//les classes ennemy manager controle parfaitement les groupes...

	/**
	* Les unités de se groupe
	*/
	std::vector<EnnemyUnit*> units;

	/**
	* La position du groupe
	*/
	Point2D groupPos;

	/**
	* Le rayon d'influence du groupe
	*/
	float radius;

public:
	GroupEnnemy(void);
	virtual ~GroupEnnemy(void);

	std::string toString(void);

	int getForce();

	int getHP();

	int getHPMax();

	int getNumber();

	/**
	* Permet de récuperer un vector contenant les unités de se groupe
	*
	* @return une réference sur le vecteur des unités de se groupes
	*/
	std::vector<EnnemyUnit*>& getUnits();

	/**
	* Permet de récupérer la position du groupe
	*
	* @return une réference position du groupe
	*/
	Point2D& getPosition();

	/**
	* 
	*/
	float getRadius();

	void addEnnemy(EnnemyUnit* ennemy);
	void removeEnnemy(EnnemyUnit* ennemy);
	void removeAllEnnemy();
	bool containEnnemy(EnnemyUnit* ennemy);
};

#include "MemoryManager/DebugNewOff.h"

#endif


