Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use strict;
- use warnings;
- open FILIN, "<RawMoveList.txt" or die $!;
- open FILOUT, ">ProcessedMoveList.txt" or die $!;
- my $effectwrite = 0;
- my $firsttime = 1;
- print FILOUT " ||~ Name ||~ Freq ||~ AC ||~ Type ||||~ Damage ||~ Range ||~ Special Effect ||~ Contest ||\n";
- my %data = ();
- sub outputMove {
- $data{DB} = "-" unless $data{DB};
- $data{AC} = "None" unless $data{AC};
- $data{Range} = "See Effect" unless $data{Range};
- $data{Class} = "[[image img/A.png]]" if $data{Class} eq "Physical";
- $data{Class} = "[[image img/S.png]]" if $data{Class} eq "Special";
- $data{Class} = "[[image img/N.png]]" if $data{Class} eq "Status";
- $data{Contest} = $data{ContestType} . " - " . $data{ContestEffect};
- my $spacer = " || ";
- my $outline = "||~ ";
- $outline .= ($data{Move} . $spacer);
- $outline .= ($data{Frequency} . $spacer);
- $outline .= ($data{AC} . $spacer);
- $outline .= ($data{Type} . $spacer);
- $outline .= ($data{DB} . $spacer);
- $outline .= ($data{Class} . $spacer);
- $outline .= ($data{Range} . $spacer);
- $outline .= ($data{Effect} . $spacer);
- $outline .= ($data{Contest} . $spacer);
- chop $outline;
- $outline .= "\n";
- print FILOUT $outline;
- %data = ();
- }
- sub extract {
- my $l = $_[0];
- my $filter = $_[1];
- return 0 unless $l =~ m/^$filter: /;
- $l =~ s/^$filter: //;
- $filter =~ s/ //;
- $data{$filter} = $l;
- return 1;
- }
- while (my $line = <FILIN>) {
- chomp $line;
- next unless ($line);
- next if ($line =~ m/Moves$/ and not $effectwrite);
- next if ($line =~ m/^\d{3}$/ );
- if ($firsttime) {
- $firsttime = 0;
- } elsif ($line =~ m/^Move: /) {
- outputMove();
- }
- if ($effectwrite) {
- if ($line =~ m/^Contest Type: /) {
- $effectwrite = 0;
- } else {
- $data{Effect} .= " $line";
- next;
- }
- }
- if ($line =~ m/^Damage Base/) {
- $line =~ s/Damage Base/DB/;
- $data{DB} = $line;
- next;
- }
- $effectwrite = 1 if ($line =~ m/^Effect: /);
- if ($line =~ m/^Special: /) {
- $line =~ s/Special: //;
- $data{Effect} .= " //$line//";
- next;
- }
- $effectwrite = 1 if ($line =~ m/^Range: / and $line =~ m/Set-Up/);
- extract($line, "Move") or
- extract($line, "Type") or
- extract($line, "Frequency") or
- extract($line, "AC") or
- extract($line, "Class") or
- extract($line, "Range") or
- extract($line, "Effect") or
- extract($line, "Contest Type") or
- extract($line, "Contest Effect");
- }
- outputMove();
- close FILIN;
- close FILOUT;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement