pfrpg_classes 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/pfrpg_classes/heroclass/alchemist.rb +92 -0
- data/lib/pfrpg_classes/heroclass/arcane_archer.rb +57 -0
- data/lib/pfrpg_classes/heroclass/arcane_trickster.rb +76 -0
- data/lib/pfrpg_classes/heroclass/assassin.rb +67 -0
- data/lib/pfrpg_classes/heroclass/barbarian.rb +77 -0
- data/lib/pfrpg_classes/heroclass/bard.rb +98 -0
- data/lib/pfrpg_classes/heroclass/cavalier.rb +92 -0
- data/lib/pfrpg_classes/heroclass/cleric.rb +87 -0
- data/lib/pfrpg_classes/heroclass/dragon_disciple.rb +66 -0
- data/lib/pfrpg_classes/heroclass/druid.rb +175 -0
- data/lib/pfrpg_classes/heroclass/duelist.rb +60 -0
- data/lib/pfrpg_classes/heroclass/eldritch_knight.rb +60 -0
- data/lib/pfrpg_classes/heroclass/fighter.rb +75 -0
- data/lib/pfrpg_classes/heroclass/gunslinger.rb +92 -0
- data/lib/pfrpg_classes/heroclass/inquisitor.rb +92 -0
- data/lib/pfrpg_classes/heroclass/loremaster.rb +95 -0
- data/lib/pfrpg_classes/heroclass/magus.rb +92 -0
- data/lib/pfrpg_classes/heroclass/monk.rb +96 -0
- data/lib/pfrpg_classes/heroclass/mystic_theurge.rb +58 -0
- data/lib/pfrpg_classes/heroclass/oracle.rb +92 -0
- data/lib/pfrpg_classes/heroclass/paladin.rb +119 -0
- data/lib/pfrpg_classes/heroclass/pathfinder_chronicler.rb +82 -0
- data/lib/pfrpg_classes/heroclass/ranger.rb +97 -0
- data/lib/pfrpg_classes/heroclass/rogue.rb +90 -0
- data/lib/pfrpg_classes/heroclass/shadowdancer.rb +62 -0
- data/lib/pfrpg_classes/heroclass/sorcerer.rb +81 -0
- data/lib/pfrpg_classes/heroclass/summoner.rb +92 -0
- data/lib/pfrpg_classes/heroclass/version.rb +3 -0
- data/lib/pfrpg_classes/heroclass/witch.rb +92 -0
- data/lib/pfrpg_classes/heroclass/wizard.rb +92 -0
- data/lib/pfrpg_classes/heroclass.rb +160 -0
- data/lib/pfrpg_classes/version.rb +3 -0
- data/lib/pfrpg_classes.rb +25 -0
- metadata +104 -0
@@ -0,0 +1,95 @@
|
|
1
|
+
class PfrpgClasses::Loremaster < PfrpgClasses::Heroclass
|
2
|
+
|
3
|
+
def name
|
4
|
+
"Loremaster"
|
5
|
+
end
|
6
|
+
|
7
|
+
def prestige
|
8
|
+
true
|
9
|
+
end
|
10
|
+
|
11
|
+
def hit_die
|
12
|
+
PfrpgCore::Dice.new(1,6)
|
13
|
+
end
|
14
|
+
|
15
|
+
def alignment
|
16
|
+
PfrpgCore::Alignment.any
|
17
|
+
end
|
18
|
+
|
19
|
+
def description
|
20
|
+
"Loremasters' lives are spent in study, research, and fieldwork. While the first two lend themselves to the loremaster's reputation as a bookish recluse, the latter oftentimes forces a loremaster to seek out the aid of adventurers who, through a mutually beneficial arrangement, might provide a degree of protection to the scholar while he seeks whatever knowledge he is after. For his part, the loremaster provides a wealth of information and arcane firepower to a party. Some loremasters actively deride those of their kind who fear to leave the safety of the temple or library, pointing out that only old lore can be discovered in books—new lore must be sought out in the world. These more active loremasters might join up with an adventuring party for the benefit of the journey, content with whatever knowledge might be picked up along the way."
|
21
|
+
end
|
22
|
+
|
23
|
+
def skills
|
24
|
+
non_knowledge =
|
25
|
+
[PfrpgSkills::Appraise.new,
|
26
|
+
PfrpgSkills::Diplomacy.new,
|
27
|
+
PfrpgSkills::HandleAnimal.new,
|
28
|
+
PfrpgSkills::Heal.new,
|
29
|
+
PfrpgSkills::Linguistics.new,
|
30
|
+
PfrpgSkills::Perform.new,
|
31
|
+
PfrpgSkills::Spellcraft.new,
|
32
|
+
PfrpgSkills::UseMagicDevice.new,
|
33
|
+
]
|
34
|
+
knowledge =
|
35
|
+
[ 'Arcana',
|
36
|
+
'Dungeoneering',
|
37
|
+
'Engineering',
|
38
|
+
'Geography',
|
39
|
+
'History',
|
40
|
+
'Local',
|
41
|
+
'Nature',
|
42
|
+
'Nobility',
|
43
|
+
'Planes',
|
44
|
+
'Religion'
|
45
|
+
]
|
46
|
+
knowledge.each do |k|
|
47
|
+
non_knowledge <<PfrpgSkills::Knowledge.new(k)
|
48
|
+
end
|
49
|
+
return non_knowledge
|
50
|
+
end
|
51
|
+
|
52
|
+
def bonuses_for_level(level)
|
53
|
+
PfrpgTables::Heroclasses::Loremaster.level_bonus(level)
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_spells_table
|
57
|
+
# plus one of existing class
|
58
|
+
return PfrpgTables::Spells::SpellsPerDay.empty
|
59
|
+
end
|
60
|
+
|
61
|
+
def skills_per_level
|
62
|
+
4
|
63
|
+
end
|
64
|
+
|
65
|
+
def prerequisites
|
66
|
+
metamagic = Proc.new do |character, attribute, value|
|
67
|
+
character.feats.select { |x| x.feat_type == 'Metamagic' || x.feat_type == 'Item Creation' }.size >= 3
|
68
|
+
end
|
69
|
+
[
|
70
|
+
PfrpgCore::Prerequisite.new(nil, nil, metamagic),
|
71
|
+
PfrpgCore::Prerequisite::LanguagePrereq.new(nil, 'Draconic'),
|
72
|
+
PfrpgCore::Prerequisite::MiscPrereq.new('caster level', 3)
|
73
|
+
]
|
74
|
+
end
|
75
|
+
|
76
|
+
def feature_type
|
77
|
+
'LoremasterFeature'
|
78
|
+
end
|
79
|
+
|
80
|
+
def secrets_table
|
81
|
+
[
|
82
|
+
['Instant Mastery', '4 ranks of a new skill', 'special', 1],
|
83
|
+
['Secret Health', 'Granted the Toughness feat', 'bonus_feat:toughness', 2],
|
84
|
+
['Secrets of inner strength', '+2 Will Save', 'saves:will:2', 3],
|
85
|
+
['The lore of true stamina', '+2 Fortitude Save', 'saves:fortitude:2', 4],
|
86
|
+
['Secret knowledge of avoidance', '+2 Reflex Save', 'saves:reflex:2', 5],
|
87
|
+
['Weapon trick', '+1 to attack rolls', 'combat:attack:1', 6],
|
88
|
+
['Dodge trick', '+1 dodge bonus to AC', 'armor:dodge:1', 7],
|
89
|
+
['Applicable Knowledge', 'Choose an extra feat', 'bonus_feat', 8],
|
90
|
+
['Newfound Arcana', 'Bonus 1st-level spell', '1stlevelspell', 9],
|
91
|
+
['More newfound Arcana', 'Bonus 2nd-level spell', '2ndlevelspell', 10]
|
92
|
+
]
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
class PfrpgClasses::Wizard < PfrpgClasses::Heroclass
|
2
|
+
|
3
|
+
def name
|
4
|
+
"Wizard"
|
5
|
+
end
|
6
|
+
|
7
|
+
def hit_die
|
8
|
+
PfrpgCore::Dice.new(1,6)
|
9
|
+
end
|
10
|
+
|
11
|
+
def starting_wealth
|
12
|
+
PfrpgCore::Dice.new(2,6, multiplier = 10)
|
13
|
+
end
|
14
|
+
|
15
|
+
def starting_wealth_avg
|
16
|
+
70
|
17
|
+
end
|
18
|
+
|
19
|
+
def bonuses_for_level(level)
|
20
|
+
PfrpgTables::Heroclasses::Wizard.level_bonus(level)
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_feature(f)
|
24
|
+
WizardFeature.new(:ability_name => f)
|
25
|
+
end
|
26
|
+
|
27
|
+
def alignment
|
28
|
+
PfrpgCore::Alignment.any
|
29
|
+
end
|
30
|
+
|
31
|
+
def skills_per_level
|
32
|
+
2
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_spells_table(level)
|
36
|
+
return PfrpgTables::Spells::SpellsPerDay.Wizard(level)
|
37
|
+
end
|
38
|
+
|
39
|
+
def description
|
40
|
+
"While universalist wizards might study to prepare themselves for any manner of danger, specialist wizards research schools of magic that make them exceptionally skilled within a specific focus. Yet no matter their specialty, all wizards are masters of the impossible and can aid their allies in overcoming any danger."
|
41
|
+
end
|
42
|
+
|
43
|
+
def spells_bonus_attr
|
44
|
+
"int"
|
45
|
+
end
|
46
|
+
|
47
|
+
def skills
|
48
|
+
[PfrpgSkills::Appraise.new,
|
49
|
+
PfrpgSkills::Craft.new,
|
50
|
+
PfrpgSkills::Fly.new,
|
51
|
+
PfrpgSkills::Linguistics.new,
|
52
|
+
PfrpgSkills::Profession.new,
|
53
|
+
PfrpgSkills::Spellcraft.new,
|
54
|
+
PfrpgSkills::Knowledge.new('Arcana'),
|
55
|
+
PfrpgSkills::Knowledge.new('Dungeoneering'),
|
56
|
+
PfrpgSkills::Knowledge.new('Engineering'),
|
57
|
+
PfrpgSkills::Knowledge.new('Geography'),
|
58
|
+
PfrpgSkills::Knowledge.new('History'),
|
59
|
+
PfrpgSkills::Knowledge.new('Local'),
|
60
|
+
PfrpgSkills::Knowledge.new('Nature'),
|
61
|
+
PfrpgSkills::Knowledge.new('Nobility'),
|
62
|
+
PfrpgSkills::Knowledge.new('Planes'),
|
63
|
+
PfrpgSkills::Knowledge.new('Religion')
|
64
|
+
]
|
65
|
+
end
|
66
|
+
|
67
|
+
def feature_type
|
68
|
+
"WizardFeature"
|
69
|
+
end
|
70
|
+
|
71
|
+
def starting_feats
|
72
|
+
[
|
73
|
+
"Wizard Weapon Proficiency"
|
74
|
+
]
|
75
|
+
end
|
76
|
+
|
77
|
+
def familiars
|
78
|
+
PfrpgTables::Heroclasses::Wizard.familiars
|
79
|
+
end
|
80
|
+
|
81
|
+
def bond_objects
|
82
|
+
PfrpgTables::Heroclasses::Wizard.bond_objects
|
83
|
+
end
|
84
|
+
|
85
|
+
def suggested_items
|
86
|
+
[
|
87
|
+
['Quarterstaff'],
|
88
|
+
['Dagger']
|
89
|
+
]
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
@@ -0,0 +1,96 @@
|
|
1
|
+
class PfrpgClasses::Monk < PfrpgClasses::Heroclass
|
2
|
+
|
3
|
+
def name
|
4
|
+
"Monk"
|
5
|
+
end
|
6
|
+
|
7
|
+
def hit_die
|
8
|
+
PfrpgCore::Dice.new(1,8)
|
9
|
+
end
|
10
|
+
|
11
|
+
def starting_wealth
|
12
|
+
PfrpgCore::Dice.new(1,6, multiplier = 10)
|
13
|
+
end
|
14
|
+
|
15
|
+
def starting_wealth_avg
|
16
|
+
35
|
17
|
+
end
|
18
|
+
|
19
|
+
def bonuses_for_level(level)
|
20
|
+
PfrpgTables::Heroclasses::Monk.level_bonus(level)
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_feature(f)
|
24
|
+
MonkFeature.new(:ability_name => f)
|
25
|
+
end
|
26
|
+
|
27
|
+
def alignment
|
28
|
+
PfrpgCore::Alignment.any_lawful
|
29
|
+
end
|
30
|
+
|
31
|
+
def skills_per_level
|
32
|
+
4
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_spells_table(level)
|
36
|
+
return PfrpgTables::Spells::SpellsPerDay.empty
|
37
|
+
end
|
38
|
+
|
39
|
+
def description
|
40
|
+
"Monks excel at overcoming even the most daunting perils, striking where it's least expected, and taking advantage of enemy vulnerabilities. Fleet of foot and skilled in combat, monks can navigate any battlefield with ease, aiding allies wherever they are needed most."
|
41
|
+
end
|
42
|
+
|
43
|
+
def skills
|
44
|
+
[PfrpgSkills::Acrobatics.new,
|
45
|
+
PfrpgSkills::Climb.new,
|
46
|
+
PfrpgSkills::Craft.new,
|
47
|
+
PfrpgSkills::EscapeArtist.new,
|
48
|
+
PfrpgSkills::Intimidate.new,
|
49
|
+
PfrpgSkills::Knowledge.new("History"),
|
50
|
+
PfrpgSkills::Knowledge.new("Religion"),
|
51
|
+
PfrpgSkills::Perception.new,
|
52
|
+
PfrpgSkills::Perform.new,
|
53
|
+
PfrpgSkills::Profession.new,
|
54
|
+
PfrpgSkills::Ride.new,
|
55
|
+
PfrpgSkills::SenseMotive.new,
|
56
|
+
PfrpgSkills::Stealth.new,
|
57
|
+
PfrpgSkills::Swim.new,
|
58
|
+
]
|
59
|
+
end
|
60
|
+
|
61
|
+
def feature_type
|
62
|
+
"MonkFeature"
|
63
|
+
end
|
64
|
+
|
65
|
+
def starting_feats
|
66
|
+
["Light Armor Proficiency", "Simple Weapon Proficiency", "Monk Weapon Proficiency"]
|
67
|
+
end
|
68
|
+
|
69
|
+
def unarmed_dmg(size, level)
|
70
|
+
PfrpgTables::Heroclasses::Monk.unarmed_strike_damage(size, level)
|
71
|
+
end
|
72
|
+
|
73
|
+
def monk_bonus_feats(level)
|
74
|
+
PfrpgTables::Heroclasses::Monk.monk_bonus_feats(level)
|
75
|
+
end
|
76
|
+
|
77
|
+
def get_unarmed_weapon(monk_level)
|
78
|
+
r = Weapon.new
|
79
|
+
r.name = 'Unarmed Strike'
|
80
|
+
r.description = 'Unarmed Strike'
|
81
|
+
r.dmg_s = unarmed_dmg('small', monk_level)
|
82
|
+
r.dmg_m = unarmed_dmg('medium', monk_level)
|
83
|
+
r.critical_range = '20'
|
84
|
+
r.critical_dmg = '2x'
|
85
|
+
r.weight_class = 'light'
|
86
|
+
r.weapon_type = 'natural'
|
87
|
+
r
|
88
|
+
end
|
89
|
+
|
90
|
+
def suggested_items
|
91
|
+
[
|
92
|
+
['Shuriken (5)']
|
93
|
+
]
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
class PfrpgClasses::MysticTheurge < PfrpgClasses::Heroclass
|
2
|
+
|
3
|
+
def name
|
4
|
+
"Mystic Theurge"
|
5
|
+
end
|
6
|
+
|
7
|
+
def prestige
|
8
|
+
true
|
9
|
+
end
|
10
|
+
|
11
|
+
def hit_die
|
12
|
+
PfrpgCore::Dice.new(1,6)
|
13
|
+
end
|
14
|
+
|
15
|
+
def alignment
|
16
|
+
PfrpgCore::Alignment.any
|
17
|
+
end
|
18
|
+
|
19
|
+
def description
|
20
|
+
" The mystic theurge is a powerful component for any party, supplying magic for attack, defense, and healing. Mystic theurges travel the world in search of arcane and holy artifacts, magical lore, or divine revelations, and most have no qualms about teaming up with groups of adventurers so long as that group's goals do not directly conflict with their own."
|
21
|
+
end
|
22
|
+
|
23
|
+
def skills
|
24
|
+
[PfrpgSkills::Knowledge.new("Arcana"),
|
25
|
+
PfrpgSkills::Knowledge.new("Religion"),
|
26
|
+
PfrpgSkills::SenseMotive.new,
|
27
|
+
PfrpgSkills::Spellcraft.new,
|
28
|
+
]
|
29
|
+
end
|
30
|
+
|
31
|
+
def bonuses_for_level(level)
|
32
|
+
PfrpgTables::Heroclasses::MysticTheurge.level_bonus(level)
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_spells_table
|
36
|
+
# this is complicated for mystic theurge
|
37
|
+
return PfrpgTables::Spells::SpellsPerDay.empty
|
38
|
+
end
|
39
|
+
|
40
|
+
def skills_per_level
|
41
|
+
2
|
42
|
+
end
|
43
|
+
|
44
|
+
def feature_type
|
45
|
+
'MysticTheurgeFeature'
|
46
|
+
end
|
47
|
+
|
48
|
+
def prerequisites
|
49
|
+
[
|
50
|
+
PfrpgCore::Prerequisite::SkillPrereq.new('knowledge : arcana', 3),
|
51
|
+
PfrpgCore::Prerequisite::SkillPrereq.new('knowledge : religion', 3),
|
52
|
+
PfrpgCore::Prerequisite::MiscPrereq.new('divine', nil),
|
53
|
+
PfrpgCore::Prerequisite::MiscPrereq.new('caster', nil),
|
54
|
+
PfrpgCore::Prerequisite::MiscPrereq.new('caster level', 2)
|
55
|
+
]
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
class PfrpgClasses::Wizard < PfrpgClasses::Heroclass
|
2
|
+
|
3
|
+
def name
|
4
|
+
"Wizard"
|
5
|
+
end
|
6
|
+
|
7
|
+
def hit_die
|
8
|
+
PfrpgCore::Dice.new(1,6)
|
9
|
+
end
|
10
|
+
|
11
|
+
def starting_wealth
|
12
|
+
PfrpgCore::Dice.new(2,6, multiplier = 10)
|
13
|
+
end
|
14
|
+
|
15
|
+
def starting_wealth_avg
|
16
|
+
70
|
17
|
+
end
|
18
|
+
|
19
|
+
def bonuses_for_level(level)
|
20
|
+
PfrpgTables::Heroclasses::Wizard.level_bonus(level)
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_feature(f)
|
24
|
+
WizardFeature.new(:ability_name => f)
|
25
|
+
end
|
26
|
+
|
27
|
+
def alignment
|
28
|
+
PfrpgCore::Alignment.any
|
29
|
+
end
|
30
|
+
|
31
|
+
def skills_per_level
|
32
|
+
2
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_spells_table(level)
|
36
|
+
return PfrpgTables::Spells::SpellsPerDay.Wizard(level)
|
37
|
+
end
|
38
|
+
|
39
|
+
def description
|
40
|
+
"While universalist wizards might study to prepare themselves for any manner of danger, specialist wizards research schools of magic that make them exceptionally skilled within a specific focus. Yet no matter their specialty, all wizards are masters of the impossible and can aid their allies in overcoming any danger."
|
41
|
+
end
|
42
|
+
|
43
|
+
def spells_bonus_attr
|
44
|
+
"int"
|
45
|
+
end
|
46
|
+
|
47
|
+
def skills
|
48
|
+
[PfrpgSkills::Appraise.new,
|
49
|
+
PfrpgSkills::Craft.new,
|
50
|
+
PfrpgSkills::Fly.new,
|
51
|
+
PfrpgSkills::Linguistics.new,
|
52
|
+
PfrpgSkills::Profession.new,
|
53
|
+
PfrpgSkills::Spellcraft.new,
|
54
|
+
PfrpgSkills::Knowledge.new('Arcana'),
|
55
|
+
PfrpgSkills::Knowledge.new('Dungeoneering'),
|
56
|
+
PfrpgSkills::Knowledge.new('Engineering'),
|
57
|
+
PfrpgSkills::Knowledge.new('Geography'),
|
58
|
+
PfrpgSkills::Knowledge.new('History'),
|
59
|
+
PfrpgSkills::Knowledge.new('Local'),
|
60
|
+
PfrpgSkills::Knowledge.new('Nature'),
|
61
|
+
PfrpgSkills::Knowledge.new('Nobility'),
|
62
|
+
PfrpgSkills::Knowledge.new('Planes'),
|
63
|
+
PfrpgSkills::Knowledge.new('Religion')
|
64
|
+
]
|
65
|
+
end
|
66
|
+
|
67
|
+
def feature_type
|
68
|
+
"WizardFeature"
|
69
|
+
end
|
70
|
+
|
71
|
+
def starting_feats
|
72
|
+
[
|
73
|
+
"Wizard Weapon Proficiency"
|
74
|
+
]
|
75
|
+
end
|
76
|
+
|
77
|
+
def familiars
|
78
|
+
PfrpgTables::Heroclasses::Wizard.familiars
|
79
|
+
end
|
80
|
+
|
81
|
+
def bond_objects
|
82
|
+
PfrpgTables::Heroclasses::Wizard.bond_objects
|
83
|
+
end
|
84
|
+
|
85
|
+
def suggested_items
|
86
|
+
[
|
87
|
+
['Quarterstaff'],
|
88
|
+
['Dagger']
|
89
|
+
]
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
@@ -0,0 +1,119 @@
|
|
1
|
+
class PfrpgClasses::Paladin < PfrpgClasses::Heroclass
|
2
|
+
|
3
|
+
def name
|
4
|
+
"Paladin"
|
5
|
+
end
|
6
|
+
|
7
|
+
def hit_die
|
8
|
+
PfrpgCore::Dice.new(1,10)
|
9
|
+
end
|
10
|
+
|
11
|
+
def starting_wealth
|
12
|
+
PfrpgCore::Dice.new(5,6, multiplier = 10)
|
13
|
+
end
|
14
|
+
|
15
|
+
def starting_wealth_avg
|
16
|
+
175
|
17
|
+
end
|
18
|
+
|
19
|
+
def bonuses_for_level(level)
|
20
|
+
PfrpgTables::Heroclasses::Paladin.level_bonus(level)
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_feature(f)
|
24
|
+
PaladinFeature.new(:ability_name => f)
|
25
|
+
end
|
26
|
+
|
27
|
+
def alignment
|
28
|
+
"Lawful Good"
|
29
|
+
end
|
30
|
+
|
31
|
+
def skills_per_level
|
32
|
+
2
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_spells_table(level)
|
36
|
+
return PfrpgTables::Spells::SpellsPerDay.Paladin(level)
|
37
|
+
end
|
38
|
+
|
39
|
+
def description
|
40
|
+
"Paladins serve as beacons for their allies within the chaos of battle. While deadly opponents of evil, they can also empower goodly souls to aid in their crusades. Their magic and martial skills also make them well suited to defending others and blessing the fallen with the strength to continue fighting."
|
41
|
+
end
|
42
|
+
|
43
|
+
def spells_bonus_attr
|
44
|
+
"wis"
|
45
|
+
end
|
46
|
+
|
47
|
+
def skills
|
48
|
+
[PfrpgSkills::Craft.new,
|
49
|
+
PfrpgSkills::Diplomacy.new,
|
50
|
+
PfrpgSkills::HandleAnimal.new,
|
51
|
+
PfrpgSkills::Heal.new,
|
52
|
+
PfrpgSkills::Knowledge.new("Nobility"),
|
53
|
+
PfrpgSkills::Knowledge.new("Religion"),
|
54
|
+
PfrpgSkills::Profession.new,
|
55
|
+
PfrpgSkills::Ride.new,
|
56
|
+
PfrpgSkills::SenseMotive.new,
|
57
|
+
PfrpgSkills::Spellcraft.new,
|
58
|
+
]
|
59
|
+
end
|
60
|
+
|
61
|
+
def feature_type
|
62
|
+
"PaladinFeature"
|
63
|
+
end
|
64
|
+
|
65
|
+
def starting_feats
|
66
|
+
[
|
67
|
+
"Light Armor Proficiency",
|
68
|
+
"Medium Armor Proficiency",
|
69
|
+
"Heavy Armor Proficiency",
|
70
|
+
"Simple Weapon Proficiency",
|
71
|
+
"Martial Weapon Proficiency, All"
|
72
|
+
]
|
73
|
+
end
|
74
|
+
|
75
|
+
def mercy_desc(key)
|
76
|
+
mercies =
|
77
|
+
{ 'Fatigued' => 'the target is no longer fatigued.',
|
78
|
+
'Shaken' => 'the target is no longer shaken',
|
79
|
+
'Sickened' => 'the target is no longer sickened',
|
80
|
+
'Dazed' => 'the target is no longer dazed',
|
81
|
+
'Diseased' => 'the paladin\'s lay on hands ability also acts as remove disease, using the paladin\'s level as the caster level.',
|
82
|
+
'Staggered'=> 'the target is no longer staggered, unless the target is at exactly 0 hit points.',
|
83
|
+
'Cursed' => 'the paladin\'s lay on hands ability also acts as remove curse, using the paladin\'s level as the caster level.',
|
84
|
+
'Exhausted'=> "the target is no longer exhausted. The paladin must have the fatigue mercy before selecting this mercy.",
|
85
|
+
"Frightened" => "the target is no longer exhausted. The paladin must have the fatigue mercy before selecting this mercy.",
|
86
|
+
"Nauseated" => "the target is no longer nauseated. The paladin must have the sickened mercy before selecting this mercy.",
|
87
|
+
"Poisoned" => "the paladin's lay on hands ability also acts as neutralize poison, using the paladin's level as the caster level.",
|
88
|
+
"Blinded" => "the target is no longer blinded",
|
89
|
+
"Deafened" => "the target is no longer deafened",
|
90
|
+
"Paralyzed" => "the target is no longer paralyzed",
|
91
|
+
"Stunned" => "the target is no longer stunned"
|
92
|
+
}
|
93
|
+
return mercies[key]
|
94
|
+
end
|
95
|
+
|
96
|
+
def mercies(level)
|
97
|
+
base = []
|
98
|
+
if level >= 3
|
99
|
+
base << [ 'Fatigued', 'Shaken', 'Sickened' ]
|
100
|
+
end
|
101
|
+
if level >= 6
|
102
|
+
base << [ 'Dazed' , 'Diseased', 'Nauseated' ]
|
103
|
+
end
|
104
|
+
if level >= 9
|
105
|
+
base << [ 'Cursed', 'Exhausted', 'Frightened', 'Nauseated', 'Poisoned' ]
|
106
|
+
end
|
107
|
+
if level >= 12
|
108
|
+
base << [ 'Blinded', 'Deafened', 'Paralyzed', 'Stunned' ]
|
109
|
+
end
|
110
|
+
return base.flatten
|
111
|
+
end
|
112
|
+
|
113
|
+
def suggested_items
|
114
|
+
[
|
115
|
+
['Longsword', 'Scale mail', 'Shield, light steel'],
|
116
|
+
['Greatsword', 'Scale mail']
|
117
|
+
]
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
class PfrpgClasses::PathfinderChronicler < PfrpgClasses::Heroclass
|
2
|
+
|
3
|
+
def name
|
4
|
+
"Pathfinder Chronicler"
|
5
|
+
end
|
6
|
+
|
7
|
+
def prestige
|
8
|
+
true
|
9
|
+
end
|
10
|
+
|
11
|
+
def hit_die
|
12
|
+
PfrpgCore::Dice.new(1,8)
|
13
|
+
end
|
14
|
+
|
15
|
+
def alignment
|
16
|
+
PfrpgCore::Alignment.any
|
17
|
+
end
|
18
|
+
|
19
|
+
def description
|
20
|
+
"The Pathfinder chronicler's missions often thrust her into the role of party leader, and adventures typically result from, and revolve around, his endless quests."
|
21
|
+
end
|
22
|
+
|
23
|
+
def skills
|
24
|
+
non_knowledge =
|
25
|
+
[PfrpgSkills::Appraise.new,
|
26
|
+
PfrpgSkills::Bluff.new,
|
27
|
+
PfrpgSkills::Diplomacy.new,
|
28
|
+
PfrpgSkills::Disguise.new,
|
29
|
+
PfrpgSkills::EscapeArtist.new,
|
30
|
+
PfrpgSkills::Intimidate.new,
|
31
|
+
PfrpgSkills::Linguistics.new,
|
32
|
+
PfrpgSkills::Perception.new,
|
33
|
+
PfrpgSkills::Perform.new,
|
34
|
+
PfrpgSkills::Ride.new,
|
35
|
+
PfrpgSkills::SenseMotive.new,
|
36
|
+
PfrpgSkills::SleightOfHand.new,
|
37
|
+
PfrpgSkills::Survival.new,
|
38
|
+
PfrpgSkills::UseMagicDevice.new
|
39
|
+
]
|
40
|
+
knowledge =
|
41
|
+
[ 'Arcana',
|
42
|
+
'Dungeoneering',
|
43
|
+
'Engineering',
|
44
|
+
'Geography',
|
45
|
+
'History',
|
46
|
+
'Local',
|
47
|
+
'Nature',
|
48
|
+
'Nobility',
|
49
|
+
'Planes',
|
50
|
+
'Religion'
|
51
|
+
]
|
52
|
+
knowledge.each do |k|
|
53
|
+
non_knowledge <<PfrpgSkills::Knowledge.new(k)
|
54
|
+
end
|
55
|
+
return non_knowledge
|
56
|
+
end
|
57
|
+
|
58
|
+
def bonuses_for_level(level)
|
59
|
+
PfrpgTables::Heroclasses::PathfinderChronicler.level_bonus(level)
|
60
|
+
end
|
61
|
+
|
62
|
+
def get_spells_table
|
63
|
+
return PfrpgTables::Spells::SpellsPerDay.empty
|
64
|
+
end
|
65
|
+
|
66
|
+
def skills_per_level
|
67
|
+
4
|
68
|
+
end
|
69
|
+
|
70
|
+
def feature_type
|
71
|
+
'PathfinderChroniclerFeature'
|
72
|
+
end
|
73
|
+
|
74
|
+
def prerequisites
|
75
|
+
[
|
76
|
+
PfrpgCore::Prerequisite::SkillPrereq.new('linguistics', 3),
|
77
|
+
PfrpgCore::Prerequisite::SkillPrereq.new('perform', 5),
|
78
|
+
PfrpgCore::Prerequisite::SkillPrereq.new('profession', 5),
|
79
|
+
]
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|