User:CommanderC/stab-bonus.pl
< User:CommanderC
Revision as of 20:15, 14 March 2013 by 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...")
#!/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 { my $weapon = shift; print <<"EOL"; {| class="prettytable" style="border:none; margin:0; padding:0;" |- ! rowspan=2 | Stabbing skill ! colspan=6 | $weapon |- ! Tier 1 ! Tier 2 ! Tier 3 ! Tier 4 |- EOL for (1..27) { my @b = stab_bonus($_, $weapon); print "| $_\n"; for (@b) { printf "| %+.1f%%\n", $_; } print "|-\n"; } print "|}\n\n"; } do_table("Short Blades"); do_table("Long Blades"); do_table("Others");