@opencharacter/swn-revised 0.0.0-stage → 0.1.0

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 (302) hide show
  1. package/LICENSE +147 -0
  2. package/README.md +128 -2
  3. package/content/armor/armored-undersuit.yaml +8 -0
  4. package/content/armor/armored-vacc-suit.yaml +8 -0
  5. package/content/armor/assault-suit.yaml +8 -0
  6. package/content/armor/combat-field-uniform.yaml +8 -0
  7. package/content/armor/deflector-array.yaml +8 -0
  8. package/content/armor/field-emitter-panoply.yaml +9 -0
  9. package/content/armor/force-pavis.yaml +9 -0
  10. package/content/armor/heavy-primitive-armor.yaml +8 -0
  11. package/content/armor/icarus-harness.yaml +8 -0
  12. package/content/armor/light-primitive-armor.yaml +8 -0
  13. package/content/armor/medium-primitive-armor.yaml +8 -0
  14. package/content/armor/secure-clothing.yaml +8 -0
  15. package/content/armor/security-armor.yaml +8 -0
  16. package/content/armor/shield.yaml +9 -0
  17. package/content/armor/storm-armor.yaml +9 -0
  18. package/content/armor/vestimentum.yaml +8 -0
  19. package/content/armor/warpaint.yaml +8 -0
  20. package/content/armor/woven-body-armor.yaml +8 -0
  21. package/content/backgrounds/barbarian.yaml +20 -0
  22. package/content/backgrounds/clergy.yaml +20 -0
  23. package/content/backgrounds/courtesan.yaml +20 -0
  24. package/content/backgrounds/criminal.yaml +20 -0
  25. package/content/backgrounds/dilettante.yaml +20 -0
  26. package/content/backgrounds/entertainer.yaml +20 -0
  27. package/content/backgrounds/merchant.yaml +20 -0
  28. package/content/backgrounds/noble.yaml +20 -0
  29. package/content/backgrounds/official.yaml +20 -0
  30. package/content/backgrounds/peasant.yaml +20 -0
  31. package/content/backgrounds/physician.yaml +20 -0
  32. package/content/backgrounds/pilot.yaml +20 -0
  33. package/content/backgrounds/politician.yaml +20 -0
  34. package/content/backgrounds/scholar.yaml +20 -0
  35. package/content/backgrounds/soldier.yaml +20 -0
  36. package/content/backgrounds/spacer.yaml +20 -0
  37. package/content/backgrounds/technician.yaml +20 -0
  38. package/content/backgrounds/thug.yaml +20 -0
  39. package/content/backgrounds/vagabond.yaml +20 -0
  40. package/content/backgrounds/worker.yaml +20 -0
  41. package/content/classes/adventurer.yaml +7 -0
  42. package/content/classes/expert.yaml +14 -0
  43. package/content/classes/psychic.yaml +11 -0
  44. package/content/classes/warrior.yaml +27 -0
  45. package/content/cyberware/adrenal-suppression-pump.yaml +17 -0
  46. package/content/cyberware/bioadaptation-augments.yaml +6 -0
  47. package/content/cyberware/body-arsenal-array.yaml +6 -0
  48. package/content/cyberware/body-sculpting.yaml +6 -0
  49. package/content/cyberware/dermal-armor.yaml +8 -0
  50. package/content/cyberware/drone-control-link.yaml +6 -0
  51. package/content/cyberware/eelskin-capacitor-mesh.yaml +7 -0
  52. package/content/cyberware/gecko-anchors.yaml +6 -0
  53. package/content/cyberware/ghost-talker-transceiver.yaml +6 -0
  54. package/content/cyberware/holdout-cavity.yaml +6 -0
  55. package/content/cyberware/holoskin-emitters.yaml +6 -0
  56. package/content/cyberware/identity-submersion-trigger.yaml +6 -0
  57. package/content/cyberware/immunofiltration-system.yaml +6 -0
  58. package/content/cyberware/induced-coma-trigger.yaml +6 -0
  59. package/content/cyberware/neurointruder-alert.yaml +11 -0
  60. package/content/cyberware/panspectral-optics.yaml +6 -0
  61. package/content/cyberware/pressure-sheathing.yaml +6 -0
  62. package/content/cyberware/prosthetic-limb.yaml +6 -0
  63. package/content/cyberware/revenant-wiring.yaml +6 -0
  64. package/content/cyberware/slowtime-window.yaml +7 -0
  65. package/content/cyberware/stabilization-overrides.yaml +8 -0
  66. package/content/cyberware/tagger-nanites.yaml +7 -0
  67. package/content/cyberware/toxin-injector.yaml +7 -0
  68. package/content/cyberware/twitchlock-actuators.yaml +7 -0
  69. package/content/foci/alert.yaml +9 -0
  70. package/content/foci/armsman.yaml +9 -0
  71. package/content/foci/assassin.yaml +5 -0
  72. package/content/foci/authority.yaml +5 -0
  73. package/content/foci/close-combatant.yaml +7 -0
  74. package/content/foci/connected.yaml +5 -0
  75. package/content/foci/die-hard.yaml +7 -0
  76. package/content/foci/diplomat.yaml +10 -0
  77. package/content/foci/gunslinger.yaml +8 -0
  78. package/content/foci/hacker.yaml +10 -0
  79. package/content/foci/healer.yaml +7 -0
  80. package/content/foci/henchkeeper.yaml +7 -0
  81. package/content/foci/ironhide.yaml +7 -0
  82. package/content/foci/psychic-training.yaml +18 -0
  83. package/content/foci/savage-fray.yaml +5 -0
  84. package/content/foci/shocking-assault.yaml +8 -0
  85. package/content/foci/sniper.yaml +10 -0
  86. package/content/foci/specialist.yaml +36 -0
  87. package/content/foci/star-captain.yaml +5 -0
  88. package/content/foci/starfarer.yaml +5 -0
  89. package/content/foci/tinker.yaml +5 -0
  90. package/content/foci/unarmed-combatant.yaml +11 -0
  91. package/content/foci/unique-gift.yaml +6 -0
  92. package/content/foci/wanderer.yaml +5 -0
  93. package/content/foci/wild-psychic-talent.yaml +20 -0
  94. package/content/gear/ammo-20-rounds.yaml +9 -0
  95. package/content/gear/ammo-missile.yaml +8 -0
  96. package/content/gear/atmofilter.yaml +7 -0
  97. package/content/gear/backpack-tl0.yaml +7 -0
  98. package/content/gear/backpack-tl4.yaml +7 -0
  99. package/content/gear/bezoar.yaml +9 -0
  100. package/content/gear/binoculars-tl3.yaml +7 -0
  101. package/content/gear/binoculars-tl4.yaml +7 -0
  102. package/content/gear/bioscanner.yaml +7 -0
  103. package/content/gear/black-slab.yaml +7 -0
  104. package/content/gear/brainwave.yaml +8 -0
  105. package/content/gear/climbing-harness.yaml +7 -0
  106. package/content/gear/comm-server.yaml +7 -0
  107. package/content/gear/compad.yaml +7 -0
  108. package/content/gear/data-phase-tap.yaml +7 -0
  109. package/content/gear/data-protocol.yaml +7 -0
  110. package/content/gear/dataslab.yaml +7 -0
  111. package/content/gear/field-radio.yaml +7 -0
  112. package/content/gear/glowbug.yaml +7 -0
  113. package/content/gear/grapnel-launcher.yaml +7 -0
  114. package/content/gear/grav-chute-tl4.yaml +7 -0
  115. package/content/gear/grav-chute-tl5.yaml +7 -0
  116. package/content/gear/grav-harness.yaml +7 -0
  117. package/content/gear/hush.yaml +8 -0
  118. package/content/gear/instapanel.yaml +8 -0
  119. package/content/gear/lazarus-patch.yaml +8 -0
  120. package/content/gear/lift.yaml +11 -0
  121. package/content/gear/line-shunt.yaml +7 -0
  122. package/content/gear/low-light-goggles.yaml +7 -0
  123. package/content/gear/medkit.yaml +7 -0
  124. package/content/gear/metatool.yaml +7 -0
  125. package/content/gear/navcomp.yaml +7 -0
  126. package/content/gear/portabox.yaml +7 -0
  127. package/content/gear/postech-toolkit.yaml +7 -0
  128. package/content/gear/power-cell-a.yaml +9 -0
  129. package/content/gear/power-cell-b.yaml +8 -0
  130. package/content/gear/pressure-tent.yaml +7 -0
  131. package/content/gear/pretech-cosmetic.yaml +9 -0
  132. package/content/gear/pretech-toolkit.yaml +7 -0
  133. package/content/gear/psych.yaml +8 -0
  134. package/content/gear/rations-1-day.yaml +8 -0
  135. package/content/gear/remote-link-unit.yaml +7 -0
  136. package/content/gear/reverie.yaml +9 -0
  137. package/content/gear/rope-tl0.yaml +7 -0
  138. package/content/gear/rope-tl4.yaml +7 -0
  139. package/content/gear/scout-report.yaml +7 -0
  140. package/content/gear/solar-recharger.yaml +7 -0
  141. package/content/gear/spare-parts.yaml +8 -0
  142. package/content/gear/squeal.yaml +8 -0
  143. package/content/gear/stiletto-charge.yaml +6 -0
  144. package/content/gear/storage-unit.yaml +7 -0
  145. package/content/gear/survey-scanner.yaml +7 -0
  146. package/content/gear/survival-kit.yaml +7 -0
  147. package/content/gear/tailored-antiallergens.yaml +7 -0
  148. package/content/gear/telekinetic-generator.yaml +7 -0
  149. package/content/gear/telescoping-pole.yaml +7 -0
  150. package/content/gear/thermal-flare.yaml +7 -0
  151. package/content/gear/tightbeam-link-unit.yaml +7 -0
  152. package/content/gear/trade-goods.yaml +8 -0
  153. package/content/gear/trade-metals.yaml +8 -0
  154. package/content/gear/translator-torc.yaml +7 -0
  155. package/content/gear/tsunami.yaml +9 -0
  156. package/content/gear/vacc-fresher.yaml +7 -0
  157. package/content/gear/vacc-skin.yaml +7 -0
  158. package/content/gear/vacc-suit.yaml +7 -0
  159. package/content/partial-classes/expert.yaml +5 -0
  160. package/content/partial-classes/psychic.yaml +18 -0
  161. package/content/partial-classes/warrior.yaml +7 -0
  162. package/content/techniques/accelerated-succor.yaml +10 -0
  163. package/content/techniques/alternate-outcome.yaml +10 -0
  164. package/content/techniques/anguished-vision.yaml +10 -0
  165. package/content/techniques/burdened-apportation.yaml +10 -0
  166. package/content/techniques/cloak-powers.yaml +10 -0
  167. package/content/techniques/concert-of-minds.yaml +10 -0
  168. package/content/techniques/cursed-luck.yaml +59 -0
  169. package/content/techniques/deep-intrusion.yaml +10 -0
  170. package/content/techniques/destinys-shield.yaml +10 -0
  171. package/content/techniques/effortless-apportation.yaml +10 -0
  172. package/content/techniques/facile-mind.yaml +10 -0
  173. package/content/techniques/far-thought.yaml +10 -0
  174. package/content/techniques/flawless-mastery.yaml +10 -0
  175. package/content/techniques/force-puppetry.yaml +10 -0
  176. package/content/techniques/forced-outcome.yaml +10 -0
  177. package/content/techniques/holistic-optimization-patterning.yaml +10 -0
  178. package/content/techniques/impact-sump.yaml +10 -0
  179. package/content/techniques/impervious-pavis-of-will.yaml +10 -0
  180. package/content/techniques/intuitive-response.yaml +10 -0
  181. package/content/techniques/invincible-stand.yaml +10 -0
  182. package/content/techniques/kinetic-transversal.yaml +10 -0
  183. package/content/techniques/major-organ-restoration.yaml +10 -0
  184. package/content/techniques/mastered-succor.yaml +10 -0
  185. package/content/techniques/memory-editing.yaml +10 -0
  186. package/content/techniques/metadimensional-friction.yaml +10 -0
  187. package/content/techniques/metamorph.yaml +10 -0
  188. package/content/techniques/mindtracing.yaml +10 -0
  189. package/content/techniques/neural-trap.yaml +10 -0
  190. package/content/techniques/not-my-time.yaml +10 -0
  191. package/content/techniques/offensive-apportation.yaml +10 -0
  192. package/content/techniques/oracle.yaml +6 -0
  193. package/content/techniques/organic-purification-protocols.yaml +10 -0
  194. package/content/techniques/perceptive-dislocation.yaml +10 -0
  195. package/content/techniques/personal-apportation.yaml +6 -0
  196. package/content/techniques/pressure-field.yaml +10 -0
  197. package/content/techniques/proficient-apportation.yaml +10 -0
  198. package/content/techniques/prophecy.yaml +10 -0
  199. package/content/techniques/psychic-refinement.yaml +11 -0
  200. package/content/techniques/psychic-static.yaml +10 -0
  201. package/content/techniques/psychic-succor.yaml +39 -0
  202. package/content/techniques/psychic-tutelage.yaml +10 -0
  203. package/content/techniques/quintessential-reconstruction.yaml +10 -0
  204. package/content/techniques/reactive-telekinesis.yaml +10 -0
  205. package/content/techniques/reflex-response.yaml +10 -0
  206. package/content/techniques/remote-repair.yaml +10 -0
  207. package/content/techniques/rift-reduplication.yaml +10 -0
  208. package/content/techniques/sense-the-need.yaml +10 -0
  209. package/content/techniques/slip-field.yaml +10 -0
  210. package/content/techniques/spatial-awareness.yaml +10 -0
  211. package/content/techniques/spatial-synchrony-mandala.yaml +10 -0
  212. package/content/techniques/stutterjump.yaml +10 -0
  213. package/content/techniques/suppress-cognition.yaml +10 -0
  214. package/content/techniques/surge-momentum.yaml +10 -0
  215. package/content/techniques/suspended-manifestation.yaml +10 -0
  216. package/content/techniques/synthetic-adaptation.yaml +10 -0
  217. package/content/techniques/tangible-force-construct.yaml +10 -0
  218. package/content/techniques/telekinetic-armory.yaml +10 -0
  219. package/content/techniques/telekinetic-expertise.yaml +10 -0
  220. package/content/techniques/telekinetic-flight.yaml +10 -0
  221. package/content/techniques/telekinetic-manipulation.yaml +6 -0
  222. package/content/techniques/telekinetic-ram.yaml +10 -0
  223. package/content/techniques/telepathic-assault.yaml +10 -0
  224. package/content/techniques/telepathic-contact.yaml +6 -0
  225. package/content/techniques/teratic-overload.yaml +10 -0
  226. package/content/techniques/terminal-reflection.yaml +10 -0
  227. package/content/techniques/thermokinesis.yaml +10 -0
  228. package/content/techniques/tissue-integrity-field.yaml +10 -0
  229. package/content/techniques/transmit-thought.yaml +10 -0
  230. package/content/techniques/unity-of-thought.yaml +10 -0
  231. package/content/templates/trained-unarmed.yaml +9 -0
  232. package/content/weapons/advanced-bow.yaml +15 -0
  233. package/content/weapons/anti-vehicle-laser.yaml +18 -0
  234. package/content/weapons/combat-rifle.yaml +18 -0
  235. package/content/weapons/combat-shotgun.yaml +18 -0
  236. package/content/weapons/conversion-bow.yaml +15 -0
  237. package/content/weapons/crude-pistol.yaml +18 -0
  238. package/content/weapons/demo-charge.yaml +13 -0
  239. package/content/weapons/distortion-cannon.yaml +18 -0
  240. package/content/weapons/grenade.yaml +14 -0
  241. package/content/weapons/heavy-machine-gun.yaml +19 -0
  242. package/content/weapons/hydra-array.yaml +18 -0
  243. package/content/weapons/knife.yaml +7 -0
  244. package/content/weapons/large-advanced-weapon.yaml +13 -0
  245. package/content/weapons/large-primitive-weapon.yaml +12 -0
  246. package/content/weapons/laser-pistol.yaml +18 -0
  247. package/content/weapons/laser-rifle.yaml +19 -0
  248. package/content/weapons/mag-pistol.yaml +17 -0
  249. package/content/weapons/mag-rifle.yaml +17 -0
  250. package/content/weapons/medium-advanced-weapon.yaml +13 -0
  251. package/content/weapons/medium-primitive-weapon.yaml +12 -0
  252. package/content/weapons/monoblade-knife.yaml +7 -0
  253. package/content/weapons/monoblade-sword.yaml +4 -0
  254. package/content/weapons/musket.yaml +18 -0
  255. package/content/weapons/plasma-projector.yaml +18 -0
  256. package/content/weapons/primitive-bow.yaml +15 -0
  257. package/content/weapons/railgun.yaml +18 -0
  258. package/content/weapons/revolver.yaml +17 -0
  259. package/content/weapons/rifle.yaml +17 -0
  260. package/content/weapons/rocket-launcher.yaml +18 -0
  261. package/content/weapons/semi-auto-pistol.yaml +17 -0
  262. package/content/weapons/shear-rifle.yaml +19 -0
  263. package/content/weapons/shotgun.yaml +17 -0
  264. package/content/weapons/small-advanced-weapon.yaml +14 -0
  265. package/content/weapons/small-primitive-weapon.yaml +13 -0
  266. package/content/weapons/sniper-rifle.yaml +17 -0
  267. package/content/weapons/spear.yaml +8 -0
  268. package/content/weapons/spike-thrower.yaml +18 -0
  269. package/content/weapons/stun-baton.yaml +14 -0
  270. package/content/weapons/submachine-gun.yaml +18 -0
  271. package/content/weapons/suit-ripper.yaml +11 -0
  272. package/content/weapons/thermal-knife.yaml +7 -0
  273. package/content/weapons/thermal-pistol.yaml +18 -0
  274. package/content/weapons/thunder-gun.yaml +18 -0
  275. package/content/weapons/unarmed.yaml +8 -0
  276. package/content/weapons/void-carbine.yaml +17 -0
  277. package/content/weapons/vortex-cannon.yaml +16 -0
  278. package/content/weapons/wheatcutter-belt.yaml +16 -0
  279. package/dist/i18n/en.d.ts +3 -0
  280. package/dist/i18n/en.js +2 -0
  281. package/dist/i18n/en.json +1356 -0
  282. package/dist/index.d.ts +3 -0
  283. package/dist/index.js +2 -0
  284. package/dist/release.json +30238 -0
  285. package/i18n/en/content.yaml +394 -0
  286. package/i18n/en/foci.yaml +199 -0
  287. package/i18n/en/rules.yaml +759 -0
  288. package/i18n/en/text.yaml +249 -0
  289. package/i18n/en.yaml +1 -0
  290. package/pack.yaml +15 -0
  291. package/package.json +58 -3
  292. package/rules/advancement.yaml +461 -0
  293. package/rules/character.yaml +114 -0
  294. package/rules/checks.yaml +160 -0
  295. package/rules/combat.yaml +312 -0
  296. package/rules/core.yaml +111 -0
  297. package/rules/creation.yaml +633 -0
  298. package/rules/gear.yaml +176 -0
  299. package/rules/layout.yaml +195 -0
  300. package/rules/psionics.yaml +105 -0
  301. package/rules/start.yaml +403 -0
  302. package/rules/tags.yaml +60 -0
