view taskinfo/findreqs.pl @ 50:70c64c55c0e0 misc

Reindent the script, get rid of tabs.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 16 Aug 2009 22:55:49 +0000
parents 81f1abadda3e
children
line wrap: on
line source

#!/usr/bin/perl -w
use strict;
my %taskList;
my @tmpList = ();
my $wasFound = 0;
my $n;

### Process and parse input logfile
while (<STDIN>) {
  chomp;
  if (/^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 {
          $taskList{$taskName}{$tmpName} = $tmpPercentage;
        }
      }
    }
  }
  
  if ($n++ >= 6) {
    $wasFound = 0;
    for my $taskName (@tmpList) {
      if (!defined($taskList{$taskName})) {
        $taskList{$taskName} = ();
      }
    }
    @tmpList = ();
  }
}


### 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) {
    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};
    }
    $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};
    }
    print "|--------------------------------------------------------------------|\n";
    $sepLine = 1;
  }

  $n++;
}
print  "|-----------------+----------------+---------------------------+-----'\n";
printf "| %3d tasks total |\n", $n;
print  "`-----------------'\n";
}