sub rollDX { rand(shift->{dx}); } #### sub new { # this was named RNG my $class = shift; my $self = { dx => 0 }; return bless $self, $class; } #### sub roll { my ($self, $dxx) = shift; #### sub roll { my ($self, $dxx) = @_; #### package HollyGameAI::RNG; use strict; use warnings; use Carp; our $roll_dispatch = { 0 => sub {0}, 1 => \&rollD1, 3 => \&rollD3, 6 => \&rollD6, 10 => \&rollD10, 20 => \&rollD20, }; sub roll { my ($self, $dxx) = @_; $self->set($dxx); return 0 unless defined $roll_dispatch->{$dxx}; return $roll_dispatch->{$dxx}->(); }