Mercurial > hg > batmud > misc
view nun/tasks/findreqs.pl @ 337:992d8c1c72e6 misc
Indentation and formatting cleanups.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 29 Jun 2016 18:22:32 +0300 |
parents | f749342539de |
children | 6f4baa8abf82 |
line wrap: on
line source
#!/usr/bin/perl -w use strict; use warnings; my %taskList = (); my @tmpList = (); my $wasFound = 0; my $n; my $nline = 0; ### Process and parse input logfile 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 ($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) { $wasFound = 0; for my $taskName (@tmpList) { if (!defined($taskList{$taskName})) { $taskList{$taskName} = (); } } @tmpList = (); } } sub print_separator() { print "|--------------------------------------------------------------------|\n"; } ### Print out the results $n = 0; if ($#ARGV >= 0) { if ($ARGV[0] eq "-tasks") { for my $taskName (sort keys %taskList) { print $taskName."\n"; } } elsif ($ARGV[0] eq "-dump") { for my $taskName (sort keys %taskList) { print $taskName."|"; for my $skillName (sort keys %{$taskList{$taskName}}) { print $skillName."=".$taskList{$taskName}{$skillName}."|"; } 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) { print_separator() if (!$sepLine); printf "| %-32s |\n", $taskName; print_separator(); $sepLine = 1; } elsif ($i == 1) { for my $skillName (sort keys %{$taskList{$taskName}}) { printf "| %-32s | %-25s | %3d |\n", $taskName, $skillName, $taskList{$taskName}{$skillName}; } $sepLine = 0; } 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++; } print "|-----------------+----------------+---------------------------+-----'\n"; printf "| %3d tasks total |\n", $n; print "`-----------------'\n"; }