61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
BEGIN {
 | 
						|
	# special is a list of what special things we should look for.
 | 
						|
	# The value of the array is how many commas we should skip.
 | 
						|
	special["attacks"] = 1;
 | 
						|
	special["protected"] = 1;
 | 
						|
	special["immune"] = 1;
 | 
						|
	special["vulnerable"] = 1;
 | 
						|
	special["spell abilities"] = 1;
 | 
						|
}
 | 
						|
 | 
						|
{
 | 
						|
 | 
						|
# Old stuff: 
 | 
						|
#	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";
 | 
						|
 | 
						|
# Expl:
 | 
						|
# name 		- ..
 | 
						|
# comma 	- Print a comma or not
 | 
						|
# antall 	- number of (sub)fields in the 'Special' field; antall(Nor) <-> "number of".
 | 
						|
# i	 	- counter. Should start as values 2.
 | 
						|
 | 
						|
	name = capitalize($1);
 | 
						|
	sub("_", " ", name);
 | 
						|
	comma = 0;
 | 
						|
	# The split allows "(", ")(", ", ", ":", ":)(" etc. as delimiters
 | 
						|
	antall = split($5, field, "([():,][():,]*) *");
 | 
						|
 | 
						|
       	printf("%s &~~%s~~ &%s &%s &%s &%s &",
 | 
						|
		name, $6, $7 ? "~~" $7 "~~" : "", $2, $3, $4);
 | 
						|
       	for (i = 2; i < antall; i++) {
 | 
						|
		if (field[i] in special) {
 | 
						|
			if (comma > 0)
 | 
						|
				printf("\\newline ");
 | 
						|
			printf("%s: ", capitalize(field[i]));
 | 
						|
			comma = 1 - special[field[i]];
 | 
						|
		} else {
 | 
						|
	       		if (comma > 0)
 | 
						|
				printf(", ");
 | 
						|
			else
 | 
						|
				++comma;
 | 
						|
	       		printf(i == 2 ? capitalize(field[i]) : field[i]);
 | 
						|
		}
 | 
						|
       	}
 | 
						|
        printf("\\\\\n");
 | 
						|
}
 | 
						|
 | 
						|
function capitalize(str) {
 | 
						|
	return toupper(substr(str, 1, 1)) substr(str, 2);
 | 
						|
}
 |