drpedia_lite 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 819c308d214ea139a98fbc600689ea6f9aa9ebdc
4
+ data.tar.gz: 921b3dc789cd6227bbdce1e7e696ccbc46b29f86
5
+ SHA512:
6
+ metadata.gz: f5ff7c41bccee0b520480317fac5011279acc654bdd2e4229bf8b1c98a67cd2ec88f550b9727c14011be2052cfd3ee32f1600a8d60dac474b8ae531dc0a1921f
7
+ data.tar.gz: 5f7cc09603bf111d39cb03347d34dc98ab3db85edd3b8426216f0537bb0bef9f0185955450daff035448aa8addbe1cb818e7b6c2bfc26e2ab9603743e9fa0ce2
data/lib/Builder.rb ADDED
@@ -0,0 +1,20 @@
1
+ require 'ap'
2
+ require 'trollop'
3
+ require 'json'
4
+ require_relative 'RawReader.rb'
5
+ require_relative 'Validator.rb'
6
+
7
+ class Builder
8
+ def self.build input:, base_output_path:
9
+ raw_reader = RawReader.new filepath: input
10
+ Validator.new skill_list: raw_reader.skill_list,
11
+ skill_cat: raw_reader.skill_cat,
12
+ strains: raw_reader.strains,
13
+ professions: raw_reader.professions
14
+
15
+ File.open(File.join(base_output_path, 'strains.json'), 'w') { |f| f.write raw_reader.strains.to_a.to_json }
16
+ File.open(File.join(base_output_path, 'professions.json'), 'w') { |f| f.write raw_reader.professions.to_a.to_json }
17
+ File.open(File.join(base_output_path, 'skill_cat.json'), 'w') { |f| f.write raw_reader.skill_cat.to_json }
18
+ File.open(File.join(base_output_path, 'skill_list.json'), 'w') { |f| f.write raw_reader.skill_list.keys.to_json }
19
+ end
20
+ end
data/lib/RawReader.rb ADDED
@@ -0,0 +1,173 @@
1
+ require 'set'
2
+
3
+ class RawReader
4
+ attr_reader :skill_list, :skill_cat, :strains, :professions
5
+ STATE_TRANSITION = {
6
+ :undef => { pattern: /== Advantage Skill ==/, next: :innate },
7
+ :innate => { pattern: /== Innate Skill Prerequisite ==/, next: :innate_preq },
8
+ :innate_preq => { pattern: /== Open Skill ==/, next: :open},
9
+ :open => { pattern: /==/, next: :profession },
10
+ :profession => { pattern: /== Skill List ==/, next: :list },
11
+ :list => { pattern: /./, next: :list }
12
+ }
13
+
14
+ def initialize filepath:
15
+ f = nil
16
+ @skill_list = Hash.new
17
+ @skill_cat = Hash.new
18
+ @strains = Set.new
19
+ @professions = Set.new
20
+
21
+ begin
22
+ f = File.read(filepath)
23
+ rescue Errno::ENOENT => e
24
+ puts "File not found: #{filepath}"
25
+ puts e.backtrace
26
+ exit 1
27
+ end
28
+
29
+ split_by_sections(raw: f)
30
+ post_process_sets
31
+
32
+ #ap @skill_cat
33
+ end
34
+
35
+ private
36
+ def post_process_sets
37
+ @skill_cat.each do |_junk, data|
38
+ data[:innate] = data[:innate].to_a
39
+ end
40
+ end
41
+
42
+ def split_by_sections raw:
43
+ state = :undef
44
+ profession = :undef
45
+
46
+ raw.split(/[\r\n]+/).each do |line|
47
+ state, profession = detect_state_transition(current_state: state, current_profession: profession, line: line)
48
+ execute_state_task state: state, profession: profession, line: line
49
+ end
50
+ end
51
+
52
+ def detect_state_transition current_state:, current_profession:, line:
53
+ profession = nil
54
+ transition = STATE_TRANSITION[current_state]
55
+ if transition[:pattern] =~ line
56
+ if transition[:next] == :profession
57
+ profession = extract_profession_name(line: line) || current_profession
58
+ end
59
+ return transition[:next], profession
60
+ elsif current_state == :profession
61
+ profession = extract_profession_name(line: line) || current_profession
62
+ end
63
+
64
+ return current_state, profession
65
+ end
66
+
67
+ def extract_profession_name line:
68
+ if line =~ /== ([\w\s]+) ==/
69
+ return $1.strip.to_sym
70
+ end
71
+ end
72
+
73
+ def execute_state_task state:, profession:, line:
74
+ return if line =~ /==/
75
+
76
+ case state
77
+ when :innate then process_innate_skills line: line
78
+ when :innate_preq then process_innate_preqs line: line
79
+ when :open then process_open_skills line: line
80
+ when :profession then process_profession_skills line: line, profession: profession
81
+ when :list then process_list_skills line: line
82
+ end
83
+ end
84
+
85
+ def process_innate_skills line:
86
+ innate_skill = line.split(/:/)
87
+ strain = innate_skill[0].to_sym
88
+ skills = innate_skill[1].split(/,/)
89
+
90
+ smart_insert strain: strain, skills: skills
91
+ end
92
+
93
+ def process_innate_preqs line:
94
+ clusters = line.split(/:/)
95
+ strain = clusters[0].strip.to_sym
96
+ skill = clusters[1].strip.to_sym
97
+ preqs = process_preq_cluster cluster: clusters[2]
98
+
99
+ @skill_cat[skill][:innate_preq] ||= Hash.new
100
+ @skill_cat[skill][:innate_preq][strain] = preqs
101
+ end
102
+
103
+ def process_open_skills line:
104
+ line =~ /([\w\s\-\']+)(\d+)/
105
+ skill = $1.strip.to_sym
106
+ cost = $2.to_i
107
+
108
+ smart_insert open_skills: { skill: skill, cost: cost }
109
+ end
110
+
111
+ def process_profession_skills line:, profession:
112
+ line =~ /([\w\s\-\'\!\:]+)(\d+)(.+)/
113
+ return unless $1
114
+
115
+ skill = $1.strip.to_sym
116
+ cost = $2.to_i
117
+ preq = process_preq_cluster cluster: $3
118
+
119
+ smart_insert profession_skills: { skill: skill, profession: profession, cost: cost, preq: preq }
120
+ end
121
+
122
+ def process_preq_cluster cluster:
123
+ preq_string = cluster
124
+ preq_string =~ /([\|\&])/
125
+ predicate = $1.strip if $1
126
+
127
+ preq ||= { predicate: nil, list: Hash.new }
128
+ preq_string.split(/[\|\&]/).each do |prerequisite|
129
+ preq[:predicate] = predicate == '|' ? :or : :and
130
+ preq[:list][prerequisite.strip.to_sym] = true if prerequisite.strip.length > 0
131
+ end
132
+
133
+ if preq[:list].length == 0
134
+ preq = nil
135
+ end
136
+
137
+ return preq
138
+ end
139
+
140
+ def process_list_skills line:
141
+ @skill_list[line.strip.to_sym] = true
142
+ end
143
+
144
+ def smart_insert strain: nil, skills: nil, open_skills: nil, profession_skills: nil
145
+ if strain and skills
146
+ strains.add strain
147
+ skills.each do |_skill|
148
+ skill = _skill.strip.to_sym
149
+ @skill_cat[skill] ||= Hash.new
150
+ @skill_cat[skill][:innate] ||= Set.new
151
+ skill_cat_innate = @skill_cat[skill][:innate]
152
+
153
+ skill_cat_innate.add strain.to_sym
154
+ end
155
+ elsif open_skills
156
+ @skill_cat[open_skills[:skill]] ||= Hash.new
157
+ @skill_cat[open_skills[:skill]][:open] = open_skills[:cost]
158
+ elsif profession_skills
159
+ skill = profession_skills[:skill]
160
+ profession = profession_skills[:profession]
161
+ cost = profession_skills[:cost]
162
+ preq = profession_skills[:preq]
163
+ professions.add profession
164
+
165
+ @skill_cat[skill] ||= Hash.new
166
+ @skill_cat[skill][profession] = {
167
+ cost: cost,
168
+ preq: preq
169
+ }
170
+
171
+ end
172
+ end
173
+ end
data/lib/Validator.rb ADDED
@@ -0,0 +1,75 @@
1
+ require 'test/unit/assertions'
2
+
3
+ class Validator
4
+ include Test::Unit::Assertions
5
+ def initialize skill_list:, skill_cat:, strains:, professions:
6
+ @skill_list = skill_list
7
+ @skill_cat = skill_cat
8
+ @strains = strains
9
+ @professions = professions
10
+
11
+ validate_non_empty
12
+ validate_skill_name_matches
13
+ end
14
+
15
+ private
16
+ def validate_non_empty
17
+ assert(@skill_list.length > 0, "Empty skill list")
18
+ assert(@skill_cat.length > 0, "Empty processed skills")
19
+ assert(@strains.length > 0, "Empty strains")
20
+ assert(@professions.length > 0, "Empty professions")
21
+ end
22
+
23
+ def validate_skill_name_matches
24
+ mismatches = Array.new
25
+ @skill_cat.each do |skill_name, sdata|
26
+ if !is_in_list?(skill_name)
27
+ puts "mismatch: #{skill_name}"
28
+ mismatches << skill_name
29
+ ap @skill_cat[skill_name]
30
+ end
31
+
32
+ sdata.each do |stype, stdata|
33
+ case stype
34
+ when :innate
35
+ stdata.each do |strain|
36
+ is_in_strain?(strain)
37
+ end
38
+ when :innate_preq
39
+ when :open
40
+ else
41
+ is_in_profession?(stype)
42
+ if stdata[:preq]
43
+ stdata[:preq][:list].each do |pskill, _junk|
44
+ is_in_list?(pskill)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ def is_in_list? _x
53
+ if @skill_list[_x] == nil
54
+ puts "mismatched skill: #{_x}"
55
+ return false
56
+ end
57
+ return true
58
+ end
59
+
60
+ def is_in_strain? _x
61
+ if !@strains.include?(_x)
62
+ puts "mismatched strain: #{_x}"
63
+ return false
64
+ end
65
+ return true
66
+ end
67
+
68
+ def is_in_profession? _x
69
+ if !@professions.include?(_x)
70
+ puts "mismatched profession: #{_x}"
71
+ return false
72
+ end
73
+ return true
74
+ end
75
+ end
@@ -0,0 +1 @@
1
+ require_relative 'Builder.rb'
@@ -0,0 +1,866 @@
1
+ == Advantage Skill ==
2
+ Baywalkers: Analyze Creature, Double-Tap, First Aide, Instruct, Literacy, Parry
3
+ Diesel Jocks: Balance, Bolt Action, Forging the Future, Patch Job, Trade Ties, Melee Weapon - Standard
4
+ Full Dead: Big Dig, Check Quality, Income, Lie, Literacy, Torture
5
+ Genjian: Analyze Creature, Bow, Brawling, Lore - Mon Histories, Melee Weapon - Standard, Sailing, Throwing
6
+ Iron Slaves: Brawling, Carry, Escape Bonds, Iron Fists, Refuse, Rescue, Scrounge
7
+ Lascarians: Alert, Blind Fighting, Chase, Chop, Force Barricade, Melee Weapon - Small, Scrounge, Take Down
8
+ Mericans: Bolt Action, Brawling, Melee Weapon - Large, Melee Weapon - Two Handed, Throwing, Throwing - Javelins
9
+ Nation of Accensor: Building Tomorrow, Challenge, Faith Healing, First Aide, Mind Resistance, Patch Job
10
+ Natural Ones: Cure Toxins, Melee Weapon - Large, Melee Weapon - Small, Melee Weapon - Standard, Melee Weapon - Two Handed, Throwing, Throwing - Javelins
11
+ Pure Blood: Backstab, Bolt Action, Charisma, Cheat, Check Value, Income, Literacy
12
+ Reclaimers: Balance, Carry, Charge, Melee Weapon - Standard, Hunter's Mark, Avoid
13
+ The Red Star: Avoid, Barricade, Bomb Awareness, Brewing, Fearful Glare, Frightening Force, Melee Weapon - Large
14
+ Retrogrades: Barricade, Cover of Night, Disguise, Escape Bonds, Feign Death, Melee Weapon - Standard, Scrounge
15
+ Rovers: Bartender's Tongue, Check Your Sleeves, Head Shrink, Melee Weapon - Small, Refuse, Scrounge
16
+ Saltwise: Sailing, Fishing, Lore - Animals - Aquatic, Melee Weapon - Small, Guild Membership, Lie, Escape Bonds
17
+ Semper Mort: Brawling, Charisma, Chase, Iron Fists, Nerve Punch, Tie Binds
18
+ Solestros: Income, Deep Pockets, Literacy, Charisma, Balance, Melee Weapon - Standard, Refuse
19
+ Unborn of Teixiptla: Melee Weapon - Two Handed, Psionic Skill - Basic, Throwing - Javelins
20
+ Vegasians: Backstab, Black Market Connections, Cheat, Entertain, Lie, Literacy
21
+ Yorker: Barricade, Bomb Awareness, Chase, Entertain, Interfere, Melee Weapon - Standard
22
+
23
+ == Innate Skill Prerequisite ==
24
+ Iron Slaves: Iron Fists: Brawling
25
+
26
+ == Open Skill ==
27
+ Avoid 9
28
+ Barricade 9
29
+ Bolt Action 9
30
+ Brawling 9
31
+ Check Quality 9
32
+ Check Value 9
33
+ First Aide 9
34
+ Force Barricade 9
35
+ Literacy 6
36
+ Lore 6
37
+ Melee Weapon - Small 6
38
+ Melee Weapon - Standard 6
39
+ Melee Weapon - Two Handed 6
40
+ Parry 6
41
+ Pistol Whip 9
42
+ Shield 6
43
+ Teach 1
44
+ Throwing 6
45
+ Throwing - Javelins 6
46
+ Tie Binds 6
47
+
48
+ == Assassin ==
49
+ Alert 3
50
+ Avoid 3
51
+ Backstab 3
52
+ Balance 3
53
+ Black Market Connections 6 Disguise
54
+ Blinding 3
55
+ Choking Blow 3
56
+ Cover of Night 3
57
+ Disguise 3
58
+ Fade In A Crowd 3
59
+ Guild Membership 6 Backstab & Cover of Night
60
+ Melee Weapon - Small 3
61
+ Murder Most Foul 6 Guild Membership
62
+ Parry 3
63
+ Throwing 3
64
+ Vanish 3
65
+
66
+ == Caravan Driver ==
67
+ Bartender's Tongue 6
68
+ Bolt Action 3
69
+ Brawling 3
70
+ Charisma 3
71
+ Check Quality 3
72
+ Check Value 3
73
+ Feign Death 6
74
+ Income 3
75
+ Instruct 3 Teach
76
+ Melee Weapon - Standard 3
77
+ Pistol Whip 3
78
+ Refuse 3
79
+ Teach 0
80
+ Trade Ties 3
81
+
82
+ == Charlatan ==
83
+ Alert 3
84
+ Avoid 6
85
+ Beg For Life 6 Charisma
86
+ Charisma 3
87
+ Cheat 3
88
+ Cure Toxins 6 Educated
89
+ Educated 3 Literacy
90
+ Escape Bonds 6 Tie Binds
91
+ Interrogate 3
92
+ Melee Weapon - Small 3
93
+ Mind Resistance 6
94
+ Tie Binds 3
95
+ Torture 3
96
+ Unlock 3
97
+
98
+ == Cook ==
99
+ Analyze Compound 3
100
+ Charisma 6
101
+ Disguise Contents 3 Healthy Feast
102
+ Educated 3 Literacy
103
+ Healthy Feast 3 Prepare Meal
104
+ Income 3
105
+ Instruct 3 Teach
106
+ Literacy 3
107
+ Nail 3 Throwing
108
+ Prepare Meal 3
109
+ Rescue 3
110
+ Scrounge 6
111
+ Teach 0
112
+ Throwing 3
113
+
114
+ == Distiller ==
115
+ Analyze Compound 3
116
+ Bartender's Tongue
117
+ Brawling 3
118
+ Brew Master 6 Brewing
119
+ Brewing 6 Analyze Compound
120
+ Check Quality 3
121
+ Cure Toxins 3
122
+ Educated 6 Literacy
123
+ Income 3
124
+ Literacy 3
125
+ Melee Weapon - Large 3
126
+ Melee Weapon - Standard 3
127
+ Scrounge 3
128
+ Teach 0
129
+
130
+ == Doctor ==
131
+ Bolt Action 3
132
+ Check Status 6 Educated
133
+ Cure Toxins 6 Literacy
134
+ Educated 6 Literacy
135
+ First Aide 3
136
+ Fix Limb 3
137
+ Income 3
138
+ Literacy 3
139
+ Mangle Limb 3
140
+ Medical Assistance 6 Literacy
141
+ Medical Genius 6 Medical Assistance
142
+ Melee Weapon - Small 3
143
+ Sever 3
144
+ Teach 0
145
+ Torture 3
146
+
147
+ == Engineer ==
148
+ Barricade 3
149
+ Check Quality 3
150
+ Chop 6
151
+ Florentine 6
152
+ Force Barricade 3
153
+ Forging the Future 6
154
+ Income 3
155
+ Literacy 3
156
+ Melee Weapon - Small 3
157
+ Patch Job 3
158
+ Repair 6
159
+ SCIENCE! 6
160
+ Smelt 3
161
+ Weld 6
162
+
163
+ == Entertainer ==
164
+ Balance 3
165
+ Bartender's Tongue 6 Cheat
166
+ Bolt Action 3
167
+ Bomb Awareness 3
168
+ Cheat 6 Lie
169
+ Check Value 3
170
+ Disarming Blow 6 Melee Weapon - Small | Melee Weapon - Standard | Melee Weapon - Large | Melee Weapon - Two Handed
171
+ Entertain 6
172
+ Head Shrink 6 Entertain
173
+ Income 3
174
+ Lie 3
175
+ Melee Weapon - Standard 3
176
+ Refuse 3
177
+ Throwing 3
178
+
179
+ == Farmer ==
180
+ Alert 3
181
+ Analyze Creature 3
182
+ Animal Handler 3
183
+ Brawling 6
184
+ Brewing 3 Crop Tending
185
+ Carry 3
186
+ Chase 3
187
+ Crop Tending 3
188
+ First Aide 3
189
+ Income 3 Crop Tending
190
+ Melee Weapon - Standard 3
191
+ Take Down 6 Brawling
192
+ Throwing 3
193
+
194
+ == Fishmonger ==
195
+ Alert 3
196
+ Analyze Creature 3 Fishing
197
+ Avoid 6
198
+ Bow 3
199
+ Brawling 3
200
+ Cheat 3
201
+ Fishing 6
202
+ Lie 3
203
+ Melee Weapon - Two Handed 3
204
+ Nail 3 Throwing - Javelins | Bow
205
+ Sailing 3
206
+ Throwing - Javelins 3
207
+ Tie Binds 3
208
+
209
+ == Gambler ==
210
+ Backstab 6 Melee Weapon - Small
211
+ Bartender's Tongue 6
212
+ Black Market Connections 3
213
+ Brawling 3
214
+ Charisma 3
215
+ Cheat 3
216
+ Check Your Sleeves 6
217
+ Disarming Blow 3
218
+ Feign Death 3
219
+ Lie 3
220
+ Melee Weapon - Small 3
221
+ Pick Pockets 6
222
+ Throwing 3
223
+ Unlock 3
224
+
225
+ == Guard ==
226
+ Barricade 3
227
+ Blind Fighting 6
228
+ Bounce 6 Shield
229
+ Break Shield 6 Melee Weapon - Small | Melee Weapon - Standard | Melee Weapon - Large | Melee Weapon - Two Handed
230
+ Break Weapon 6 Melee Weapon - Small | Melee Weapon - Standard | Melee Weapon - Large | Melee Weapon - Two Handed
231
+ Carry 3
232
+ Fearful Glare 3
233
+ Force Barricade 3
234
+ Interfere 3
235
+ Knock Down 6 Shield
236
+ Mangle Limb 6 Melee Weapon - Small | Melee Weapon - Standard | Melee Weapon - Large | Melee Weapon - Two Handed
237
+ Melee Weapon - Standard 3
238
+ Parry 3
239
+ Shield 3
240
+ Wide Strike 6 Melee Weapon - Small | Melee Weapon - Standard | Melee Weapon - Large | Melee Weapon - Two Handed
241
+
242
+ == Gun Slinger ==
243
+ Blinding 6
244
+ Bolt Action 3
245
+ Challenge 3
246
+ Concentrated Fire 6 Bolt Action
247
+ Destroy Shield 6 Bolt Action
248
+ Destroy Weapon 6 Bolt Action
249
+ Double-Tap 6 Bolt Action
250
+ Fearful Glare 3
251
+ Gun Aficionado 6 Bolt Action
252
+ Pistol Whip 3
253
+ Scatter Shot 3
254
+ Sniped Shot 6 Gun Aficionado
255
+ Teach 0
256
+ Throwing 3
257
+
258
+ == Hook-Up ==
259
+ Attach 3
260
+ Bartender's Tongue 6
261
+ Black Market Connections 6 Bartender's Tongue
262
+ Building Tomorrow 6
263
+ Check Quality 3
264
+ Check Value 3
265
+ Fade In A Crowd 3
266
+ Income 6
267
+ Patch Job 3
268
+ Rescue 3
269
+ SCIENCE! 6 Patch Job
270
+ Scrounge 6
271
+ Trade Ties 3
272
+ Trap Making 6
273
+ Unlock 3
274
+
275
+ == Hunter ==
276
+ Alert 3
277
+ Bow 6
278
+ Carry 3
279
+ Charge 3
280
+ Chase 3
281
+ Double-Tap 6
282
+ Frightening Force 6
283
+ Hunter's Mark 6 Alert & Chase
284
+ Melee Weapon Expert 6 Melee Weapon - Large
285
+ Melee Weapon - Large 3
286
+ Melee Weapon - Small 3
287
+ Melee Weapon - Standard 3
288
+ Nail 6 Throwing - Javelins
289
+ Throwing - Javelins 3
290
+
291
+ == Jones ==
292
+ Attach 3
293
+ Balance 3
294
+ Big Dig 3 Bomb Awareness
295
+ Bolt Action 6
296
+ Bomb Awareness 3
297
+ Brawling 6
298
+ Concentrated Fire 6 Disarming Shot
299
+ Disarming Shot 3 Bolt Action
300
+ Double-Tap 6 Disarming Shot
301
+ Escape Bonds 3
302
+ Literacy 3
303
+ Pistol Whip 6 Disarming Shot
304
+ Scrounge 3
305
+ Teach 0
306
+ Unlock 6 Bomb Awareness
307
+
308
+ == Mad Scientist ==
309
+ Black Market Connections 6
310
+ Bomb Awareness 6 Literacy
311
+ Building Tomorrow 6
312
+ First Aide 3
313
+ Income 6
314
+ Literacy 3
315
+ Melee Weapon - Two Handed 3
316
+ Mind Resistance 6
317
+ Patch Job 3
318
+ Repair 3
319
+ SCIENCE! 6 Repair
320
+ Scrounge 3
321
+ Teach 0
322
+ Torture 3
323
+
324
+ == Martial Artist ==
325
+ Avoid 6
326
+ Balance 3
327
+ Bow 3
328
+ Brawling 3
329
+ Carry 3
330
+ Choking Blow 6 Brawling
331
+ Escape Bonds 3
332
+ Iron Fists 6 Brawling
333
+ Knockout 6 Iron Fists
334
+ Literacy 3
335
+ Nerve Punch 6 Brawling
336
+ Take Down 3 Brawling
337
+ Wide Strike 6 Brawling
338
+
339
+ == Merchant ==
340
+ Analyze Compound 3
341
+ Barricade 6
342
+ Bartender's Tongue 6
343
+ Beg For Life 6 Charisma
344
+ Black Market Connections 6
345
+ Carry 3
346
+ Charisma 3 Lie
347
+ Check Quality 3
348
+ Check Value 6
349
+ Check Your Sleeves 3
350
+ Disguise 6
351
+ Fade In A Crowd 3
352
+ Income 3
353
+ Lie 3
354
+
355
+ == Officer ==
356
+ Bolt Action 6
357
+ Brawling 3
358
+ Break Armor 3
359
+ Challenge 3
360
+ Charge 6 Melee Weapon - Large
361
+ Destroy Armor 6
362
+ Disarming Shot 6
363
+ Fearful Glare 6 Break Armor
364
+ Florentine 6
365
+ Frightening Force 6
366
+ Instruct 3 Teach
367
+ Literacy 3
368
+ Melee Weapon - Large 3
369
+ Teach 0
370
+
371
+ == Politician ==
372
+ Avoid 3
373
+ Backstab 6 Melee Weapon - Small
374
+ Bartender's Tongue 6
375
+ Beg For Life 3
376
+ Charisma 3
377
+ Cheat 3
378
+ Check Your Sleeves 6 Cheat
379
+ Educated 3 Literacy
380
+ Entertain 6
381
+ Escape 3
382
+ Escape Bonds 3
383
+ Literacy 3
384
+ Melee Weapon - Small 3
385
+ Income 3
386
+ Lie 6 Income
387
+
388
+ == Priest ==
389
+ Avoid 3
390
+ Barricade 6 Faith Healing
391
+ Bless Weapon 3 Pray for Justice
392
+ Call The Almighty 6
393
+ Carry 3
394
+ Charisma 3
395
+ Educated 3 Literacy
396
+ Escape 3
397
+ Faith Healing 6
398
+ Holy Rites 3 Educated
399
+ Interfere 3
400
+ Literacy 3
401
+ Mind Resistance 3
402
+ Pray for Justice 6 Faith Healing
403
+ Refuse 3
404
+
405
+ == Primitive ==
406
+ Analyze Creature 3
407
+ Avoid 6
408
+ Bounce 6 Shield
409
+ Bow 3
410
+ Brawling 3
411
+ Challenge 6
412
+ Chase 3
413
+ Chop 3
414
+ Mangle Limb 6
415
+ Melee Weapon - Two Handed 3
416
+ Melee Weapon Expert 3
417
+ Shield 3
418
+ Throwing 3
419
+ Tie Binds 3
420
+ Wide Strike 6 Melee Weapon - Two Handed
421
+
422
+ == Printer ==
423
+ Bartender's Tongue 3
424
+ Black Market Connections 3
425
+ Bolt Action 3
426
+ Charisma 6
427
+ Educated 3 Literacy
428
+ Escape 6
429
+ Fade In A Crowd 3
430
+ Income 3
431
+ Instruct 3
432
+ Literacy 3
433
+ Mind Resistance 3 Educated
434
+ Teach 0
435
+ Transcribe 3 Literacy
436
+
437
+ == Psionist ==
438
+ Alert 6
439
+ Blind Fighting 6
440
+ Blinding 6
441
+ Chase 3
442
+ Double-Tap 6
443
+ Lie 3
444
+ Literacy 3
445
+ Melee Weapon - Small 3
446
+ Mind Resistance 3
447
+ Psionic Skill - Basic 3
448
+ Psionic Skill - Intermediate 6 Psionic Skill - Basic
449
+ Psionic Skill - Advanced 6 Psionic Skill - Intermediate
450
+ Refuse 3
451
+ Throwing 3
452
+
453
+ == Publican ==
454
+ Bartender's Tongue 3 Charisma
455
+ Beg For Life 3
456
+ Charisma 3
457
+ Check Quality 3 Trade Ties
458
+ Check Your Sleeves 6
459
+ Deep Pockets 6
460
+ Entertain 6 Charisma
461
+ First Aide 3
462
+ Income 6
463
+ Literacy 3
464
+ Medical Assistance 6 First Aide
465
+ Melee Weapon - Small 3
466
+ Pick Pockets 3
467
+ Trade Ties 6 Deep Pockets
468
+
469
+ == Pugilist ==
470
+ Black Market Connections 6
471
+ Blind Fighting 6 Brawling
472
+ Brawling 3
473
+ Challenge 6
474
+ Charge 3
475
+ First Aide 3
476
+ Income 3
477
+ Iron Fists 6 Brawling
478
+ Knockout 6 Take Down
479
+ Nerve Punch 3
480
+ Parry 3 Brawling
481
+ Pick Pockets 6
482
+ Take Down 3 Brawling
483
+ Teach 0
484
+ Torture 6
485
+
486
+ == Ring Leader ==
487
+ Attach 3
488
+ Black Market Connections 6 Charisma
489
+ Blinding 3
490
+ Bolt Action 3
491
+ Charisma 6
492
+ Cheat 3
493
+ Check Value 3
494
+ Chop 3
495
+ Disguise 3
496
+ Income 3
497
+ Mangle Limb 6 Melee Weapon - Standard
498
+ Melee Weapon - Standard 3
499
+ Scatter Shot 6 Bolt Action
500
+ Trap Making 6
501
+
502
+ == Sawbones ==
503
+ Avoid 3 Rescue
504
+ Black Market Connections 6
505
+ Brewing 6 Literacy
506
+ Carry 3
507
+ Check Status 3
508
+ Cure Toxins 3
509
+ First Aide 3
510
+ Guild Membership 9 Black Market Connections & Interrogate
511
+ Income 3
512
+ Interfere 3 Rescue
513
+ Interrogate 6 Melee Weapon - Small
514
+ Literacy 3
515
+ Mangle Limb 6
516
+ Medical Assistance 3
517
+ Melee Weapon - Small 3
518
+ Rescue 3
519
+ Sever 3 Melee Weapon - Small
520
+
521
+ == Scavenger ==
522
+ Analyze Creature 3
523
+ Avoid 3
524
+ Barricade 3
525
+ Beg For Life 3
526
+ Brawling 3
527
+ Check Quality 3
528
+ Check Value 3
529
+ Chop 3
530
+ Cover of Night 6
531
+ Escape Bonds 3
532
+ Feign Death 3
533
+ Melee Weapon - Two Handed 3
534
+ Patch Job 6 Chop
535
+ Scrounge 3
536
+
537
+ == Scoundrel ==
538
+ Attach 3
539
+ Backstab 6 Melee Weapon - Small
540
+ Black Market Connections 6
541
+ Blinding 6
542
+ Bolt Action 3
543
+ Brawling 3
544
+ Charisma 3
545
+ Cheat 6 Charisma
546
+ Choking Blow 3
547
+ Disarming Blow 6 Melee Weapon - Small | Melee Weapon - Standard | Melee Weapon - Large | Melee Weapon - Two Handed
548
+ Guild Membership 6 Backstab & Black Market Connections
549
+ Interrogate 3
550
+ Lie 3
551
+ Melee Weapon - Small 3
552
+
553
+ == Sniper ==
554
+ Alert 3
555
+ Attach 3
556
+ Balance 3
557
+ Bolt Action 3
558
+ Concentrated Fire 6 Bolt Action
559
+ Cover of Night 6
560
+ Destroy Shield 3
561
+ Destroy Weapon 3
562
+ Disarming Shot 3
563
+ Guild Membership 6 Murder Most Foul
564
+ Gun Aficionado 6 Concentrated Fire
565
+ Murder Most Foul 6 Sniped Shot
566
+ Sniped Shot 6 Concentrated Fire
567
+ Vanish 3
568
+
569
+ == Soldier ==
570
+ Avoid 3
571
+ Break Shield 6
572
+ Charge 6
573
+ Double-Tap 6
574
+ Florentine 6
575
+ Force Barricade 6 Charge
576
+ Interfere 3
577
+ Melee Weapon Expert 6 Melee Weapon - Standard & Melee Weapon - Large
578
+ Melee Weapon - Large 3
579
+ Melee Weapon - Standard 3
580
+ Nail 3
581
+ Sever 3
582
+ Shield 3
583
+ Throwing - Javelins 3
584
+
585
+ == Spy ==
586
+ Balance 3
587
+ Bartender's Tongue 6
588
+ Blinding 3
589
+ Chase 3
590
+ Cover of Night 6
591
+ Disguise 6
592
+ Escape 3
593
+ Escape Bonds 3
594
+ Fade In A Crowd 6
595
+ Feign Death 3
596
+ Guild Membership 6 Unlock & Lie
597
+ Income 3
598
+ Lie 3
599
+ Scrounge 6
600
+ Unlock 3
601
+
602
+ == Teacher ==
603
+ Analyze Compound 3 Literacy
604
+ Analyze Creature 3 Literacy
605
+ Check Quality 3 Literacy
606
+ Check Status 3 Literacy
607
+ Check Your Sleeves 3
608
+ Educated 3 Literacy
609
+ Feign Death 6
610
+ Head Shrink 6
611
+ Instruct 3 Literacy
612
+ Literacy 3
613
+ Lore 3
614
+ Patch Job 3 Educated
615
+ Refuse 6 Check Your Sleeves
616
+ Teach 0
617
+
618
+ == Thief ==
619
+ Avoid 6
620
+ Attach 3
621
+ Blinding 6
622
+ Black Market Connections 6 Pick Pockets & Lie
623
+ Disguise 6
624
+ Escape 3
625
+ Escape Bonds 6
626
+ Fade In A Crowd 6
627
+ Feign Death 3
628
+ Lie 3
629
+ Melee Weapon - Small 3
630
+ Pick Pockets 6
631
+ Scrounge 3
632
+ Trap Making 6
633
+ Unlock 3
634
+
635
+ == Thug ==
636
+ Barricade 3
637
+ Bolt Action 6
638
+ Brawling 3
639
+ Carry 3
640
+ Force Barricade 3
641
+ Frightening Force 6
642
+ Melee Weapon Expert 3 Melee Weapon - Standard & Melee Weapon - Large
643
+ Melee Weapon - Large 3
644
+ Melee Weapon - Small 3
645
+ Melee Weapon - Standard 3
646
+ Patch Job 3
647
+ Sever 6
648
+ Shield 3
649
+ Take Down 3 Brawling
650
+
651
+ == Tinker ==
652
+ Analyze Compound 3
653
+ Building Tomorrow 6 Literacy
654
+ Check Quality 3
655
+ Chop 3
656
+ Educated 3 Literacy
657
+ Improved Armor/Shield 6 Educated
658
+ Improved Pistol/Bow 6 Educated
659
+ Improved Weapon 6 Educated
660
+ Income 3
661
+ Literacy 3
662
+ Master Craftsman 6 Improved Armor/Shield & Improved Pistol/Bow & Improved Weapon
663
+ Patch Job 3
664
+ Repair 3
665
+ SCIENCE! 6 Educated
666
+
667
+ == Skill List ==
668
+ Alert
669
+ Analyze Compound
670
+ Analyze Creature
671
+ Animal Handler
672
+ Attach
673
+ Avoid
674
+ Backstab
675
+ Balance
676
+ Bartender's Tongue
677
+ Barricade
678
+ Beg For Life
679
+ Big Dig
680
+ Black Market Connections
681
+ Bless Weapon
682
+ Blind Fighting
683
+ Blinding
684
+ Bolt Action
685
+ Bomb Awareness
686
+ Bounce
687
+ Bow
688
+ Brawling
689
+ Break Armor
690
+ Break Shield
691
+ Break Weapon
692
+ Brew Master
693
+ Brewing
694
+ Building Tomorrow
695
+ Call The Almighty
696
+ Carry
697
+ Challenge
698
+ Charge
699
+ Charisma
700
+ Chase
701
+ Cheat
702
+ Check Quality
703
+ Check Status
704
+ Check Value
705
+ Check Your Sleeves
706
+ Choking Blow
707
+ Chop
708
+ Concentrated Fire
709
+ Cover of Night
710
+ Crop Tending
711
+ Cure Toxins
712
+ Deep Pockets
713
+ Destroy Armor
714
+ Destroy Shield
715
+ Destroy Weapon
716
+ Disarming Blow
717
+ Disarming Shot
718
+ Disguise
719
+ Disguise Contents
720
+ Double-Tap
721
+ Educated
722
+ Entertain
723
+ Escape
724
+ Escape Bonds
725
+ Fade In A Crowd
726
+ Faith Healing
727
+ Fearful Glare
728
+ Feign Death
729
+ First Aide
730
+ Fishing
731
+ Fix Limb
732
+ Florentine
733
+ Force Barricade
734
+ Forging the Future
735
+ Frightening Force
736
+ Guild Membership
737
+ Gun Aficionado
738
+ Head Shrink
739
+ Healthy Feast
740
+ Holy Rites
741
+ Hunter's Mark
742
+ Improved Armor/Shield
743
+ Improved Pistol/Bow
744
+ Improved Weapon
745
+ Income
746
+ Instruct
747
+ Interfere
748
+ Interrogate
749
+ Iron Fists
750
+ Knock Down
751
+ Knockout
752
+ Lie
753
+ Literacy
754
+ Lore
755
+ Lore - Local Area
756
+ Lore - Animals - Aquatic
757
+ Lore - Animals - Aviary
758
+ Lore - Animals - Mutated
759
+ Lore - Animals - Subterranean
760
+ Lore - Animals - Terra Firma
761
+ Lore - Faith - Church of Darwin
762
+ Lore - Faith - Cult of Fallow Hopes
763
+ Lore - Faith - Final Knight
764
+ Lore - Faith - Light of Hedon
765
+ Lore - Faith - Minor Cults and Sects
766
+ Lore - Faith - Nuclear Family
767
+ Lore - Faith - Sainthood of Ashes
768
+ Lore - Faith - Telling Visions
769
+ Lore - Faith - Tribes of the Seasons
770
+ Lore - Grave Mind
771
+ Lore - History - Cinema and Entertainment Television
772
+ Lore - History - Fictional Literature
773
+ Lore - History - Music
774
+ Lore - Medical - Diseases and Plagues
775
+ Lore - Medical - Grave Mind Infection
776
+ Lore - Medical - Grave Robber Processes
777
+ Lore - Metallurgy
778
+ Lore - Mining
779
+ Lore - Mon Histories
780
+ Lore - Nature - Herbs
781
+ Lore - Nature - Minerals and Refined Materials
782
+ Lore - Pre-Fall History Ancient
783
+ Lore - Pre-Fall History Cultural
784
+ Lore - Pre-Fall History Modern
785
+ Lore - Pre-Fall History Religion
786
+ Lore - Meditation
787
+ Lore - Raider
788
+ Lore - Slaver Communities
789
+ Lore - Strain - Nation of Accensor
790
+ Lore - Strain - Baywalker
791
+ Lore - Strain - Diesel Jock
792
+ Lore - Strain - Full Dead
793
+ Lore - Strain - Genjian
794
+ Lore - Strain - Iron Slave
795
+ Lore - Strain - Lascarian
796
+ Lore - Strain - Merican
797
+ Lore - Strain - Natural One
798
+ Lore - Strain - Pure Blood
799
+ Lore - Strain - Reclaimers
800
+ Lore - Strain - Red Star
801
+ Lore - Strain - Remnant
802
+ Lore - Strain - Retrograde
803
+ Lore - Strain - Rover
804
+ Lore - Strain - Salt Wise
805
+ Lore - Strain - Solestros
806
+ Lore - Strain - Unborn of Teixiptla
807
+ Lore - Strain - Vegasians
808
+ Lore - Strain - Yorker
809
+ Lore - Tech - Combustion Power
810
+ Lore - Tech - Natural Power
811
+ Lore - Tech - Nuclear Power
812
+ Lore - Zombie
813
+ Lore - Techno Savant - Complex Electronics
814
+ Lore - Techno Savant - Doomsday Device
815
+ Lore - Techno Savant - Tesla Electronics
816
+ Lore - Techno Savant - Esoteric Cultural Anomalies
817
+ Lore - Medicine - Biological Warfare
818
+ Lore - Tech - Structural Anomalies
819
+ Lore - Tech - Gizmos
820
+ Mangle Limb
821
+ Master Craftsman
822
+ Medical Assistance
823
+ Medical Genius
824
+ Melee Weapon Expert
825
+ Melee Weapon - Large
826
+ Melee Weapon - Small
827
+ Melee Weapon - Standard
828
+ Melee Weapon - Two Handed
829
+ Mind Resistance
830
+ Murder Most Foul
831
+ Nail
832
+ Nerve Punch
833
+ Parry
834
+ Patch Job
835
+ Pick Pockets
836
+ Pistol Whip
837
+ Prepare Meal
838
+ Pray for Justice
839
+ Psionic Skill - Basic
840
+ Psionic Skill - Intermediate
841
+ Psionic Skill - Advanced
842
+ Refuse
843
+ Repair
844
+ Rescue
845
+ Sailing
846
+ Scatter Shot
847
+ SCIENCE!
848
+ Scrounge
849
+ Sever
850
+ Shield
851
+ Smelt
852
+ Sniped Shot
853
+ Society Membership
854
+ Take Down
855
+ Teach
856
+ Throwing
857
+ Throwing - Javelins
858
+ Tie Binds
859
+ Torture
860
+ Trade Ties
861
+ Transcribe
862
+ Trap Making
863
+ Unlock
864
+ Vanish
865
+ Weld
866
+ Wide Strike
metadata ADDED
@@ -0,0 +1,48 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: drpedia_lite
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Gloria Budiman
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-11-09 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Extracts skills, strains, profession, and requirement trees into JSON
14
+ email: wahyu.g@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/Builder.rb
20
+ - lib/RawReader.rb
21
+ - lib/Validator.rb
22
+ - lib/drpedia_lite.rb
23
+ - lib/input/input.txt
24
+ homepage:
25
+ licenses:
26
+ - MIT
27
+ metadata: {}
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubyforge_project:
44
+ rubygems_version: 2.5.1
45
+ signing_key:
46
+ specification_version: 4
47
+ summary: Extracts data from Dystopia Rising handbook
48
+ test_files: []