User:CommanderC/crystal ball.pl

From CrawlWiki
Jump to: navigation, search
#!/usr/bin/perl

use strict;
use warnings;

my @evocation_sample = qw(2 5 10 15 20 25);


# DCSS 0.10 -- evoke.cc: _ball_of_energy

print <<HEADER;
{| border="1"
! Evocations !! Minimum MP% for Max Success Rate !! Max Success Rate !! MP Restored (Average)
HEADER

foreach (@evocation_sample) {
    my $evoc = $_;

# first roll
    my $ran1 = $evoc * 6;
    my $max_roll1 = $ran1 - 1;
    my $success1 = ($max_roll1 - 10) * 1.0 / $ran1;
#second roll
    my $success2 = 24.0/25;
#third roll
    my $ran3 = 77 - $evoc * 2 - 1; # min mp% for max success rate
# max success rate
    my $max_success = $success1 * $success2;
    my $mp_recovered_avg = 5 + $evoc/2.0;

    print "|-\n";
    printf "! %d\n", $evoc;
    printf "| %d%% || %.2f%% || %.2f\n", $ran3, $max_success*100, $mp_recovered_avg;
}

print "|}\n";