Finished race classes

This commit is contained in:
Alex Kerr 2015-01-28 09:21:26 +00:00
parent 05df6907c5
commit 91eab12d6c
12 changed files with 254 additions and 102 deletions

View File

@ -1,4 +1,4 @@
package OSRIC::Races::Dwarf package OSRIC::Race::Dwarf
use parent qw(OSRIC::Races); use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/; use OSRIC::Util qw/d/;
@ -18,22 +18,23 @@ sub stats_boosts
# The permitted classes: # The permitted classes:
sub permitted_classes sub permitted_classes
{ {
[ "Assassin", "Cleric", "Fighter", "Thief", [ "Fighter", "Thief" ] ] [ [ "Assassin" ], [ "Cleric" ], [ "Fighter" ], [ "Thief" ],
[ "Fighter", "Thief" ] ]
} }
# A hash of subs to generate the starting age based on class: # A hash of subs to generate the starting age based on class:
sub ages sub ages
{ {
{ {
assassin => sub { (75 + (d(6) + d(6) + d(6))) }, assassin => sub { 75 + d(6, 3) },
cleric => sub { (250 + (d(20) + d(20))) }, cleric => sub { 250 + d(20, 2) },
druid => sub { 0 }, druid => sub { 250 + d(20, 2) },
fighter => sub { (40 + (d(4) + d(4) + d(4) + d(4) + d(4))) }, fighter => sub { 40 + d(4, 5) },
illusionist => sub { 0 }, illusionist => sub { 0 },
magicuser => sub { 0 }, magicuser => sub { 0 },
paladin => sub { 0 }, paladin => sub { 40 + d(4, 5) },
ranger => sub { 0 }, ranger => sub { 40 + d(4, 5) },
theif => sub { (75 + (d(6) + d(6) + d(6))) }, theif => sub { 75 + d(6, 3) },
} }
} }

View File

@ -1,4 +1,4 @@
package OSRIC::Races::Elf; package OSRIC::Race::Elf;
use parent qw(OSRIC::Races); use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/; use OSRIC::Util qw/d/;
@ -18,7 +18,7 @@ sub stats_boosts
# The permitted classes: # The permitted classes:
sub permitted_classes sub permitted_classes
{ {
[ "Assassin", "Cleric", "Fighter", "MagicUser", "Thief", [ [ "Assassin" ], [ "Cleric" ], [ "Fighter" ], [ "MagicUser" ], [ "Thief" ],
[ "Fighter", "MagicUser" ], [ "Fighter", "Thief" ], [ "Fighter", "MagicUser" ], [ "Fighter", "Thief" ],
[ "MagicUser", "Thief" ], [ "Fighter", "MagicUser", "Thief" ] ] [ "MagicUser", "Thief" ], [ "Fighter", "MagicUser", "Thief" ] ]
} }
@ -27,15 +27,15 @@ sub permitted_classes
sub ages sub ages
{ {
{ {
assassin => sub { 0 }, assassin => sub { 100 + d(6,5) },
cleric => sub { my $i = 0; $i += d(10) for(1..10); $i += 500; }, cleric => sub { 500 + d(10, 10) },
druid => sub { 0 }, druid => sub { 500 + d(10, 10) },
fighter => sub { my $i = 0; $i += d(6) for(1..5); $i += 130; }, fighter => sub { 130 + d(6, 5) },
illusionist => sub { 0 }, illusionist => sub { 150 + d(6, 5) },
magicuser => sub { my $i = 0; $i += d(6) for(1..5); $i += 150; }, magicuser => sub { 150 + d(6, 5) },
paladin => sub { 0 }, paladin => sub { 130 + d(6, 5) },
ranger => sub { 0 }, ranger => sub { 130 + d(6, 5) },
theif => sub { my $i = 0; $i += d(6) for(1..5); $i += 100; }, theif => sub { 100 + d(6, 5) },
} }
} }

View File

