arch/dev/scripts/update_monster.pl

60 lines
1.3 KiB
Perl
Executable File

#!/usr/bin/perl
for ($i=0; $i<=$#ARGV; $i++) {
if (!rename("$ARGV[$i]", "$ARGV[$i].bak")) {
print STDERR "Unable to rename file $ARGV[$i]\n";
next;
}
print "Processing $ARGV[$i]\n";
open(IN,"<$ARGV[$i].bak");
open(OUT,">$ARGV[$i]");
while (<IN>) {
$in = $_;
if (/^end\s*$/) {
print OUT "$body_info" if ($body_info ne "");
print OUT "$weapon_info" if ($weapon_info ne "");
print OUT "$wand" if ($wand ne "");
$body_info="";
$weapon_info="";
$wand="";
}
if (/^Object (.*)$/) {
$body_info="";
$weapon_info="";
$wand="";
}
elsif (/^can_use_shield\s+1/) {
$weapon_info="body_arm 2\n";
}
elsif (/^can_use_bow\s+1/) {
$weapon_info="body_arm 2\n";
}
elsif (/^can_use_weapon\s+1/) {
$weapon_info="body_arm 2\n";
}
elsif (/^can_use_wand\s+1/) {
$wand="body_range 1\n";
}
elsif (/^can_use_rod\s+1/) {
$wand="body_range 1\n";
}
elsif (/^can_use_horn\s+1/) {
$wand="body_range 1\n";
}
elsif (/^can_use_armour\s+1/) {
$body_info .= "body_torso 1\nbody_head 1\nbody_shoulder 1\nbody_foot 1\nbody_wrist 1\nbody_hand 2\nbody_waist 1\n";
}
elsif (/^can_use_ring\s+1/) {
$body_info .="body_finger 2\n";
}
elsif (/^can_use_skill\s+1/) {
$body_info .="body_skill 1\n";
}
print OUT $in;
}
close(OUT);
close(IN);
unlink("$ARGV[$i].bak");
}