Mercurial > hg > batmud > misc
changeset 286:f749342539de misc
Various cleanups.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 09 Mar 2015 06:09:52 +0200 |
parents | c30ea380329a |
children | 635da7cf43b6 |
files | nun/tasks/findreqs.pl |
diffstat | 1 files changed, 78 insertions(+), 54 deletions(-) [+] |
line wrap: on
line diff
--- a/nun/tasks/findreqs.pl Mon Mar 09 05:45:34 2015 +0200 +++ b/nun/tasks/findreqs.pl Mon Mar 09 06:09:52 2015 +0200 @@ -1,39 +1,53 @@ #!/usr/bin/perl -w use strict; -my %taskList; +use warnings; +my %taskList = (); my @tmpList = (); my $wasFound = 0; my $n; +my $nline = 0; ### Process and parse input logfile -while (<STDIN>) { - chomp; - if (/^New holy task '(.+)' is now available to you\.$/) { +while (defined(my $line = <STDIN>)) +{ + $nline++; + chomp($line); + + if ($line =~ /^New holy task '(.+)' is now available to you\.$/) + { push(@tmpList, $1); $wasFound = 1; $n = 0; - } elsif ($wasFound) { - if (/^You now have '(.+)' at ([0-9]+)\% without special bonuses\.$/) { - my $tmpName = $1; - my $tmpPercentage = $2; - $n = 10; - - for my $taskName (@tmpList) { - if (defined($taskList{$taskName}{$tmpName})) { - if ($tmpPercentage < $taskList{$taskName}{$tmpName}) { - $taskList{$taskName}{$tmpName} = $tmpPercentage; - } - } else { + } + elsif ($line =~ /^You now have '(.+)' at ([0-9]+)\% without special bonuses\.$/ && $wasFound) + { + my $tmpName = $1; + my $tmpPercentage = $2; + $n = 10; + + for my $taskName (@tmpList) + { + if (defined($taskList{$taskName}{$tmpName})) + { + if ($tmpPercentage < $taskList{$taskName}{$tmpName}) + { $taskList{$taskName}{$tmpName} = $tmpPercentage; } } + else + { + $taskList{$taskName}{$tmpName} = $tmpPercentage; + } } } - - if ($n++ >= 6) { + + if ($n++ >= 6) + { $wasFound = 0; - for my $taskName (@tmpList) { - if (!defined($taskList{$taskName})) { + for my $taskName (@tmpList) + { + if (!defined($taskList{$taskName})) + { $taskList{$taskName} = (); } } @@ -42,6 +56,12 @@ } +sub print_separator() +{ + print "|--------------------------------------------------------------------|\n"; +} + + ### Print out the results $n = 0; if ($#ARGV >= 0) { @@ -58,41 +78,45 @@ print "\n"; } } -} else { -my $sepLine = 0; -print ",--------------------------------------------------------------------.\n"; -print "| Task name | Skill/spell | Min |\n"; -print "+----------------------------------+---------------------------+-----+\n"; -for my $taskName (sort keys %taskList) { - my $i = keys(%{$taskList{$taskName}}); - - if ($i == 0) { - if (!$sepLine) { - print "|--------------------------------------------------------------------|\n"; - } - printf "| %-32s |\n", $taskName; - print "|--------------------------------------------------------------------|\n"; - $sepLine = 1; - } elsif ($i == 1) { - for my $skillName (sort keys %{$taskList{$taskName}}) { - printf "| %-32s | %-25s | %3d |\n", $taskName, $skillName, $taskList{$taskName}{$skillName}; +} +else +{ + my $sepLine = 0; + print ",--------------------------------------------------------------------.\n"; + print "| Task name | Skill/spell | Min |\n"; + print "+----------------------------------+---------------------------+-----+\n"; + for my $taskName (sort keys %taskList) + { + my $i = keys(%{$taskList{$taskName}}); + + if ($i == 0) + { + print_separator() if (!$sepLine); + printf "| %-32s |\n", $taskName; + print_separator(); + $sepLine = 1; } - $sepLine = 0; - } else { - if (!$sepLine) { - print "|--------------------------------------------------------------------|\n"; - } - printf "| %-66s |\n", $taskName; - for my $skillName (sort keys %{$taskList{$taskName}}) { - printf "| %-32s | %-25s | %3d |\n", "", $skillName, $taskList{$taskName}{$skillName}; + elsif ($i == 1) + { + for my $skillName (sort keys %{$taskList{$taskName}}) { + printf "| %-32s | %-25s | %3d |\n", $taskName, $skillName, $taskList{$taskName}{$skillName}; + } + $sepLine = 0; } - print "|--------------------------------------------------------------------|\n"; - $sepLine = 1; - } + else + { + print_separator() if (!$sepLine); + printf "| %-66s |\n", $taskName; + for my $skillName (sort keys %{$taskList{$taskName}}) { + printf "| %-32s | %-25s | %3d |\n", "", $skillName, $taskList{$taskName}{$skillName}; + } + print_separator(); + $sepLine = 1; + } - $n++; + $n++; + } + print "|-----------------+----------------+---------------------------+-----'\n"; + printf "| %3d tasks total |\n", $n; + print "`-----------------'\n"; } -print "|-----------------+----------------+---------------------------+-----'\n"; -printf "| %3d tasks total |\n", $n; -print "`-----------------'\n"; -}