@ -1,4 +1,4 @@
package OSRIC::Races::Gnome; package OSRIC::Race::Gnome;
use parent qw(OSRIC::Races); use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/; use OSRIC::Util qw/d/;
@ -18,8 +18,8 @@ sub stats_boosts
# The permitted classes: # The permitted classes:
sub permitted_classes sub permitted_classes
{ {
[ "Assassin", "Cleric", "Fighter", "Illusionist", "Thief", [ [ "Assassin" ], [ "Cleric" ], [ "Fighter" ], [ "Illusionist" ],
[ "Fighter", "Illusionist" ], [ "Fighter", "Thief" ], [ "Thief" ], [ "Fighter", "Illusionist" ], [ "Fighter", "Thief" ],
[ "Illusionist", "Thief" ] ] [ "Illusionist", "Thief" ] ]
} }
@ -27,15 +27,15 @@ sub permitted_classes
sub ages sub ages
{ {
{ {
assassin => sub { my $i = 0; $i += d(4) for(1..5); $i += 80; }, assassin => sub { 80 + d(4, 5) },
cleric => sub { my $i = 0; $i += d(12) for(1..3); $i += 300; }, cleric => sub { 300 + d(12, 3) },
druid => sub { 0 }, druid => sub { 300 + d(12, 3) },
fighter => sub { my $i = 0; $i += d(4) for(1..5); $i += 60; }, fighter => sub { 60 + d(4, 5) },
illusionist => sub { my $i = 0; $i += d(12) for(1..2); $i += 100; } illusionist => sub { 100 + d(12, 2) }
magicuser => sub { 0 }, magicuser => sub { 100 + d(12, 2) },
paladin => sub { 0 }, paladin => sub { 60 + d(4, 5) },
ranger => sub { 0 }, ranger => sub { 60 + d(4, 5) },
theif => sub { my $i = 0; $i += d(4) for(1..5); $i += 80; }, theif => sub { 80 + d(4, 5) },
} }
} }

58
lib/OSRIC/Race/HalfElf.pm Normal file
View File

@ -0,0 +1,58 @@
package OSRIC::Race::HalfElf;
use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/;
# The stat buffs/nerfs a race gives:
sub stats_boosts
{
{
str => 0,
dex => 0,
con => 0,
int => 0,
wis => 0,
cha => 0,
}
}
# The permitted classes:
sub permitted_classes
{
[ [ "Assassin" ], [ "Cleric" ], [ "Fighter" ], [ "MagicUser" ],
[ "Ranger" ], [ "Thief" ], [ "Cleric", "Fighter" ],
[ "Cleric", "Ranger" ], [ "Cleric", "MagicUser" ],
[ "Fighter", "MagicUser" ], [ "Fighter", "Thief" ],
[ "MagicUser", "Thief" ], [ "Cleric", "Fighter", "MagicUser" ],
[ "Fighter", "MagicUser", "Thief" ] ]
}
# A hash of subs to generate the starting age based on class:
sub ages
{
{
assassin => sub { 22 + d(8, 3) },
cleric => sub { 40 + d(4, 2) },
druid => sub { 40 + d(4, 2) },
fighter => sub { 22 + d(4, 3) },
illusionist => sub { 30 + d(8, 3) },
magicuser => sub { 30 + d(8, 2) },
paladin => sub { 22 + d(4, 3) },
ranger => sub { 22 + d(4, 3) },
theif => sub { 22 + d(8, 3) },
}
}
# The racial limitations:
sub racial_limitations
{
{
str => { min => 3, max => 18 },
dex => { min => 6, max => 18 },
con => { min => 6, max => 18 },
int => { min => 4, max => 18 },
wis => { min => 3, max => 18 },
cha => { min => 3, max => 18 },
}
}
1;

55
lib/OSRIC/Race/HalfOrc.pm Normal file
View File

@ -0,0 +1,55 @@
package OSRIC::Race::HalfOrc;
use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/;
# The stat buffs/nerfs a race gives:
sub stats_boosts
{
{
str => 1,
dex => 0,
con => 1,
int => 0,
wis => 0,
cha => -2,
}
}
# The permitted classes:
sub permitted_classes
{
[ [ "Assassin" ], [ "Cleric" ], [ "Fighter" ], [ "Thief" ],
[ "Cleric", "Fighter" ], [ "Cleric", "Thief" ], [ "Cleric", "Assassin" ],
[ "Fighter", "Thief" ], [ "Fighter", "Assassin" ] ]
}
# A hash of subs to generate the starting age based on class:
sub ages
{
{
assassin => sub { 20 + d(4, 2) },
cleric => sub { 20 + d(4) },
druid => sub { 20 + d(4) },
fighter => sub { 13 + d(4) },
illusionist => sub { 0 },
magicuser => sub { 0 },
paladin => sub { 13 + d(4) },
ranger => sub { 13 + d(4) },
theif => sub { 20 + d(4, 2) },
}
}
# The racial limitations:
sub racial_limitations
{
{
str => { min => 6, max => 18 },
dex => { min => 3, max => 17 },
con => { min => 13, max => 19 },
int => { min => 3, max => 17 },
wis => { min => 3, max => 14 },
cha => { min => 3, max => 12 },
}
}
1;

