coop_al 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.rubocop.yml +9 -0
  4. data/Gemfile +3 -0
  5. data/README.md +89 -0
  6. data/Rakefile +10 -0
  7. data/coop.gemspec +29 -0
  8. data/examples/filler.rb +9 -0
  9. data/examples/test.rb +15 -0
  10. data/exe/coop +131 -0
  11. data/lib/coop_al/adventure.rb +52 -0
  12. data/lib/coop_al/adventure_generator.rb +35 -0
  13. data/lib/coop_al/bestiary.rb +51 -0
  14. data/lib/coop_al/bestiary_generator.rb +3 -0
  15. data/lib/coop_al/bestiary_populator.rb +14 -0
  16. data/lib/coop_al/chapter.rb +51 -0
  17. data/lib/coop_al/chapter_generator.rb +32 -0
  18. data/lib/coop_al/encounter.rb +148 -0
  19. data/lib/coop_al/encounter_generator.rb +67 -0
  20. data/lib/coop_al/exception.rb +7 -0
  21. data/lib/coop_al/item.rb +30 -0
  22. data/lib/coop_al/library.rb +54 -0
  23. data/lib/coop_al/library_generator.rb +4 -0
  24. data/lib/coop_al/loot.rb +49 -0
  25. data/lib/coop_al/loot_generator.rb +42 -0
  26. data/lib/coop_al/monster.rb +19 -0
  27. data/lib/coop_al/monster_definition.rb +18 -0
  28. data/lib/coop_al/path.rb +65 -0
  29. data/lib/coop_al/path_follower.rb +34 -0
  30. data/lib/coop_al/random_encounter.rb +30 -0
  31. data/lib/coop_al/random_encounter_generator.rb +37 -0
  32. data/lib/coop_al/session.rb +55 -0
  33. data/lib/coop_al/session_date_generator.rb +43 -0
  34. data/lib/coop_al/session_encounter.rb +76 -0
  35. data/lib/coop_al/session_log.rb +51 -0
  36. data/lib/coop_al/state.rb +85 -0
  37. data/lib/coop_al/state_reporter.rb +72 -0
  38. data/lib/coop_al/trace.rb +29 -0
  39. data/lib/coop_al/treasure.rb +21 -0
  40. data/lib/coop_al/treasure_tables.rb +28 -0
  41. data/lib/coop_al/value.rb +167 -0
  42. data/lib/coop_al/version.rb +3 -0
  43. data/lib/coop_al/xp.rb +86 -0
  44. data/lib/coop_al.rb +34 -0
  45. data/res/srd.rb +400 -0
  46. metadata +188 -0
