refactor.

master
Rachel Fae Fox (foxiepaws) 2021-10-19 15:10:37 -04:00
parent 88fba8d06c
commit df4078a643
1 changed files with 50 additions and 81 deletions

View File

@ -159,46 +159,47 @@ Catalyst Controller.
=cut
sub dundra :Local {
my ( $self, $c ) = @_;
sub gen_der {
my @g;
for my $gender (keys %genders) {
for (my $x = 0; $x <= ($genders{$gender} * 10); $x++) {
push @g, $gender;
}
}
return shuffle @g;
}
my %ddraces = (%core_races, %dd_races);
my %ddclasses = (%core_classes, %dd_classes);
my $gen_races = (sub {
my @r;
for my $k (keys %ddraces) {
my $v = $ddraces{$k};
for (1..$v*10) {
push @r, $k;
}
sub gen_races {
my %races = @_;
my @r;
for my $k (keys %races) {
my $v = $races{$k};
for (1..$v*10) {
push @r, $k;
}
return shuffle @r;
});
my $gen_classes = (sub {
my @c;
for my $class (keys %ddclasses) {
for (my $x = 0; $x <= ($ddclasses{$class} * 10); $x++) {
push @c, $class;
}
}
return shuffle @r;
}
sub gen_classes {
my %classes = @_;
my @c;
for my $class (keys %classes) {
for (my $x = 0; $x <= ($classes{$class} * 10); $x++) {
push @c, $class;
}
return shuffle @c;
});
my $gen_der = (sub {
my @g;
for my $gender (keys %genders) {
for (my $x = 0; $x <= ($genders{$gender} * 10); $x++) {
push @g, $gender;
}
}
return shuffle @g;
});
my @r = &$gen_races();
my @c = &$gen_classes();
my @g = &$gen_der();
}
return shuffle @c;
}
sub randomlist($$$) {
my $count = shift;
my %races = %{shift()};
my %classes = %{shift()};
my @r = gen_races(%races);
my @c = gen_classes(%classes);
my @g = gen_der();
my @characters;
for (my $x = 0; $x < 10; $x++) {
my $race = $r[int(rand(scalar @r))];
@ -207,6 +208,16 @@ sub dundra :Local {
my $cr = $race;
push @characters, sprintf("%s %s %s\n", $gender, $cr, $class);
}
return @characters;
}
sub dundra :Local {
my ( $self, $c ) = @_;
my %races = (%core_races, %dd_races);
my %classes = (%core_classes, %dd_classes);
my @characters = randomlist(10, \%races, \%classes);
$c->stash({title => "random D&D 5e character concept generator", game => "D&D 5e", sources => $ddstatement, chars => \@characters, template => 'char.tt'});
}
@ -219,48 +230,8 @@ sub pathfinder :Local {
my %races = (%core_races, %pf_races);
my %classes = (%core_classes, %base_classes, %hybrid_classes);
sub gen_races {
my @r;
for my $k (keys %races) {
my $v = $races{$k};
for (1..$v*10) {
push @r, $k;
}
}
return shuffle @r;
}
sub gen_classes {
my @c;;
for my $class (keys %classes) {
for (my $x = 0; $x <= ($classes{$class} * 10); $x++) {
push @c, $class;
}
}
return shuffle @c;
}
sub gen_der {
my @g;;
for my $gender (keys %genders) {
for (my $x = 0; $x <= ($genders{$gender} * 10); $x++) {
push @g, $gender;
}
}
return shuffle @g;
}
my @r = gen_races();
my @c = gen_classes();
my @g = gen_der();
my @characters;
for (my $x = 0; $x < 10; $x++) {
my $race = $r[int(rand(scalar @r))];
my $gender = $g[int(rand(scalar @g))];
my $class = $c[int(rand(scalar @c))];
my $cr = $race;
push @characters, sprintf("%s %s %s\n", $gender, $cr, $class);
}
my @characters = randomlist(10, \%races, \%classes);
$c->stash({title => "random pathfinder character concept generator", game => "pathfinder", sources => $pfstatement, chars => \@characters, template => 'char.tt'});
}
@ -270,8 +241,6 @@ sub index :Path :Arg(0) {
}
sub end : ActionClass('RenderView') {}
=encoding utf8
=head1 AUTHOR