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);
|
|
}
|