BEGIN { max_columns = 46; max_lines = 55; }

{	++lines;
 
	if ($2 > 25000)	z =  "Ordeal";
	else if ($2 > 10000)	z =  "Mighty";
	else if ($2 > 5000)	z =  "Powerful";
	else if ($2 > 1000)	z =  "Dangerous";
	else if ($2 > 400)	z =  "Tough";
	else if ($2 > 200)	z =  "Tricky";
	else if ($2 > 100)	z =  "Hard";
	else if ($2 > 50)	z =  "Easy";
	else if ($2 > 25)	z =  "Simple";
        else if ($2 > 14)	z =  "Weak";
	else if ($2 > 8)	z =  "Feeble";
	else			z =  "Defenseless";

	if (lines % max_lines == 1)
		header();

	name = toupper(substr($1, 1, 1)) substr($1, 2);

	column = 0;

	antall = split($5, field, "[()][()]?");

	k=0;
	j = 2;
	while (j < antall) {
		if (column+length(field[j]) > max_columns) {
			column = 0;
			k++;
		}
		else    column += length(field[j++])+1;

	}


	column = 0;

	if (lines + k < max_lines) {
		printf("%-25s & %-7s& %-4s& %-3s&", name, $2, $3, $4);
		for (i = 2; i < antall; i++) {
			if (column + length(field[i]) > max_columns) {
		printf(",\\\\\n%-25s & %-7s& %-4s& %-3s&", "", "", "" , "");
				column = 0; ++lines;
			}
			if (column > 0)
				printf(", ")
			printf(field[i]);
			column += length(field[i])+1;
		}
		if (column > 0) 
		     	printf(".");
	        printf("\\\\\n");
	}
       	else 
	{
       		footer();
       		lines=0;
       	}
}

END { footer(); }

function header() {
	print "\\begin{center}\n\\begin{tabular}{|l|r|r|r|l|}\n\\hline";
        print "Name&Exp&Hp&Ac&Special abilities\\\\\n\\hline\n\\hline";
}

function footer() {
	print "\\hline\n\\end{tabular}\n\\end{center}\n";
}
