view skinstats.pl @ 374:10d030b85117 misc tip

Switch Convent map to SVG version, add link to PNG render to the caption.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 01 Mar 2024 10:02:38 +0200
parents 3a10a6ac7ec6
children
line wrap: on
line source

#!/usr/bin/perl -w
use strict;
my $corpse_set = 0;
my $corpse_name;
my %pieces = ();
my %rpieces = ();
my %rcorpses = ();
my $rtotal = 0;

while (<STDIN>) {
  chomp;
  if (/^This is the dead body of ([A-Z][a-z ]+)\.$/) {
    $corpse_name = $1;
    $corpse_set = 1;
  } elsif (/^([A-Z][a-z ]+) is DEAD, R.I.P\.$/) {
    $corpse_name = $1;
    $corpse_set = 1;
  } elsif (/^You create a ([a-z]+) [a-z]+ by skinning the corpse\.$/) {
    my $piece_name = $1;
    if ($corpse_set) {
      $pieces{$corpse_name}{$piece_name}++;
      $rcorpses{$corpse_name}++;
      $rpieces{$piece_name}++;
      $rtotal++;
    }
    $corpse_set = 0;
  }
}

print "--------------------------------------\n";
for my $k1 (sort { $a cmp $b } keys %pieces) {
  if ($rcorpses{$k1} >= 20) {
    printf "%-15s [%3d]: ", $k1, $rcorpses{$k1};
    for my $k2 ( sort { $a cmp $b } keys %{$pieces{$k1}} ) {
      printf "%s=%1.1f%% | ",$k2, (($pieces{$k1}{$k2} * 100) / $rcorpses{$k1});
    }
    print "\n";
  }
}

print "--------------------------------------\n";
for my $k1 (sort { $a cmp $b } keys %rpieces) {
  printf "%-15s: %d (%1.1f%%)\n", $k1, $rpieces{$k1}, (($rpieces{$k1}*100)/$rtotal);
}
print "--------------------------------------\n";