pfrpg_tables 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/lib/pfrpg_tables/tables/attribute_modifier.rb +5 -0
  3. data/lib/pfrpg_tables/tables/attributes.rb +13 -0
  4. data/lib/pfrpg_tables/tables/bonus.rb +17 -0
  5. data/lib/pfrpg_tables/tables/equipment_totaler.rb +14 -0
  6. data/lib/pfrpg_tables/tables/feat_options.rb +28 -0
  7. data/lib/pfrpg_tables/tables/feat_totaler.rb +61 -0
  8. data/lib/pfrpg_tables/tables/feature_totaler.rb +86 -0
  9. data/lib/pfrpg_tables/tables/heroclasses/alchemist.rb +189 -0
  10. data/lib/pfrpg_tables/tables/heroclasses/arcane_archer.rb +98 -0
  11. data/lib/pfrpg_tables/tables/heroclasses/arcane_trickster.rb +89 -0
  12. data/lib/pfrpg_tables/tables/heroclasses/assassin.rb +79 -0
  13. data/lib/pfrpg_tables/tables/heroclasses/barbarian.rb +171 -0
  14. data/lib/pfrpg_tables/tables/heroclasses/bard.rb +190 -0
  15. data/lib/pfrpg_tables/tables/heroclasses/cavalier.rb +189 -0
  16. data/lib/pfrpg_tables/tables/heroclasses/cleric.rb +186 -0
  17. data/lib/pfrpg_tables/tables/heroclasses/dragon_disciple.rb +92 -0
  18. data/lib/pfrpg_tables/tables/heroclasses/druid.rb +190 -0
  19. data/lib/pfrpg_tables/tables/heroclasses/duelist.rb +79 -0
  20. data/lib/pfrpg_tables/tables/heroclasses/eldritch_knight.rb +86 -0
  21. data/lib/pfrpg_tables/tables/heroclasses/fighter.rb +170 -0
  22. data/lib/pfrpg_tables/tables/heroclasses/gunslinger.rb +189 -0
  23. data/lib/pfrpg_tables/tables/heroclasses/inquisitor.rb +189 -0
  24. data/lib/pfrpg_tables/tables/heroclasses/loremaster.rb +112 -0
  25. data/lib/pfrpg_tables/tables/heroclasses/magus.rb +189 -0
  26. data/lib/pfrpg_tables/tables/heroclasses/monk.rb +202 -0
  27. data/lib/pfrpg_tables/tables/heroclasses/mystic_theurge.rb +89 -0
  28. data/lib/pfrpg_tables/tables/heroclasses/oracle.rb +189 -0
  29. data/lib/pfrpg_tables/tables/heroclasses/paladin.rb +188 -0
  30. data/lib/pfrpg_tables/tables/heroclasses/pathfinder_chronicler.rb +79 -0
  31. data/lib/pfrpg_tables/tables/heroclasses/ranger.rb +313 -0
  32. data/lib/pfrpg_tables/tables/heroclasses/rogue.rb +168 -0
  33. data/lib/pfrpg_tables/tables/heroclasses/shadowdancer.rb +82 -0
  34. data/lib/pfrpg_tables/tables/heroclasses/sorcerer.rb +169 -0
  35. data/lib/pfrpg_tables/tables/heroclasses/summoner.rb +189 -0
  36. data/lib/pfrpg_tables/tables/heroclasses/witch.rb +189 -0
  37. data/lib/pfrpg_tables/tables/heroclasses/wizard.rb +189 -0
  38. data/lib/pfrpg_tables/tables/heroclasses.rb +4 -0
  39. data/lib/pfrpg_tables/tables/languages.rb +53 -0
  40. data/lib/pfrpg_tables/tables/level_table.rb +195 -0
  41. data/lib/pfrpg_tables/tables/size.rb +25 -0
  42. data/lib/pfrpg_tables/tables/spells/spells_per_day.rb +239 -0
  43. data/lib/pfrpg_tables/tables/spells.rb +28 -0
  44. data/lib/pfrpg_tables/tables/weapons.rb +57 -0
  45. data/lib/pfrpg_tables/tables.rb +10 -0
  46. data/lib/pfrpg_tables/version.rb +3 -0
  47. data/lib/pfrpg_tables.rb +8 -0
  48. metadata +117 -0