@@ -0,0 +1,20 @@
1
+ id: backgrounds.physician
2
+ type: background
3
+ fields:
4
+ freeSkill: heal
5
+ quick1: know
6
+ quick2: notice
7
+ growth1: any-stat
8
+ growth2: physical
9
+ growth3: mental
10
+ growth4: mental
11
+ growth5: connect
12
+ growth6: any-skill
13
+ learning1: administer
14
+ learning2: connect
15
+ learning3: fix
16
+ learning4: heal
17
+ learning5: know
18
+ learning6: notice
19
+ learning7: talk
20
+ learning8: trade
@@ -0,0 +1,20 @@
1
+ id: backgrounds.pilot
2
+ type: background
3
+ fields:
4
+ freeSkill: pilot
5
+ quick1: fix
6
+ quick2: shoot-or-trade
7
+ growth1: any-stat
8
+ growth2: physical
9
+ growth3: physical
10
+ growth4: mental
11
+ growth5: connect
12
+ growth6: any-skill
13
+ learning1: connect
14
+ learning2: exert
15
+ learning3: fix
16
+ learning4: notice
17
+ learning5: pilot
18
+ learning6: pilot
19
+ learning7: shoot
20
+ learning8: trade
@@ -0,0 +1,20 @@
1
+ id: backgrounds.politician
2
+ type: background
3
+ fields:
4
+ freeSkill: talk
5
+ quick1: lead
6
+ quick2: connect
7
+ growth1: any-stat
8
+ growth2: mental
9
+ growth3: mental
10
+ growth4: mental
11
+ growth5: connect
12
+ growth6: any-skill
13
+ learning1: administer
14
+ learning2: connect
15
+ learning3: connect
16
+ learning4: lead
17
+ learning5: notice
18
+ learning6: perform
19
+ learning7: talk
20
+ learning8: talk
@@ -0,0 +1,20 @@
1
+ id: backgrounds.scholar
2
+ type: background
3
+ fields:
4
+ freeSkill: know
5
+ quick1: connect
6
+ quick2: administer
7
+ growth1: any-stat
8
+ growth2: mental
9
+ growth3: mental
10
+ growth4: mental
11
+ growth5: connect
12
+ growth6: any-skill
13
+ learning1: administer
14
+ learning2: connect
15
+ learning3: fix
16
+ learning4: know
17
+ learning5: notice
18
+ learning6: perform
19
+ learning7: program
20
+ learning8: talk
@@ -0,0 +1,20 @@
1
+ id: backgrounds.soldier
2
+ type: background
3
+ fields:
4
+ freeSkill: any-combat
5
+ quick1: exert
6
+ quick2: survive
7
+ growth1: any-stat
8
+ growth2: physical
9
+ growth3: physical
10
+ growth4: physical
11
+ growth5: exert
12
+ growth6: any-skill
13
+ learning1: administer
14
+ learning2: any-combat
15
+ learning3: exert
16
+ learning4: fix
17
+ learning5: lead
18
+ learning6: notice
19
+ learning7: sneak
20
+ learning8: survive
@@ -0,0 +1,20 @@
1
+ id: backgrounds.spacer
2
+ type: background
3
+ fields:
4
+ freeSkill: fix
5
+ quick1: pilot
6
+ quick2: program
7
+ growth1: any-stat
8
+ growth2: physical
9
+ growth3: physical
10
+ growth4: mental
11
+ growth5: exert
12
+ growth6: any-skill
13
+ learning1: administer
14
+ learning2: connect
15
+ learning3: exert
16
+ learning4: fix
17
+ learning5: know
18
+ learning6: pilot
19
+ learning7: program
20
+ learning8: talk
@@ -0,0 +1,20 @@
1
+ id: backgrounds.technician
2
+ type: background
3
+ fields:
4
+ freeSkill: fix
5
+ quick1: exert
6
+ quick2: notice
7
+ growth1: any-stat
8
+ growth2: physical
9
+ growth3: mental
10
+ growth4: mental
11
+ growth5: connect
12
+ growth6: any-skill
13
+ learning1: administer
14
+ learning2: connect
15
+ learning3: exert
16
+ learning4: fix
17
+ learning5: fix
18
+ learning6: know
19
+ learning7: notice
20
+ learning8: pilot
@@ -0,0 +1,20 @@
1
+ id: backgrounds.thug
2
+ type: background
3
+ fields:
4
+ freeSkill: any-combat
5
+ quick1: talk
6
+ quick2: connect
7
+ growth1: any-stat
8
+ growth2: mental
9
+ growth3: physical
10
+ growth4: physical
11
+ growth5: connect
12
+ growth6: any-skill
13
+ learning1: any-combat
14
+ learning2: connect
15
+ learning3: exert
16
+ learning4: notice
17
+ learning5: sneak
18
+ learning6: stab-or-shoot
19
+ learning7: survive
20
+ learning8: talk
@@ -0,0 +1,20 @@
1
+ id: backgrounds.vagabond
2
+ type: background
3
+ fields:
4
+ freeSkill: survive
5
+ quick1: sneak
6
+ quick2: notice
7
+ growth1: any-stat
8
+ growth2: physical
9
+ growth3: physical
10
+ growth4: mental
11
+ growth5: exert
12
+ growth6: any-skill
13
+ learning1: any-combat
14
+ learning2: connect
15
+ learning3: notice
16
+ learning4: perform
17
+ learning5: pilot
18
+ learning6: sneak
19
+ learning7: survive
20
+ learning8: work
@@ -0,0 +1,20 @@
1
+ id: backgrounds.worker
2
+ type: background
3
+ fields:
4
+ freeSkill: work
5
+ quick1: connect
6
+ quick2: exert
7
+ growth1: any-stat
8
+ growth2: any-stat
9
+ growth3: any-stat
10
+ growth4: any-stat
11
+ growth5: exert
12
+ growth6: any-skill
13
+ learning1: administer
14
+ learning2: any-skill
15
+ learning3: connect
16
+ learning4: exert
17
+ learning5: fix
18
+ learning6: pilot
19
+ learning7: program
20
+ learning8: work
@@ -0,0 +1,7 @@
1
+ id: classes.adventurer
2
+ type: class
3
+ choices:
4
+ - id: partials
5
+ pick: 2
6
+ from: { type: partialClass }
7
+ recommend: 'choice.picks == [] ? @partial-classes.expert : @partial-classes.warrior'
@@ -0,0 +1,14 @@
1
+ id: classes.expert
2
+ type: class
3
+ effects:
4
+ - { target: class.focus.noncombat, op: add, value: 1 }
5
+ - { target: class.expertPoints, op: add, value: 1 }
6
+ # Once a scene: reroll a failed skill check.
7
+ - target: { choices: [failed-check] }
8
+ op: option
9
+ when: '!scene.expertReroll'
10
+ value:
11
+ id: reroll
12
+ flags: { reroll: true }
13
+ changes:
14
+ - { type: set, field: scene.expertReroll, value: true }
@@ -0,0 +1,11 @@
1
+ id: classes.psychic
2
+ type: class
3
+ effects:
4
+ - { target: psionics.access, op: set, value: "'unrestricted'" }
5
+ grants:
6
+ - { item: techniques.psychic-succor, when: skills.biopsionics.level >= 0 }
7
+ - { item: techniques.psychic-refinement, when: skills.metapsionics.level >= 0 }
8
+ - { item: techniques.oracle, when: skills.precognition.level >= 0 }
9
+ - { item: techniques.telekinetic-manipulation, when: skills.telekinesis.level >= 0 }
10
+ - { item: techniques.telepathic-contact, when: skills.telepathy.level >= 0 }
11
+ - { item: techniques.personal-apportation, when: skills.teleportation.level >= 0 }
@@ -0,0 +1,27 @@
1
+ id: classes.warrior
2
+ type: class
3
+ effects:
4
+ - { target: class.focus.combat, op: add, value: 1 }
5
+ - { target: hp.perLevel, op: add, value: 2 }
6
+ - { target: combat.attackBonus, op: set, value: level }
7
+ # Once a scene: a missed attack hits.
8
+ - target: { choices: [missed-attack] }
9
+ op: option
10
+ when: '!scene.warriorLuck'
11
+ value:
12
+ id: luck
13
+ flags: { hit: true }
14
+ changes:
15
+ - { type: set, field: scene.warriorLuck, value: true }
16
+ actions:
17
+ # Once a scene: an attack roll that hit the warrior misses instead.
18
+ - id: negate-hit
19
+ tags: [combat]
20
+ available: '!scene.warriorLuck'
21
+ results: [negated]
22
+ steps:
23
+ - id: spend
24
+ kind: changes
25
+ changes:
26
+ - { type: set, field: scene.warriorLuck, value: true }
27
+ - { id: result, kind: outcome, result: "'negated'" }
@@ -0,0 +1,17 @@
1
+ id: cyberware.adrenal-suppression-pump
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 30000
6
+ techLevel: 4
7
+ state:
8
+ active: { type: boolean, default: false }
9
+ effects:
10
+ - target: { rolls: [initiative] }
11
+ op: add
12
+ value: 2
13
+ when: self.active
14
+ - target: { rolls: [check.social] }
15
+ op: add
16
+ value: -2
17
+ when: self.active
@@ -0,0 +1,6 @@
1
+ id: cyberware.bioadaptation-augments
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 10000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.body-arsenal-array
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 10000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.body-sculpting
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 10000
6
+ techLevel: 4
@@ -0,0 +1,8 @@
1
+ id: cyberware.dermal-armor
2
+ type: cyberware
3
+ fields:
4
+ strain: 2
5
+ cost: 20000
6
+ techLevel: 4
7
+ effects:
8
+ - { target: ac.innate, op: atLeast, value: 16 }
@@ -0,0 +1,6 @@
1
+ id: cyberware.drone-control-link
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 20000
6
+ techLevel: 4
@@ -0,0 +1,7 @@
1
+ id: cyberware.eelskin-capacitor-mesh
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ activationStrain: 1
6
+ cost: 25000
7
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.gecko-anchors
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 15000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.ghost-talker-transceiver
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 15000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.holdout-cavity
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 10000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.holoskin-emitters
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 15000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.identity-submersion-trigger
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 25000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.immunofiltration-system
2
+ type: cyberware
3
+ fields:
4
+ strain: 2
5
+ cost: 25000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.induced-coma-trigger
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 20000
6
+ techLevel: 4
@@ -0,0 +1,11 @@
1
+ id: cyberware.neurointruder-alert
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 50000
6
+ techLevel: 5
7
+ effects:
8
+ - target: { rolls: [save.mental] }
9
+ op: add
10
+ value: 3
11
+ when: situational.telepathy
@@ -0,0 +1,6 @@
1
+ id: cyberware.panspectral-optics
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 15000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.pressure-sheathing
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 15000
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.prosthetic-limb
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ cost: 2500
6
+ techLevel: 4
@@ -0,0 +1,6 @@
1
+ id: cyberware.revenant-wiring
2
+ type: cyberware
3
+ fields:
4
+ strain: 3
5
+ cost: 50000
6
+ techLevel: 5
@@ -0,0 +1,7 @@
1
+ id: cyberware.slowtime-window
2
+ type: cyberware
3
+ fields:
4
+ strain: 2
5
+ activationStrain: 1
6
+ cost: 30000
7
+ techLevel: 5
@@ -0,0 +1,8 @@
1
+ id: cyberware.stabilization-overrides
2
+ type: cyberware
3
+ fields:
4
+ strain: 2
5
+ cost: 25000
6
+ techLevel: 4
7
+ effects:
8
+ - { target: attributes.con.mod, op: add, value: -1 }
@@ -0,0 +1,7 @@
1
+ id: cyberware.tagger-nanites
2
+ type: cyberware
3
+ fields:
4
+ strain: 1
5
+ activationStrain: 1
6
+ cost: 15000
7
+ techLevel: 4
@@ -0,0 +1,7 @@
1
+ id: cyberware.toxin-injector
2
+ type: cyberware
3
+ fields:
4
+ strain: 2
5
+ activationStrain: 2
6
+ cost: 20000
7
+ techLevel: 4
@@ -0,0 +1,7 @@
1
+ id: cyberware.twitchlock-actuators
2
+ type: cyberware
3
+ fields:
4
+ strain: 2
5
+ activationStrain: 2
6
+ cost: 30000
7
+ techLevel: 4
@@ -0,0 +1,9 @@
1
+ id: foci.alert
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: notice
6
+ effects:
7
+ - target: { rolls: [initiative] }
8
+ op: rollModifier
9
+ value: { kind: advantage }
@@ -0,0 +1,9 @@
1
+ id: foci.armsman
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: stab
6
+ effects:
7
+ - { target: damage.melee, op: add, value: 'max(0, skills.stab.level)' }
8
+ - { target: miss.melee, op: set, value: 1d4, when: self.level >= 2 }
9
+ - { target: combat.meleeAdvanced, op: set, value: true, when: self.level >= 2 }
@@ -0,0 +1,5 @@
1
+ id: foci.assassin
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: sneak
@@ -0,0 +1,5 @@
1
+ id: foci.authority
2
+ type: focus
3
+ fields:
4
+ kind: noncombat
5
+ skill: lead
@@ -0,0 +1,7 @@
1
+ id: foci.close-combatant
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: any-combat
6
+ effects:
7
+ - { target: shock.anyAc, op: set, value: true, when: self.level >= 2 }
@@ -0,0 +1,5 @@
1
+ id: foci.connected
2
+ type: focus
3
+ fields:
4
+ kind: noncombat
5
+ skill: connect
@@ -0,0 +1,7 @@
1
+ id: foci.die-hard
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: none
6
+ effects:
7
+ - { target: hp.perLevel, op: add, value: 2 }
@@ -0,0 +1,10 @@
1
+ id: foci.diplomat
2
+ type: focus
3
+ fields:
4
+ kind: noncombat
5
+ skill: talk
6
+ effects:
7
+ - target: { rolls: [check] }
8
+ op: rollModifier
9
+ value: { kind: reroll, below: 1, once: true }
10
+ when: situational.negotiation
@@ -0,0 +1,8 @@
1
+ id: foci.gunslinger
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: shoot
6
+ effects:
7
+ - { target: damage.ranged, op: add, value: 'max(0, skills.shoot.level)' }
8
+ - { target: miss.ranged, op: set, value: 1d4, when: self.level >= 2 }
@@ -0,0 +1,10 @@
1
+ id: foci.hacker
2
+ type: focus
3
+ fields:
4
+ kind: noncombat
5
+ skill: program
6
+ effects:
7
+ - target: { rolls: [check.program] }
8
+ op: rollModifier
9
+ value: { kind: poolDice, count: 1 }
10
+ when: situational.hacking && skills.program.dice < 3
@@ -0,0 +1,7 @@
1
+ id: foci.healer
2
+ type: focus
3
+ fields:
4
+ kind: noncombat
5
+ skill: heal
6
+ effects:
7
+ - { target: skills.heal.dice, op: atLeast, value: 3 }
@@ -0,0 +1,7 @@
1
+ id: foci.henchkeeper
2
+ type: focus
3
+ fields:
4
+ kind: noncombat
5
+ skill: lead
6
+ effects:
7
+ - { target: henchmen.max, op: atLeast, value: ceil(level / 3) }
@@ -0,0 +1,7 @@
1
+ id: foci.ironhide
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: none
6
+ effects:
7
+ - { target: ac.innate, op: atLeast, value: 15 + ceil(level / 2) }
@@ -0,0 +1,18 @@
1
+ id: foci.psychic-training
2
+ type: focus
3
+ fields:
4
+ kind: psychic
5
+ skill: chosen
6
+ prerequisites:
7
+ - id: psychic
8
+ when: "psionics.access != 'none'"
9
+ effects:
10
+ - { target: effort.bonus, op: add, value: 1 }
11
+ choices:
12
+ - id: discipline
13
+ from:
14
+ { values: [biopsionics, metapsionics, precognition, telekinesis, telepathy, teleportation] }
15
+ eligible: "psionics.access == 'unrestricted' || value == psionics.discipline"
16
+ recommend: "psionics.access == 'restricted' ? psionics.discipline : 'biopsionics'"
17
+ effects:
18
+ - { target: psionics.training, op: set, value: pick.value }
@@ -0,0 +1,5 @@
1
+ id: foci.savage-fray
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: stab
@@ -0,0 +1,8 @@
1
+ id: foci.shocking-assault
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: punch-or-stab
6
+ effects:
7
+ - { target: shock.anyAc, op: set, value: true }
8
+ - { target: shock.bonus, op: add, value: 2, when: self.level >= 2 }
@@ -0,0 +1,10 @@
1
+ id: foci.sniper
2
+ type: focus
3
+ fields:
4
+ kind: combat
5
+ skill: shoot
6
+ effects:
7
+ - target: { rolls: [check.shoot] }
8
+ op: rollModifier
9
+ value: { kind: poolDice, count: 1 }
10
+ when: situational.executionShot && skills.shoot.dice < 3