data/res/srd.rb ADDED
@@ -0,0 +1,400 @@
1
+ # Monsters
2
+ bestiary do
3
+ add :aboleth, :cr10
4
+
5
+ # Angels
6
+ add :deva, :cr10
7
+ add :planetar, :cr16
8
+ add :solar, :cr21
9
+
10
+ # Animated Objects
11
+ add :animated_armor, :cr1
12
+ add :flying_sword, :cr1_4
13
+ add :rug_of_smothering, :cr2
14
+
15
+ add :ankheg, :cr2
16
+ add :azer, :cr2
17
+ add :basilisk, :cr3
18
+ add :behir, :cr11
19
+ add :bugbear, :cr1
20
+ add :bulette, :cr5
21
+ add :centaur, :cr2
22
+ add :chimera, :cr6
23
+ add :chuul, :cr4
24
+ add :cloaker, :cr8
25
+ add :cockatrice, :cr1_2
26
+ add :couatl, :cr4
27
+ add :darkmantle, :cr1_2
28
+
29
+ # Demons
30
+ add :balor, :cr19
31
+ add :dretch, :cr1_4
32
+ add :glabrezu, :cr9
33
+ add :hezrou, :cr8
34
+ add :marilith, :cr16
35
+ add :nalfeshnee, :cr13
36
+ add :quasit, :cr1
37
+ add :vrock, :cr6
38
+
39
+ # Devils
40
+ add :barbed_devil, :cr5
41
+ add :bearded_devil, :cr3
42
+ add :bone_devil, :cr9
43
+ add :chain_devil, :cr8
44
+ add :erinyes, :cr12
45
+ add :horned_devil, :cr11
46
+ add :ice_devil, :cr14
47
+ add :imp, :cr1
48
+ add :lemure, :cr0
49
+ add :pit_fiend, :cr20
50
+
51
+ # Dinosaurs
52
+ add :plesiosaurus, :cr2
53
+ add :triceratops, :cr5
54
+ add :tyrannosaurus_rex, :cr8
55
+
56
+ add :doppelganger, :cr3
57
+
58
+ # Dragons, Chromatic
59
+ add :ancient_black_dragon, :cr21
60
+ add :adult_black_dragon, :cr14
61
+ add :young_black_dragon, :cr7
62
+ add :black_dragon_wyrmling, :cr2
63
+ add :ancient_blue_dragon, :cr23
64
+ add :adult_blue_dragon, :cr16
65
+ add :young_blue_dragon, :cr9
66
+ add :blue_dragon_wyrmling, :cr3
67
+ add :ancient_green_dragon, :cr22
68
+ add :adult_green_dragon, :cr15
69
+ add :young_green_dragon, :cr8
70
+ add :green_dragon_wyrmling, :cr2
71
+ add :ancient_red_dragon, :cr24
72
+ add :adult_red_dragon, :cr17
73
+ add :young_red_dragon, :cr10
74
+ add :red_dragon_wyrmling, :cr4
75
+ add :ancient_white_dragon, :cr20
76
+ add :adult_white_dragon, :cr13
77
+ add :young_white_dragon, :cr6
78
+ add :white_dragon_wyrmling, :cr2
79
+
80
+ # Dragons, Metallic
81
+ add :ancient_brass_dragon, :cr20
82
+ add :adult_brass_dragon, :cr13
83
+ add :young_brass_dragon, :cr6
84
+ add :brass_dragon_wyrmling, :cr1
85
+ add :ancient_bronze_dragon, :cr22
86
+ add :adult_bronze_dragon, :cr15
87
+ add :young_bronze_dragon, :cr8
88
+ add :bronze_dragon_wyrmling, :cr2
89
+ add :ancient_copper_dragon, :cr21
90
+ add :adult_copper_dragon, :cr14
91
+ add :young_copper_dragon, :cr7
92
+ add :copper_dragon_wyrmling, :cr1
93
+ add :ancient_gold_dragon, :cr24
94
+ add :adult_gold_dragon, :cr17
95
+ add :young_gold_dragon, :cr10
96
+ add :gold_dragon_wyrmling, :cr3
97
+ add :ancient_silver_dragon, :cr23
98
+ add :adult_silver_dragon, :cr16
99
+ add :young_silver_dragon, :cr9
100
+ add :silver_dragon_wyrmling, :cr2
101
+
102
+ add :dragon_turtle, :cr17
103
+ add :drider, :cr6
104
+ add :dryad, :cr1
105
+ add :duergar, :cr1
106
+
107
+ # Elementals
108
+ add :air_elemental, :cr5
109
+ add :earth_elemental, :cr5
110
+ add :fire_elemental, :cr5
111
+ add :water_elemental, :cr5
112
+
113
+ # "Elf, Drow"
114
+ add :drow, :cr1_4
115
+
116
+ add :ettercap, :cr2
117
+ add :ettin, :cr4
118
+
119
+ # Fungi
120
+ add :shrieker, :cr0
121
+ add :violet_fungus, :cr1_4
122
+
123
+ add :gargoyle, :cr2
124
+
125
+ # Genies
126
+ add :djinni, :cr11
127
+ add :efreeti, :cr11
128
+
129
+ add :ghost, :cr4
130
+
131
+ # Ghouls
132
+ add :ghast, :cr2
133
+ add :ghoul, :cr1
134
+
135
+ # Giants
136
+ add :cloud_giant, :cr9
137
+ add :fire_giant, :cr9
138
+ add :frost_giant, :cr8
139
+ add :hill_giant, :cr5
140
+ add :stone_giant, :cr7
141
+ add :storm_giant, :cr13
142
+
143
+ add :gibbering_mouther, :cr2
144
+ add :gnoll, :cr1_2
145
+ add :deep_gnome, :cr1_2
146
+ add :svirfneblin, :cr1_2
147
+ add :goblin, :cr1_4
148
+
149
+ # Golems
150
+ add :clay_golem, :cr9
151
+ add :flesh_golem, :cr5
152
+ add :iron_golem, :cr16
153
+ add :stone_golem, :cr10
154
+
155
+ add :gorgon, :cr5
156
+ add :grick, :cr2
157
+ add :griffon, :cr2
158
+ add :grimlock, :cr1_4
159
+
160
+ # Hags
161
+ add :green_hag, :cr3
162
+ add :night_hag, :cr5
163
+ add :sea_hag, :cr2
164
+
165
+ # Half-Dragon
166
+ add :half_red_dragon_veteran, :cr5
167
+
168
+ add :harpy, :cr1
169
+ add :hell_hound, :cr3
170
+ add :hippogriff, :cr1
171
+ add :hobgoblin, :cr1_2
172
+ add :homunculus, :cr0
173
+ add :hydra, :cr8
174
+ add :invisible_stalker, :cr6
175
+ add :kobold, :cr1_8
176
+ add :kraken, :cr23
177
+ add :lamia, :cr4
178
+ add :lich, :cr21
179
+ add :lizardfolk, :cr1_2
180
+
181
+ # Lycanthropes
182
+ add :werebear, :cr5
183
+ add :wereboar, :cr4
184
+ add :wererat, :cr2
185
+ add :weretiger, :cr4
186
+ add :werewolf, :cr3
187
+
188
+ add :magmin, :cr1_2
189
+ add :manticore, :cr3
190
+ add :medusa, :cr6
191
+
192
+ # Mephits
193
+ add :dust_mephit, :cr1_2
194
+ add :ice_mephit, :cr1_2
195
+ add :magma_mephit, :cr1_2
196
+ add :steam_mephit, :cr1_4
197
+
198
+ add :merfolk, :cr1_8
199
+ add :merrow, :cr2
200
+ add :mimic, :cr2
201
+ add :minotaur, :cr3
202
+
203
+ # Mummies
204
+ add :mummy, :cr3
205
+ add :mummy_lord, :cr15
206
+
207
+ # Nagas
208
+ add :guardian_naga, :cr10
209
+ add :spirit_naga, :cr8
210
+
211
+ add :nightmare, :cr3
212
+ add :ogre, :cr2
213
+ add :oni, :cr7
214
+
215
+ # Oozes
216
+ add :black_pudding, :cr4
217
+ add :gelatinous_cube, :cr2
218
+ add :gray_ooze, :cr1_2
219
+ add :ochre_jelly, :cr2
220
+
221
+ add :orc, :cr1_2
222
+ add :otyugh, :cr5
223
+ add :owlbear, :cr3
224
+ add :pegasus, :cr2
225
+ add :pseudodragon, :cr1_4
226
+ add :purple_worm, :cr15
227
+ add :rakshasa, :cr13
228
+ add :remorhaz, :cr11
229
+ add :roc, :cr11
230
+ add :roper, :cr5
231
+ add :rust_monster, :cr1_2
232
+ add :sahuagin, :cr1_2
233
+ add :salamander, :cr5
234
+ add :satyr, :cr1_2
235
+ add :shadow, :cr1_2
236
+ add :shambling_mound, :cr5
237
+ add :shield_guardian, :cr7
238
+
239
+ # Skeletons
240
+ add :skeleton, :cr1_4
241
+ add :minotaur_skeleton, :cr2
242
+ add :warhorse_skeleton, :cr1_2
243
+
244
+ add :specter, :cr1
245
+
246
+ # Sphinxes
247
+ add :androsphinx, :cr17
248
+ add :gynosphinx, :cr11
249
+
250
+ add :sprite, :cr1_4
251
+ add :stirge, :cr1_8
252
+
253
+ # Succubus/Incubus
254
+ add :succubus, :cr4
255
+ add :incubus, :cr4
256
+
257
+ add :tarrasque, :cr30
258
+ add :treant, :cr9
259
+ add :troll, :cr5
260
+ add :unicorn, :cr5
261
+
262
+ # Vampires
263
+ add :vampire, :cr13
264
+ add :vampire_spawn, :cr5
265
+
266
+ add :wight, :cr3
267
+ add :will_o_wisp, :cr2
268
+ add :wraith, :cr5
269
+ add :wyvern, :cr6
270
+ add :xorn, :cr5
271
+
272
+ # Zombies
273
+ add :zombie, :cr1_4
274
+ add :ogre_zombie, :cr2
275
+ end
276
+
277
+ # Miscellaneous Creatures
278
+ bestiary do
279
+ add :ape, :cr1_2
280
+ add :awakened_shrub, :cr0
281
+ add :awakened_tree, :cr2
282
+ add :axe_beak, :cr1_4
283
+ add :baboon, :cr0
284
+ add :badger, :cr0
285
+ add :bat, :cr0
286
+ add :black_bear, :cr1_2
287
+ add :blink_dog, :cr1_4
288
+ add :blood_hawk, :cr1_8
289
+ add :boar, :cr1_4
290
+ add :brown_bear, :cr1
291
+ add :camel, :cr1_8
292
+ add :cat, :cr0
293
+ add :constrictor_snake, :cr1_4
294
+ add :crab, :cr0
295
+ add :crocodile, :cr1_2
296
+ add :death_dog, :cr1
297
+ add :deer, :cr0
298
+ add :dire_wolf, :cr1
299
+ add :draft_horse, :cr1_4
300
+ add :eagle, :cr0
301
+ add :elephant, :cr4
302
+ add :elk, :cr1_4
303
+ add :flying_snake, :cr1_8
304
+ add :frog, :cr0
305
+ add :giant_ape, :cr7
306
+ add :giant_badger, :cr1_4
307
+ add :giant_bat, :cr1_4
308
+ add :giant_boar, :cr2
309
+ add :giant_centipede, :cr1_4
310
+ add :giant_constrictor_snake, :cr2
311
+ add :giant_crab, :cr1_8
312
+ add :giant_crocodile, :cr5
313
+ add :giant_eagle, :cr1
314
+ add :giant_elk, :cr2
315
+ add :giant_fire_beetle, :cr0
316
+ add :giant_frog, :cr1_4
317
+ add :giant_goat, :cr1_2
318
+ add :giant_hyena, :cr1
319
+ add :giant_lizard, :cr1_4
320
+ add :giant_octopus, :cr1
321
+ add :giant_owl, :cr1_4
322
+ add :giant_poisonous_snake, :cr1_4
323
+ add :giant_rat, :cr1_8
324
+ add :diseased_giant_rat, :cr1_8
325
+ add :giant_scorpion, :cr3
326
+ add :giant_sea_horse, :cr1_2
327
+ add :giant_shark, :cr5
328
+ add :giant_spider, :cr1
329
+ add :giant_toad, :cr1
330
+ add :giant_vulture, :cr1
331
+ add :giant_wasp, :cr1_2
332
+ add :giant_weasel, :cr1_8
333
+ add :giant_wolf_spider, :cr1_4
334
+ add :goat, :cr0
335
+ add :hawk, :cr0
336
+ add :hunter_shark, :cr2
337
+ add :hyena, :cr0
338
+ add :jackal, :cr0
339
+ add :killer_whale, :cr3
340
+ add :lion, :cr1
341
+ add :lizard, :cr0
342
+ add :mammoth, :cr6
343
+ add :mastiff, :cr1_8
344
+ add :mule, :cr1_8
345
+ add :octopus, :cr0
346
+ add :owl, :cr0
347
+ add :panther, :cr1_4
348
+ add :phase_spider, :cr3
349
+ add :poisonous_snake, :cr1_8
350
+ add :polar_bear, :cr2
351
+ add :pony, :cr1_8
352
+ add :quipper, :cr0
353
+ add :rat, :cr0
354
+ add :raven, :cr0
355
+ add :reef_shark, :cr1_2
356
+ add :rhinoceros, :cr2
357
+ add :riding_horse, :cr1_4
358
+ add :saber_toothed_tiger, :cr2
359
+ add :scorpion, :cr0
360
+ add :sea_horse, :cr0
361
+ add :spider, :cr0
362
+ add :swarm_of_bats, :cr1_4
363
+ add :swarm_of_insects, :cr1_2
364
+ add :swarm_of_poisonous_snakes, :cr2
365
+ add :swarm_of_quippers, :cr1
366
+ add :swarm_of_rats, :cr1_4
367
+ add :swarm_of_ravens, :cr1_4
368
+ add :tiger, :cr1
369
+ add :vulture, :cr0
370
+ add :warhorse, :cr1_2
371
+ add :weasel, :cr0
372
+ add :winter_wolf, :cr3
373
+ add :wolf, :cr1_4
374
+ add :worg, :cr1_2
375
+ end
376
+
377
+ # NPCs
378
+ bestiary do
379
+ add :acolyte, :cr1_4
380
+ add :archmage, :cr12
381
+ add :assassin, :cr8
382
+ add :bandit, :cr1_8
383
+ add :bandit_captain, :cr2
384
+ add :berserker, :cr2
385
+ add :commoner, :cr0
386
+ add :cultist, :cr1_8
387
+ add :cult_fanatic, :cr2
388
+ add :druid, :cr2
389
+ add :gladiator, :cr5
390
+ add :guard, :cr1_8
391
+ add :knight, :cr3
392
+ add :mage, :cr6
393
+ add :noble, :cr1_8
394
+ add :priest, :cr2
395
+ add :scout, :cr1_2
396
+ add :spy, :cr1
397
+ add :thug, :cr1_2
398
+ add :tribal_warrior, :cr1_8
399
+ add :veteran, :cr3
400
+ end
metadata ADDED
@@ -0,0 +1,188 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: coop_al
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jamie Hale
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-03-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: tablescript
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.0.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.14'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.14'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '12.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '12.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.5'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.5'
69
+ - !ruby/object:Gem::Dependency
70
+ name: cucumber
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.4'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.13'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.13'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.47'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.47'
111
+ description: Tool for automated character growth through predefined adventures
112
+ email:
113
+ - jamie@smallarmyofnerds.com
114
+ executables:
115
+ - coop
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".gitignore"
120
+ - ".rubocop.yml"
121
+ - Gemfile
122
+ - README.md
123
+ - Rakefile
124
+ - coop.gemspec
125
+ - examples/filler.rb
126
+ - examples/test.rb
127
+ - exe/coop
128
+ - lib/coop_al.rb
129
+ - lib/coop_al/adventure.rb
130
+ - lib/coop_al/adventure_generator.rb
131
+ - lib/coop_al/bestiary.rb
132
+ - lib/coop_al/bestiary_generator.rb
133
+ - lib/coop_al/bestiary_populator.rb
134
+ - lib/coop_al/chapter.rb
135
+ - lib/coop_al/chapter_generator.rb
136
+ - lib/coop_al/encounter.rb
137
+ - lib/coop_al/encounter_generator.rb
138
+ - lib/coop_al/exception.rb
139
+ - lib/coop_al/item.rb
140
+ - lib/coop_al/library.rb
141
+ - lib/coop_al/library_generator.rb
142
+ - lib/coop_al/loot.rb
143
+ - lib/coop_al/loot_generator.rb
144
+ - lib/coop_al/monster.rb
145
+ - lib/coop_al/monster_definition.rb
146
+ - lib/coop_al/path.rb
147
+ - lib/coop_al/path_follower.rb
148
+ - lib/coop_al/random_encounter.rb
149
+ - lib/coop_al/random_encounter_generator.rb
150
+ - lib/coop_al/session.rb
151
+ - lib/coop_al/session_date_generator.rb
152
+ - lib/coop_al/session_encounter.rb
153
+ - lib/coop_al/session_log.rb
154
+ - lib/coop_al/state.rb
155
+ - lib/coop_al/state_reporter.rb
156
+ - lib/coop_al/trace.rb
157
+ - lib/coop_al/treasure.rb
158
+ - lib/coop_al/treasure_tables.rb
159
+ - lib/coop_al/value.rb
160
+ - lib/coop_al/version.rb
161
+ - lib/coop_al/xp.rb
162
+ - res/srd.rb
163
+ homepage: https://github.com/jamiehale/coop
164
+ licenses:
165
+ - GPL-3.0
166
+ metadata:
167
+ allowed_push_host: https://rubygems.org
168
+ post_install_message:
169
+ rdoc_options: []
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubyforge_project:
184
+ rubygems_version: 2.5.1
185
+ signing_key:
186
+ specification_version: 4
187
+ summary: Adventurers League Character Log Generator
188
+ test_files: []