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;