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

	INT random_number 
	INT enemy_recno 
	INT enemy_item_recno
	INT inside_facility_flag

	enemy_recno = 0
	enemy_item_recno = 0

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

	if( FUNC("is_idle_mode", my_unit_recno) )
	{
		inside_facility_flag = FUNC("is_inside_facility", my_unit_recno, FUNC("get_curr_task_para", my_unit_recno , 2) )

		if( inside_facility_flag == 0 )
		{
			ACTION("give_order" , my_unit_recno, "APPROACH_PLACE" , 1 , 1 , FUNC("get_curr_task_para", my_unit_recno , 1) , FUNC("get_curr_task_para", my_unit_recno , 2) , 0 , 0, 30000)
		}

		// search for gate to open
		enemy_item_recno = FUNC("search_for_item", my_unit_recno , "FG" , 500, 0) 

		if( enemy_item_recno )
		{
			ACTION("give_order" , my_unit_recno, "GATE_OPEN" , 2 , 0 , enemy_item_recno , 1 , 0 , 0, 1500) 
		}

		if( inside_facility_flag != 0 )
		{
			ACTION("give_order" , my_unit_recno, "RECRUIT_TROOP" , 3 , 0 , FUNC("get_curr_task_para", my_unit_recno , 1) , 0 , 0 , 0, 1500)

			FUNC( "stop_curr_task" , my_unit_recno )
		}
	}
}