View File

@ -0,0 +1,53 @@
package OSRIC::Race::Halfling;
use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/;
# The stat buffs/nerfs a race gives:
sub stats_boosts
{
{
str => -1,
dex => 1,
con => 0,
int => 0,
wis => 0,
cha => 0,
}
}
# The permitted classes:
sub permitted_classes
{
[ [ "Fighter" ], [ "Druid" ], [ "Thief" ], [ "Fighter", "Thief" ] ]
}
# A hash of subs to generate the starting age based on class:
sub ages
{
{
assassin => sub { 40 + d(4, 2) },
cleric => sub { 40 + d(4, 3) },
druid => sub { 40 + d(4, 3) },
fighter => sub { 20 + d(4, 3) },
illusionist => sub { 0 },
magicuser => sub { 0 },
paladin => sub { 20 + d(4, 3) },
ranger => sub { 20 + d(4, 3) },
theif => sub { 40 + d(4, 2) },
}
}
# The racial limitations:
sub racial_limitations
{
{
str => { min => 6, max => 17 },
dex => { min => 8, max => 19 },
con => { min => 10, max => 18 },
int => { min => 6, max => 18 },
wis => { min => 3, max => 17 },
cha => { min => 3, max => 18 },
}
}
1;

55
lib/OSRIC/Race/Human.pm Normal file
View File

@ -0,0 +1,55 @@
package OSRIC::Race::Human;
use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/;
# The stat buffs/nerfs a race gives:
sub stats_boosts
{
{
str => 0,
dex => 0,
con => 0,
int => 0,
wis => 0,
cha => 0,
}
}
# The permitted classes:
sub permitted_classes
{
[ [ "Assassin" ], [ "Cleric" ], [ "Druid" ], [ "Fighter" ],
[ "Illusionist" ], [ "MagicUser" ], [ "Paladin" ], [ "Ranger" ],
[ "Thief" ] ]
}
# A hash of subs to generate the starting age based on class:
sub ages
{
{
assassin => sub { 20 + d(4) },
cleric => sub { 20 + d(4) },
druid => sub { 20 + d(4) },
fighter => sub { 15 + d(4) },
illusionist => sub { 24 + d(8, 2) },
magicuser => sub { 24 + d(8, 2) },
paladin => sub { 15 + d(4) },
ranger => sub { 15 + d(4) },
theif => sub { 20 + d(4) },
}
}
# The racial limitations:
sub racial_limitations
{
{
str => { min => 0, max => 18 },
dex => { min => 0, max => 18 },
con => { min => 0, max => 18 },
int => { min => 0, max => 18 },
wis => { min => 0, max => 18 },
cha => { min => 0, max => 18 },
}
}
1;

View File

@ -1,55 +0,0 @@
package OSRIC::Races::HalfElf;
use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/;
# The stat buffs/nerfs a race gives:
sub stats_boosts
{
{
str => 0,
dex => 0,
con => 0,
int => 0,
wis => 0,
cha => 0,
}
}
# The permitted classes:
sub permitted_classes
{
[ "Assassin", "Cleric", "Fighter", "MagicUser", "Ranger", "Thief",
[ "Cleric", "Fighter" ], [ "Cleric", "Ranger" ],
[ "Illusionist", "Thief" ] ]
}
# A hash of subs to generate the starting age based on class:
sub ages
{
{
assassin => sub { my $i = 0; $i += d(4) for(1..5); $i += 80; },
cleric => sub { my $i = 0; $i += d(12) for(1..3); $i += 300; },
druid => sub { 0 },
fighter => sub { my $i = 0; $i += d(4) for(1..5); $i += 60; },
illusionist => sub { my $i = 0; $i += d(12) for(1..2); $i += 100; }
magicuser => sub { 0 },
paladin => sub { 0 },
ranger => sub { 0 },
theif => sub { my $i = 0; $i += d(4) for(1..5); $i += 80; },
}
}
# The racial limitations:
sub racial_limitations
{
{
str => { min => 6, max => 18 },
dex => { min => 3, max => 19 },
con => { min => 8, max => 17 },
int => { min => 7, max => 18 },
wis => { min => 3, max => 18 },
cha => { min => 3, max => 18 },
}
}
1;

View File

@ -1,5 +0,0 @@
package OSRIC::Races::
use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/;
1;

View File

@ -1,5 +0,0 @@
package OSRIC::Races::
use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/;
1;

View File

@ -1,5 +0,0 @@
package OSRIC::Races::
use parent qw(OSRIC::Races);
use OSRIC::Util qw/d/;
1;