@@ -0,0 +1,189 @@
1
+ class PfrpgTables::Tables::Heroclasses::Wizard
2
+ def self.level_bonus(level)
3
+ bonus = nil
4
+ case level
5
+ when 1
6
+ bonus = { :base_attack_bonus => [0],
7
+ :fort_save => 0,
8
+ :ref_save => 0,
9
+ :will_save => 2,
10
+ :choices => [ ChooseArcaneBond.new, ChooseArcaneSchool.new ],
11
+ :granted_features => ["cantrips", "scribe_spell"]
12
+ }
13
+ when 2
14
+ bonus = { :base_attack_bonus => [1],
15
+ :fort_save => 0,
16
+ :ref_save => 0,
17
+ :will_save => 3,
18
+ :choices => [],
19
+ :granted_features => []
20
+ }
21
+ when 3
22
+ bonus = { :base_attack_bonus => [1],
23
+ :fort_save => 1,
24
+ :ref_save => 1,
25
+ :will_save => 3,
26
+ :choices => [],
27
+ :granted_features => []
28
+ }
29
+ when 4
30
+ bonus = { :base_attack_bonus => [2],
31
+ :fort_save => 1,
32
+ :ref_save => 1,
33
+ :will_save => 4,
34
+ :choices => [],
35
+ :granted_features => []
36
+ }
37
+ when 5
38
+ bonus = { :base_attack_bonus => [2],
39
+ :fort_save => 1,
40
+ :ref_save => 1,
41
+ :will_save => 4,
42
+ :choices => [ ChooseWizardBonusFeat.new],
43
+ :granted_features => []
44
+ }
45
+ when 6
46
+ bonus = { :base_attack_bonus => [3],
47
+ :fort_save => 2,
48
+ :ref_save => 2,
49
+ :will_save => 5,
50
+ :choices => [],
51
+ :granted_features => []
52
+ }
53
+ when 7
54
+ bonus = { :base_attack_bonus => [3],
55
+ :fort_save => 2,
56
+ :ref_save => 2,
57
+ :will_save => 5,
58
+ :granted_features => [],
59
+ :choices => []
60
+ }
61
+ when 8
62
+ bonus = { :base_attack_bonus => [4],
63
+ :fort_save => 2,
64
+ :ref_save => 2,
65
+ :will_save => 6,
66
+ :granted_features => [],
67
+ :choices => []
68
+ }
69
+ when 9
70
+ bonus = { :base_attack_bonus => [4],
71
+ :fort_save => 3,
72
+ :ref_save => 3,
73
+ :will_save => 6,
74
+ :granted_features => [],
75
+ :choices => []
76
+ }
77
+ when 10
78
+ bonus = { :base_attack_bonus => [5],
79
+ :fort_save => 3,
80
+ :ref_save => 3,
81
+ :will_save => 7,
82
+ :choices => [ ChooseWizardBonusFeat.new],
83
+ :granted_features => [],
84
+ }
85
+ when 11
86
+ bonus = { :base_attack_bonus => [5],
87
+ :fort_save => 3,
88
+ :ref_save => 3,
89
+ :will_save => 7,
90
+ :granted_features => [],
91
+ :choices => []
92
+ }
93
+ when 12
94
+ bonus = { :base_attack_bonus => [6,1],
95
+ :fort_save => 4,
96
+ :ref_save => 4,
97
+ :will_save => 8,
98
+ :granted_features => [],
99
+ :choices => []
100
+ }
101
+ when 13
102
+ bonus = { :base_attack_bonus => [6,1],
103
+ :fort_save => 4,
104
+ :ref_save => 4,
105
+ :will_save => 8,
106
+ :granted_features => [],
107
+ :choices => []
108
+ }
109
+ when 14
110
+ bonus = { :base_attack_bonus => [7,2],
111
+ :fort_save => 4,
112
+ :ref_save => 4,
113
+ :will_save => 9,
114
+ :choices => [],
115
+ :granted_features => []
116
+ }
117
+ when 15
118
+ bonus = { :base_attack_bonus => [7,2],
119
+ :fort_save => 5,
120
+ :ref_save => 5,
121
+ :will_save => 9,
122
+ :choices => [ ChooseWizardBonusFeat.new],
123
+ :granted_features => [],
124
+ }
125
+ when 16
126
+ bonus = { :base_attack_bonus => [8,3],
127
+ :fort_save => 5,
128
+ :ref_save => 5,
129
+ :will_save => 10,
130
+ :choices => [],
131
+ :granted_features => []
132
+ }
133
+ when 17
134
+ bonus = { :base_attack_bonus => [8,3],
135
+ :fort_save => 5,
136
+ :ref_save => 5,
137
+ :will_save => 10,
138
+ :granted_features => [],
139
+ :choices => []
140
+ }
141
+ when 18
142
+ bonus = { :base_attack_bonus => [9,4],
143
+ :fort_save => 6,
144
+ :ref_save => 6,
145
+ :will_save => 11,
146
+ :granted_features => [],
147
+ :choices => []
148
+ }
149
+ when 19
150
+ bonus = { :base_attack_bonus => [9,4],
151
+ :fort_save => 6,
152
+ :ref_save => 6,
153
+ :will_save => 11,
154
+ :granted_features => [],
155
+ :choices => []
156
+ }
157
+ when 20
158
+ bonus = { :base_attack_bonus => [10,5],
159
+ :fort_save => 6,
160
+ :ref_save => 6,
161
+ :will_save => 12,
162
+ :granted_features => [],
163
+ :choices => [ ChooseWizardBonusFeat.new]
164
+ }
165
+ end
166
+ bonus
167
+ end
168
+
169
+ def self.familiars
170
+ {
171
+ "Bat" => "Master gains a +3 bonus on Fly checks",
172
+ "Cat" => "Master gains a +3 bonus on Stealth checks",
173
+ "Hawk" => "Master gains a +3 bonus on sight-based and opposed Perception checks in bright light",
174
+ "Lizard" => "Master gains a +3 bonus on Climb checks",
175
+ "Monkey" => "Master gains a +3 bonus on Acrobatics checks",
176
+ "Owl" => "Master gains a +3 bonus on sight-based and opposed Perception checks in shadows or darkness",
177
+ "Rat" => "Master gains a +2 bonus on Fortitude saves",
178
+ "Raven" => "Master gains a +3 bonus on Appraise checks, Speaks one language of its Master",
179
+ "Toad" => "Master gains +3 hit points",
180
+ "Viper" => "Master gains a +3 bonus on Bluff checks",
181
+ "Weasel" => "Master gains a +2 bonus on Reflex saves"
182
+ }
183
+ end
184
+
185
+ def self.bond_objects
186
+ ["amulet", "ring", "staff", "wand","weapon"]
187
+ end
188
+ end
189
+
@@ -0,0 +1,202 @@
1
+ class PfrpgTables::Tables::Heroclasses::Monk
2
+ def self.level_bonus(level)
3
+ bonus = nil
4
+ case level
5
+ when 1
6
+ bonus = { :base_attack_bonus => [0],
7
+ :fort_save => 2,
8
+ :ref_save => 2,
9
+ :will_save => 2,
10
+ :choices => [ ChooseMonkBonusFeat.new ],
11
+ :granted_features => ["flurry_of_blows", "stunning_fist", "unarmed_strike", 'ac_bonus']
12
+ }
13
+ when 2
14
+ bonus = { :base_attack_bonus => [1],
15
+ :fort_save => 3,
16
+ :ref_save => 3,
17
+ :will_save => 3,
18
+ :choices => [ ChooseMonkBonusFeat.new ],
19
+ :granted_features => ["evasion"]
20
+ }
21
+ when 3
22
+ bonus = { :base_attack_bonus => [2],
23
+ :fort_save => 3,
24
+ :ref_save => 3,
25
+ :will_save => 3,
26
+ :choices => [],
27
+ :granted_features => ["fast_movement", "maneuver_training", "still_mind"]
28
+ }
29
+ when 4
30
+ bonus = { :base_attack_bonus => [3],
31
+ :fort_save => 4,
32
+ :ref_save => 4,
33
+ :will_save => 4,
34
+ :choices => [],
35
+ :granted_features => ["ki_pool", "slow_fall"]
36
+ }
37
+ when 5
38
+ bonus = { :base_attack_bonus => [3],
39
+ :fort_save => 4,
40
+ :ref_save => 4,
41
+ :will_save => 4,
42
+ :choices => [],
43
+ :granted_features => ["high_jump", "purity_of_body"]
44
+ }
45
+ when 6
46
+ bonus = { :base_attack_bonus => [4],
47
+ :fort_save => 5,
48
+ :ref_save => 5,
49
+ :will_save => 5,
50
+ :choices => [ ChooseMonkBonusFeat.new ],
51
+ :granted_features => []
52
+ }
53
+ when 7
54
+ bonus = { :base_attack_bonus => [5],
55
+ :fort_save => 5,
56
+ :ref_save => 5,
57
+ :will_save => 5,
58
+ :granted_features => [ "wholeness_of_body"],
59
+ :choices => []
60
+ }
61
+ when 8
62
+ bonus = { :base_attack_bonus => [6,1],
63
+ :fort_save => 6,
64
+ :ref_save => 6,
65
+ :will_save => 6,
66
+ :granted_features => [],
67
+ :choices => []
68
+ }
69
+ when 9
70
+ bonus = { :base_attack_bonus => [6,1],
71
+ :fort_save => 6,
72
+ :ref_save => 6,
73
+ :will_save => 6,
74
+ :granted_features => ["improved_evasion"],
75
+ :choices => []
76
+ }
77
+ when 10
78
+ bonus = { :base_attack_bonus => [7,2],
79
+ :fort_save => 7,
80
+ :ref_save => 7,
81
+ :will_save => 7,
82
+ :granted_features => [],
83
+ :choices => [ ChooseMonkBonusFeat.new ]
84
+ }
85
+ when 11
86
+ bonus = { :base_attack_bonus => [8,3],
87
+ :fort_save => 7,
88
+ :ref_save => 7,
89
+ :will_save => 7,
90
+ :granted_features => ["diamond_body"],
91
+ :choices => []
92
+ }
93
+ when 12
94
+ bonus = { :base_attack_bonus => [9,4],
95
+ :fort_save => 8,
96
+ :ref_save => 8,
97
+ :will_save => 8,
98
+ :granted_features => ["abundant_step"],
99
+ :choices => []
100
+ }
101
+ when 13
102
+ bonus = { :base_attack_bonus => [9,4],
103
+ :fort_save => 8,
104
+ :ref_save => 8,
105
+ :will_save => 8,
106
+ :granted_features => ["diamond_soul"],
107
+ :choices => []
108
+ }
109
+ when 14
110
+ bonus = { :base_attack_bonus => [10,5],
111
+ :fort_save => 9,
112
+ :ref_save => 9,
113
+ :will_save => 9,
114
+ :choices => [ ChooseMonkBonusFeat.new ],
115
+ :granted_features => []
116
+ }
117
+ when 15
118
+ bonus = { :base_attack_bonus => [11,6,1],
119
+ :fort_save => 9,
120
+ :ref_save => 9,
121
+ :will_save => 9,
122
+ :granted_features => ["quivering_palm"],
123
+ :choices => []
124
+ }
125
+ when 16
126
+ bonus = { :base_attack_bonus => [12,7,2],
127
+ :fort_save => 10,
128
+ :ref_save => 10,
129
+ :will_save => 10,
130
+ :granted_features => [],
131
+ :choices => []
132
+ }
133
+ when 17
134
+ bonus = { :base_attack_bonus => [12,7,2],
135
+ :fort_save => 10,
136
+ :ref_save => 10,
137
+ :will_save => 10,
138
+ :granted_features => ["timeless_body", "tongue_of_the_sun_and_moon"],
139
+ :choices => []
140
+ }
141
+ when 18
142
+ bonus = { :base_attack_bonus => [13,8,3],
143
+ :fort_save => 11,
144
+ :ref_save => 11,
145
+ :will_save => 11,
146
+ :choices => [ ChooseMonkBonusFeat.new ],
147
+ :granted_features => []
148
+ }
149
+ when 19
150
+ bonus = { :base_attack_bonus => [14,9,4],
151
+ :fort_save => 11,
152
+ :ref_save => 11,
153
+ :will_save => 11,
154
+ :granted_features => ["empty_body"],
155
+ :choices => []
156
+ }
157
+ when 20
158
+ bonus = { :base_attack_bonus => [15,10,5],
159
+ :fort_save => 12,
160
+ :ref_save => 12,
161
+ :will_save => 12,
162
+ :granted_features => ["perfect_self"],
163
+ :choices => []
164
+ }
165
+ end
166
+ bonus
167
+ end
168
+
169
+ def self.unarmed_strike_damage(size, level)
170
+ dmg = {}
171
+ case level
172
+ when 1..3
173
+ dmg = { :small => "1d4", :medium => "1d6", :large => "1d8" }
174
+ when 4..7
175
+ dmg = { :small => "1d6", :medium => "1d8", :large => "2d6" }
176
+ when 8.11
177
+ dmg = { :small => "1d8", :medium => "1d10", :large => "2d8" }
178
+ when 12..15
179
+ dmg = { :small => "1d10", :medium => "2d6", :large => "3d6" }
180
+ when 16..19
181
+ dmg = { :small => "2d6", :medium => "2d8", :large => "3d8" }
182
+ when 20
183
+ dmg = { :small => "2d8", :medium => "2d10", :large => "4d8" }
184
+ end
185
+ return dmg[size.to_sym]
186
+ end
187
+
188
+ def self.monk_bonus_feats(level)
189
+ base = ["Catch Off-Guard", 'Combat Reflexes', 'Deflect Arrows', 'Dodge', 'Improved Grapple',
190
+ 'Scorpion Style', 'Throw Anything']
191
+ if level >= 6
192
+ base << [ "Gorgon's Fist", "Improved Bull Rush", "Improved Disarm", "Improved Feint", "Improved Trip",
193
+ "Mobility"]
194
+ end
195
+ if level >= 10
196
+ base << ["Improved Critical", "Medusa's Wrath", "Snatch Arrows", "Spring Attack"]
197
+ end
198
+ base.flatten
199
+ end
200
+
201
+ end
202
+
@@ -0,0 +1,89 @@
1
+ class PfrpgTables::Tables::Heroclasses::MysticTheurge
2
+
3
+ def self.level_bonus(level)
4
+ bonus = nil
5
+ case level
6
+ when 1
7
+ bonus = { :base_attack_bonus => [0],
8
+ :fort_save => 0,
9
+ :ref_save => 0,
10
+ :will_save => 1,
11
+ :granted_features => ["combinedspells"],
12
+ :prestige_spells => 1
13
+ }
14
+ when 2
15
+ bonus = { :base_attack_bonus => [1],
16
+ :fort_save => 1,
17
+ :ref_save => 1,
18
+ :will_save => 1,
19
+ :granted_features => [],
20
+ :prestige_spells => 1
21
+ }
22
+ when 3
23
+ bonus = { :base_attack_bonus => [1],
24
+ :fort_save => 1,
25
+ :ref_save => 1,
26
+ :will_save => 2,
27
+ :granted_features => [],
28
+ :prestige_spells => 1
29
+ }
30
+ when 4
31
+ bonus = { :base_attack_bonus => [2],
32
+ :fort_save => 1,
33
+ :ref_save => 1,
34
+ :will_save => 2,
35
+ :granted_features => [],
36
+ :prestige_spells => 1
37
+ }
38
+ when 5
39
+ bonus = { :base_attack_bonus => [2],
40
+ :fort_save => 2,
41
+ :ref_save => 2,
42
+ :will_save => 3,
43
+ :granted_features => [],
44
+ :prestige_spells => 1
45
+ }
46
+ when 6
47
+ bonus = { :base_attack_bonus => [3],
48
+ :fort_save => 2,
49
+ :ref_save => 2,
50
+ :will_save => 3,
51
+ :granted_features => [],
52
+ :prestige_spells => 1
53
+ }
54
+ when 7
55
+ bonus = { :base_attack_bonus => [3],
56
+ :fort_save => 2,
57
+ :ref_save => 2,
58
+ :will_save => 4,
59
+ :granted_features => [],
60
+ :prestige_spells => 1
61
+ }
62
+ when 8
63
+ bonus = { :base_attack_bonus => [4],
64
+ :fort_save => 3,
65
+ :ref_save => 3,
66
+ :will_save => 4,
67
+ :granted_features => [],
68
+ :prestige_spells => 1
69
+ }
70
+ when 9
71
+ bonus = { :base_attack_bonus => [4],
72
+ :fort_save => 3,
73
+ :ref_save => 3,
74
+ :will_save => 5,
75
+ :granted_features => [],
76
+ :prestige_spells => 1
77
+ }
78
+ when 10
79
+ bonus = { :base_attack_bonus => [5],
80
+ :fort_save => 3,
81
+ :ref_save => 5,
82
+ :will_save => 5,
83
+ :granted_features => ["spellsynthesis"],
84
+ :prestige_spells => 1
85
+ }
86
+ end
87
+ bonus
88
+ end
89
+ end