#ifndef ACTIONFOLLOW_H
#define ACTIONFOLLOW_H

#include "Entity.h"
#include "Unit.h"
#include "UnitAction.h"
#include "UnitEnumeration.h"
#include "EnnemyUnit.h"

#include "MemoryManager/debugNew.h"

// forward declaration
class Unit;
class Entity;
class UnitAction;

class ActionFollow :
	public UnitAction
{
	private:

		Unit *unit;
		Entity *entity;
		std::vector<Point2D> path;
		/**
		* L'unité peut suivre une entité avec une certaine distance
		* si distance vaut 0, l'unité essai d'aller au corps ŕ corps
		* avec l'entité
		*/
		float distance;
		/**
		* Indique si l'action s'entretient elle meme.
		*/
		bool loop;

	public:
		ActionFollow(Unit *u,unitEnumeration::UnitState state, Entity *e, bool loop=true);
		ActionFollow(Unit *u,unitEnumeration::UnitState state, Entity *e, float dist, bool loop=true);
		virtual ~ActionFollow(void);

		void execute();

};

#include "MemoryManager/debugNewOff.h"

#endif
