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,4 @@
1
+ class PfrpgTables::Tables::Heroclasses
2
+ require_relative 'heroclasses/rogue'
3
+ require_relative 'heroclasses/fighter'
4
+ end
@@ -0,0 +1,53 @@
1
+ class PfrpgTables::Tables::Languages
2
+ def self.all_languages
3
+ [
4
+ "Abyssal",
5
+ "Aklo",
6
+ "Aquan",
7
+ "Auran",
8
+ "Celestial",
9
+ "Common",
10
+ "Draconic",
11
+ "Druidic",
12
+ "Dwarven",
13
+ "Elven",
14
+ "Giant",
15
+ "Gnome",
16
+ "Goblin",
17
+ "Gnoll",
18
+ "Halfling",
19
+ "Ignan",
20
+ "Infernal",
21
+ "Orc",
22
+ "Sylvan",
23
+ "Terran",
24
+ "Undercommon"
25
+ ]
26
+ end
27
+
28
+ def self.int_languages
29
+ [
30
+ "Abyssal",
31
+ "Aklo",
32
+ "Aquan",
33
+ "Auran",
34
+ "Celestial",
35
+ "Common",
36
+ "Draconic",
37
+ "Dwarven",
38
+ "Elven",
39
+ "Giant",
40
+ "Gnome",
41
+ "Goblin",
42
+ "Gnoll",
43
+ "Halfling",
44
+ "Ignan",
45
+ "Infernal",
46
+ "Orc",
47
+ "Sylvan",
48
+ "Terran",
49
+ "Undercommon"
50
+ ]
51
+ end
52
+
53
+ end
@@ -0,0 +1,195 @@
1
+ class PfrpgTables::Tables::LevelTable
2
+
3
+ def self.for_level(level)
4
+ case level
5
+ when 1
6
+ return { :slow_xp => nil,
7
+ :medium_xp => nil,
8
+ :fast_xp => nil,
9
+ :choices => [ChooseSkills.new,
10
+ ChooseFeat.new,
11
+ ChooseEquipment.new,
12
+ ChooseAlignment.new]
13
+ }
14
+ when 2
15
+ return { :slow_xp => 3000,
16
+ :medium_xp => 2000,
17
+ :fast_xp => 1300,
18
+ :choices => [ChooseHitDie.new, ChooseSkills.new]
19
+ }
20
+ when 3
21
+ return { :slow_xp => 7500,
22
+ :medium_xp => 5000,
23
+ :fast_xp => 3300,
24
+ :choices => [ChooseSkills.new,
25
+ ChooseHitDie.new,
26
+ ChooseFeat.new]
27
+ }
28
+ when 4
29
+ return { :slow_xp => 14000,
30
+ :medium_xp => 9000,
31
+ :fast_xp => 6000,
32
+ :choices => [ChooseAttributeBonus.new,
33
+ ChooseHitDie.new,
34
+ ChooseSkills.new]
35
+ }
36
+ when 5
37
+ return { :slow_xp => 23000,
38
+ :medium_xp => 15000,
39
+ :fast_xp => 10000,
40
+ :choices => [
41
+ ChooseHitDie.new,
42
+ ChooseSkills.new,
43
+ ChooseFeat.new
44
+ ]
45
+ }
46
+ when 6
47
+ return { :slow_xp => 35000,
48
+ :medium_xp => 23000,
49
+ :fast_xp => 15000,
50
+ :choices => [
51
+ ChooseHitDie.new,
52
+ ChooseSkills.new
53
+ ]
54
+ }
55
+ when 7
56
+ return { :slow_xp => 53000,
57
+ :medium_xp => 35000,
58
+ :fast_xp => 23000,
59
+ :choices => [
60
+ ChooseSkills.new,
61
+ ChooseFeat.new,
62
+ ChooseHitDie.new
63
+ ]
64
+ }
65
+ when 8
66
+ return { :slow_xp => 77000,
67
+ :medium_xp => 51000,
68
+ :fast_xp => 34000,
69
+ :choices => [
70
+ ChooseAttributeBonus.new,
71
+ ChooseHitDie.new,
72
+ ChooseSkills.new
73
+ ]
74
+ }
75
+ when 9
76
+ return { :slow_xp => 115000,
77
+ :medium_xp => 75000,
78
+ :fast_xp => 50000,
79
+ :choices => [
80
+ ChooseSkills.new,
81
+ ChooseFeat.new,
82
+ ChooseHitDie.new
83
+ ]
84
+ }
85
+ when 10
86
+ return { :slow_xp => 160000,
87
+ :medium_xp => 105000,
88
+ :fast_xp => 71000,
89
+ :choices => [
90
+ ChooseHitDie.new,
91
+ ChooseSkills.new
92
+ ]
93
+ }
94
+ when 11
95
+ return { :slow_xp => 235000,
96
+ :medium_xp => 155000,
97
+ :fast_xp => 105000,
98
+ :choices => [
99
+ ChooseSkills.new,
100
+ ChooseFeat.new,
101
+ ChooseHitDie.new
102
+ ]
103
+ }
104
+ when 12
105
+ return { :slow_xp => 330000,
106
+ :medium_xp => 220000,
107
+ :fast_xp => 145000,
108
+ :choices => [
109
+ ChooseAttributeBonus.new,
110
+ ChooseHitDie.new,
111
+ ChooseSkills.new
112
+ ]
113
+ }
114
+ when 13
115
+ return { :slow_xp => 475000,
116
+ :medium_xp => 315000,
117
+ :fast_xp => 210000,
118
+ :choices => [
119
+ ChooseSkills.new,
120
+ ChooseFeat.new,
121
+ ChooseHitDie.new
122
+ ]
123
+ }
124
+ when 14
125
+ return { :slow_xp => 665000,
126
+ :medium_xp => 445000,
127
+ :fast_xp => 295000,
128
+ :choices => [
129
+ ChooseHitDie.new,
130
+ ChooseSkills.new
131
+ ]
132
+ }
133
+ when 15
134
+ return { :slow_xp => 955000,
135
+ :medium_xp => 635000,
136
+ :fast_xp => 425000,
137
+ :choices => [
138
+ ChooseSkills.new,
139
+ ChooseFeat.new,
140
+ ChooseHitDie.new
141
+ ]
142
+ }
143
+ when 16
144
+ return { :slow_xp => 1350000,
145
+ :medium_xp => 890000,
146
+ :fast_xp => 600000,
147
+ :choices => [
148
+ ChooseAttributeBonus.new,
149
+ ChooseHitDie.new,
150
+ ChooseSkills.new
151
+ ]
152
+ }
153
+ when 17
154
+ return { :slow_xp => 1900000,
155
+ :medium_xp => 1300000,
156
+ :fast_xp => 850000,
157
+ :choices => [
158
+ ChooseFeat.new,
159
+ ChooseHitDie.new,
160
+ ChooseSkills.new
161
+ ]
162
+ }
163
+ when 18
164
+ return { :slow_xp => 2700000,
165
+ :medium_xp => 1800000,
166
+ :fast_xp => 1200000,
167
+ :choices => [
168
+ ChooseHitDie.new,
169
+ ChooseSkills.new
170
+ ]
171
+ }
172
+ when 19
173
+ return { :slow_xp => 3850000,
174
+ :medium_xp => 2550000,
175
+ :fast_xp => 1700000,
176
+ :choices => [
177
+ ChooseSkills.new,
178
+ ChooseFeat.new,
179
+ ChooseHitDie.new
180
+ ]
181
+ }
182
+ when 20
183
+ return { :slow_xp => 5350000,
184
+ :medium_xp => 3600000,
185
+ :fast_xp => 2400000,
186
+ :choices => [
187
+ ChooseAttributeBonus.new,
188
+ ChooseHitDie.new,
189
+ ChooseSkills.new
190
+ ]
191
+ }
192
+ end
193
+ level
194
+ end
195
+ end
@@ -0,0 +1,25 @@
1
+ class PfrpgTables::Tables::Size
2
+
3
+ def self.get_size_modifier(size)
4
+ case size
5
+ when "FINE"
6
+ 8
7
+ when "DIMINUTIVE"
8
+ 4
9
+ when "TINY"
10
+ 2
11
+ when "SMALL"
12
+ 1
13
+ when "MEDIUM"
14
+ 0
15
+ when "LARGE"
16
+ 1
17
+ when "HUGE"
18
+ 2
19
+ when "GARGANTUAN"
20
+ 4
21
+ when "COLOSSAL"
22
+ 8
23
+ end
24
+ end
25
+ end