"HUMAN_LIGHT_INF_ATTACK_PLACE"
{
	INT my_unit_recno 
	my_unit_recno = FUNC("get_character_recno") 

	INT random_number 
	INT enemy_recno
//	INT near_enemy_recno 
	INT enemy_item_recno
	INT	target_recno 


	// no enemy is near , move back to his formation, if his leader is far away
	target_recno = FUNC("search_for_unit", my_unit_recno, "T", 0, 0, 0, 0)

	if( FUNC("get_leader_recno", my_unit_recno) > 0 )
	{
		enemy_recno = FUNC("search_for_unit" , my_unit_recno, "L" , 1000, 0, 0, 0) 

		if( enemy_recno == 0 ) // if the leader is not here even in 1000 radius!!!
		{
			// go back to follow formation and don't do anything
			ACTION("give_order" , my_unit_recno, "FOLLOW_FORMATION" , 2 , 1 , 0 , 0 , 0 , 0, 10000)
			FUNC("set_unit_target_unit_recno", my_unit_recno, 0)
			exit
		}

		if( target_recno == 0 )	
		{
			ACTION("give_order" , my_unit_recno, "FOLLOW_FORMATION" , -1 , 1 , 0 , 0 , 0 , 0, 10000)
		}
	}

	enemy_recno = FUNC("search_for_unit" , my_unit_recno, "E" , 150, 0, 0 , 0) 
//	near_enemy_recno = FUNC("search_for_unit" , my_unit_recno , "E" , 60, 0, 0 , 0) 
	enemy_item_recno = FUNC("search_for_item" , my_unit_recno, "EGC" , 150, 0) 

	if( enemy_recno || enemy_item_recno )
	{
		FUNC("set_unit_mode" , my_unit_recno, "ATTACK")
	}

	if ( enemy_recno == 0 && enemy_item_recno == 0 )
	{
		FUNC("set_unit_mode" , my_unit_recno, "ACTIVE" )

		enemy_recno = FUNC("search_for_unit" , my_unit_recno, "E" , 200, 0, 0, 0) 
		random_number = FUNC("random_number" , 5)

		if( enemy_recno && random_number == 0 ) // 1/3 attack mode even a little bit far away 
		{
			FUNC("set_unit_mode" , my_unit_recno, "ATTACK")
		}
	}

	if( FUNC("is_attack_mode", my_unit_recno) )
	{
//		if( near_enemy_recno )	// if the enemy if too near , try move back
//		{
//			random_number = FUNC("random_number" , 100)
//			if( random_number < 90 )
//			{
//				ACTION("give_order" , my_unit_recno, "TURN" , 3 , 0 , FUNC("get_rotation" , my_unit_recno, near_enemy_recno) , 0 , 0 , 0, 2500)
//				ACTION("give_order" , my_unit_recno, "SHIFT" , 1 , 0 , 3 , 0 , 0 , 0, 1500) 
//				exit
//			}
//		
//		}
//
		if( enemy_recno )
		{
			ACTION("give_order" , my_unit_recno, "TURN" , 3 , 0 , FUNC("get_rotation" , my_unit_recno, enemy_recno) , 0 , 0 , 0, 2500)
			SCRIPT("script\unit\human_light_inf_attack_share.txt")
			exit
		}

		if( enemy_item_recno )
		{
			ACTION("give_order" , my_unit_recno, "TURN" , 3 , 0 , FUNC("get_item_rotation" , my_unit_recno, enemy_item_recno) , 0 , 0 , 0, 2500)
			SCRIPT("script\unit\human_light_inf_attack_share.txt")
			exit
		}

		exit
	}

	if( FUNC("is_idle_mode", my_unit_recno) )
	{
		enemy_recno = FUNC("search_for_unit" , my_unit_recno, "E" , FUNC("get_unit_range", my_unit_recno, 1) , 1, 0, 0) // approach anything if near 

		if( enemy_recno > 0 ) 
		{
			ACTION("give_order" , my_unit_recno, "APPROACH_ENEMY" , 1 , 0 , enemy_recno , 60 , 60 , 0, 30000)
			exit
		}

		// approach nearest high priority
		FUNC("set_unit_attack_behaviour", my_unit_recno, "NEAREST_HIGH_PRIORITY" )
		enemy_recno = FUNC("search_for_unit" , my_unit_recno, "E" , FUNC("get_unit_range", my_unit_recno, 2), 1, 0, 0) // approach anything if near 

		if( enemy_recno > 0 ) 
		{
			ACTION("give_order" , my_unit_recno, "APPROACH_ENEMY" , 1 , 0 , enemy_recno , 60 , 60 , 0, 30000)
			exit
		}

		// approach the target
		if( target_recno )
		{
			if( FUNC("get_unit_dist", my_unit_recno, target_recno ) <= FUNC("get_unit_range", my_unit_recno, 3) )		
			{
				ACTION("give_order" , my_unit_recno, "APPROACH_ENEMY" , 1 , 0 , target_recno , 60 , 60 , 0, 30000)
				exit
			}
		}

		enemy_item_recno = FUNC("search_for_item" , my_unit_recno, "EGC" , 1600, 1) 

			if( enemy_item_recno > 0 ) 
		{
			ACTION("give_order" , my_unit_recno, "APPROACH_ITEM" , 1 , 0 , enemy_item_recno , 60 , 60 , 0, 30000)
			exit
		}

		FUNC("set_unit_mode" , my_unit_recno, "IDLE" )
	}

}
