refactor.
parent
88fba8d06c
commit
df4078a643
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue