#ifndef PATHFINDING_H
#define PATHFINDING_H

namespace ground{

	/**
	 * namespace servant à definir les different mode utilisable par le pathFinder
	 *
	 * @see ground::GroundMap::computePath() pour calculer un chemin simple
	 * @see ground::GroundMap::computeUnitPath() pour calculer un chemin pour une unité donnée
	 * @see ground::GroundMap::moveGroupTo() pour calculer un chemin pour un groupe d'unités
	 */
	namespace pathFinding{
		/**
		 * enumeration contenant tout les mode de deplacement pris en compte par le pathFinder.
		 */
		enum PathFinderMode{
			/**
			 * deplacement normal : ne prend en compte que le cout static du terrain
			 */
			NORMAL = 0,
			/**
			 * l'unitée passe autant que possible par le centre des forets
			 */
			FURTIF,
			/**
			 * l'unitée passe autant que possible par l'orée de la foret
			 */
			HIDDEN_EXPLORATION,
			/**
			 * l'unité favorise l'utilisation des routes
			 */
			GET_ROAD,
			/**
			 * l'unité evite autant que possible la foret.
			 */ 
			AVOID_FOREST,
			/**
			 * l'unité evite les zones de danger.
			 */
			AVOID_DANGER,
		};
	};
};
#endif