Mercurial > hg > batmud > misc
changeset 67:c5dae8c49b73 misc
Added tool for gathering patron saint power / effect information and outputting a docbook XML table of it.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 21 Dec 2009 11:38:46 +0000 |
parents | 4ad39358df95 |
children | 482f975d51ea |
files | saintinfo-to-docbook-table.pl |
diffstat | 1 files changed, 71 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/saintinfo-to-docbook-table.pl Mon Dec 21 11:38:46 2009 +0000 @@ -0,0 +1,71 @@ +#!/usr/bin/perl -w +use strict; + +my @powers = ( + "almost non-existant", + "faint", + "spiritual", + "strong", + "heavenly", + "celestial", + "DIVINE", +); +my $powerstr = join("|", @powers); +my $name; +my $power; +my $effect; +my %saints = (); +my %powers = (); + +while (<STDIN>) { + chomp; + if (/^ St. ([A-Z][a-z]+)/) { + $name = $1; + } elsif (/^ +Her ($powerstr) power is reavealed in (.+?)\.$/) { + if (defined($name)) { + $power = $1; + $effect = $2; + if (defined($powers{$name}) && $powers{$name} ne $effect) { + print STDERR "Saint '$name' already defined for '".$powers{$name}."' ($effect)!\n"; + } + $powers{$name} = $effect; + $saints{$effect}{$power}{$name} = 1; + } else { + print STDERR "ERR: $_\n"; + } + undef($name); + } elsif (/_________|index=/) { + } elsif (/Her power is faint but those who believe/) { + print STDERR "FAINT: $name\n"; + } +} + +print " +<table> + <title>List of powers bestowed by Saints</title> + <tgroup cols='".((scalar @powers) + 1)."' align='left'> + <thead> + <row><entry>-</entry>"; + +print "<entry>$_</entry>" foreach (@powers); + +print "</row> + </thead> + <tbody> +"; + +foreach my $effect (sort { $a cmp $b } keys %saints) { + print " <row><entry>$effect</entry>"; + foreach my $power (@powers) { + my $s = join(", ", sort { $a cmp $b } keys %{$saints{$effect}{$power}}); + + print "<entry>".($s ne "" ? $s : "-")."</entry>"; + } + print "</row>\n"; +} + +print " + </tbody> + </tgroup> +</table> +";