Difference between revisions of "User:CommanderC/stab-bonus.pl"
CommanderC (talk | contribs) (Created page with "<pre> <nowiki> #!/usr/bin/perl use strict; use warnings; sub stab_weapon { my $skill = shift; my $weapon = shift; my $tier = shift; my $tier_penalty = 0; my...") |
CommanderC (talk | contribs) |
||
| Line 34: | Line 34: | ||
sub do_table { | sub do_table { | ||
| − | + | print <<'EOL'; | |
| − | |||
| − | print << | ||
{| class="prettytable" style="border:none; margin:0; padding:0;" | {| class="prettytable" style="border:none; margin:0; padding:0;" | ||
|- | |- | ||
! rowspan=2 | Stabbing skill | ! rowspan=2 | Stabbing skill | ||
| − | ! colspan= | + | ! colspan=4 | Short Blades |
| + | ! colspan=4 | Long Blades | ||
| + | ! colspan=4 | Others | ||
|- | |- | ||
| + | ! Tier 1 | ||
| + | ! Tier 2 | ||
| + | ! Tier 3 | ||
| + | ! Tier 4 | ||
| + | ! Tier 1 | ||
| + | ! Tier 2 | ||
| + | ! Tier 3 | ||
| + | ! Tier 4 | ||
! Tier 1 | ! Tier 1 | ||
! Tier 2 | ! Tier 2 | ||
| Line 48: | Line 56: | ||
|- | |- | ||
EOL | EOL | ||
| + | for (1..27) { | ||
| + | print "| $_\n"; | ||
| + | for my $weapon ("Short Blades", "Long Blades", "Others") { | ||
| + | my @b = stab_bonus($_, $weapon); | ||
| − | + | for (@b) { | |
| − | + | printf "| %+.1f%%\n", $_; | |
| − | + | } | |
| − | |||
| − | |||
} | } | ||
print "|-\n"; | print "|-\n"; | ||
} | } | ||
| − | + | print "|}\n"; | |
} | } | ||
| − | do_table | + | do_table; |
| − | |||
| − | |||
</nowiki> | </nowiki> | ||
</pre> | </pre> | ||
Latest revision as of 23:11, 14 March 2013
#!/usr/bin/perl
use strict;
use warnings;
sub stab_weapon {
my $skill = shift;
my $weapon = shift;
my $tier = shift;
my $tier_penalty = 0;
my $result = 1;
$tier_penalty = 2 if ($weapon eq 'Long Blades');
if ($weapon ne 'Others') {
$result *= 1 + $skill/(($tier+$tier_penalty)*10);
}
$result *= 1 + $skill/($tier*12);
$result--;
$result *= 100;
return $result;
}
sub stab_bonus {
my $skill = shift;
my $weapon = shift;
my @result;
for (1,2,4,6) {
push @result, stab_weapon($skill, $weapon, $_);
}
return @result;
}
sub do_table {
print <<'EOL';
{| class="prettytable" style="border:none; margin:0; padding:0;"
|-
! rowspan=2 | Stabbing skill
! colspan=4 | Short Blades
! colspan=4 | Long Blades
! colspan=4 | Others
|-
! Tier 1
! Tier 2
! Tier 3
! Tier 4
! Tier 1
! Tier 2
! Tier 3
! Tier 4
! Tier 1
! Tier 2
! Tier 3
! Tier 4
|-
EOL
for (1..27) {
print "| $_\n";
for my $weapon ("Short Blades", "Long Blades", "Others") {
my @b = stab_bonus($_, $weapon);
for (@b) {
printf "| %+.1f%%\n", $_;
}
}
print "|-\n";
}
print "|}\n";
}
do_table;