drpedia_lite 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []