@opencharacter/swn-revised 0.0.0-stage → 0.2.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 (321) hide show
  1. package/LICENSE +147 -0
  2. package/README.md +182 -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 +9 -0
  42. package/content/classes/expert.yaml +16 -0
  43. package/content/classes/psychic.yaml +11 -0
  44. package/content/classes/warrior.yaml +29 -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 +19 -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 +21 -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/kits/barbarian.yaml +17 -0
  160. package/content/kits/blade.yaml +17 -0
  161. package/content/kits/civilian.yaml +12 -0
  162. package/content/kits/credits.yaml +11 -0
  163. package/content/kits/gunslinger.yaml +16 -0
  164. package/content/kits/hacker.yaml +18 -0
  165. package/content/kits/medic.yaml +18 -0
  166. package/content/kits/scout.yaml +19 -0
  167. package/content/kits/soldier.yaml +16 -0
  168. package/content/kits/technician.yaml +19 -0
  169. package/content/kits/thief.yaml +19 -0
  170. package/content/partial-classes/expert.yaml +5 -0
  171. package/content/partial-classes/psychic.yaml +16 -0
  172. package/content/partial-classes/warrior.yaml +7 -0
  173. package/content/styles/expert-nimble.yaml +11 -0
  174. package/content/styles/expert-smart.yaml +11 -0
  175. package/content/styles/expert-smooth.yaml +11 -0
  176. package/content/styles/psychic-adept.yaml +11 -0
  177. package/content/styles/psychic-seer.yaml +11 -0
  178. package/content/styles/warrior-leader.yaml +11 -0
  179. package/content/styles/warrior-melee.yaml +11 -0
  180. package/content/styles/warrior-ranged.yaml +11 -0
  181. package/content/techniques/accelerated-succor.yaml +10 -0
  182. package/content/techniques/alternate-outcome.yaml +10 -0
  183. package/content/techniques/anguished-vision.yaml +10 -0
  184. package/content/techniques/burdened-apportation.yaml +10 -0
  185. package/content/techniques/cloak-powers.yaml +10 -0
  186. package/content/techniques/concert-of-minds.yaml +10 -0
  187. package/content/techniques/cursed-luck.yaml +59 -0
  188. package/content/techniques/deep-intrusion.yaml +10 -0
  189. package/content/techniques/destinys-shield.yaml +10 -0
  190. package/content/techniques/effortless-apportation.yaml +10 -0
  191. package/content/techniques/facile-mind.yaml +10 -0
  192. package/content/techniques/far-thought.yaml +10 -0
  193. package/content/techniques/flawless-mastery.yaml +10 -0
  194. package/content/techniques/force-puppetry.yaml +10 -0
  195. package/content/techniques/forced-outcome.yaml +10 -0
  196. package/content/techniques/holistic-optimization-patterning.yaml +10 -0
  197. package/content/techniques/impact-sump.yaml +10 -0
  198. package/content/techniques/impervious-pavis-of-will.yaml +10 -0
  199. package/content/techniques/intuitive-response.yaml +10 -0
  200. package/content/techniques/invincible-stand.yaml +10 -0
  201. package/content/techniques/kinetic-transversal.yaml +10 -0
  202. package/content/techniques/major-organ-restoration.yaml +10 -0
  203. package/content/techniques/mastered-succor.yaml +10 -0
  204. package/content/techniques/memory-editing.yaml +10 -0
  205. package/content/techniques/metadimensional-friction.yaml +10 -0
  206. package/content/techniques/metamorph.yaml +10 -0
  207. package/content/techniques/mindtracing.yaml +10 -0
  208. package/content/techniques/neural-trap.yaml +10 -0
  209. package/content/techniques/not-my-time.yaml +10 -0
  210. package/content/techniques/offensive-apportation.yaml +10 -0
  211. package/content/techniques/oracle.yaml +6 -0
  212. package/content/techniques/organic-purification-protocols.yaml +10 -0
  213. package/content/techniques/perceptive-dislocation.yaml +10 -0
  214. package/content/techniques/personal-apportation.yaml +6 -0
  215. package/content/techniques/pressure-field.yaml +10 -0
  216. package/content/techniques/proficient-apportation.yaml +10 -0
  217. package/content/techniques/prophecy.yaml +10 -0
  218. package/content/techniques/psychic-refinement.yaml +11 -0
  219. package/content/techniques/psychic-static.yaml +10 -0
  220. package/content/techniques/psychic-succor.yaml +52 -0
  221. package/content/techniques/psychic-tutelage.yaml +10 -0
  222. package/content/techniques/quintessential-reconstruction.yaml +10 -0
  223. package/content/techniques/reactive-telekinesis.yaml +10 -0
  224. package/content/techniques/reflex-response.yaml +10 -0
  225. package/content/techniques/remote-repair.yaml +10 -0
  226. package/content/techniques/rift-reduplication.yaml +10 -0
  227. package/content/techniques/sense-the-need.yaml +10 -0
  228. package/content/techniques/slip-field.yaml +10 -0
  229. package/content/techniques/spatial-awareness.yaml +10 -0
  230. package/content/techniques/spatial-synchrony-mandala.yaml +10 -0
  231. package/content/techniques/stutterjump.yaml +10 -0
  232. package/content/techniques/suppress-cognition.yaml +10 -0
  233. package/content/techniques/surge-momentum.yaml +10 -0
  234. package/content/techniques/suspended-manifestation.yaml +10 -0
  235. package/content/techniques/synthetic-adaptation.yaml +10 -0
  236. package/content/techniques/tangible-force-construct.yaml +10 -0
  237. package/content/techniques/telekinetic-armory.yaml +10 -0
  238. package/content/techniques/telekinetic-expertise.yaml +10 -0
  239. package/content/techniques/telekinetic-flight.yaml +10 -0
  240. package/content/techniques/telekinetic-manipulation.yaml +6 -0
  241. package/content/techniques/telekinetic-ram.yaml +10 -0
  242. package/content/techniques/telepathic-assault.yaml +10 -0
  243. package/content/techniques/telepathic-contact.yaml +6 -0
  244. package/content/techniques/teratic-overload.yaml +10 -0
  245. package/content/techniques/terminal-reflection.yaml +10 -0
  246. package/content/techniques/thermokinesis.yaml +10 -0
  247. package/content/techniques/tissue-integrity-field.yaml +10 -0
  248. package/content/techniques/transmit-thought.yaml +10 -0
  249. package/content/techniques/unity-of-thought.yaml +10 -0
  250. package/content/templates/trained-unarmed.yaml +9 -0
  251. package/content/weapons/advanced-bow.yaml +13 -0
  252. package/content/weapons/anti-vehicle-laser.yaml +16 -0
  253. package/content/weapons/combat-rifle.yaml +16 -0
  254. package/content/weapons/combat-shotgun.yaml +16 -0
  255. package/content/weapons/conversion-bow.yaml +13 -0
  256. package/content/weapons/crude-pistol.yaml +16 -0
  257. package/content/weapons/demo-charge.yaml +13 -0
  258. package/content/weapons/distortion-cannon.yaml +16 -0
  259. package/content/weapons/grenade.yaml +14 -0
  260. package/content/weapons/heavy-machine-gun.yaml +17 -0
  261. package/content/weapons/hydra-array.yaml +16 -0
  262. package/content/weapons/knife.yaml +7 -0
  263. package/content/weapons/large-advanced-weapon.yaml +13 -0
  264. package/content/weapons/large-primitive-weapon.yaml +12 -0
  265. package/content/weapons/laser-pistol.yaml +16 -0
  266. package/content/weapons/laser-rifle.yaml +17 -0
  267. package/content/weapons/mag-pistol.yaml +15 -0
  268. package/content/weapons/mag-rifle.yaml +15 -0
  269. package/content/weapons/medium-advanced-weapon.yaml +13 -0
  270. package/content/weapons/medium-primitive-weapon.yaml +12 -0
  271. package/content/weapons/monoblade-knife.yaml +7 -0
  272. package/content/weapons/monoblade-sword.yaml +4 -0
  273. package/content/weapons/musket.yaml +16 -0
  274. package/content/weapons/plasma-projector.yaml +16 -0
  275. package/content/weapons/primitive-bow.yaml +13 -0
  276. package/content/weapons/railgun.yaml +16 -0
  277. package/content/weapons/revolver.yaml +15 -0
  278. package/content/weapons/rifle.yaml +15 -0
  279. package/content/weapons/rocket-launcher.yaml +16 -0
  280. package/content/weapons/semi-auto-pistol.yaml +15 -0
  281. package/content/weapons/shear-rifle.yaml +17 -0
  282. package/content/weapons/shotgun.yaml +15 -0
  283. package/content/weapons/small-advanced-weapon.yaml +14 -0
  284. package/content/weapons/small-primitive-weapon.yaml +13 -0
  285. package/content/weapons/sniper-rifle.yaml +15 -0
  286. package/content/weapons/spear.yaml +8 -0
  287. package/content/weapons/spike-thrower.yaml +16 -0
  288. package/content/weapons/stun-baton.yaml +14 -0
  289. package/content/weapons/submachine-gun.yaml +16 -0
  290. package/content/weapons/suit-ripper.yaml +11 -0
  291. package/content/weapons/thermal-knife.yaml +7 -0
  292. package/content/weapons/thermal-pistol.yaml +16 -0
  293. package/content/weapons/thunder-gun.yaml +16 -0
  294. package/content/weapons/unarmed.yaml +8 -0
  295. package/content/weapons/void-carbine.yaml +15 -0
  296. package/content/weapons/vortex-cannon.yaml +14 -0
  297. package/content/weapons/wheatcutter-belt.yaml +14 -0
  298. package/dist/i18n/en.d.ts +3 -0
  299. package/dist/i18n/en.js +2 -0
  300. package/dist/i18n/en.json +1411 -0
  301. package/dist/index.d.ts +3 -0
  302. package/dist/index.js +2 -0
  303. package/dist/release.json +31795 -0
  304. package/i18n/en/content.yaml +436 -0
  305. package/i18n/en/foci.yaml +199 -0
  306. package/i18n/en/rules.yaml +772 -0
  307. package/i18n/en/text.yaml +249 -0
  308. package/i18n/en.yaml +1 -0
  309. package/pack.yaml +15 -0
  310. package/package.json +58 -3
  311. package/rules/advancement.yaml +482 -0
  312. package/rules/character.yaml +139 -0
  313. package/rules/checks.yaml +166 -0
  314. package/rules/combat.yaml +321 -0
  315. package/rules/core.yaml +111 -0
  316. package/rules/creation.yaml +431 -0
  317. package/rules/gear.yaml +188 -0
  318. package/rules/layout.yaml +197 -0
  319. package/rules/psionics.yaml +165 -0
  320. package/rules/start.yaml +417 -0
  321. package/rules/tags.yaml +71 -0
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ // Generated by pnpm build:packs. Do not edit.
2
+ export default {"manifest":{"id":"swn-revised","version":"0.2.0","specVersion":"0.3.0","license":"LicenseRef-sine-nomine-free-edition","credit":"Text from Stars Without Number: Revised Edition (Free Edition), © 2017 Sine Nomine Publishing, Inc., by Kevin Crawford. Used with the author's permission.","notices":{"permission":"Content from the free edition of Stars Without Number: Revised Edition is reproduced with the author's permission; nothing from the paid deluxe edition is included.","not-affiliated":"This pack is an unofficial model of the game's character rules: it is not affiliated with or endorsed by Sine Nomine Publishing."},"defaultLanguage":"en"},"rules":{"fields":{"skillPoints.general":{"type":"integer","input":true,"default":0,"min":0},"skillPoints.expert":{"type":"integer","input":true,"default":0,"min":0},"skillPoints.psychic":{"type":"integer","input":true,"default":0,"min":0},"skillPoints.training":{"type":"integer","input":true,"default":0,"min":0},"skills.administer.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.connect.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.exert.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.fix.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.heal.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.know.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.lead.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.notice.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.perform.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.pilot.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.program.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.punch.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.shoot.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.sneak.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.stab.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.survive.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.talk.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.trade.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.work.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.biopsionics.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.metapsionics.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.precognition.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.telekinesis.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.telepathy.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"skills.teleportation.credit":{"type":"integer","input":true,"default":0,"min":0,"max":4},"attributes.boosts":{"type":"integer","input":true,"default":0,"min":0,"max":5},"psionics.access":{"type":"enum","values":["none","restricted","unrestricted"],"formula":"'none'"},"psionics.discipline":{"type":"enum","open":true,"values":["none","biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation"],"formula":"'none'"},"class.focus.noncombat":{"type":"integer","formula":0},"class.focus.combat":{"type":"integer","formula":0},"class.expertPoints":{"type":"integer","formula":0},"scene.expertReroll":{"type":"boolean","input":true,"default":false},"scene.warriorLuck":{"type":"boolean","input":true,"default":false},"henchmen.max":{"type":"integer","formula":0},"psionics.training":{"type":"string","formula":"''"},"attributes.str.score":{"type":"integer","input":true,"default":10,"min":0,"max":18,"tags":["attribute"]},"attributes.dex.score":{"type":"integer","input":true,"default":10,"min":0,"max":18,"tags":["attribute"]},"attributes.con.score":{"type":"integer","input":true,"default":10,"min":0,"max":18,"tags":["attribute"]},"attributes.int.score":{"type":"integer","input":true,"default":10,"min":0,"max":18,"tags":["attribute"]},"attributes.wis.score":{"type":"integer","input":true,"default":10,"min":0,"max":18,"tags":["attribute"]},"attributes.cha.score":{"type":"integer","input":true,"default":10,"min":0,"max":18,"tags":["attribute"]},"attributes.str.mod":{"type":"integer","tags":["attr-mod"],"formula":"attributes.str.score <= 3 ? -2 : attributes.str.score <= 7 ? -1\n : attributes.str.score <= 13 ? 0 : attributes.str.score <= 17 ? 1 : 2"},"attributes.dex.mod":{"type":"integer","tags":["attr-mod"],"formula":"attributes.dex.score <= 3 ? -2 : attributes.dex.score <= 7 ? -1\n : attributes.dex.score <= 13 ? 0 : attributes.dex.score <= 17 ? 1 : 2"},"attributes.con.mod":{"type":"integer","tags":["attr-mod"],"formula":"attributes.con.score <= 3 ? -2 : attributes.con.score <= 7 ? -1\n : attributes.con.score <= 13 ? 0 : attributes.con.score <= 17 ? 1 : 2"},"attributes.int.mod":{"type":"integer","tags":["attr-mod"],"formula":"attributes.int.score <= 3 ? -2 : attributes.int.score <= 7 ? -1\n : attributes.int.score <= 13 ? 0 : attributes.int.score <= 17 ? 1 : 2"},"attributes.wis.mod":{"type":"integer","tags":["attr-mod"],"formula":"attributes.wis.score <= 3 ? -2 : attributes.wis.score <= 7 ? -1\n : attributes.wis.score <= 13 ? 0 : attributes.wis.score <= 17 ? 1 : 2"},"attributes.cha.mod":{"type":"integer","tags":["attr-mod"],"formula":"attributes.cha.score <= 3 ? -2 : attributes.cha.score <= 7 ? -1\n : attributes.cha.score <= 13 ? 0 : attributes.cha.score <= 17 ? 1 : 2"},"level":{"type":"integer","input":true,"default":1,"min":1,"max":20},"xp.current":{"type":"integer","input":true,"default":0,"min":0},"xp.next":{"type":"integer","formula":"level >= 10 ? 93 + 24 * (level - 9) : [0, 3, 6, 12, 18, 27, 39, 54, 72, 93][level]"},"skills.administer.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.connect.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.exert.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.fix.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.heal.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.know.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.lead.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.notice.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.perform.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.pilot.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.program.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.sneak.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.survive.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.talk.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.trade.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.work.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.general"]},"skills.punch.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.combat"]},"skills.shoot.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.combat"]},"skills.stab.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.combat"]},"skills.biopsionics.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.psychic"]},"skills.metapsionics.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.psychic"]},"skills.precognition.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.psychic"]},"skills.telekinesis.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.psychic"]},"skills.telepathy.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.psychic"]},"skills.teleportation.level":{"type":"integer","input":true,"default":-1,"min":-1,"max":4,"tags":["skill","skill.psychic"]},"skills.administer.dice":{"type":"integer","formula":2,"min":2},"skills.connect.dice":{"type":"integer","formula":2,"min":2},"skills.exert.dice":{"type":"integer","formula":2,"min":2},"skills.fix.dice":{"type":"integer","formula":2,"min":2},"skills.heal.dice":{"type":"integer","formula":2,"min":2},"skills.know.dice":{"type":"integer","formula":2,"min":2},"skills.lead.dice":{"type":"integer","formula":2,"min":2},"skills.notice.dice":{"type":"integer","formula":2,"min":2},"skills.perform.dice":{"type":"integer","formula":2,"min":2},"skills.pilot.dice":{"type":"integer","formula":2,"min":2},"skills.program.dice":{"type":"integer","formula":2,"min":2},"skills.sneak.dice":{"type":"integer","formula":2,"min":2},"skills.survive.dice":{"type":"integer","formula":2,"min":2},"skills.talk.dice":{"type":"integer","formula":2,"min":2},"skills.trade.dice":{"type":"integer","formula":2,"min":2},"skills.work.dice":{"type":"integer","formula":2,"min":2},"skills.punch.dice":{"type":"integer","formula":2,"min":2},"skills.shoot.dice":{"type":"integer","formula":2,"min":2},"skills.stab.dice":{"type":"integer","formula":2,"min":2},"skills.biopsionics.dice":{"type":"integer","formula":2,"min":2},"skills.metapsionics.dice":{"type":"integer","formula":2,"min":2},"skills.precognition.dice":{"type":"integer","formula":2,"min":2},"skills.telekinesis.dice":{"type":"integer","formula":2,"min":2},"skills.telepathy.dice":{"type":"integer","formula":2,"min":2},"skills.teleportation.dice":{"type":"integer","formula":2,"min":2},"saves.physical":{"type":"integer","tags":["save"],"formula":"16 - level - max(attributes.str.mod, attributes.con.mod)"},"saves.evasion":{"type":"integer","tags":["save"],"formula":"16 - level - max(attributes.dex.mod, attributes.int.mod)"},"saves.mental":{"type":"integer","tags":["save"],"formula":"16 - level - max(attributes.wis.mod, attributes.cha.mod)"},"hp.rolled":{"type":"integer","input":true,"default":1,"min":1},"hp.perLevel":{"type":"integer","formula":0},"hp.max":{"type":"integer","formula":"hp.rolled + hp.perLevel * level","min":1},"hp.current":{"type":"integer","input":true,"default":1,"min":0,"max":"hp.max"},"combat.attackBonus":{"type":"integer","formula":"floor(level / 2)"},"credits.current":{"type":"integer","input":true,"default":0,"min":0},"ac.innate":{"type":"integer","formula":0},"ac.armor":{"type":"integer","formula":"max(10, ac.innate, maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped\n && !copy.fields.shield))"},"ac.shield":{"type":"integer","formula":"maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped && copy.fields.shield)"},"ac.value":{"type":"integer","tags":["ac"],"formula":"(ac.shield > 0 ? (ac.armor >= ac.shield ? ac.armor + 1 : ac.shield) : ac.armor)\n + attributes.dex.mod"},"ac.advanced":{"type":"integer","tags":["ac"],"formula":"max(10, ac.innate, maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped\n && !copy.fields.shield && copy.fields.category != 'primitive'))\n + (maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped && copy.fields.shield\n && copy.fields.category != 'primitive') > 0 ? 1 : 0)\n + attributes.dex.mod"},"damage.melee":{"type":"integer","formula":0},"damage.ranged":{"type":"integer","formula":0},"shock.bonus":{"type":"integer","formula":0},"shock.anyAc":{"type":"boolean","formula":false},"miss.melee":{"type":"dice","formula":0},"miss.ranged":{"type":"dice","formula":0},"miss.punch":{"type":"dice","formula":0},"combat.meleeAdvanced":{"type":"boolean","formula":false},"combat.punchAdvanced":{"type":"boolean","formula":false},"encumbrance.strength":{"type":"integer","formula":"attributes.str.score"},"encumbrance.readied":{"type":"integer","formula":"sumCopies(copy.fields.enc * ceil(copy.quantity / copy.fields.bundle), has(copy.fields.enc)\n && copy.equipped && !copy.state.stored)"},"encumbrance.stowed":{"type":"integer","formula":"sumCopies(copy.fields.enc * ceil(copy.quantity / copy.fields.bundle), has(copy.fields.enc)\n && !copy.equipped && !copy.state.stored)"},"encumbrance.readiedLimit":{"type":"integer","formula":"floor(encumbrance.strength / 2)"},"encumbrance.stowedLimit":{"type":"integer","formula":"encumbrance.strength"},"encumbrance.level":{"type":"integer","limits":{"max":2},"formula":"max(encumbrance.readied <= encumbrance.readiedLimit ? 0\n : encumbrance.readied <= encumbrance.readiedLimit + 2 ? 1\n : encumbrance.readied <= encumbrance.readiedLimit + 4 ? 2 : 3,\n encumbrance.stowed <= encumbrance.stowedLimit ? 0\n : encumbrance.stowed <= encumbrance.stowedLimit + 4 ? 1\n : encumbrance.stowed <= encumbrance.stowedLimit + 8 ? 2 : 3)"},"movement":{"type":"integer","formula":"[10, 7, 5, 0][encumbrance.level]"},"strain.permanent":{"type":"integer","formula":"sumCopies(copy.fields.strain, copy.type == 'cyberware' && has(copy.fields.strain))"},"strain.current":{"type":"integer","input":true,"default":0,"min":0},"strain.total":{"type":"integer","formula":"strain.permanent + strain.current","limits":{"max":"strain.max"}},"strain.max":{"type":"integer","formula":"attributes.con.score"},"psionics.cursedLuck":{"type":"boolean","formula":false},"effort.bonus":{"type":"integer","formula":0},"effort.wild":{"type":"integer","formula":0},"effort.max":{"type":"integer","formula":"psionics.access == 'none' ? effort.wild\n : max(1, 1 + maxFields(f.value, 'skill.psychic' in f.tags)\n + max(attributes.wis.mod, attributes.con.mod)) + effort.bonus"},"effort.scene":{"type":"integer","input":true,"default":0,"min":0},"effort.day":{"type":"integer","input":true,"default":0,"min":0},"effort.torched":{"type":"integer","input":true,"default":0,"min":0},"effort.active":{"type":"integer","formula":0},"effort.available":{"type":"integer","formula":"max(0, effort.max + effort.torched - effort.scene - effort.day - effort.active)"}},"actions":[{"id":"level-up","tags":["level-up"],"available":"!character.creating && level < 20 && xp.current >= xp.next","results":["advanced"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"before":"hp.max","next":"level + 1","trained":"countCopies(copy.item == @foci.psychic-training && copy.state.level >= 2) > 0"}}]},{"id":"level","kind":"changes","changes":[{"type":"set","field":"level","value":"flags.next"}]},{"id":"hp","kind":"roll","tags":["level-up"],"parts":[{"dice":"(flags.next)d6"}]},{"id":"maximum","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"total":"sumList(steps.hp.faces, max(1, x + attributes.con.mod)) + hp.perLevel * level"}}]},{"id":"hitPoints","kind":"changes","sheet":"proposed","changes":[{"type":"set","field":"hp.rolled","value":"(flags.total > flags.before ? flags.total : flags.before + 1) - hp.perLevel * level"},{"type":"adjust","field":"hp.current","by":"(flags.total > flags.before ? flags.total : flags.before + 1) - flags.before","tags":["healing"]}]},{"id":"focus","kind":"action","when":"flags.next in [2, 5, 7, 10]","use":"gain-focus","params":{"advancement":true}},{"id":"points","tags":["level-up.level"],"kind":"changes","sheet":"proposed","changes":[{"type":"adjust","field":"skillPoints.general","by":"psionics.access == 'none' ? 3 : 2"},{"type":"adjust","field":"skillPoints.psychic","by":1,"when":"psionics.access != 'none'"},{"type":"adjust","field":"skillPoints.expert","by":"class.expertPoints","when":"class.expertPoints > 0"},{"type":"adjust","when":"countCopies(copy.item == @foci.psychic-training && copy.state.level >= 2) > 0","field":"skillPoints.training","by":"flags.trained ? 1 : flags.next - 1"}]},{"id":"result","kind":"outcome","result":"'advanced'"}]},{"id":"focus-skill-points","listed":false,"tags":["level-up"],"params":{"entry":{"type":"enum","open":true,"required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation","any-combat","punch-or-stab","any-psychic","any-skill"]},"random":{"type":"boolean","default":false}},"results":["spent","none"],"steps":[{"id":"start","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"open":"params.entry == 'any-combat' ? ['punch', 'shoot', 'stab']\n : params.entry == 'punch-or-stab' ? ['punch', 'stab']\n : params.entry == 'any-psychic'\n ? filterList(keysOf('psychic'), psionics.access == 'unrestricted'\n || x == psionics.discipline)\n : params.entry == 'any-skill' ? keysOf('general') + keysOf('combat')\n : params.entry in keysOf('psychic') && psionics.access != 'unrestricted'\n && params.entry != psionics.discipline ? []\n : [params.entry]"}}]},{"id":"none","kind":"outcome","when":"size(flags.open) == 0","result":"'none'"},{"id":"choose","kind":"choice","when":"size(flags.open) > 1","random":"params.random","recommend":"flags.open[0]","options":{"values":{"formula":"flags.open"}}},{"id":"picked","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"skill":"size(flags.open) == 1 ? flags.open[0] : steps.choose.picked","from":"fieldOf('skills.{skill}.level', size(flags.open) == 1 ? flags.open[0] : steps.choose.picked)","pool":"3 + fieldOf('skills.{skill}.credit',\n size(flags.open) == 1 ? flags.open[0] : steps.choose.picked)"}}]},{"id":"level","kind":"branch","cases":[{"when":true,"flags":{"level":"flags.from","had":"flags.pool - 3"}}]},{"id":"buy1","kind":"branch","when":"flags.level < 4 && flags.pool >= flags.level + 2","cases":[{"when":true,"flags":{"pool":"flags.pool - flags.level - 2","level":"flags.level + 1"}}]},{"id":"buy2","kind":"branch","when":"flags.level < 4 && flags.pool >= flags.level + 2","cases":[{"when":true,"flags":{"pool":"flags.pool - flags.level - 2","level":"flags.level + 1"}}]},{"id":"buy3","kind":"branch","when":"flags.level < 4 && flags.pool >= flags.level + 2","cases":[{"when":true,"flags":{"pool":"flags.pool - flags.level - 2","level":"flags.level + 1"}}]},{"id":"spend","kind":"changes","changes":[{"type":"set","when":"flags.level != flags.from","field":{"formula":"fieldId('skills.{skill}.level', flags.skill)"},"value":"flags.level"},{"type":"set","when":"(flags.level >= 4 ? 0 : flags.pool) != flags.had","field":{"formula":"fieldId('skills.{skill}.credit', flags.skill)"},"value":"flags.level >= 4 ? 0 : flags.pool"},{"type":"adjust","when":"flags.level >= 4 && flags.pool > 0","field":"skillPoints.general","by":"flags.pool"}]},{"id":"technique","kind":"action","when":"flags.skill in keysOf('psychic') && flags.level >= 1 && flags.level > flags.from","use":"pick-technique","params":{"discipline":"flags.skill","random":"params.random"}},{"id":"technique2","kind":"action","when":"flags.skill in keysOf('psychic') && flags.level >= 2 && flags.level - flags.from >= 2","use":"pick-technique","params":{"discipline":"flags.skill","random":"params.random"}},{"id":"result","kind":"outcome","result":"'spent'","data":{"skill":"flags.skill"}}]},{"id":"pick-technique","listed":false,"tags":["level-up"],"params":{"discipline":{"type":"enum","open":true,"required":true,"values":["biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation"]},"random":{"type":"boolean","default":false}},"results":["picked"],"steps":[{"id":"technique","kind":"choice","sheet":"proposed","random":"params.random","recommend":"options[0]","options":{"content":{"type":"technique","where":"item.discipline == params.discipline && !item.core\n && item.level <= fieldOf('skills.{psychic}.level', params.discipline)\n && countCopies(copy.item == item.id) == 0"}},"changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"result","kind":"outcome","result":"'picked'"}]},{"id":"raise-skill","tags":["level-up"],"available":"!character.creating\n && (skillPoints.general + skillPoints.expert + skillPoints.psychic + skillPoints.training > 0\n || maxList(keysOf('skill'), fieldOf('skills.{skill}.credit', x)) > 0)","params":{"skill":{"type":"enum","open":true,"required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation"]}},"results":["raised","refused"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"from":"fieldOf('skills.{skill}.level', params.skill)","credit":"fieldOf('skills.{skill}.credit', params.skill)","psychic":"params.skill in keysOf('psychic')","general":"params.skill in keysOf('general')"}}]},{"id":"cost","kind":"branch","cases":[{"when":true,"flags":{"fromCredit":"min(flags.from + 2, flags.credit)","cost":"flags.from + 2 - min(flags.from + 2, flags.credit)"}}]},{"id":"training","kind":"branch","cases":[{"when":true,"flags":{"training":"params.skill == psionics.training ? min(flags.cost, skillPoints.training) : 0"}}]},{"id":"pools","kind":"branch","cases":[{"when":true,"flags":{"fromPsychic":"flags.psychic ? min(flags.cost - flags.training, skillPoints.psychic) : 0","fromExpert":"flags.general ? min(flags.cost - flags.training, skillPoints.expert) : 0"}}]},{"id":"check","kind":"branch","cases":[{"when":true,"flags":{"fromGeneral":"flags.cost - flags.training - flags.fromPsychic - flags.fromExpert","allowed":"flags.from < 4 && level >= [1, 1, 3, 6, 9][flags.from + 1]\n && (!flags.psychic || psionics.access == 'unrestricted'\n || (psionics.access == 'restricted' && params.skill == psionics.discipline))"}}]},{"id":"pay","kind":"changes","when":"flags.allowed && flags.fromGeneral <= skillPoints.general","changes":[{"type":"adjust","when":"flags.fromCredit > 0","field":{"formula":"fieldId('skills.{skill}.credit', params.skill)"},"by":"-flags.fromCredit"},{"type":"adjust","field":"skillPoints.training","by":"-flags.training","when":"flags.training > 0"},{"type":"adjust","field":"skillPoints.psychic","by":"-flags.fromPsychic","when":"flags.fromPsychic > 0"},{"type":"adjust","field":"skillPoints.expert","by":"-flags.fromExpert","when":"flags.fromExpert > 0"},{"type":"adjust","field":"skillPoints.general","by":"-flags.fromGeneral","when":"flags.fromGeneral > 0"},{"type":"adjust","field":{"formula":"fieldId('skills.{skill}.level', params.skill)"},"by":1}]},{"id":"technique","kind":"action","when":"flags.psychic && flags.allowed && flags.fromGeneral <= skillPoints.general\n && flags.from >= 0","use":"pick-technique","params":{"discipline":"params.skill"}},{"id":"result","kind":"outcome","result":"flags.allowed && flags.fromGeneral <= skillPoints.general ? 'raised' : 'refused'"}]},{"id":"learn-technique","tags":["level-up"],"available":"!character.creating && psionics.access != 'none'\n && skillPoints.general + skillPoints.psychic + skillPoints.training > 0","params":{"technique":{"type":"id","of":"technique","required":true,"where":"!item.core"}},"results":["learned","refused"],"steps":[{"id":"start","kind":"choice","options":{"content":{"type":"technique","where":"item.id == params.technique"}},"recommend":"options[0]"},{"id":"cost","kind":"branch","cases":[{"when":true,"flags":{"cost":"steps.start.item.level","training":"steps.start.item.discipline == psionics.training\n ? min(steps.start.item.level, skillPoints.training) : 0"}}]},{"id":"pools","kind":"branch","cases":[{"when":true,"flags":{"fromPsychic":"min(flags.cost - flags.training, skillPoints.psychic)"}}]},{"id":"check","kind":"branch","cases":[{"when":true,"flags":{"fromGeneral":"flags.cost - flags.training - flags.fromPsychic","allowed":"countCopies(copy.item == params.technique) == 0\n && fieldOf('skills.{psychic}.level', steps.start.item.discipline)\n >= steps.start.item.level"}}]},{"id":"pay","kind":"changes","when":"flags.allowed && flags.fromGeneral <= skillPoints.general","changes":[{"type":"adjust","field":"skillPoints.training","by":"-flags.training","when":"flags.training > 0"},{"type":"adjust","field":"skillPoints.psychic","by":"-flags.fromPsychic","when":"flags.fromPsychic > 0"},{"type":"adjust","field":"skillPoints.general","by":"-flags.fromGeneral","when":"flags.fromGeneral > 0"},{"type":"addItem","entry":{"item":"params.technique"}}]},{"id":"result","kind":"outcome","result":"flags.allowed && flags.fromGeneral <= skillPoints.general ? 'learned' : 'refused'"}]},{"id":"boost-attribute","tags":["level-up"],"available":"!character.creating && attributes.boosts < 5 && skillPoints.general > attributes.boosts\n && level >= [1, 1, 3, 6, 9][attributes.boosts]","params":{"attribute":{"type":"enum","required":true,"values":["str","dex","con","int","wis","cha"]}},"results":["boosted","refused"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"allowed":"skillPoints.general >= attributes.boosts + 1\n && level >= [1, 1, 3, 6, 9][attributes.boosts]\n && fieldOf('attributes.{attr}.score', params.attribute) < 18"}}]},{"id":"pay","kind":"changes","when":"flags.allowed","changes":[{"type":"adjust","field":"skillPoints.general","by":"-(attributes.boosts + 1)"},{"type":"adjust","field":"attributes.boosts","by":1},{"type":"adjust","field":{"formula":"'attributes.' + params.attribute + '.score'"},"by":1}]},{"id":"result","kind":"outcome","result":"flags.allowed ? 'boosted' : 'refused'"}]},{"id":"skill-check","tags":["check"],"params":{"skill":{"type":"enum","open":true,"required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation"]},"attribute":{"type":"enum","required":true,"values":["str","dex","con","int","wis","cha"]},"difficulty":{"type":"integer","optional":true,"min":0}},"results":{"bands":"check"},"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"difficulty":"has(params.difficulty) ? params.difficulty : -1","reroll":false}}]},{"id":"check","kind":"roll","tags":["check",{"formula":"['check.' + params.skill]\n + (params.skill in ['connect', 'lead', 'perform', 'talk'] ? ['check.social'] : [])"}],"bands":"check","parts":[{"dice":"(fieldOf('skills.{skill}.dice', params.skill))d6kh2"},{"value":"fieldOf('skills.{skill}.level', params.skill)"},{"value":"fieldOf('attributes.{attr}.mod', params.attribute)"}]},{"id":"retry","kind":"choice","tags":["failed-check"],"when":"steps.check.band == 'failure'","options":[{"id":"accept"}],"recommend":"'accept'"},{"id":"reroll","kind":"roll","when":"flags.reroll","tags":["check",{"formula":"['check.' + params.skill]\n + (params.skill in ['connect', 'lead', 'perform', 'talk'] ? ['check.social'] : [])"}],"bands":"check","parts":[{"dice":"(fieldOf('skills.{skill}.dice', params.skill))d6kh2"},{"value":"fieldOf('skills.{skill}.level', params.skill)"},{"value":"fieldOf('attributes.{attr}.mod', params.attribute)"}]},{"id":"result","kind":"outcome","result":"has(steps.reroll) && steps.reroll.band == 'success' ? 'success' : steps.check.band","data":{"total":"has(steps.reroll) ? max(steps.check.total, steps.reroll.total) : steps.check.total"}}]},{"id":"saving-throw","tags":["save"],"params":{"save":{"type":"enum","required":true,"values":["physical","evasion","mental"]},"modifier":{"type":"integer","default":0}},"results":{"bands":"save"},"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"target":"params.save == 'physical' ? saves.physical\n : params.save == 'evasion' ? saves.evasion : saves.mental"}}]},{"id":"save","kind":"roll","tags":["save",{"formula":"'save.' + params.save"}],"bands":"save","parts":[{"dice":"1d20"},{"value":"params.modifier"}]},{"id":"result","kind":"outcome","result":"steps.save.band"}]},{"id":"initiative","tags":["initiative"],"results":["rolled"],"steps":[{"id":"roll","kind":"roll","tags":["initiative"],"parts":[{"dice":"1d8"},{"value":"attributes.dex.mod"}]},{"id":"result","kind":"outcome","result":"'rolled'","data":{"total":"steps.roll.total"}}]},{"id":"attack","tags":["attack"],"available":"(self.equipped || 'unarmed' in item.tags) && (!has(item.magazine) || self.loaded > 0)","params":{"targetAc":{"type":"integer","optional":true},"modifier":{"type":"integer","default":0}},"participants":{"target":{"max":1,"fields":{"ac.value":{"type":"integer","default":10},"ac.advanced":{"type":"integer"},"psionics.cursedLuck":{"type":"boolean","default":false}}}},"results":["hit","miss","rolled"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"skill":"fieldOf('skills.{skill}.level', item.skill)","attr":"!has(item.attribute) ? 0\n : item.attribute == 'str-dex' ? max(attributes.str.mod, attributes.dex.mod)\n : fieldOf('attributes.{attr}.mod', item.attribute)","advanced":"item.advanced || (item.skill == 'stab' && combat.meleeAdvanced)\n || (item.skill == 'punch' && combat.punchAdvanced)","bonus":"item.skill == 'punch' ? max(0, skills.punch.level)\n : item.skill == 'stab' ? damage.melee : damage.ranged","burst":"situational.burst && item.burst && self.loaded >= 3","hit":false}}]},{"id":"target","kind":"branch","cases":[{"when":true,"flags":{"ac":"has(item.fixedAc) ? item.fixedAc : has(params.targetAc) ? params.targetAc\n : size(participants.target) == 0 ? -1\n : flags.advanced && has(participants.target[0].ac.advanced)\n ? participants.target[0].ac.advanced : participants.target[0].ac.value"}}]},{"id":"roll","kind":"roll","tags":["attack",{"formula":"'attack.' + item.skill"}],"bands":"attack","parts":[{"dice":"1d20"},{"value":"combat.attackBonus"},{"value":"flags.skill < 0 ? -2 : flags.skill"},{"value":"flags.attr"},{"value":"item.energy ? 1 : 0"},{"value":"flags.burst ? 2 : 0"},{"value":"params.modifier"}]},{"id":"luck","kind":"choice","tags":["missed-attack"],"when":"steps.roll.band == 'miss'","options":[{"id":"accept"}],"recommend":"'accept'"},{"id":"outcome","kind":"branch","cases":[{"when":true,"flags":{"landed":"steps.roll.band == 'hit' || flags.hit","shock":"has(item.shock) && item.shock > 0 && flags.ac >= 0\n && ((shock.anyAc && item.skill != 'shoot') || flags.ac <= item.shockAc)\n ? max(0, item.shock + flags.attr + shock.bonus\n + (item.skill == 'stab' ? damage.melee : 0))\n : 0"}}]},{"id":"damage","kind":"roll","when":"flags.landed","tags":["damage"],"parts":[{"dice":"item.damage"},{"value":"flags.attr"},{"value":"flags.bonus"},{"value":"flags.burst ? 2 : 0"}]},{"id":"missDamage","kind":"roll","when":"!flags.landed && steps.roll.band == 'miss'","tags":["damage"],"parts":[{"dice":"item.skill == 'punch' ? miss.punch : item.skill == 'stab' ? miss.melee : miss.ranged"}]},{"id":"total","kind":"branch","cases":[{"when":true,"flags":{"damage":"flags.landed ? max(0, steps.damage.total, flags.shock)\n : has(steps.missDamage) ? flags.shock + steps.missDamage.total : 0"}}]},{"id":"deal","kind":"changes","when":"flags.damage > 0","to":"target","changes":[{"type":"adjust","field":"hp.current","by":"-flags.damage","tags":[{"formula":"item.nonlethal ? 'damage.nonlethal' : 'damage'"}]}]},{"id":"spend","kind":"changes","changes":[{"type":"adjustState","when":"has(item.magazine)","entry":"self","key":"loaded","by":"-(flags.burst ? 3 : 1)"},{"type":"adjustQuantity","when":"has(item.fixedAc)","entry":"self","by":-1}]},{"id":"result","kind":"outcome","result":"flags.landed ? 'hit' : steps.roll.band","data":{"total":"steps.roll.total","damage":"flags.damage"}}]},{"id":"reload","tags":["attack"],"available":"has(item.magazine) && self.loaded < item.magazine","results":["reloaded"],"steps":[{"id":"load","kind":"changes","changes":[{"type":"setState","entry":"self","key":"loaded","value":"item.magazine"},{"type":"adjustQuantity","when":"has(item.ammo)","copies":{"type":"gear","where":"has(item.kind) && item.kind == action.item.ammo && self.quantity > 0"},"limit":1,"by":-1}]},{"id":"result","kind":"outcome","result":"'reloaded'"}]},{"id":"take-damage","tags":["health"],"params":{"amount":{"type":"integer","min":0}},"results":["taken"],"steps":[{"id":"deal","kind":"changes","changes":[{"type":"adjust","field":"hp.current","by":"-params.amount","tags":["damage"]}]},{"id":"result","kind":"outcome","result":"'taken'"}]},{"id":"heal","tags":["health"],"params":{"amount":{"type":"integer","min":0}},"results":["healed"],"steps":[{"id":"restore","kind":"changes","changes":[{"type":"adjust","field":"hp.current","by":"params.amount","tags":["healing"]}]},{"id":"result","kind":"outcome","result":"'healed'"}]},{"id":"rest","tags":["health"],"results":["rested"],"steps":[{"id":"rest","tags":["rest.night"],"kind":"changes","changes":[{"type":"adjust","field":"hp.current","by":"level","when":"hp.current > 0","tags":["healing"]},{"type":"adjust","field":"strain.current","by":-1,"when":"strain.current > 0"},{"type":"set","field":"effort.day","value":0},{"type":"set","field":"effort.scene","value":0},{"type":"set","field":"effort.torched","value":0},{"type":"set","field":"scene.expertReroll","value":false},{"type":"set","field":"scene.warriorLuck","value":false}]},{"id":"result","kind":"outcome","result":"'rested'"}]},{"id":"end-scene","tags":["health"],"results":["ended"],"steps":[{"id":"reset","tags":["rest.scene"],"kind":"changes","changes":[{"type":"set","field":"effort.scene","value":0},{"type":"set","field":"effort.torched","value":0},{"type":"set","field":"scene.expertReroll","value":false},{"type":"set","field":"scene.warriorLuck","value":false}]},{"id":"result","kind":"outcome","result":"'ended'"}]},{"id":"use-drug","tags":["health"],"available":"item.category == 'pharmaceutical' && self.quantity > 0","results":["applied","failed"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"fits":"strain.total + item.strain <= strain.max"}}]},{"id":"heal","kind":"roll","when":"flags.fits && has(item.heal)","tags":["healing"],"parts":[{"dice":"item.heal"},{"value":"item.healAddsSkill ? max(0, skills.heal.level) : 0"}]},{"id":"apply","kind":"changes","changes":[{"type":"adjustQuantity","entry":"self","by":-1},{"type":"adjust","field":"strain.current","by":"item.strain","when":"flags.fits && item.strain > 0"},{"type":"adjust","when":"has(steps.heal)","field":"hp.current","by":"steps.heal.total","tags":["healing"]}]},{"id":"result","kind":"outcome","result":"flags.fits ? 'applied' : 'failed'"}]},{"id":"trigger-cyberware","tags":["strain"],"available":"item.activationStrain > 0","results":["triggered","failed"],"steps":[{"id":"start","kind":"branch","cases":[{"when":true,"flags":{"fits":"strain.total + item.activationStrain <= strain.max"}}]},{"id":"strain","kind":"changes","when":"flags.fits","changes":[{"type":"adjust","field":"strain.current","by":"item.activationStrain"}]},{"id":"result","kind":"outcome","result":"flags.fits ? 'triggered' : 'failed'"}]},{"id":"commit-effort","tags":["psionics"],"available":"effort.available > 0","params":{"until":{"type":"enum","values":["scene","day"],"default":"scene"}},"results":["committed"],"steps":[{"id":"source","kind":"branch","cases":[{"when":true,"flags":{"day":"params.until == 'day' && effort.max - effort.scene - effort.day - effort.active > 0"}}]},{"id":"commit","kind":"changes","changes":[{"type":"adjust","field":"effort.scene","by":1,"when":"!flags.day"},{"type":"adjust","field":"effort.day","by":1,"when":"flags.day"}]},{"id":"result","kind":"outcome","result":"'committed'"}]},{"id":"torch","tags":["psionics"],"available":"psionics.access != 'none'","results":["harmless","wisdom","constitution","chosen"],"steps":[{"id":"roll","kind":"roll","tags":["torch"],"parts":[{"dice":"1d6"}]},{"id":"attribute","kind":"choice","when":"steps.roll.total == 5","options":{"values":{"formula":"keysOf('attr')"}},"recommend":"['str', 'dex', 'con', 'int', 'wis', 'cha'][indexOf([attributes.str.score,\n attributes.dex.score, attributes.con.score, attributes.int.score,\n attributes.wis.score, attributes.cha.score], maxList([attributes.str.score,\n attributes.dex.score, attributes.con.score, attributes.int.score,\n attributes.wis.score, attributes.cha.score], x))]"},{"id":"apply","kind":"changes","changes":[{"type":"adjust","field":"effort.torched","by":1},{"type":"adjust","field":"attributes.wis.score","by":-1,"when":"steps.roll.total <= 2"},{"type":"adjust","when":"steps.roll.total == 3 || steps.roll.total == 4","field":"attributes.con.score","by":-1},{"type":"adjust","when":"has(steps.attribute)","field":{"formula":"'attributes.' + steps.attribute.picked + '.score'"},"by":-1}]},{"id":"result","kind":"outcome","result":"steps.roll.total <= 2 ? 'wisdom' : steps.roll.total <= 4 ? 'constitution'\n : steps.roll.total == 5 ? 'chosen' : 'harmless'"}]},{"id":"gain-skill","available":"character.creating","tags":["creation"],"params":{"entry":{"type":"enum","open":true,"required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation","any-combat","any-skill","stab-or-shoot","shoot-or-trade","punch-or-stab","any-psychic","raise-zero","any-stat","physical","mental","none"]},"random":{"type":"boolean","default":false}},"results":["gained"],"steps":[{"id":"start","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"stat":"params.entry in ['any-stat', 'physical', 'mental']","pool":"params.entry == 'any-combat' ? ['punch', 'shoot', 'stab']\n : params.entry == 'stab-or-shoot' ? ['stab', 'shoot']\n : params.entry == 'shoot-or-trade' ? ['shoot', 'trade']\n : params.entry == 'punch-or-stab' ? ['punch', 'stab']\n : params.entry == 'any-psychic' ? keysOf('psychic')\n : params.entry == 'any-skill' ? keysOf('general') + keysOf('combat')\n : params.entry == 'raise-zero'\n ? filterList(keysOf('general') + keysOf('combat'),\n fieldOf('skills.{skill}.level', x) == 0)\n : params.entry in keysOf('skill') ? [params.entry] : []","str":0,"dex":0,"con":0,"int":0,"wis":0,"cha":0}}]},{"id":"candidates","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"open":"flags.stat || params.entry == 'none' ? []\n : countList(flags.pool, fieldOf('skills.{skill}.level', x) < 1) > 0\n ? filterList(flags.pool, fieldOf('skills.{skill}.level', x) < 1)\n : filterList(keysOf('general') + keysOf('combat'),\n fieldOf('skills.{skill}.level', x) < 1)"}}]},{"id":"choose","kind":"choice","when":"size(flags.open) > 1","random":"params.random","recommend":"flags.open[0]","options":{"values":{"formula":"flags.open"}}},{"id":"picked","kind":"branch","cases":[{"when":true,"flags":{"skill":"size(flags.open) == 1 ? flags.open[0] : has(steps.choose) ? steps.choose.picked : ''"}}]},{"id":"gain","kind":"changes","when":"flags.skill != ''","changes":[{"type":"adjust","field":{"formula":"fieldId('skills.{skill}.level', flags.skill)"},"by":1}]},{"id":"technique","kind":"choice","sheet":"proposed","when":"flags.skill in keysOf('psychic') && fieldOf('skills.{psychic}.level', flags.skill) >= 1","random":"params.random","recommend":"options[0]","options":{"content":{"type":"technique","where":"item.discipline == flags.skill && !item.core\n && item.level <= fieldOf('skills.{psychic}.level', flags.skill)\n && countCopies(copy.item == item.id) == 0"}},"changes":[{"type":"addItem","entry":{"item":"picked.id"}}]},{"id":"attribute","kind":"choice","sheet":"proposed","when":"params.entry == 'any-stat'","random":"params.random","recommend":"options[0]","options":{"values":{"formula":"filterList(keysOf('attr'), fieldOf('attributes.{attr}.score', x) < 18)"}},"changes":[{"type":"set","field":{"formula":"'attributes.' + picked.value + '.score'"},"value":"fieldOf('attributes.{attr}.score', picked.value) + 1"}]},{"id":"pair","kind":"choice","sheet":"proposed","when":"params.entry in ['physical', 'mental']","random":"params.random","recommend":"options[0]","options":[{"id":"str2","when":"params.entry == 'physical'","flags":{"str":2}},{"id":"dex2","when":"params.entry == 'physical'","flags":{"dex":2}},{"id":"con2","when":"params.entry == 'physical'","flags":{"con":2}},{"id":"str-dex","when":"params.entry == 'physical'","flags":{"str":1,"dex":1}},{"id":"str-con","when":"params.entry == 'physical'","flags":{"str":1,"con":1}},{"id":"dex-con","when":"params.entry == 'physical'","flags":{"dex":1,"con":1}},{"id":"int2","when":"params.entry == 'mental'","flags":{"int":2}},{"id":"wis2","when":"params.entry == 'mental'","flags":{"wis":2}},{"id":"cha2","when":"params.entry == 'mental'","flags":{"cha":2}},{"id":"int-wis","when":"params.entry == 'mental'","flags":{"int":1,"wis":1}},{"id":"int-cha","when":"params.entry == 'mental'","flags":{"int":1,"cha":1}},{"id":"wis-cha","when":"params.entry == 'mental'","flags":{"wis":1,"cha":1}}]},{"id":"raise","kind":"changes","sheet":"proposed","when":"has(steps.pair)","changes":[{"type":"set","when":"flags.str > 0","field":"attributes.str.score","value":"min(18, attributes.str.score + flags.str)"},{"type":"set","when":"flags.dex > 0","field":"attributes.dex.score","value":"min(18, attributes.dex.score + flags.dex)"},{"type":"set","when":"flags.con > 0","field":"attributes.con.score","value":"min(18, attributes.con.score + flags.con)"},{"type":"set","when":"flags.int > 0","field":"attributes.int.score","value":"min(18, attributes.int.score + flags.int)"},{"type":"set","when":"flags.wis > 0","field":"attributes.wis.score","value":"min(18, attributes.wis.score + flags.wis)"},{"type":"set","when":"flags.cha > 0","field":"attributes.cha.score","value":"min(18, attributes.cha.score + flags.cha)"}]},{"id":"result","kind":"outcome","result":"'gained'","data":{"skill":"flags.skill"}}]},{"id":"gain-focus","listed":false,"tags":["creation","level-up"],"params":{"kind":{"type":"enum","values":["any","combat","noncombat"],"default":"any"},"advancement":{"type":"boolean","default":false},"random":{"type":"boolean","default":false}},"results":["gained"],"steps":[{"id":"focus","kind":"choice","tags":[{"formula":"params.advancement ? 'level-up.focus' : 'creation.focus'"}],"sheet":"proposed","random":"params.random","recommend":"options[0]","options":{"content":{"type":"focus","where":"(params.kind == 'any' || item.kind == params.kind)\n && !('needs-psionics' in item.tags && psionics.access == 'none')\n && !('no-psionics' in item.tags && psionics.access != 'none')\n && (item.repeatable || countCopies(copy.item == item.id\n && copy.state.level >= item.maxLevel) == 0)"}},"changes":[{"type":"adjustState","when":"has(picked.item) && !picked.item.repeatable\n && countCopies(copy.item == picked.id) > 0","copies":{"type":"focus","where":"item.id == steps.focus.picked"},"limit":1,"key":"level","by":1},{"type":"addItem","when":"has(picked.item)\n && (picked.item.repeatable || countCopies(copy.item == picked.id) == 0)","entry":{"item":"picked.id"}}]},{"id":"picks","kind":"choice","sheet":"proposed","when":"size(steps.focus.added) > 0","random":"params.random","options":{"pending":{"entry":"steps.focus.added[0]"}}},{"id":"bonus","kind":"branch","sheet":"proposed","cases":[{"when":true,"flags":{"entry":"size(steps.focus.added) == 0 ? 'none'\n : steps.focus.item.skill != 'chosen' ? steps.focus.item.skill\n : size(steps.picks.picked) > 0 ? steps.picks.picked[0] : 'any-skill'"}}]},{"id":"skill","kind":"action","when":"!params.advancement && flags.entry != 'none'","use":"gain-skill","params":{"entry":"flags.entry","random":"params.random"}},{"id":"points","kind":"action","when":"params.advancement && flags.entry != 'none'","use":"focus-skill-points","params":{"entry":"flags.entry","random":"params.random"}},{"id":"result","kind":"outcome","result":"'gained'"}]},{"id":"starting-gear","available":"character.creating","tags":["creation"],"params":{"random":{"type":"boolean","default":false}},"results":["equipped"],"steps":[{"id":"kit","tags":["creation.kit"],"kind":"choice","sheet":"proposed","random":"params.random","options":{"content":{"type":"kit"}},"prefer":"countCopies(copy.type == 'class' && copy.fields.kit == item.id)","changes":[{"type":"addItem","when":"has(picked.item)","entry":{"id":"kit","item":"picked.id"}}]},{"id":"unpack","kind":"action","when":"has(steps.kit.item)","sheet":"proposed","entry":"'kit'","use":"unpack"},{"id":"unpacked","kind":"changes","when":"has(steps.kit.item)","changes":[{"type":"removeItem","entry":"kit"}]},{"id":"stowGear","kind":"choice","sheet":"proposed","repeat":{"max":20,"min":20},"options":{"copies":{"type":"gear","where":"self.equipped && has(item.enc) && item.enc > 0\n && encumbrance.readied > encumbrance.readiedLimit\n && encumbrance.stowed + item.enc * ceil(self.quantity / item.bundle)\n <= encumbrance.stowedLimit"}},"prefer":"item.enc","changes":[{"type":"equip","entry":"picked","equipped":false}]},{"id":"stowWeapon","kind":"choice","sheet":"proposed","repeat":{"max":20,"min":20},"options":{"copies":{"type":"weapon","where":"self.equipped && has(item.enc) && item.enc > 0\n && countCopies(copy.type == 'weapon' && copy.equipped && has(copy.fields.enc)\n && copy.fields.enc > 0) > 1\n && encumbrance.readied > encumbrance.readiedLimit\n && encumbrance.stowed + item.enc * ceil(self.quantity / item.bundle)\n <= encumbrance.stowedLimit"}},"prefer":"-maxOf(item.damage)","changes":[{"type":"equip","entry":"picked","equipped":false}]},{"id":"stowGearOver","kind":"choice","sheet":"proposed","repeat":{"max":20,"min":20},"options":{"copies":{"type":"gear","where":"self.equipped && has(item.enc) && item.enc > 0\n && encumbrance.readied > encumbrance.readiedLimit"}},"prefer":"item.enc","changes":[{"type":"equip","entry":"picked","equipped":false}]},{"id":"stowShield","kind":"choice","sheet":"proposed","repeat":{"max":20,"min":20},"options":{"copies":{"type":"armor","where":"self.equipped && has(item.enc) && item.enc > 0 && item.shield\n && encumbrance.readied > encumbrance.readiedLimit"}},"prefer":"item.enc","changes":[{"type":"equip","entry":"picked","equipped":false}]},{"id":"stowLastWeapon","kind":"choice","sheet":"proposed","repeat":{"max":20,"min":20},"options":{"copies":{"type":"weapon","where":"self.equipped && has(item.enc) && item.enc > 0\n && encumbrance.readied > encumbrance.readiedLimit"}},"prefer":"-maxOf(item.damage)","changes":[{"type":"equip","entry":"picked","equipped":false}]},{"id":"stowArmor","kind":"choice","sheet":"proposed","repeat":{"max":20,"min":20},"options":{"copies":{"type":"armor","where":"self.equipped && has(item.enc) && item.enc > 0\n && encumbrance.readied > encumbrance.readiedLimit"}},"prefer":"item.enc","changes":[{"type":"equip","entry":"picked","equipped":false}]},{"id":"dropGear","kind":"choice","sheet":"proposed","repeat":{"max":20,"min":20},"options":{"copies":{"type":"gear","where":"!self.equipped && !self.stored && has(item.enc) && item.enc > 0\n && encumbrance.stowed > encumbrance.stowedLimit"}},"prefer":"item.enc * ceil(self.quantity / item.bundle)","changes":[{"type":"removeItem","entry":"picked"}]},{"id":"dropWeapon","kind":"choice","sheet":"proposed","repeat":{"max":20,"min":20},"options":{"copies":{"type":"weapon","where":"!self.equipped && !self.stored && has(item.enc) && item.enc > 0\n && encumbrance.stowed > encumbrance.stowedLimit"}},"prefer":"item.enc * ceil(self.quantity / item.bundle)","changes":[{"type":"removeItem","entry":"picked"}]},{"id":"dropArmor","kind":"choice","sheet":"proposed","repeat":{"max":20,"min":20},"options":{"copies":{"type":"armor","where":"!self.equipped && !self.stored && has(item.enc) && item.enc > 0\n && encumbrance.stowed > encumbrance.stowedLimit"}},"prefer":"item.enc * ceil(self.quantity / item.bundle)","changes":[{"type":"removeItem","entry":"picked"}]},{"id":"result","kind":"outcome","result":"'equipped'"}]},{"id":"sustain-technique","tags":["psionics"],"available":"effort.available > 0","results":["committed"],"steps":[{"id":"held","kind":"branch","cases":[{"when":true,"flags":{"held":"countCopies(copy.id == self.id && copy.type == 'technique') > 0 ? 'copy'\n : countCopies(copy.id == self.id && copy.type == 'focus') > 0 ? 'pick'\n : 'grant'","torched":"effort.max - effort.scene - effort.day - effort.active <= 0"}}]},{"id":"commit","kind":"changes","changes":[{"type":"adjustState","when":"flags.held == 'copy'","entry":"self","key":"committed","by":1},{"type":"adjustState","when":"flags.held == 'pick'","pick":"self","key":"committed","by":1},{"type":"adjustState","when":"flags.held == 'grant'","grant":"self","key":"committed","by":1},{"type":"adjustState","when":"flags.torched && flags.held == 'copy'","entry":"self","key":"torched","by":1},{"type":"adjustState","when":"flags.torched && flags.held == 'pick'","pick":"self","key":"torched","by":1},{"type":"adjustState","when":"flags.torched && flags.held == 'grant'","grant":"self","key":"torched","by":1}]},{"id":"result","kind":"outcome","result":"'committed'"}]},{"id":"release-technique","tags":["psionics"],"available":"self.committed > 0","results":["released"],"steps":[{"id":"held","kind":"branch","cases":[{"when":true,"flags":{"held":"countCopies(copy.id == self.id && copy.type == 'technique') > 0 ? 'copy'\n : countCopies(copy.id == self.id && copy.type == 'focus') > 0 ? 'pick'\n : 'grant'","torched":"effort.max - effort.scene - effort.day - effort.active <= 0"}}]},{"id":"release","kind":"changes","changes":[{"type":"setState","when":"flags.held == 'copy'","entry":"self","key":"committed","value":0},{"type":"setState","when":"flags.held == 'pick'","pick":"self","key":"committed","value":0},{"type":"setState","when":"flags.held == 'grant'","grant":"self","key":"committed","value":0},{"type":"setState","when":"flags.held == 'copy'","entry":"self","key":"torched","value":0},{"type":"setState","when":"flags.held == 'pick'","pick":"self","key":"torched","value":0},{"type":"setState","when":"flags.held == 'grant'","grant":"self","key":"torched","value":0}]},{"id":"result","kind":"outcome","result":"'released'"}]},{"id":"create-character","tags":["creation"],"available":"character.creating && countCopies(copy.type == 'class') == 0","results":["created"],"steps":[{"id":"method","kind":"choice","options":[{"id":"roll"},{"id":"array"}],"recommend":"'roll'"},{"id":"scores","kind":"branch","cases":[{"when":"steps.method.picked == 'roll'","steps":[{"id":"str","kind":"roll","tags":["creation"],"parts":[{"dice":"3d6"}]},{"id":"dex","kind":"roll","tags":["creation"],"parts":[{"dice":"3d6"}]},{"id":"con","kind":"roll","tags":["creation"],"parts":[{"dice":"3d6"}]},{"id":"int","kind":"roll","tags":["creation"],"parts":[{"dice":"3d6"}]},{"id":"wis","kind":"roll","tags":["creation"],"parts":[{"dice":"3d6"}]},{"id":"cha","kind":"roll","tags":["creation"],"parts":[{"dice":"3d6"}]},{"id":"rolled","kind":"changes","changes":[{"type":"set","field":"attributes.str.score","value":"steps.str.total"},{"type":"set","field":"attributes.dex.score","value":"steps.dex.total"},{"type":"set","field":"attributes.con.score","value":"steps.con.total"},{"type":"set","field":"attributes.int.score","value":"steps.int.total"},{"type":"set","field":"attributes.wis.score","value":"steps.wis.total"},{"type":"set","field":"attributes.cha.score","value":"steps.cha.total"}]},{"id":"fourteen","kind":"choice","options":{"values":{"formula":"keysOf('attr') + ['none']"}},"recommend":"minList([steps.str.total, steps.dex.total, steps.con.total, steps.int.total,\n steps.wis.total, steps.cha.total], x) >= 14 ? 'none'\n : ['str', 'dex', 'con', 'int', 'wis', 'cha'][indexOf([steps.str.total,\n steps.dex.total, steps.con.total, steps.int.total, steps.wis.total,\n steps.cha.total], minList([steps.str.total, steps.dex.total,\n steps.con.total, steps.int.total, steps.wis.total, steps.cha.total], x))]","changes":[{"type":"set","when":"picked.id != 'none'","field":{"formula":"'attributes.' + picked.id + '.score'"},"value":14}]}]},{"when":true,"steps":[{"id":"array","kind":"allocate","fields":{"type":"field","where":"'attribute' in item.tags"},"values":[14,12,11,10,9,7],"recommend":{"attributes.str.score":11,"attributes.dex.score":14,"attributes.con.score":12,"attributes.int.score":10,"attributes.wis.score":9,"attributes.cha.score":7}}]}]},{"id":"background","kind":"choice","options":{"content":{"type":"background"}},"recommend":"options[0]","changes":[{"type":"addItem","entry":{"id":"background","item":"picked.id"}}]},{"id":"free","kind":"action","use":"gain-skill","params":{"entry":"steps.background.item.freeSkill"}},{"id":"skills","kind":"choice","options":[{"id":"quick"},{"id":"pick"},{"id":"rolls"}],"recommend":"'quick'"},{"id":"tables","kind":"branch","cases":[{"when":"steps.skills.picked == 'quick'","steps":[{"id":"quick1","kind":"action","use":"gain-skill","params":{"entry":"steps.background.item.quick1"}},{"id":"quick2","kind":"action","use":"gain-skill","params":{"entry":"steps.background.item.quick2"}}]},{"when":"steps.skills.picked == 'pick'","flags":{"learning":"[steps.background.item.learning1, steps.background.item.learning2,\n steps.background.item.learning3, steps.background.item.learning4,\n steps.background.item.learning5, steps.background.item.learning6,\n steps.background.item.learning7, steps.background.item.learning8]"},"steps":[{"id":"learn1","kind":"choice","recommend":"options[0]","options":{"values":{"formula":"filterList(flags.learning, x != 'any-skill')"}}},{"id":"gain1","kind":"action","use":"gain-skill","params":{"entry":"steps.learn1.picked"}},{"id":"learn2","kind":"choice","recommend":"options[0]","options":{"values":{"formula":"filterList(flags.learning, x != 'any-skill')"}}},{"id":"gain2","kind":"action","use":"gain-skill","params":{"entry":"steps.learn2.picked"}}]},{"when":true,"flags":{"growth":"[steps.background.item.growth1, steps.background.item.growth2,\n steps.background.item.growth3, steps.background.item.growth4,\n steps.background.item.growth5, steps.background.item.growth6]","learning":"[steps.background.item.learning1, steps.background.item.learning2,\n steps.background.item.learning3, steps.background.item.learning4,\n steps.background.item.learning5, steps.background.item.learning6,\n steps.background.item.learning7, steps.background.item.learning8]"},"steps":[{"id":"table1","kind":"choice","options":[{"id":"growth"},{"id":"learning"}],"recommend":"'learning'"},{"id":"roll1","kind":"roll","tags":["creation"],"parts":[{"dice":"steps.table1.picked == 'growth' ? 1d6 : 1d8"}]},{"id":"rolled1","kind":"action","use":"gain-skill","params":{"entry":"steps.table1.picked == 'growth' ? flags.growth[steps.roll1.total - 1]\n : flags.learning[steps.roll1.total - 1]"}},{"id":"table2","kind":"choice","options":[{"id":"growth"},{"id":"learning"}],"recommend":"'learning'"},{"id":"roll2","kind":"roll","tags":["creation"],"parts":[{"dice":"steps.table2.picked == 'growth' ? 1d6 : 1d8"}]},{"id":"rolled2","kind":"action","use":"gain-skill","params":{"entry":"steps.table2.picked == 'growth' ? flags.growth[steps.roll2.total - 1]\n : flags.learning[steps.roll2.total - 1]"}},{"id":"table3","kind":"choice","options":[{"id":"growth"},{"id":"learning"}],"recommend":"'learning'"},{"id":"roll3","kind":"roll","tags":["creation"],"parts":[{"dice":"steps.table3.picked == 'growth' ? 1d6 : 1d8"}]},{"id":"rolled3","kind":"action","use":"gain-skill","params":{"entry":"steps.table3.picked == 'growth' ? flags.growth[steps.roll3.total - 1]\n : flags.learning[steps.roll3.total - 1]"}}]}]},{"id":"class","kind":"choice","options":{"content":{"type":"class"}},"recommend":"options[0]","changes":[{"type":"addItem","entry":{"id":"class","item":"picked.id"}}]},{"id":"classPicks","kind":"choice","options":{"pending":{"entry":"'class'"}}},{"id":"psychic1","kind":"action","sheet":"proposed","when":"psionics.access == 'unrestricted'","use":"gain-skill","params":{"entry":"'any-psychic'"}},{"id":"psychic2","kind":"action","sheet":"proposed","when":"psionics.access == 'unrestricted'","use":"gain-skill","params":{"entry":"'any-psychic'"}},{"id":"partialPsychic","kind":"action","sheet":"proposed","when":"psionics.access == 'restricted' && psionics.discipline != 'none'","use":"gain-skill","params":{"entry":"psionics.discipline"}},{"id":"focus1","kind":"action","use":"gain-focus"},{"id":"focus2","kind":"action","sheet":"proposed","when":"class.focus.noncombat > 0","use":"gain-focus","params":{"kind":"'noncombat'"}},{"id":"focus3","kind":"action","sheet":"proposed","when":"class.focus.combat > 0","use":"gain-focus","params":{"kind":"'combat'"}},{"id":"hobby","kind":"action","use":"gain-skill","params":{"entry":"'any-skill'"}},{"id":"hp","kind":"roll","tags":["creation"],"parts":[{"dice":"1d6"}]},{"id":"gear","kind":"action","use":"starting-gear"},{"id":"hitPoints","tags":["creation.finish"],"kind":"changes","sheet":"proposed","changes":[{"type":"set","field":"hp.rolled","value":"max(1, steps.hp.total + attributes.con.mod)"}]},{"id":"finish","kind":"changes","sheet":"proposed","changes":[{"type":"set","field":"hp.current","value":"hp.max"},{"type":"finishCreation"}]},{"id":"result","kind":"outcome","result":"'created'"}]},{"id":"quick-character","tags":["creation"],"available":"character.creating && countCopies(copy.type == 'class') == 0","params":{"random":{"type":"boolean","default":false}},"results":["created"],"steps":[{"id":"style","kind":"choice","random":"params.random","recommend":"filterList([@styles.expert-smart, options[0]], x in options)[0]","options":{"content":{"type":"style"}}},{"id":"setup","kind":"changes","changes":[{"type":"addItem","entry":{"id":"class","item":"steps.style.item.class"}},{"type":"set","field":"attributes.str.score","value":"steps.style.item.str"},{"type":"set","field":"attributes.dex.score","value":"steps.style.item.dex"},{"type":"set","field":"attributes.con.score","value":"steps.style.item.con"},{"type":"set","field":"attributes.int.score","value":"steps.style.item.int"},{"type":"set","field":"attributes.wis.score","value":"steps.style.item.wis"},{"type":"set","field":"attributes.cha.score","value":"steps.style.item.cha"}]},{"id":"background","kind":"choice","random":"params.random","recommend":"options[0]","options":{"content":{"type":"background"}},"changes":[{"type":"addItem","entry":{"id":"background","item":"picked.id"}}]},{"id":"free","kind":"action","use":"gain-skill","params":{"entry":"steps.background.item.freeSkill","random":"params.random"}},{"id":"quick1","kind":"action","use":"gain-skill","params":{"entry":"steps.background.item.quick1","random":"params.random"}},{"id":"quick2","kind":"action","use":"gain-skill","params":{"entry":"steps.background.item.quick2","random":"params.random"}},{"id":"psychic1","kind":"action","sheet":"proposed","when":"psionics.access == 'unrestricted'","use":"gain-skill","params":{"entry":"'any-psychic'","random":"params.random"}},{"id":"psychic2","kind":"action","sheet":"proposed","when":"psionics.access == 'unrestricted'","use":"gain-skill","params":{"entry":"'any-psychic'","random":"params.random"}},{"id":"focusRoll","kind":"choice","when":"has(steps.style.item.table)","random":"params.random","recommend":"options[0]","options":[{"id":"row1","flags":{"row":0}},{"id":"row2","flags":{"row":1}},{"id":"row3","flags":{"row":2}},{"id":"row4","flags":{"row":3}},{"id":"row5","flags":{"row":4}},{"id":"row6","flags":{"row":5}}]},{"id":"foci","kind":"branch","cases":[{"when":"!has(steps.style.item.table)","flags":{"foci":"[]"}},{"when":true,"flags":{"foci":"[[[['specialist', 'fix', 'fix'], ['die-hard', 'none', '']], [['hacker', 'program', ''], ['tinker', 'fix', '']], [['specialist', 'know', 'know'], ['healer', 'heal', '']], [['specialist', 'fix', 'fix'], ['tinker', 'fix', '']], [['healer', 'heal', ''], ['ironhide', 'none', '']], [['specialist', 'fix', 'fix'], ['hacker', 'program', '']]], [[['diplomat', 'talk', ''], ['connected', 'connect', '']], [['specialist', 'talk', 'talk'], ['die-hard', 'none', '']], [['diplomat', 'talk', ''], ['alert', 'notice', '']], [['specialist', 'lead', 'lead'], ['authority', 'lead', '']], [['healer', 'heal', ''], ['specialist', 'talk', 'talk']], [['specialist', 'notice', 'notice'], ['specialist', 'talk', 'talk']]], [[['specialist', 'pilot', 'pilot'], ['starfarer', 'pilot', '']], [['healer', 'heal', ''], ['die-hard', 'none', '']], [['tinker', 'fix', ''], ['gunslinger', 'shoot', '']], [['specialist', 'sneak', 'sneak'], ['assassin', 'sneak', '']], [['specialist', 'sneak', 'sneak'], ['specialist', 'exert', 'exert']], [['specialist', 'perform', 'perform'], ['specialist', 'sneak', 'sneak']]], [[['savage-fray', 'stab', ''], ['shocking-assault', 'punch-or-stab', '']], [['assassin', 'sneak', ''], ['specialist', 'sneak', 'sneak']], [['armsman', 'stab', ''], ['close-combatant', 'any-combat', '']], [['close-combatant', 'any-combat', ''], ['savage-fray', 'stab', '']], [['ironhide', 'none', ''], ['die-hard', 'none', '']], [['unarmed-combatant', 'punch', ''], ['close-combatant', 'any-combat', '']]], [[['gunslinger', 'shoot', ''], ['close-combatant', 'any-combat', '']], [['sniper', 'shoot', ''], ['specialist', 'sneak', 'sneak']], [['assassin', 'sneak', ''], ['specialist', 'sneak', 'sneak']], [['ironhide', 'none', ''], ['die-hard', 'none', '']], [['gunslinger', 'shoot', ''], ['tinker', 'fix', '']], [['close-combatant', 'any-combat', ''], ['alert', 'notice', '']]], [[['gunslinger', 'shoot', ''], ['authority', 'lead', '']], [['ironhide', 'none', ''], ['connected', 'connect', '']], [['armsman', 'stab', ''], ['specialist', 'lead', 'lead']], [['gunslinger', 'shoot', ''], ['specialist', 'talk', 'talk']], [['assassin', 'sneak', ''], ['die-hard', 'none', '']], [['close-combatant', 'any-combat', ''], ['henchkeeper', 'lead', '']]], [[['alert', 'notice', '']], [['healer', 'heal', '']], [['specialist', 'notice', 'notice']], [['psychic-training', 'any-psychic', '']], [['savage-fray', 'stab', '']], [['hacker', 'program', '']]], [[['armsman', 'stab', '']], [['ironhide', 'none', '']], [['die-hard', 'none', '']], [['psychic-training', 'any-psychic', '']], [['healer', 'heal', '']], [['unarmed-combatant', 'punch', '']]]][steps.style.item.table][flags.row]"}}]},{"id":"focus1","kind":"changes","when":"size(flags.foci) > 0","changes":[{"type":"addItem","entry":{"item":"'foci.' + flags.foci[0][0]"}}]},{"id":"focusSkill1","kind":"action","when":"size(flags.foci) > 0","use":"gain-skill","params":{"entry":"flags.foci[0][0] == 'specialist' ? flags.foci[0][2] : flags.foci[0][1]","random":"params.random"}},{"id":"focusPicks1","kind":"choice","when":"size(flags.foci) > 0","options":{"pending":{"entry":"steps.focus1.added[0]"}},"recommend":"choice.id == 'skill' ? flags.foci[0][2]\n : choice.id == 'discipline' && has(steps.focusSkill1.data)\n && steps.focusSkill1.data.skill in options ? steps.focusSkill1.data.skill\n : options[0]"},{"id":"focus2","kind":"changes","when":"size(flags.foci) > 1","changes":[{"type":"addItem","entry":{"item":"'foci.' + flags.foci[1][0]"}}]},{"id":"focusSkill2","kind":"action","when":"size(flags.foci) > 1","use":"gain-skill","params":{"entry":"flags.foci[1][0] == 'specialist' ? flags.foci[1][2] : flags.foci[1][1]","random":"params.random"}},{"id":"focusPicks2","kind":"choice","when":"size(flags.foci) > 1","options":{"pending":{"entry":"steps.focus2.added[0]"}},"recommend":"choice.id == 'skill' ? flags.foci[1][2]\n : choice.id == 'discipline' && has(steps.focusSkill2.data)\n && steps.focusSkill2.data.skill in options ? steps.focusSkill2.data.skill\n : options[0]"},{"id":"anyFocus","kind":"action","when":"!has(steps.style.item.table)","use":"gain-focus","params":{"random":"params.random"}},{"id":"noncombatFocus","kind":"action","sheet":"proposed","when":"!has(steps.style.item.table) && class.focus.noncombat > 0","use":"gain-focus","params":{"kind":"'noncombat'","random":"params.random"}},{"id":"combatFocus","kind":"action","sheet":"proposed","when":"!has(steps.style.item.table) && class.focus.combat > 0","use":"gain-focus","params":{"kind":"'combat'","random":"params.random"}},{"id":"bonus","kind":"choice","random":"params.random","recommend":"options[0]","options":{"values":{"formula":"sortList(keysOf('general') + keysOf('combat')) + ['raise-zero']"}}},{"id":"bonusSkill","kind":"action","use":"gain-skill","params":{"entry":"steps.bonus.picked","random":"params.random"}},{"id":"hp","kind":"roll","tags":["creation"],"parts":[{"dice":"1d6"}]},{"id":"gear","kind":"action","use":"starting-gear","params":{"random":"params.random"}},{"id":"hitPoints","tags":["creation.finish"],"kind":"changes","sheet":"proposed","changes":[{"type":"set","field":"hp.rolled","value":"max(1, steps.hp.total + attributes.con.mod)"}]},{"id":"finish","kind":"changes","sheet":"proposed","changes":[{"type":"set","field":"hp.current","value":"hp.max"},{"type":"finishCreation"}]},{"id":"result","kind":"outcome","result":"'created'"}]}],"followUps":[{"id":"level-up","while":"!character.creating && level < 10 && xp.current >= xp.next","action":"level-up"}],"families":{"growthRow":[1,2,3,4,5,6],"learningRow":[1,2,3,4,5,6,7,8],"attr":["str","dex","con","int","wis","cha"],"skill":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation"],"general":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","sneak","survive","talk","trade","work"],"combat":["punch","shoot","stab"],"psychic":["biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation"]},"contentTypes":{"class":{"copies":{"max":1},"fields":{"kit":{"type":"id","of":"kit"}}},"partialClass":{"grantOnly":true,"copies":{"max":0}},"style":{"grantOnly":true,"carried":false,"copies":{"max":0},"fields":{"class":{"type":"id","of":"class","required":true},"str":{"type":"integer","required":true},"dex":{"type":"integer","required":true},"con":{"type":"integer","required":true},"int":{"type":"integer","required":true},"wis":{"type":"integer","required":true},"cha":{"type":"integer","required":true},"table":{"type":"integer","min":0,"max":7}}},"background":{"copies":{"max":1},"fields":{"freeSkill":{"type":"enum","open":true,"required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"]},"quick1":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"quick2":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"growth1":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"growth2":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"growth3":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"growth4":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"growth5":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"growth6":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"learning1":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"learning2":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"learning3":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"learning4":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"learning5":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"learning6":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"learning7":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true},"learning8":{"type":"enum","required":true,"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","any-skill","stab-or-shoot","shoot-or-trade","any-stat","physical","mental"],"open":true}}},"focus":{"fields":{"kind":{"type":"enum","values":["combat","noncombat","psychic","special"],"required":true},"skill":{"type":"enum","open":true,"default":"none","values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","punch","shoot","sneak","stab","survive","talk","trade","work","any-combat","punch-or-stab","chosen","none"]},"maxLevel":{"type":"integer","default":2,"min":1},"repeatable":{"type":"boolean","default":false}},"state":{"level":{"type":"integer","default":1,"min":1,"max":"item.maxLevel"}}},"kit":{"carried":false},"weapon":{"carried":true,"equippable":true,"fields":{"damage":{"type":"dice","required":true},"skill":{"type":"enum","values":["punch","shoot","stab"],"required":true,"open":true},"attribute":{"type":"enum","values":["str","dex","str-dex"]},"range":{"type":"integer","min":0},"maxRange":{"type":"integer","min":0},"magazine":{"type":"integer","min":1},"ammo":{"type":"enum","values":["rounds","cell-a","cell-b","missile"],"open":true},"shock":{"type":"integer","min":0},"shockAc":{"type":"integer","min":0},"burst":{"type":"boolean","default":false},"suppress":{"type":"boolean","default":false},"energy":{"type":"boolean","default":false},"advanced":{"type":"boolean","default":false},"heavy":{"type":"boolean","default":false},"thrown":{"type":"boolean","default":false},"nonlethal":{"type":"boolean","default":false},"fixedAc":{"type":"integer"},"reloadActions":{"type":"integer","default":1,"min":1},"cost":{"type":"integer","min":0},"enc":{"type":"integer","min":0},"bundle":{"type":"integer","default":1,"min":1},"techLevel":{"type":"integer","min":0,"max":6}},"state":{"stored":{"type":"boolean","default":false},"loaded":{"type":"integer","min":0,"max":"has(item.magazine) ? item.magazine : 0","default":"has(item.magazine) ? item.magazine : 0"}},"actions":[{"use":"attack"},{"use":"reload"}]},"armor":{"carried":true,"equippable":true,"fields":{"ac":{"type":"integer","required":true,"min":10},"category":{"type":"enum","values":["primitive","street","combat","powered"],"required":true,"open":true},"shield":{"type":"boolean","default":false},"strength":{"type":"integer","default":0,"min":0},"cost":{"type":"integer","min":0},"enc":{"type":"integer","min":0},"bundle":{"type":"integer","default":1,"min":1},"techLevel":{"type":"integer","min":0,"max":6}},"state":{"stored":{"type":"boolean","default":false}},"effects":[{"target":"encumbrance.strength","op":"add","value":"item.strength","when":"self.equipped && item.strength > 0"}]},"gear":{"carried":true,"equippable":true,"fields":{"category":{"type":"enum","required":true,"open":true,"values":["ammo-power","communications","computing","field","pharmaceutical","tools-medical"]},"kind":{"type":"enum","values":["rounds","cell-a","cell-b","missile"],"open":true},"healSkill":{"type":"integer","min":0},"strain":{"type":"integer","default":0,"min":0},"heal":{"type":"dice"},"healAddsSkill":{"type":"boolean","default":false},"cost":{"type":"integer","min":0},"enc":{"type":"integer","min":0},"bundle":{"type":"integer","default":1,"min":1},"techLevel":{"type":"integer","min":0,"max":6}},"state":{"stored":{"type":"boolean","default":false}},"actions":[{"use":"use-drug"}]},"cyberware":{"fields":{"strain":{"type":"integer","required":true,"min":0},"activationStrain":{"type":"integer","default":0,"min":0},"cost":{"type":"integer","min":0},"techLevel":{"type":"integer","min":0,"max":6}},"actions":[{"use":"trigger-cyberware"}]},"technique":{"copies":{"perItem":1},"fields":{"discipline":{"type":"enum","open":true,"required":true,"values":["biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation"]},"level":{"type":"integer","required":true,"min":0,"max":4},"core":{"type":"boolean","default":false}},"state":{"committed":{"type":"integer","default":0,"min":0},"torched":{"type":"integer","default":0,"min":0}},"effects":[{"target":"effort.active","op":"add","value":"self.committed"}],"actions":[{"use":"sustain-technique"},{"use":"release-technique"}]}},"constraints":[{"id":"creation-class-background","check":"!character.creating || (countCopies(copy.type == 'class') > 0\n && countCopies(copy.type == 'background') > 0)"},{"id":"creation-skill-cap","check":"!character.creating || maxFields(f.value, 'skill' in f.tags) <= 1","data":{"limit":1}},{"id":"focus-once","copies":{"type":"focus","where":"!item.repeatable"},"check":"countCopies(copy.item == item.id) <= 1"},{"id":"psychic-skills","check":"psionics.access == 'unrestricted'\n || sumFields(f.value >= 0 && (psionics.access == 'none' || psionics.discipline == 'none'\n || f.id != fieldId('skills.{psychic}.level', psionics.discipline)) ? 1 : 0,\n 'skill.psychic' in f.tags) == 0"},{"id":"effort-overcommitted","check":"effort.max + effort.torched - effort.scene - effort.day - effort.active >= 0"},{"id":"creation-focus","check":"!character.creating || countCopies(copy.type == 'focus') > 0"}],"situational":[{"id":"burst","type":"boolean","default":false,"rolls":["attack"]},{"id":"hacking","type":"boolean","default":false,"rolls":["check.program"]},{"id":"negotiation","type":"boolean","default":false,"rolls":["check"]},{"id":"executionShot","type":"boolean","default":false,"rolls":["check.shoot"]},{"id":"telepathy","type":"boolean","default":false,"rolls":["save.mental"]}],"resultBands":{"check":[{"id":"success","when":"flags.difficulty >= 0 && roll.total >= flags.difficulty","success":true},{"id":"failure","when":"flags.difficulty >= 0"},{"id":"rolled","when":true}],"save":[{"id":"success","when":"roll.faces[0] == 20 || (roll.faces[0] != 1 && roll.total >= flags.target)","success":true},{"id":"failure","when":true}],"attack":[{"id":"hit","when":"flags.ac >= 0 && roll.total >= flags.ac","success":true},{"id":"miss","when":"flags.ac >= 0"},{"id":"rolled","when":true}]},"settings":{"rounding":"floor","rollModifiers":{"advantage":"cancel"}},"creation":[{"id":"standard","action":"create-character"},{"id":"quick","action":"quick-character"},{"id":"random","action":"quick-character","params":{"random":true},"random":true}],"standardCopies":[{"type":"weapon","where":"'unarmed' in item.tags"}],"display":{"groups":[{"id":"attributes","priority":0,"members":{"type":"field","where":"'attribute' in item.tags"}},{"id":"saves","priority":0,"members":{"type":"field","where":"'save' in item.tags"}},{"id":"skills","priority":0,"members":{"type":"field","where":"'skill.general' in item.tags || 'skill.combat' in item.tags"}},{"id":"psychic-skills","priority":1,"showWhen":"psionics.access != 'none'","members":{"type":"field","where":"'skill.psychic' in item.tags"}},{"id":"condition","priority":0},{"id":"combat","priority":0},{"id":"psionics","priority":1,"showWhen":"psionics.access != 'none' || effort.max > 0"},{"id":"advancement","priority":2},{"id":"carrying","priority":2},{"id":"attacks","kind":"actions","priority":0,"members":{"type":"action","where":"'attack' in item.tags || 'combat' in item.tags"}},{"id":"checks","kind":"actions","priority":0,"members":{"type":"action","where":"'check' in item.tags || 'save' in item.tags || 'initiative' in item.tags"}},{"id":"health-actions","kind":"actions","priority":1,"members":{"type":"action","where":"'health' in item.tags || 'strain' in item.tags"}},{"id":"psionic-actions","kind":"actions","priority":1,"members":{"type":"action","where":"'psionics' in item.tags"}},{"id":"advancement-actions","kind":"actions","priority":2,"visibility":"background","members":{"type":"action","where":"'level-up' in item.tags || 'creation' in item.tags"}},{"id":"class","kind":"content","priority":0,"members":{"type":"class"}},{"id":"background","kind":"content","priority":0,"members":{"type":"background"}},{"id":"foci","kind":"content","priority":0,"members":{"type":"focus"}},{"id":"techniques","kind":"content","priority":1,"showWhen":"hasChoice('technique') || psionics.access != 'none' || effort.max > 0","members":{"type":"technique"},"sectionBy":"item.level"},{"id":"weapons","kind":"content","priority":1,"members":{"type":"weapon"}},{"id":"armor","kind":"content","priority":1,"members":{"type":"armor"}},{"id":"gear","kind":"content","priority":2,"members":{"type":"gear"},"sectionBy":"item.category"},{"id":"cyberware","kind":"content","priority":2,"members":{"type":"cyberware"}}],"fields":{"level":{"groups":["advancement"],"priority":0,"visibility":"primary"},"xp.current":{"groups":["advancement"],"priority":0,"with":[{"field":"xp.next","as":"max"}]},"xp.next":{"groups":["advancement"],"priority":1},"skillPoints.general":{"groups":["advancement"],"priority":1},"skillPoints.expert":{"groups":["advancement"],"priority":1,"showWhen":"class.expertPoints > 0"},"skillPoints.psychic":{"groups":["advancement"],"priority":1,"showWhen":"psionics.access != 'none'"},"skillPoints.training":{"groups":["advancement"],"priority":1,"showWhen":"skillPoints.training > 0"},"attributes.boosts":{"groups":["advancement"],"priority":2},"skills.administer.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.administer.credit > 0"},"skills.connect.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.connect.credit > 0"},"skills.exert.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.exert.credit > 0"},"skills.fix.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.fix.credit > 0"},"skills.heal.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.heal.credit > 0"},"skills.know.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.know.credit > 0"},"skills.lead.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.lead.credit > 0"},"skills.notice.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.notice.credit > 0"},"skills.perform.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.perform.credit > 0"},"skills.pilot.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.pilot.credit > 0"},"skills.program.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.program.credit > 0"},"skills.punch.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.punch.credit > 0"},"skills.shoot.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.shoot.credit > 0"},"skills.sneak.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.sneak.credit > 0"},"skills.stab.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.stab.credit > 0"},"skills.survive.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.survive.credit > 0"},"skills.talk.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.talk.credit > 0"},"skills.trade.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.trade.credit > 0"},"skills.work.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.work.credit > 0"},"skills.biopsionics.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.biopsionics.credit > 0"},"skills.metapsionics.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.metapsionics.credit > 0"},"skills.precognition.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.precognition.credit > 0"},"skills.telekinesis.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.telekinesis.credit > 0"},"skills.telepathy.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.telepathy.credit > 0"},"skills.teleportation.credit":{"groups":["advancement"],"priority":3,"showWhen":"skills.teleportation.credit > 0"},"hp.current":{"groups":["condition"],"priority":0,"visibility":"primary","with":[{"field":"hp.max","as":"max"}],"rolls":[{"action":"take-damage"},{"action":"heal"}]},"hp.max":{"groups":["condition"],"priority":1},"hp.rolled":{"groups":["condition"],"priority":2,"visibility":"background"},"hp.perLevel":{"hidden":true},"strain.current":{"groups":["condition"],"priority":0,"with":[{"field":"strain.max","as":"max"},{"field":"strain.permanent","as":"detail"}]},"strain.total":{"groups":["condition"],"priority":1},"strain.permanent":{"groups":["condition"],"priority":1},"strain.max":{"groups":["condition"],"priority":1},"scene.expertReroll":{"groups":["condition"],"priority":1,"showWhen":"countCopies(copy.item == @classes.expert) > 0","input":{"widget":"checkbox"}},"scene.warriorLuck":{"groups":["condition"],"priority":1,"showWhen":"countCopies(copy.item == @classes.warrior) > 0","input":{"widget":"checkbox"}},"ac.value":{"groups":["combat"],"priority":0,"visibility":"primary"},"ac.advanced":{"groups":["combat"],"priority":1},"combat.attackBonus":{"groups":["combat"],"priority":0,"visibility":"primary"},"credits.current":{"groups":["carrying"],"priority":0},"encumbrance.readied":{"groups":["carrying"],"priority":0,"with":[{"field":"encumbrance.readiedLimit","as":"max"}]},"encumbrance.stowed":{"groups":["carrying"],"priority":0,"with":[{"field":"encumbrance.stowedLimit","as":"max"}]},"encumbrance.level":{"groups":["carrying"],"priority":1},"movement":{"groups":["carrying"],"priority":1},"henchmen.max":{"groups":["carrying"],"priority":2,"showWhen":"henchmen.max > 0"},"effort.available":{"groups":["psionics"],"priority":0,"with":[{"field":"effort.max","as":"max"}],"rolls":[{"action":"commit-effort"}]},"effort.max":{"groups":["psionics"],"priority":1},"effort.scene":{"groups":["psionics"],"priority":1},"effort.day":{"groups":["psionics"],"priority":1},"effort.active":{"groups":["psionics"],"priority":1,"showWhen":"effort.active > 0"},"effort.torched":{"groups":["psionics"],"priority":2},"psionics.access":{"groups":["psionics"],"priority":1},"psionics.discipline":{"groups":["psionics"],"priority":1,"showWhen":"psionics.discipline != 'none'"},"psionics.training":{"hidden":true},"effort.bonus":{"hidden":true},"effort.wild":{"hidden":true},"class.focus.combat":{"hidden":true},"class.focus.noncombat":{"hidden":true},"class.expertPoints":{"hidden":true},"ac.armor":{"hidden":true},"ac.innate":{"hidden":true},"ac.shield":{"hidden":true},"damage.melee":{"hidden":true},"damage.ranged":{"hidden":true},"shock.bonus":{"hidden":true},"shock.anyAc":{"hidden":true},"miss.melee":{"hidden":true},"miss.ranged":{"hidden":true},"miss.punch":{"hidden":true},"combat.meleeAdvanced":{"hidden":true},"combat.punchAdvanced":{"hidden":true},"encumbrance.strength":{"hidden":true},"attributes.str.score":{"with":[{"field":"attributes.str.mod","as":"detail"}]},"attributes.dex.score":{"with":[{"field":"attributes.dex.mod","as":"detail"}]},"attributes.con.score":{"with":[{"field":"attributes.con.mod","as":"detail"}]},"attributes.int.score":{"with":[{"field":"attributes.int.mod","as":"detail"}]},"attributes.wis.score":{"with":[{"field":"attributes.wis.mod","as":"detail"}]},"attributes.cha.score":{"with":[{"field":"attributes.cha.mod","as":"detail"}]},"skills.administer.level":{"rolls":[{"action":"skill-check","params":{"skill":"administer"}}]},"skills.connect.level":{"rolls":[{"action":"skill-check","params":{"skill":"connect"}}]},"skills.exert.level":{"rolls":[{"action":"skill-check","params":{"skill":"exert"}}]},"skills.fix.level":{"rolls":[{"action":"skill-check","params":{"skill":"fix"}}]},"skills.heal.level":{"rolls":[{"action":"skill-check","params":{"skill":"heal"}}]},"skills.know.level":{"rolls":[{"action":"skill-check","params":{"skill":"know"}}]},"skills.lead.level":{"rolls":[{"action":"skill-check","params":{"skill":"lead"}}]},"skills.notice.level":{"rolls":[{"action":"skill-check","params":{"skill":"notice"}}]},"skills.perform.level":{"rolls":[{"action":"skill-check","params":{"skill":"perform"}}]},"skills.pilot.level":{"rolls":[{"action":"skill-check","params":{"skill":"pilot"}}]},"skills.program.level":{"rolls":[{"action":"skill-check","params":{"skill":"program"}}]},"skills.sneak.level":{"rolls":[{"action":"skill-check","params":{"skill":"sneak"}}]},"skills.survive.level":{"rolls":[{"action":"skill-check","params":{"skill":"survive"}}]},"skills.talk.level":{"rolls":[{"action":"skill-check","params":{"skill":"talk"}}]},"skills.trade.level":{"rolls":[{"action":"skill-check","params":{"skill":"trade"}}]},"skills.work.level":{"rolls":[{"action":"skill-check","params":{"skill":"work"}}]},"skills.punch.level":{"rolls":[{"action":"skill-check","params":{"skill":"punch"}}]},"skills.shoot.level":{"rolls":[{"action":"skill-check","params":{"skill":"shoot"}}]},"skills.stab.level":{"rolls":[{"action":"skill-check","params":{"skill":"stab"}}]},"skills.biopsionics.level":{"rolls":[{"action":"skill-check","params":{"skill":"biopsionics"}}]},"skills.metapsionics.level":{"rolls":[{"action":"skill-check","params":{"skill":"metapsionics"}}]},"skills.precognition.level":{"rolls":[{"action":"skill-check","params":{"skill":"precognition"}}]},"skills.telekinesis.level":{"rolls":[{"action":"skill-check","params":{"skill":"telekinesis"}}]},"skills.telepathy.level":{"rolls":[{"action":"skill-check","params":{"skill":"telepathy"}}]},"skills.teleportation.level":{"rolls":[{"action":"skill-check","params":{"skill":"teleportation"}}]},"skills.administer.dice":{"hidden":true},"skills.connect.dice":{"hidden":true},"skills.exert.dice":{"hidden":true},"skills.fix.dice":{"hidden":true},"skills.heal.dice":{"hidden":true},"skills.know.dice":{"hidden":true},"skills.lead.dice":{"hidden":true},"skills.notice.dice":{"hidden":true},"skills.perform.dice":{"hidden":true},"skills.pilot.dice":{"hidden":true},"skills.program.dice":{"hidden":true},"skills.sneak.dice":{"hidden":true},"skills.survive.dice":{"hidden":true},"skills.talk.dice":{"hidden":true},"skills.trade.dice":{"hidden":true},"skills.work.dice":{"hidden":true},"skills.punch.dice":{"hidden":true},"skills.shoot.dice":{"hidden":true},"skills.stab.dice":{"hidden":true},"skills.biopsionics.dice":{"hidden":true},"skills.metapsionics.dice":{"hidden":true},"skills.precognition.dice":{"hidden":true},"skills.telekinesis.dice":{"hidden":true},"skills.telepathy.dice":{"hidden":true},"skills.teleportation.dice":{"hidden":true},"saves.physical":{"rolls":[{"action":"saving-throw","params":{"save":"physical"}}]},"saves.evasion":{"rolls":[{"action":"saving-throw","params":{"save":"evasion"}}]},"saves.mental":{"rolls":[{"action":"saving-throw","params":{"save":"mental"}}]}},"types":{"class":{"quantity":{"hidden":true}},"background":{"quantity":{"hidden":true}},"focus":{"quantity":{"hidden":true},"state":{"level":{"priority":0}}},"technique":{"quantity":{"hidden":true},"state":{"committed":{"priority":0,"showWhen":"self.committed > 0"},"torched":{"hidden":true}}},"cyberware":{"quantity":{"hidden":true}},"weapon":{"state":{"loaded":{"priority":0,"input":{"widget":"track"},"showWhen":"has(item.magazine)"}},"fields":{"damage":{"format":"dice"}}}}},"effects":[{"target":{"rolls":["attack","damage"]},"op":"rollModifier","value":{"kind":"advantage","of":"roll"},"when":"has(participants.target) && size(participants.target) > 0\n && participants.target[0].psionics.cursedLuck"},{"target":{"steps":["rest.scene","rest.night"]},"op":"changes","value":{"changes":[{"type":"adjustState","when":"countCopies(copy.type == 'technique' && copy.state.torched > 0) > 0","copies":{"type":"technique","where":"self.torched > 0"},"key":"committed","by":"-self.torched"},{"type":"setState","when":"countCopies(copy.type == 'technique' && copy.state.torched > 0) > 0","copies":{"type":"technique","where":"self.torched > 0"},"key":"torched","value":0},{"type":"adjustState","when":"countPicks(pick.type == 'technique' && pick.state.torched > 0) > 0","picks":{"where":"self.torched > 0"},"key":"committed","by":"-self.torched"},{"type":"setState","when":"countPicks(pick.type == 'technique' && pick.state.torched > 0) > 0","picks":{"where":"self.torched > 0"},"key":"torched","value":0},{"type":"adjustState","when":"countGrants(grant.type == 'technique' && grant.state.torched > 0) > 0","grants":{"where":"self.torched > 0"},"key":"committed","by":"-self.torched"},{"type":"setState","when":"countGrants(grant.type == 'technique' && grant.state.torched > 0) > 0","grants":{"where":"self.torched > 0"},"key":"torched","value":0}]}}],"tags":["attribute","attr-mod","skill","skill.general","skill.combat","skill.psychic","save","save.physical","save.evasion","save.mental","ac","check","check.social","check.administer","check.connect","check.exert","check.fix","check.heal","check.know","check.lead","check.notice","check.perform","check.pilot","check.program","check.punch","check.shoot","check.sneak","check.stab","check.survive","check.talk","check.trade","check.work","check.biopsionics","check.metapsionics","check.precognition","check.telekinesis","check.telepathy","check.teleportation","initiative","attack","attack.punch","attack.shoot","attack.stab","damage","damage.nonlethal","healing","health","combat","psionics","needs-psionics","no-psionics","strain","torch","creation","creation.focus","creation.kit","creation.finish","level-up.focus","level-up.level","rest.night","rest.scene","level-up","failed-check","missed-attack","melee","ranged","heavy","unarmed"]},"content":[{"id":"armor.armored-undersuit","type":"armor","fields":{"ac":13,"category":"street","cost":600,"enc":0,"techLevel":4}},{"id":"armor.armored-vacc-suit","type":"armor","fields":{"ac":13,"category":"street","cost":400,"enc":2,"techLevel":4}},{"id":"armor.assault-suit","type":"armor","fields":{"ac":18,"category":"powered","cost":10000,"enc":2,"techLevel":4}},{"id":"armor.combat-field-uniform","type":"armor","fields":{"ac":16,"category":"combat","cost":1000,"enc":1,"techLevel":4}},{"id":"armor.deflector-array","type":"armor","fields":{"ac":18,"category":"street","cost":30000,"enc":0,"techLevel":5}},{"id":"armor.field-emitter-panoply","type":"armor","fields":{"ac":20,"category":"powered","strength":4,"cost":40000,"enc":1,"techLevel":5}},{"id":"armor.force-pavis","type":"armor","fields":{"ac":15,"category":"combat","shield":true,"cost":10000,"enc":1,"techLevel":5}},{"id":"armor.heavy-primitive-armor","type":"armor","fields":{"ac":17,"category":"primitive","cost":100,"enc":2,"techLevel":1}},{"id":"armor.icarus-harness","type":"armor","fields":{"ac":16,"category":"combat","cost":8000,"enc":1,"techLevel":4}},{"id":"armor.light-primitive-armor","type":"armor","fields":{"ac":13,"category":"primitive","cost":10,"enc":1,"techLevel":0}},{"id":"armor.medium-primitive-armor","type":"armor","fields":{"ac":15,"category":"primitive","cost":50,"enc":1,"techLevel":1}},{"id":"armor.secure-clothing","type":"armor","fields":{"ac":13,"category":"street","cost":300,"enc":1,"techLevel":4}},{"id":"armor.security-armor","type":"armor","fields":{"ac":14,"category":"combat","cost":700,"enc":1,"techLevel":4}},{"id":"armor.shield","type":"armor","fields":{"ac":13,"category":"primitive","shield":true,"cost":10,"enc":2,"techLevel":0}},{"id":"armor.storm-armor","type":"armor","fields":{"ac":19,"category":"powered","strength":4,"cost":20000,"enc":2,"techLevel":5}},{"id":"armor.vestimentum","type":"armor","fields":{"ac":18,"category":"powered","cost":15000,"enc":0,"techLevel":5}},{"id":"armor.warpaint","type":"armor","fields":{"ac":12,"category":"street","cost":300,"enc":0,"techLevel":4}},{"id":"armor.woven-body-armor","type":"armor","fields":{"ac":15,"category":"combat","cost":400,"enc":2,"techLevel":3}},{"id":"backgrounds.barbarian","type":"background","fields":{"freeSkill":"survive","quick1":"notice","quick2":"any-combat","growth1":"any-stat","growth2":"physical","growth3":"physical","growth4":"mental","growth5":"exert","growth6":"any-skill","learning1":"any-combat","learning2":"connect","learning3":"exert","learning4":"lead","learning5":"notice","learning6":"punch","learning7":"sneak","learning8":"survive"}},{"id":"backgrounds.clergy","type":"background","fields":{"freeSkill":"talk","quick1":"perform","quick2":"know","growth1":"any-stat","growth2":"mental","growth3":"physical","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"administer","learning2":"connect","learning3":"know","learning4":"lead","learning5":"notice","learning6":"perform","learning7":"talk","learning8":"talk"}},{"id":"backgrounds.courtesan","type":"background","fields":{"freeSkill":"perform","quick1":"notice","quick2":"connect","growth1":"any-stat","growth2":"mental","growth3":"mental","growth4":"physical","growth5":"connect","growth6":"any-skill","learning1":"any-combat","learning2":"connect","learning3":"exert","learning4":"notice","learning5":"perform","learning6":"survive","learning7":"talk","learning8":"trade"}},{"id":"backgrounds.criminal","type":"background","fields":{"freeSkill":"sneak","quick1":"connect","quick2":"talk","growth1":"any-stat","growth2":"mental","growth3":"physical","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"administer","learning2":"any-combat","learning3":"connect","learning4":"notice","learning5":"program","learning6":"sneak","learning7":"talk","learning8":"trade"}},{"id":"backgrounds.dilettante","type":"background","fields":{"freeSkill":"connect","quick1":"know","quick2":"talk","growth1":"any-stat","growth2":"any-stat","growth3":"any-stat","growth4":"any-stat","growth5":"connect","growth6":"any-skill","learning1":"any-skill","learning2":"any-skill","learning3":"connect","learning4":"know","learning5":"perform","learning6":"pilot","learning7":"talk","learning8":"trade"}},{"id":"backgrounds.entertainer","type":"background","fields":{"freeSkill":"perform","quick1":"talk","quick2":"connect","growth1":"any-stat","growth2":"mental","growth3":"mental","growth4":"physical","growth5":"connect","growth6":"any-skill","learning1":"any-combat","learning2":"connect","learning3":"exert","learning4":"notice","learning5":"perform","learning6":"perform","learning7":"sneak","learning8":"talk"}},{"id":"backgrounds.merchant","type":"background","fields":{"freeSkill":"trade","quick1":"talk","quick2":"connect","growth1":"any-stat","growth2":"mental","growth3":"mental","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"administer","learning2":"any-combat","learning3":"connect","learning4":"fix","learning5":"know","learning6":"notice","learning7":"trade","learning8":"talk"}},{"id":"backgrounds.noble","type":"background","fields":{"freeSkill":"lead","quick1":"connect","quick2":"administer","growth1":"any-stat","growth2":"mental","growth3":"mental","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"administer","learning2":"any-combat","learning3":"connect","learning4":"know","learning5":"lead","learning6":"notice","learning7":"pilot","learning8":"talk"}},{"id":"backgrounds.official","type":"background","fields":{"freeSkill":"administer","quick1":"talk","quick2":"connect","growth1":"any-stat","growth2":"mental","growth3":"mental","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"administer","learning2":"any-skill","learning3":"connect","learning4":"know","learning5":"lead","learning6":"notice","learning7":"talk","learning8":"trade"}},{"id":"backgrounds.peasant","type":"background","fields":{"freeSkill":"exert","quick1":"sneak","quick2":"survive","growth1":"any-stat","growth2":"physical","growth3":"physical","growth4":"physical","growth5":"exert","growth6":"any-skill","learning1":"connect","learning2":"exert","learning3":"fix","learning4":"notice","learning5":"sneak","learning6":"survive","learning7":"trade","learning8":"work"}},{"id":"backgrounds.physician","type":"background","fields":{"freeSkill":"heal","quick1":"know","quick2":"notice","growth1":"any-stat","growth2":"physical","growth3":"mental","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"administer","learning2":"connect","learning3":"fix","learning4":"heal","learning5":"know","learning6":"notice","learning7":"talk","learning8":"trade"}},{"id":"backgrounds.pilot","type":"background","fields":{"freeSkill":"pilot","quick1":"fix","quick2":"shoot-or-trade","growth1":"any-stat","growth2":"physical","growth3":"physical","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"connect","learning2":"exert","learning3":"fix","learning4":"notice","learning5":"pilot","learning6":"pilot","learning7":"shoot","learning8":"trade"}},{"id":"backgrounds.politician","type":"background","fields":{"freeSkill":"talk","quick1":"lead","quick2":"connect","growth1":"any-stat","growth2":"mental","growth3":"mental","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"administer","learning2":"connect","learning3":"connect","learning4":"lead","learning5":"notice","learning6":"perform","learning7":"talk","learning8":"talk"}},{"id":"backgrounds.scholar","type":"background","fields":{"freeSkill":"know","quick1":"connect","quick2":"administer","growth1":"any-stat","growth2":"mental","growth3":"mental","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"administer","learning2":"connect","learning3":"fix","learning4":"know","learning5":"notice","learning6":"perform","learning7":"program","learning8":"talk"}},{"id":"backgrounds.soldier","type":"background","fields":{"freeSkill":"any-combat","quick1":"exert","quick2":"survive","growth1":"any-stat","growth2":"physical","growth3":"physical","growth4":"physical","growth5":"exert","growth6":"any-skill","learning1":"administer","learning2":"any-combat","learning3":"exert","learning4":"fix","learning5":"lead","learning6":"notice","learning7":"sneak","learning8":"survive"}},{"id":"backgrounds.spacer","type":"background","fields":{"freeSkill":"fix","quick1":"pilot","quick2":"program","growth1":"any-stat","growth2":"physical","growth3":"physical","growth4":"mental","growth5":"exert","growth6":"any-skill","learning1":"administer","learning2":"connect","learning3":"exert","learning4":"fix","learning5":"know","learning6":"pilot","learning7":"program","learning8":"talk"}},{"id":"backgrounds.technician","type":"background","fields":{"freeSkill":"fix","quick1":"exert","quick2":"notice","growth1":"any-stat","growth2":"physical","growth3":"mental","growth4":"mental","growth5":"connect","growth6":"any-skill","learning1":"administer","learning2":"connect","learning3":"exert","learning4":"fix","learning5":"fix","learning6":"know","learning7":"notice","learning8":"pilot"}},{"id":"backgrounds.thug","type":"background","fields":{"freeSkill":"any-combat","quick1":"talk","quick2":"connect","growth1":"any-stat","growth2":"mental","growth3":"physical","growth4":"physical","growth5":"connect","growth6":"any-skill","learning1":"any-combat","learning2":"connect","learning3":"exert","learning4":"notice","learning5":"sneak","learning6":"stab-or-shoot","learning7":"survive","learning8":"talk"}},{"id":"backgrounds.vagabond","type":"background","fields":{"freeSkill":"survive","quick1":"sneak","quick2":"notice","growth1":"any-stat","growth2":"physical","growth3":"physical","growth4":"mental","growth5":"exert","growth6":"any-skill","learning1":"any-combat","learning2":"connect","learning3":"notice","learning4":"perform","learning5":"pilot","learning6":"sneak","learning7":"survive","learning8":"work"}},{"id":"backgrounds.worker","type":"background","fields":{"freeSkill":"work","quick1":"connect","quick2":"exert","growth1":"any-stat","growth2":"any-stat","growth3":"any-stat","growth4":"any-stat","growth5":"exert","growth6":"any-skill","learning1":"administer","learning2":"any-skill","learning3":"connect","learning4":"exert","learning5":"fix","learning6":"pilot","learning7":"program","learning8":"work"}},{"id":"classes.adventurer","type":"class","fields":{"kit":"kits.gunslinger"},"choices":[{"id":"partials","pick":2,"from":{"type":"partialClass"},"recommend":"choice.picks == [] ? @partial-classes.expert : @partial-classes.warrior"}]},{"id":"classes.expert","type":"class","fields":{"kit":"kits.technician"},"effects":[{"target":"class.focus.noncombat","op":"add","value":1},{"target":"class.expertPoints","op":"add","value":1},{"target":{"choices":["failed-check"]},"op":"option","when":"!scene.expertReroll","value":{"id":"reroll","flags":{"reroll":true},"changes":[{"type":"set","field":"scene.expertReroll","value":true}]}}]},{"id":"classes.psychic","type":"class","fields":{"kit":"kits.medic"},"effects":[{"target":"psionics.access","op":"set","value":"'unrestricted'"}],"grants":[{"forEach":"keysOf('psychic')","when":"fieldOf('skills.{psychic}.level', x) >= 0","item":{"query":{"type":"technique","where":"item.core && item.discipline == x"}}}]},{"id":"classes.warrior","type":"class","fields":{"kit":"kits.soldier"},"effects":[{"target":"class.focus.combat","op":"add","value":1},{"target":"hp.perLevel","op":"add","value":2},{"target":"combat.attackBonus","op":"set","value":"level"},{"target":{"choices":["missed-attack"]},"op":"option","when":"!scene.warriorLuck","value":{"id":"luck","flags":{"hit":true},"changes":[{"type":"set","field":"scene.warriorLuck","value":true}]}}],"actions":[{"id":"negate-hit","tags":["combat"],"available":"!scene.warriorLuck","results":["negated"],"steps":[{"id":"spend","kind":"changes","changes":[{"type":"set","field":"scene.warriorLuck","value":true}]},{"id":"result","kind":"outcome","result":"'negated'"}]}]},{"id":"cyberware.adrenal-suppression-pump","type":"cyberware","fields":{"strain":1,"cost":30000,"techLevel":4},"state":{"active":{"type":"boolean","default":false}},"effects":[{"target":{"rolls":["initiative"]},"op":"add","value":2,"when":"self.active"},{"target":{"rolls":["check.social"]},"op":"add","value":-2,"when":"self.active"}]},{"id":"cyberware.bioadaptation-augments","type":"cyberware","fields":{"strain":1,"cost":10000,"techLevel":4}},{"id":"cyberware.body-arsenal-array","type":"cyberware","fields":{"strain":1,"cost":10000,"techLevel":4}},{"id":"cyberware.body-sculpting","type":"cyberware","fields":{"strain":1,"cost":10000,"techLevel":4}},{"id":"cyberware.dermal-armor","type":"cyberware","fields":{"strain":2,"cost":20000,"techLevel":4},"effects":[{"target":"ac.innate","op":"atLeast","value":16}]},{"id":"cyberware.drone-control-link","type":"cyberware","fields":{"strain":1,"cost":20000,"techLevel":4}},{"id":"cyberware.eelskin-capacitor-mesh","type":"cyberware","fields":{"strain":1,"activationStrain":1,"cost":25000,"techLevel":4}},{"id":"cyberware.gecko-anchors","type":"cyberware","fields":{"strain":1,"cost":15000,"techLevel":4}},{"id":"cyberware.ghost-talker-transceiver","type":"cyberware","fields":{"strain":1,"cost":15000,"techLevel":4}},{"id":"cyberware.holdout-cavity","type":"cyberware","fields":{"strain":1,"cost":10000,"techLevel":4}},{"id":"cyberware.holoskin-emitters","type":"cyberware","fields":{"strain":1,"cost":15000,"techLevel":4}},{"id":"cyberware.identity-submersion-trigger","type":"cyberware","fields":{"strain":1,"cost":25000,"techLevel":4}},{"id":"cyberware.immunofiltration-system","type":"cyberware","fields":{"strain":2,"cost":25000,"techLevel":4}},{"id":"cyberware.induced-coma-trigger","type":"cyberware","fields":{"strain":1,"cost":20000,"techLevel":4}},{"id":"cyberware.neurointruder-alert","type":"cyberware","fields":{"strain":1,"cost":50000,"techLevel":5},"effects":[{"target":{"rolls":["save.mental"]},"op":"add","value":3,"when":"situational.telepathy"}]},{"id":"cyberware.panspectral-optics","type":"cyberware","fields":{"strain":1,"cost":15000,"techLevel":4}},{"id":"cyberware.pressure-sheathing","type":"cyberware","fields":{"strain":1,"cost":15000,"techLevel":4}},{"id":"cyberware.prosthetic-limb","type":"cyberware","fields":{"strain":1,"cost":2500,"techLevel":4}},{"id":"cyberware.revenant-wiring","type":"cyberware","fields":{"strain":3,"cost":50000,"techLevel":5}},{"id":"cyberware.slowtime-window","type":"cyberware","fields":{"strain":2,"activationStrain":1,"cost":30000,"techLevel":5}},{"id":"cyberware.stabilization-overrides","type":"cyberware","fields":{"strain":2,"cost":25000,"techLevel":4},"effects":[{"target":"attributes.con.mod","op":"add","value":-1}]},{"id":"cyberware.tagger-nanites","type":"cyberware","fields":{"strain":1,"activationStrain":1,"cost":15000,"techLevel":4}},{"id":"cyberware.toxin-injector","type":"cyberware","fields":{"strain":2,"activationStrain":2,"cost":20000,"techLevel":4}},{"id":"cyberware.twitchlock-actuators","type":"cyberware","fields":{"strain":2,"activationStrain":2,"cost":30000,"techLevel":4}},{"id":"foci.alert","type":"focus","fields":{"kind":"combat","skill":"notice"},"effects":[{"target":{"rolls":["initiative"]},"op":"rollModifier","value":{"kind":"advantage"}}]},{"id":"foci.armsman","type":"focus","fields":{"kind":"combat","skill":"stab"},"effects":[{"target":"damage.melee","op":"add","value":"max(0, skills.stab.level)"},{"target":"miss.melee","op":"set","value":"1d4","when":"self.level >= 2"},{"target":"combat.meleeAdvanced","op":"set","value":true,"when":"self.level >= 2"}]},{"id":"foci.assassin","type":"focus","fields":{"kind":"combat","skill":"sneak"}},{"id":"foci.authority","type":"focus","fields":{"kind":"noncombat","skill":"lead"}},{"id":"foci.close-combatant","type":"focus","fields":{"kind":"combat","skill":"any-combat"},"effects":[{"target":"shock.anyAc","op":"set","value":true,"when":"self.level >= 2"}]},{"id":"foci.connected","type":"focus","fields":{"kind":"noncombat","skill":"connect"}},{"id":"foci.die-hard","type":"focus","fields":{"kind":"combat","skill":"none"},"effects":[{"target":"hp.perLevel","op":"add","value":2}]},{"id":"foci.diplomat","type":"focus","fields":{"kind":"noncombat","skill":"talk"},"effects":[{"target":{"rolls":["check"]},"op":"rollModifier","value":{"kind":"reroll","below":1,"once":true},"when":"situational.negotiation"}]},{"id":"foci.gunslinger","type":"focus","fields":{"kind":"combat","skill":"shoot"},"effects":[{"target":"damage.ranged","op":"add","value":"max(0, skills.shoot.level)"},{"target":"miss.ranged","op":"set","value":"1d4","when":"self.level >= 2"}]},{"id":"foci.hacker","type":"focus","fields":{"kind":"noncombat","skill":"program"},"effects":[{"target":{"rolls":["check.program"]},"op":"rollModifier","value":{"kind":"poolDice","count":1},"when":"situational.hacking && skills.program.dice < 3"}]},{"id":"foci.healer","type":"focus","fields":{"kind":"noncombat","skill":"heal"},"effects":[{"target":"skills.heal.dice","op":"atLeast","value":3}]},{"id":"foci.henchkeeper","type":"focus","fields":{"kind":"noncombat","skill":"lead"},"effects":[{"target":"henchmen.max","op":"atLeast","value":"ceil(level / 3)"}]},{"id":"foci.ironhide","type":"focus","fields":{"kind":"combat","skill":"none"},"effects":[{"target":"ac.innate","op":"atLeast","value":"15 + ceil(level / 2)"}]},{"id":"foci.psychic-training","type":"focus","tags":["needs-psionics"],"fields":{"kind":"psychic","skill":"chosen"},"prerequisites":[{"id":"psychic","when":"psionics.access != 'none'"}],"effects":[{"target":"effort.bonus","op":"add","value":1}],"choices":[{"id":"discipline","from":{"values":["biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation"]},"eligible":"psionics.access == 'unrestricted' || value == psionics.discipline","recommend":"psionics.access == 'restricted' ? psionics.discipline : 'biopsionics'","effects":[{"target":"psionics.training","op":"set","value":"pick.value"}]}]},{"id":"foci.savage-fray","type":"focus","fields":{"kind":"combat","skill":"stab"}},{"id":"foci.shocking-assault","type":"focus","fields":{"kind":"combat","skill":"punch-or-stab"},"effects":[{"target":"shock.anyAc","op":"set","value":true},{"target":"shock.bonus","op":"add","value":2,"when":"self.level >= 2"}]},{"id":"foci.sniper","type":"focus","fields":{"kind":"combat","skill":"shoot"},"effects":[{"target":{"rolls":["check.shoot"]},"op":"rollModifier","value":{"kind":"poolDice","count":1},"when":"situational.executionShot && skills.shoot.dice < 3"}]},{"id":"foci.specialist","type":"focus","fields":{"kind":"noncombat","skill":"chosen","repeatable":true},"choices":[{"id":"skill","unique":"specialist","from":{"values":["administer","connect","exert","fix","heal","know","lead","notice","perform","pilot","program","sneak","survive","talk","trade","work"]},"recommend":"'fix'","effects":[{"target":{"fields":{"where":"item.id == fieldId('skills.{skill}.dice', pick.value)"}},"op":"atLeast","value":"self.level + 2"}]}]},{"id":"foci.star-captain","type":"focus","fields":{"kind":"noncombat","skill":"lead"}},{"id":"foci.starfarer","type":"focus","fields":{"kind":"noncombat","skill":"pilot"}},{"id":"foci.tinker","type":"focus","fields":{"kind":"noncombat","skill":"fix"}},{"id":"foci.unarmed-combatant","type":"focus","fields":{"kind":"combat","skill":"punch"},"keepsTemplates":[{"template":"templates.trained-unarmed","copies":{"type":"weapon","where":"'unarmed' in item.tags"}}],"effects":[{"target":"miss.punch","op":"set","value":"1d6","when":"self.level >= 2"},{"target":"combat.punchAdvanced","op":"set","value":true,"when":"self.level >= 2"}]},{"id":"foci.unique-gift","type":"focus","fields":{"kind":"special","skill":"none","maxLevel":1}},{"id":"foci.wanderer","type":"focus","fields":{"kind":"noncombat","skill":"survive"}},{"id":"foci.wild-psychic-talent","type":"focus","tags":["no-psionics"],"fields":{"kind":"psychic","skill":"none"},"prerequisites":[{"id":"not-psychic","when":"psionics.access == 'none'"}],"effects":[{"target":"effort.wild","op":"atLeast","value":"self.level"}],"choices":[{"id":"power","from":{"type":"technique","where":"item.level <= 1"},"waivePrerequisites":true,"recommend":"@techniques.telekinetic-manipulation"},{"id":"second","when":"self.level >= 2","from":{"type":"technique","where":"item.level <= 1"},"waivePrerequisites":true,"recommend":"@techniques.telekinetic-armory"}]},{"id":"gear.ammo-20-rounds","type":"gear","fields":{"category":"ammo-power","kind":"rounds","cost":10,"enc":1,"bundle":3,"techLevel":2}},{"id":"gear.ammo-missile","type":"gear","fields":{"category":"ammo-power","kind":"missile","cost":50,"enc":1,"techLevel":3}},{"id":"gear.atmofilter","type":"gear","fields":{"category":"field","cost":100,"enc":1,"techLevel":4}},{"id":"gear.backpack-tl0","type":"gear","fields":{"category":"field","cost":5,"enc":1,"techLevel":0}},{"id":"gear.backpack-tl4","type":"gear","fields":{"category":"field","cost":50,"enc":0,"techLevel":4}},{"id":"gear.bezoar","type":"gear","fields":{"category":"pharmaceutical","healSkill":1,"strain":1,"cost":200,"enc":0,"techLevel":4}},{"id":"gear.binoculars-tl3","type":"gear","fields":{"category":"field","cost":20,"enc":1,"techLevel":3}},{"id":"gear.binoculars-tl4","type":"gear","fields":{"category":"field","cost":200,"enc":1,"techLevel":4}},{"id":"gear.bioscanner","type":"gear","fields":{"category":"tools-medical","cost":300,"enc":1,"techLevel":4}},{"id":"gear.black-slab","type":"gear","fields":{"category":"computing","cost":10000,"enc":1,"techLevel":4}},{"id":"gear.brainwave","type":"gear","fields":{"category":"pharmaceutical","healSkill":2,"cost":1000,"enc":0,"techLevel":5}},{"id":"gear.climbing-harness","type":"gear","fields":{"category":"field","cost":50,"enc":1,"techLevel":3}},{"id":"gear.comm-server","type":"gear","fields":{"category":"communications","cost":1000,"enc":3,"techLevel":4}},{"id":"gear.compad","type":"gear","fields":{"category":"communications","cost":100,"enc":0,"techLevel":4}},{"id":"gear.data-phase-tap","type":"gear","fields":{"category":"computing","cost":5000,"enc":1,"techLevel":4}},{"id":"gear.data-protocol","type":"gear","fields":{"category":"computing","cost":1000,"enc":0,"techLevel":4}},{"id":"gear.dataslab","type":"gear","fields":{"category":"computing","cost":300,"enc":1,"techLevel":4}},{"id":"gear.field-radio","type":"gear","fields":{"category":"communications","cost":200,"enc":1,"techLevel":4}},{"id":"gear.glowbug","type":"gear","fields":{"category":"field","cost":5,"enc":0,"techLevel":3}},{"id":"gear.grapnel-launcher","type":"gear","fields":{"category":"field","cost":200,"enc":1,"techLevel":3}},{"id":"gear.grav-chute-tl4","type":"gear","fields":{"category":"field","cost":300,"enc":1,"techLevel":4}},{"id":"gear.grav-chute-tl5","type":"gear","fields":{"category":"field","cost":1000,"enc":1,"techLevel":5}},{"id":"gear.grav-harness","type":"gear","fields":{"category":"field","cost":5000,"enc":3,"techLevel":5}},{"id":"gear.hush","type":"gear","fields":{"category":"pharmaceutical","healSkill":0,"cost":200,"enc":0,"techLevel":4}},{"id":"gear.instapanel","type":"gear","fields":{"category":"field","cost":50,"enc":1,"bundle":3,"techLevel":4}},{"id":"gear.lazarus-patch","type":"gear","fields":{"category":"tools-medical","cost":30,"enc":1,"bundle":3,"techLevel":4}},{"id":"gear.lift","type":"gear","fields":{"category":"pharmaceutical","healSkill":0,"strain":1,"heal":"1d8","healAddsSkill":true,"cost":50,"enc":0,"techLevel":4}},{"id":"gear.line-shunt","type":"gear","fields":{"category":"computing","cost":100,"enc":0,"techLevel":4}},{"id":"gear.low-light-goggles","type":"gear","fields":{"category":"field","cost":200,"enc":1,"techLevel":3}},{"id":"gear.medkit","type":"gear","fields":{"category":"tools-medical","cost":100,"enc":2,"techLevel":4}},{"id":"gear.metatool","type":"gear","fields":{"category":"tools-medical","cost":200,"enc":1,"techLevel":4}},{"id":"gear.navcomp","type":"gear","fields":{"category":"field","cost":500,"enc":1,"techLevel":4}},{"id":"gear.portabox","type":"gear","fields":{"category":"field","cost":50,"enc":1,"techLevel":4}},{"id":"gear.postech-toolkit","type":"gear","fields":{"category":"tools-medical","cost":300,"enc":3,"techLevel":4}},{"id":"gear.power-cell-a","type":"gear","fields":{"category":"ammo-power","kind":"cell-a","cost":10,"enc":1,"bundle":3,"techLevel":4}},{"id":"gear.power-cell-b","type":"gear","fields":{"category":"ammo-power","kind":"cell-b","cost":100,"enc":1,"techLevel":4}},{"id":"gear.pressure-tent","type":"gear","fields":{"category":"field","cost":100,"enc":4,"techLevel":3}},{"id":"gear.pretech-cosmetic","type":"gear","fields":{"category":"pharmaceutical","strain":1,"heal":"1d6","cost":1000,"enc":0,"techLevel":5}},{"id":"gear.pretech-toolkit","type":"gear","fields":{"category":"tools-medical","cost":1000,"enc":1,"techLevel":5}},{"id":"gear.psych","type":"gear","fields":{"category":"pharmaceutical","strain":1,"cost":25,"enc":0,"techLevel":4}},{"id":"gear.rations-1-day","type":"gear","fields":{"category":"field","cost":5,"enc":1,"bundle":3,"techLevel":1}},{"id":"gear.remote-link-unit","type":"gear","fields":{"category":"computing","cost":250,"enc":1,"techLevel":4}},{"id":"gear.reverie","type":"gear","fields":{"category":"pharmaceutical","healSkill":1,"strain":2,"cost":100,"enc":0,"techLevel":4}},{"id":"gear.rope-tl0","type":"gear","fields":{"category":"field","cost":4,"enc":2,"techLevel":0}},{"id":"gear.rope-tl4","type":"gear","fields":{"category":"field","cost":40,"enc":1,"techLevel":4}},{"id":"gear.scout-report","type":"gear","fields":{"category":"field","cost":200,"enc":0,"techLevel":4}},{"id":"gear.solar-recharger","type":"gear","fields":{"category":"ammo-power","cost":500,"enc":3,"techLevel":4}},{"id":"gear.spare-parts","type":"gear","fields":{"category":"tools-medical","cost":50,"enc":1,"bundle":3,"techLevel":4}},{"id":"gear.squeal","type":"gear","fields":{"category":"pharmaceutical","healSkill":1,"cost":300,"enc":0,"techLevel":4}},{"id":"gear.stiletto-charge","type":"gear","fields":{"category":"computing","enc":1,"techLevel":5}},{"id":"gear.storage-unit","type":"gear","fields":{"category":"computing","cost":500,"enc":3,"techLevel":4}},{"id":"gear.survey-scanner","type":"gear","fields":{"category":"field","cost":250,"enc":1,"techLevel":4}},{"id":"gear.survival-kit","type":"gear","fields":{"category":"field","cost":60,"enc":1,"techLevel":4}},{"id":"gear.tailored-antiallergens","type":"gear","fields":{"category":"tools-medical","cost":5,"enc":0,"techLevel":4}},{"id":"gear.telekinetic-generator","type":"gear","fields":{"category":"ammo-power","cost":250,"enc":2,"techLevel":4}},{"id":"gear.telescoping-pole","type":"gear","fields":{"category":"field","cost":10,"enc":0,"techLevel":4}},{"id":"gear.thermal-flare","type":"gear","fields":{"category":"field","cost":5,"enc":0,"techLevel":3}},{"id":"gear.tightbeam-link-unit","type":"gear","fields":{"category":"computing","cost":1000,"enc":1,"techLevel":4}},{"id":"gear.trade-goods","type":"gear","fields":{"category":"field","cost":50,"enc":1,"bundle":3,"techLevel":4}},{"id":"gear.trade-metals","type":"gear","fields":{"category":"field","cost":10,"enc":1,"bundle":3,"techLevel":4}},{"id":"gear.translator-torc","type":"gear","fields":{"category":"communications","cost":200,"enc":0,"techLevel":4}},{"id":"gear.tsunami","type":"gear","fields":{"category":"pharmaceutical","healSkill":1,"strain":2,"cost":50,"enc":0,"techLevel":4}},{"id":"gear.vacc-fresher","type":"gear","fields":{"category":"field","cost":400,"enc":1,"techLevel":4}},{"id":"gear.vacc-skin","type":"gear","fields":{"category":"field","cost":1000,"enc":1,"techLevel":5}},{"id":"gear.vacc-suit","type":"gear","fields":{"category":"field","cost":100,"enc":2,"techLevel":4}},{"id":"kits.barbarian","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'weapons.spear'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.light-primitive-armor'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.shield'","equipped":true}},{"type":"addItem","entry":{"item":"'weapons.knife'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.backpack-tl0'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.rations-1-day'","quantity":7}},{"type":"addItem","entry":{"item":"'gear.rope-tl0'"}},{"type":"set","field":"credits.current","value":500}]}]}]},{"id":"kits.blade","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'weapons.monoblade-sword'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.woven-body-armor'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.secure-clothing'"}},{"type":"addItem","entry":{"item":"'weapons.thermal-knife'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.backpack-tl0'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.compad'"}},{"type":"addItem","entry":{"item":"'gear.lazarus-patch'"}},{"type":"set","field":"credits.current","value":50}]}]}]},{"id":"kits.civilian","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'armor.secure-clothing'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.compad'"}},{"type":"set","field":"credits.current","value":700}]}]}]},{"id":"kits.credits","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"credits","kind":"roll","tags":["creation"],"parts":[{"dice":"2d6"}]},{"id":"gear","kind":"changes","changes":[{"type":"set","field":"credits.current","value":"steps.credits.total * 100"}]}]}]},{"id":"kits.gunslinger","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'weapons.laser-pistol'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.armored-undersuit'","equipped":true}},{"type":"addItem","entry":{"item":"'weapons.monoblade-knife'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.power-cell-a'","quantity":8}},{"type":"addItem","entry":{"item":"'gear.backpack-tl0'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.compad'"}},{"type":"set","field":"credits.current","value":100}]}]}]},{"id":"kits.hacker","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'weapons.laser-pistol'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.secure-clothing'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.postech-toolkit'"}},{"type":"addItem","entry":{"item":"'gear.spare-parts'","quantity":3}},{"type":"addItem","entry":{"item":"'gear.power-cell-a'","quantity":2}},{"type":"addItem","entry":{"item":"'gear.dataslab'"}},{"type":"addItem","entry":{"item":"'gear.metatool'"}},{"type":"addItem","entry":{"item":"'gear.line-shunt'","quantity":2}},{"type":"set","field":"credits.current","value":100}]}]}]},{"id":"kits.medic","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'weapons.laser-pistol'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.secure-clothing'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.lazarus-patch'","quantity":4}},{"type":"addItem","entry":{"item":"'gear.lift'","quantity":2}},{"type":"addItem","entry":{"item":"'gear.backpack-tl0'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.medkit'"}},{"type":"addItem","entry":{"item":"'gear.compad'"}},{"type":"addItem","entry":{"item":"'gear.bioscanner'"}},{"type":"set","field":"credits.current","value":25}]}]}]},{"id":"kits.scout","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'weapons.laser-rifle'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.armored-vacc-suit'","equipped":true}},{"type":"addItem","entry":{"item":"'weapons.knife'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.survey-scanner'"}},{"type":"addItem","entry":{"item":"'gear.survival-kit'"}},{"type":"addItem","entry":{"item":"'gear.binoculars-tl3'"}},{"type":"addItem","entry":{"item":"'gear.power-cell-a'","quantity":8}},{"type":"addItem","entry":{"item":"'gear.backpack-tl0'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.compad'"}},{"type":"set","field":"credits.current","value":25}]}]}]},{"id":"kits.soldier","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'weapons.combat-rifle'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.woven-body-armor'","equipped":true}},{"type":"addItem","entry":{"item":"'weapons.knife'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.ammo-20-rounds'","quantity":4}},{"type":"addItem","entry":{"item":"'gear.backpack-tl0'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.compad'"}},{"type":"set","field":"credits.current","value":100}]}]}]},{"id":"kits.technician","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'weapons.laser-pistol'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.armored-undersuit'","equipped":true}},{"type":"addItem","entry":{"item":"'weapons.monoblade-knife'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.postech-toolkit'"}},{"type":"addItem","entry":{"item":"'gear.spare-parts'","quantity":6}},{"type":"addItem","entry":{"item":"'gear.power-cell-a'","quantity":4}},{"type":"addItem","entry":{"item":"'gear.backpack-tl0'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.dataslab'"}},{"type":"addItem","entry":{"item":"'gear.metatool'"}},{"type":"set","field":"credits.current","value":200}]}]}]},{"id":"kits.thief","type":"kit","actions":[{"id":"unpack","listed":false,"steps":[{"id":"gear","kind":"changes","changes":[{"type":"addItem","entry":{"item":"'weapons.laser-pistol'","equipped":true}},{"type":"addItem","entry":{"item":"'armor.armored-undersuit'","equipped":true}},{"type":"addItem","entry":{"item":"'weapons.monoblade-knife'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.climbing-harness'"}},{"type":"addItem","entry":{"item":"'gear.low-light-goggles'"}},{"type":"addItem","entry":{"item":"'gear.power-cell-a'","quantity":2}},{"type":"addItem","entry":{"item":"'gear.backpack-tl0'","equipped":true}},{"type":"addItem","entry":{"item":"'gear.compad'"}},{"type":"addItem","entry":{"item":"'gear.metatool'"}},{"type":"set","field":"credits.current","value":25}]}]}]},{"id":"partial-classes.expert","type":"partialClass","effects":[{"target":"class.focus.noncombat","op":"add","value":1},{"target":"class.expertPoints","op":"add","value":1}]},{"id":"partial-classes.psychic","type":"partialClass","effects":[{"target":"psionics.access","op":"set","value":"'restricted'"}],"choices":[{"id":"discipline","from":{"values":["biopsionics","metapsionics","precognition","telekinesis","telepathy","teleportation"]},"recommend":"'biopsionics'","effects":[{"target":"psionics.discipline","op":"set","value":"pick.value"}]}],"grants":[{"forEach":"keysOf('psychic')","when":"fieldOf('skills.{psychic}.level', x) >= 0","item":{"query":{"type":"technique","where":"item.core && item.discipline == x"}}}]},{"id":"partial-classes.warrior","type":"partialClass","effects":[{"target":"class.focus.combat","op":"add","value":1},{"target":"hp.perLevel","op":"add","value":2},{"target":"combat.attackBonus","op":"add","value":"level >= 5 ? 2 : 1"}]},{"id":"styles.expert-nimble","type":"style","fields":{"class":"classes.expert","table":2,"str":10,"dex":14,"con":12,"int":11,"wis":9,"cha":7}},{"id":"styles.expert-smart","type":"style","fields":{"class":"classes.expert","table":0,"str":10,"dex":12,"con":11,"int":14,"wis":7,"cha":9}},{"id":"styles.expert-smooth","type":"style","fields":{"class":"classes.expert","table":1,"str":7,"dex":9,"con":10,"int":12,"wis":11,"cha":14}},{"id":"styles.psychic-adept","type":"style","fields":{"class":"classes.psychic","table":7,"str":12,"dex":10,"con":14,"int":9,"wis":11,"cha":7}},{"id":"styles.psychic-seer","type":"style","fields":{"class":"classes.psychic","table":6,"str":9,"dex":11,"con":12,"int":10,"wis":14,"cha":7}},{"id":"styles.warrior-leader","type":"style","fields":{"class":"classes.warrior","table":5,"str":7,"dex":10,"con":9,"int":11,"wis":12,"cha":14}},{"id":"styles.warrior-melee","type":"style","fields":{"class":"classes.warrior","table":3,"str":14,"dex":9,"con":12,"int":7,"wis":10,"cha":11}},{"id":"styles.warrior-ranged","type":"style","fields":{"class":"classes.warrior","table":4,"str":9,"dex":14,"con":12,"int":10,"wis":7,"cha":11}},{"id":"techniques.accelerated-succor","type":"technique","fields":{"discipline":"biopsionics","level":3},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.alternate-outcome","type":"technique","fields":{"discipline":"precognition","level":2},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}]},{"id":"techniques.anguished-vision","type":"technique","fields":{"discipline":"precognition","level":3},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}]},{"id":"techniques.burdened-apportation","type":"technique","fields":{"discipline":"teleportation","level":2},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.cloak-powers","type":"technique","fields":{"discipline":"metapsionics","level":1},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.concert-of-minds","type":"technique","fields":{"discipline":"metapsionics","level":3},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.cursed-luck","type":"technique","fields":{"discipline":"precognition","level":3},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}],"effects":[{"target":{"rolls":["attack","damage","check","save"]},"op":"rollModifier","value":{"kind":"disadvantage","of":"roll"},"when":"!('psionics' in roll.tags)","scope":"applied"},{"target":"psionics.cursedLuck","op":"set","value":true,"scope":"applied"}],"actions":[{"id":"curse","tags":["psionics"],"available":"effort.available > 0","results":["cursed"],"participants":{"target":{"min":1,"max":1}},"steps":[{"id":"commit","kind":"changes","changes":[{"type":"adjust","field":"effort.scene","by":1}]},{"id":"curse","kind":"changes","to":"target","changes":[{"type":"applyEffect","source":"'techniques.cursed-luck'"}]},{"id":"result","kind":"outcome","result":"'cursed'"}]},{"id":"throw-off","scope":"applied","tags":["psionics","save"],"results":["freed","cursed"],"steps":[{"id":"save","kind":"action","use":"saving-throw","params":{"save":"'mental'"},"tags":["psionics"]},{"id":"free","kind":"changes","when":"steps.save.result == 'success'","changes":[{"type":"removeEffect","applied":{"where":"item.id == @techniques.cursed-luck"}}]},{"id":"result","kind":"outcome","result":"steps.save.result == 'success' ? 'freed' : 'cursed'"}]}]},{"id":"techniques.deep-intrusion","type":"technique","fields":{"discipline":"teleportation","level":4},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.destinys-shield","type":"technique","fields":{"discipline":"precognition","level":2},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}]},{"id":"techniques.effortless-apportation","type":"technique","fields":{"discipline":"teleportation","level":3},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.facile-mind","type":"technique","fields":{"discipline":"telepathy","level":1},"prerequisites":[{"id":"skill","when":"skills.telepathy.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telepathy'"}]},{"id":"techniques.far-thought","type":"technique","fields":{"discipline":"telepathy","level":2},"prerequisites":[{"id":"skill","when":"skills.telepathy.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telepathy'"}]},{"id":"techniques.flawless-mastery","type":"technique","fields":{"discipline":"metapsionics","level":4},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.force-puppetry","type":"technique","fields":{"discipline":"telekinesis","level":4},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.forced-outcome","type":"technique","fields":{"discipline":"precognition","level":3},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}]},{"id":"techniques.holistic-optimization-patterning","type":"technique","fields":{"discipline":"biopsionics","level":4},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.impact-sump","type":"technique","fields":{"discipline":"telekinesis","level":2},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.impervious-pavis-of-will","type":"technique","fields":{"discipline":"metapsionics","level":4},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.intuitive-response","type":"technique","fields":{"discipline":"precognition","level":1},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}]},{"id":"techniques.invincible-stand","type":"technique","fields":{"discipline":"biopsionics","level":2},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.kinetic-transversal","type":"technique","fields":{"discipline":"telekinesis","level":1},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.major-organ-restoration","type":"technique","fields":{"discipline":"biopsionics","level":2},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.mastered-succor","type":"technique","fields":{"discipline":"biopsionics","level":1},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.memory-editing","type":"technique","fields":{"discipline":"telepathy","level":4},"prerequisites":[{"id":"skill","when":"skills.telepathy.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telepathy'"}]},{"id":"techniques.metadimensional-friction","type":"technique","fields":{"discipline":"metapsionics","level":3},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.metamorph","type":"technique","fields":{"discipline":"biopsionics","level":3},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.mindtracing","type":"technique","fields":{"discipline":"metapsionics","level":1},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.neural-trap","type":"technique","fields":{"discipline":"metapsionics","level":2},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.not-my-time","type":"technique","fields":{"discipline":"precognition","level":4},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}]},{"id":"techniques.offensive-apportation","type":"technique","fields":{"discipline":"teleportation","level":4},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.oracle","type":"technique","fields":{"discipline":"precognition","level":0,"core":true}},{"id":"techniques.organic-purification-protocols","type":"technique","fields":{"discipline":"biopsionics","level":1},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.perceptive-dislocation","type":"technique","fields":{"discipline":"teleportation","level":2},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.personal-apportation","type":"technique","fields":{"discipline":"teleportation","level":0,"core":true}},{"id":"techniques.pressure-field","type":"technique","fields":{"discipline":"telekinesis","level":1},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.proficient-apportation","type":"technique","fields":{"discipline":"teleportation","level":1},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.prophecy","type":"technique","fields":{"discipline":"precognition","level":4},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}]},{"id":"techniques.psychic-refinement","type":"technique","fields":{"discipline":"metapsionics","level":0,"core":true},"effects":[{"target":"effort.bonus","op":"add","value":"(skills.metapsionics.level >= 1 ? 1 : 0) + (skills.metapsionics.level >= 3 ? 1 : 0)"}]},{"id":"techniques.psychic-static","type":"technique","fields":{"discipline":"metapsionics","level":2},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.psychic-succor","type":"technique","fields":{"discipline":"biopsionics","level":0,"core":true},"actions":[{"id":"succor","tags":["psionics"],"params":{"mortallyWounded":{"type":"boolean","default":false}},"participants":{"target":{"max":1,"fields":{"strain.total":{"type":"integer"},"strain.max":{"type":"integer"}}}},"results":["healed","failed"],"steps":[{"id":"strained","kind":"outcome","when":"size(participants.target) > 0 && has(participants.target[0].strain.total)\n && has(participants.target[0].strain.max)\n && participants.target[0].strain.total + (params.mortallyWounded ? 2 : 1)\n > participants.target[0].strain.max","result":"'failed'"},{"id":"heal","kind":"roll","when":"skills.biopsionics.level >= 1","tags":["healing"],"parts":[{"dice":"skills.biopsionics.level >= 4 ? 3d6 + 8 : skills.biopsionics.level == 3 ? 2d6 + 6\n : skills.biopsionics.level == 2 ? 2d6 + 2 : 1d6 + 1"}]},{"id":"apply","kind":"changes","to":"target","changes":[{"type":"adjust","when":"has(steps.heal)","field":"hp.current","by":"steps.heal.total","tags":["healing"]},{"type":"adjust","field":"strain.current","by":"params.mortallyWounded ? 2 : 1"}]},{"id":"result","kind":"outcome","result":"'healed'","data":{"healed":"has(steps.heal) ? steps.heal.total : 0"}}]}]},{"id":"techniques.psychic-tutelage","type":"technique","fields":{"discipline":"metapsionics","level":3},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.quintessential-reconstruction","type":"technique","fields":{"discipline":"biopsionics","level":4},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.reactive-telekinesis","type":"technique","fields":{"discipline":"telekinesis","level":3},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.reflex-response","type":"technique","fields":{"discipline":"telepathy","level":3},"prerequisites":[{"id":"skill","when":"skills.telepathy.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telepathy'"}]},{"id":"techniques.remote-repair","type":"technique","fields":{"discipline":"biopsionics","level":1},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.rift-reduplication","type":"technique","fields":{"discipline":"teleportation","level":3},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.sense-the-need","type":"technique","fields":{"discipline":"precognition","level":1},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}]},{"id":"techniques.slip-field","type":"technique","fields":{"discipline":"telekinesis","level":2},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.spatial-awareness","type":"technique","fields":{"discipline":"teleportation","level":1},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.spatial-synchrony-mandala","type":"technique","fields":{"discipline":"teleportation","level":2},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.stutterjump","type":"technique","fields":{"discipline":"teleportation","level":3},"prerequisites":[{"id":"skill","when":"skills.teleportation.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'"}]},{"id":"techniques.suppress-cognition","type":"technique","fields":{"discipline":"telepathy","level":2},"prerequisites":[{"id":"skill","when":"skills.telepathy.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telepathy'"}]},{"id":"techniques.surge-momentum","type":"technique","fields":{"discipline":"metapsionics","level":3},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.suspended-manifestation","type":"technique","fields":{"discipline":"metapsionics","level":2},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.synthetic-adaptation","type":"technique","fields":{"discipline":"metapsionics","level":1},"prerequisites":[{"id":"skill","when":"skills.metapsionics.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'"}]},{"id":"techniques.tangible-force-construct","type":"technique","fields":{"discipline":"telekinesis","level":3},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.telekinetic-armory","type":"technique","fields":{"discipline":"telekinesis","level":1},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.telekinetic-expertise","type":"technique","fields":{"discipline":"telekinesis","level":2},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.telekinetic-flight","type":"technique","fields":{"discipline":"telekinesis","level":4},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.telekinetic-manipulation","type":"technique","fields":{"discipline":"telekinesis","level":0,"core":true}},{"id":"techniques.telekinetic-ram","type":"technique","fields":{"discipline":"telekinesis","level":3},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.telepathic-assault","type":"technique","fields":{"discipline":"telepathy","level":3},"prerequisites":[{"id":"skill","when":"skills.telepathy.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telepathy'"}]},{"id":"techniques.telepathic-contact","type":"technique","fields":{"discipline":"telepathy","level":0,"core":true}},{"id":"techniques.teratic-overload","type":"technique","fields":{"discipline":"biopsionics","level":3},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 3"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.terminal-reflection","type":"technique","fields":{"discipline":"precognition","level":1},"prerequisites":[{"id":"skill","when":"skills.precognition.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'precognition'"}]},{"id":"techniques.thermokinesis","type":"technique","fields":{"discipline":"telekinesis","level":2},"prerequisites":[{"id":"skill","when":"skills.telekinesis.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'"}]},{"id":"techniques.tissue-integrity-field","type":"technique","fields":{"discipline":"biopsionics","level":2},"prerequisites":[{"id":"skill","when":"skills.biopsionics.level >= 2"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'"}]},{"id":"techniques.transmit-thought","type":"technique","fields":{"discipline":"telepathy","level":1},"prerequisites":[{"id":"skill","when":"skills.telepathy.level >= 1"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telepathy'"}]},{"id":"techniques.unity-of-thought","type":"technique","fields":{"discipline":"telepathy","level":4},"prerequisites":[{"id":"skill","when":"skills.telepathy.level >= 4"},{"id":"discipline","when":"psionics.access != 'restricted' || psionics.discipline == 'telepathy'"}]},{"id":"templates.trained-unarmed","type":"template","appliesTo":{"type":"weapon","where":"'unarmed' in item.tags"},"fields":{"damage":"skills.punch.level >= 4 ? 1d12 + 1 : skills.punch.level == 3 ? 1d12\n : skills.punch.level == 2 ? 1d10 : skills.punch.level == 1 ? 1d8 : 1d6","shock":"max(0, skills.punch.level)","shockAc":15}},{"id":"weapons.advanced-bow","type":"weapon","tags":["ranged"],"fields":{"damage":"1d6","skill":"shoot","attribute":"dex","range":100,"maxRange":150,"magazine":1,"cost":50,"enc":2,"techLevel":3}},{"id":"weapons.anti-vehicle-laser","type":"weapon","tags":["ranged","heavy"],"fields":{"damage":"3d10","skill":"shoot","attribute":"dex","range":2000,"maxRange":4000,"magazine":15,"ammo":"cell-b","energy":true,"advanced":true,"heavy":true,"cost":10000,"techLevel":4}},{"id":"weapons.combat-rifle","type":"weapon","tags":["ranged"],"fields":{"damage":"1d12","skill":"shoot","attribute":"dex","range":100,"maxRange":300,"magazine":30,"ammo":"rounds","burst":true,"advanced":true,"cost":300,"enc":2,"techLevel":3}},{"id":"weapons.combat-shotgun","type":"weapon","tags":["ranged"],"fields":{"damage":"3d4","skill":"shoot","attribute":"dex","range":10,"maxRange":30,"magazine":12,"ammo":"rounds","burst":true,"advanced":true,"cost":300,"enc":2,"techLevel":3}},{"id":"weapons.conversion-bow","type":"weapon","tags":["ranged"],"fields":{"damage":"1d8","skill":"shoot","attribute":"dex","range":150,"maxRange":300,"magazine":1,"cost":500,"enc":2,"techLevel":4}},{"id":"weapons.crude-pistol","type":"weapon","tags":["ranged"],"fields":{"damage":"1d6","skill":"shoot","attribute":"dex","range":5,"maxRange":15,"magazine":1,"ammo":"rounds","advanced":true,"reloadActions":2,"cost":20,"enc":1,"techLevel":2}},{"id":"weapons.demo-charge","type":"weapon","tags":["ranged","heavy"],"fields":{"damage":"3d10","skill":"shoot","range":20,"maxRange":40,"advanced":true,"heavy":true,"cost":250,"enc":1,"techLevel":3}},{"id":"weapons.distortion-cannon","type":"weapon","tags":["ranged"],"fields":{"damage":"2d12","skill":"shoot","attribute":"dex","range":100,"maxRange":300,"magazine":6,"ammo":"cell-a","energy":true,"advanced":true,"cost":1250,"enc":2,"techLevel":5}},{"id":"weapons.grenade","type":"weapon","tags":["ranged"],"fields":{"damage":"2d6","skill":"shoot","attribute":"dex","range":10,"maxRange":30,"thrown":true,"fixedAc":10,"cost":25,"enc":1,"techLevel":3}},{"id":"weapons.heavy-machine-gun","type":"weapon","tags":["ranged","heavy"],"fields":{"damage":"3d6","skill":"shoot","attribute":"dex","range":500,"maxRange":2000,"magazine":10,"ammo":"rounds","suppress":true,"advanced":true,"heavy":true,"cost":5000,"enc":3,"techLevel":3}},{"id":"weapons.hydra-array","type":"weapon","tags":["ranged","heavy"],"fields":{"damage":"3d6","skill":"shoot","attribute":"dex","range":4000,"maxRange":8000,"magazine":10,"ammo":"missile","suppress":true,"advanced":true,"heavy":true,"cost":20000,"techLevel":4}},{"id":"weapons.knife","type":"weapon","extends":"weapons.small-primitive-weapon","tags":["melee"],"fields":{"range":10,"maxRange":10}},{"id":"weapons.large-advanced-weapon","type":"weapon","tags":["melee"],"fields":{"damage":"1d10 + 1","skill":"stab","attribute":"str","shock":2,"shockAc":15,"advanced":true,"cost":80,"enc":2,"techLevel":4}},{"id":"weapons.large-primitive-weapon","type":"weapon","tags":["melee"],"fields":{"damage":"1d8 + 1","skill":"stab","attribute":"str","shock":2,"shockAc":15,"cost":30,"enc":2,"techLevel":0}},{"id":"weapons.laser-pistol","type":"weapon","tags":["ranged"],"fields":{"damage":"1d6","skill":"shoot","attribute":"dex","range":100,"maxRange":300,"magazine":10,"ammo":"cell-a","energy":true,"advanced":true,"cost":200,"enc":1,"techLevel":4}},{"id":"weapons.laser-rifle","type":"weapon","tags":["ranged"],"fields":{"damage":"1d10","skill":"shoot","attribute":"dex","range":300,"maxRange":500,"magazine":20,"ammo":"cell-a","burst":true,"energy":true,"advanced":true,"cost":300,"enc":2,"techLevel":4}},{"id":"weapons.mag-pistol","type":"weapon","tags":["ranged"],"fields":{"damage":"2d6 + 2","skill":"shoot","attribute":"dex","range":100,"maxRange":300,"magazine":6,"ammo":"rounds","advanced":true,"cost":400,"enc":1,"techLevel":4}},{"id":"weapons.mag-rifle","type":"weapon","tags":["ranged"],"fields":{"damage":"2d8 + 2","skill":"shoot","attribute":"dex","range":300,"maxRange":600,"magazine":10,"ammo":"rounds","advanced":true,"cost":500,"enc":2,"techLevel":4}},{"id":"weapons.medium-advanced-weapon","type":"weapon","tags":["melee"],"fields":{"damage":"1d8 + 1","skill":"stab","attribute":"str-dex","shock":2,"shockAc":13,"advanced":true,"cost":60,"enc":1,"techLevel":4}},{"id":"weapons.medium-primitive-weapon","type":"weapon","tags":["melee"],"fields":{"damage":"1d6 + 1","skill":"stab","attribute":"str-dex","shock":2,"shockAc":13,"cost":20,"enc":1,"techLevel":0}},{"id":"weapons.monoblade-knife","type":"weapon","extends":"weapons.small-advanced-weapon","tags":["melee"],"fields":{"range":10,"maxRange":10}},{"id":"weapons.monoblade-sword","type":"weapon","extends":"weapons.medium-advanced-weapon","tags":["melee"]},{"id":"weapons.musket","type":"weapon","tags":["ranged"],"fields":{"damage":"1d12","skill":"shoot","attribute":"dex","range":25,"maxRange":50,"magazine":1,"ammo":"rounds","advanced":true,"reloadActions":2,"cost":30,"enc":2,"techLevel":2}},{"id":"weapons.plasma-projector","type":"weapon","tags":["ranged"],"fields":{"damage":"2d8","skill":"shoot","attribute":"dex","range":50,"maxRange":100,"magazine":6,"ammo":"cell-a","energy":true,"advanced":true,"cost":400,"enc":2,"techLevel":4}},{"id":"weapons.primitive-bow","type":"weapon","tags":["ranged"],"fields":{"damage":"1d6","skill":"shoot","attribute":"dex","range":50,"maxRange":75,"magazine":1,"cost":15,"enc":2,"techLevel":1}},{"id":"weapons.railgun","type":"weapon","tags":["ranged","heavy"],"fields":{"damage":"3d8","skill":"shoot","attribute":"dex","range":4000,"maxRange":8000,"magazine":20,"ammo":"cell-b","suppress":true,"advanced":true,"heavy":true,"cost":8000,"techLevel":4}},{"id":"weapons.revolver","type":"weapon","tags":["ranged"],"fields":{"damage":"1d8","skill":"shoot","attribute":"dex","range":30,"maxRange":100,"magazine":6,"ammo":"rounds","advanced":true,"cost":50,"enc":1,"techLevel":2}},{"id":"weapons.rifle","type":"weapon","tags":["ranged"],"fields":{"damage":"1d10 + 2","skill":"shoot","attribute":"dex","range":200,"maxRange":400,"magazine":6,"ammo":"rounds","advanced":true,"cost":75,"enc":2,"techLevel":2}},{"id":"weapons.rocket-launcher","type":"weapon","tags":["ranged","heavy"],"fields":{"damage":"3d10","skill":"shoot","attribute":"dex","range":2000,"maxRange":4000,"magazine":1,"ammo":"missile","advanced":true,"heavy":true,"cost":4000,"enc":2,"techLevel":3}},{"id":"weapons.semi-auto-pistol","type":"weapon","tags":["ranged"],"fields":{"damage":"1d6 + 1","skill":"shoot","attribute":"dex","range":30,"maxRange":100,"magazine":12,"ammo":"rounds","advanced":true,"cost":75,"enc":1,"techLevel":3}},{"id":"weapons.shear-rifle","type":"weapon","tags":["ranged"],"fields":{"damage":"2d8","skill":"shoot","attribute":"dex","range":100,"maxRange":300,"magazine":10,"ammo":"cell-a","burst":true,"energy":true,"advanced":true,"cost":600,"enc":2,"techLevel":5}},{"id":"weapons.shotgun","type":"weapon","tags":["ranged"],"fields":{"damage":"3d4","skill":"shoot","attribute":"dex","range":10,"maxRange":30,"magazine":2,"ammo":"rounds","advanced":true,"cost":50,"enc":2,"techLevel":2}},{"id":"weapons.small-advanced-weapon","type":"weapon","tags":["melee"],"fields":{"damage":"1d6","skill":"stab","attribute":"str-dex","shock":1,"shockAc":15,"advanced":true,"thrown":true,"cost":40,"enc":1,"techLevel":4}},{"id":"weapons.small-primitive-weapon","type":"weapon","tags":["melee"],"fields":{"damage":"1d4","skill":"stab","attribute":"str-dex","shock":1,"shockAc":15,"thrown":true,"cost":0,"enc":1,"techLevel":0}},{"id":"weapons.sniper-rifle","type":"weapon","tags":["ranged"],"fields":{"damage":"2d8","skill":"shoot","attribute":"dex","range":1000,"maxRange":2000,"magazine":1,"ammo":"rounds","advanced":true,"cost":400,"enc":2,"techLevel":3}},{"id":"weapons.spear","type":"weapon","extends":"weapons.medium-primitive-weapon","tags":["melee"],"fields":{"thrown":true,"range":30,"maxRange":30}},{"id":"weapons.spike-thrower","type":"weapon","tags":["ranged"],"fields":{"damage":"3d8","skill":"shoot","attribute":"dex","range":20,"maxRange":40,"magazine":15,"ammo":"rounds","burst":true,"advanced":true,"cost":600,"enc":2,"techLevel":4}},{"id":"weapons.stun-baton","type":"weapon","tags":["melee"],"fields":{"damage":"1d8","skill":"stab","attribute":"str-dex","shock":1,"shockAc":15,"advanced":true,"nonlethal":true,"cost":50,"enc":1,"techLevel":4}},{"id":"weapons.submachine-gun","type":"weapon","tags":["ranged"],"fields":{"damage":"1d8","skill":"shoot","attribute":"dex","range":30,"maxRange":100,"magazine":20,"ammo":"rounds","burst":true,"advanced":true,"cost":200,"enc":1,"techLevel":3}},{"id":"weapons.suit-ripper","type":"weapon","tags":["melee"],"fields":{"damage":"1d6","skill":"stab","attribute":"str-dex","advanced":true,"cost":75,"enc":1,"techLevel":4}},{"id":"weapons.thermal-knife","type":"weapon","extends":"weapons.small-advanced-weapon","tags":["melee"],"fields":{"range":10,"maxRange":10}},{"id":"weapons.thermal-pistol","type":"weapon","tags":["ranged"],"fields":{"damage":"2d6","skill":"shoot","attribute":"dex","range":25,"maxRange":50,"magazine":5,"ammo":"cell-a","energy":true,"advanced":true,"cost":300,"enc":1,"techLevel":4}},{"id":"weapons.thunder-gun","type":"weapon","tags":["ranged"],"fields":{"damage":"2d10","skill":"shoot","attribute":"dex","range":100,"maxRange":300,"magazine":6,"ammo":"cell-a","energy":true,"advanced":true,"cost":1000,"enc":2,"techLevel":5}},{"id":"weapons.unarmed","type":"weapon","tags":["melee","unarmed"],"fields":{"damage":"1d2","skill":"punch","attribute":"str-dex","enc":0}},{"id":"weapons.void-carbine","type":"weapon","tags":["ranged"],"fields":{"damage":"2d6","skill":"shoot","attribute":"dex","range":100,"maxRange":300,"magazine":10,"ammo":"rounds","advanced":true,"cost":400,"enc":2,"techLevel":4}},{"id":"weapons.vortex-cannon","type":"weapon","tags":["ranged","heavy"],"fields":{"damage":"5d12","skill":"shoot","attribute":"dex","range":1000,"maxRange":2000,"magazine":5,"advanced":true,"heavy":true,"cost":75000,"techLevel":5}},{"id":"weapons.wheatcutter-belt","type":"weapon","tags":["ranged","heavy"],"fields":{"damage":"2d12","skill":"shoot","attribute":"dex","range":10,"maxRange":20,"magazine":5,"advanced":true,"heavy":true,"cost":10000,"techLevel":4}}],"upgrades":[],"formulas":{"!('psionics' in roll.tags)":{"text":"!('psionics' in roll.tags)","tree":{"type":"unary","op":"!","operand":{"type":"binary","op":"in","left":{"type":"string","value":"psionics"},"right":{"type":"name","path":["roll","tags"]}}}},"!character.creating\n && (skillPoints.general + skillPoints.expert + skillPoints.psychic + skillPoints.training > 0\n || maxList(keysOf('skill'), fieldOf('skills.{skill}.credit', x)) > 0)":{"text":"!character.creating && (skillPoints.general + skillPoints.expert + skillPoints.psychic + skillPoints.training > 0 || maxList(keysOf('skill'), fieldOf('skills.{skill}.credit', x)) > 0)","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":">","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["skillPoints","general"]},"right":{"type":"name","path":["skillPoints","expert"]}},"right":{"type":"name","path":["skillPoints","psychic"]}},"right":{"type":"name","path":["skillPoints","training"]}},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"maxList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"skill"}]},{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["x"]}]}]},"right":{"type":"int","value":0}}}}},"!character.creating && attributes.boosts < 5 && skillPoints.general > attributes.boosts\n && level >= [1, 1, 3, 6, 9][attributes.boosts]":{"text":"!character.creating && attributes.boosts < 5 && skillPoints.general > attributes.boosts && level >= [1, 1, 3, 6, 9][attributes.boosts]","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["attributes","boosts"]},"right":{"type":"int","value":5}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["skillPoints","general"]},"right":{"type":"name","path":["attributes","boosts"]}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1},{"type":"int","value":1},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":9}]},"index":{"type":"name","path":["attributes","boosts"]}}}}},"!character.creating && level < 10 && xp.current >= xp.next":{"text":"!character.creating && level < 10 && xp.current >= xp.next","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["level"]},"right":{"type":"int","value":10}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["xp","current"]},"right":{"type":"name","path":["xp","next"]}}}},"!character.creating && level < 20 && xp.current >= xp.next":{"text":"!character.creating && level < 20 && xp.current >= xp.next","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<","left":{"type":"name","path":["level"]},"right":{"type":"int","value":20}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["xp","current"]},"right":{"type":"name","path":["xp","next"]}}}},"!character.creating && psionics.access != 'none'\n && skillPoints.general + skillPoints.psychic + skillPoints.training > 0":{"text":"!character.creating && psionics.access != 'none' && skillPoints.general + skillPoints.psychic + skillPoints.training > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}}},"right":{"type":"binary","op":">","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["skillPoints","general"]},"right":{"type":"name","path":["skillPoints","psychic"]}},"right":{"type":"name","path":["skillPoints","training"]}},"right":{"type":"int","value":0}}}},"!character.creating || (countCopies(copy.type == 'class') > 0\n && countCopies(copy.type == 'background') > 0)":{"text":"!character.creating || countCopies(copy.type == 'class') > 0 && countCopies(copy.type == 'background') > 0","tree":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"class"}}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"background"}}]},"right":{"type":"int","value":0}}}}},"!character.creating || countCopies(copy.type == 'focus') > 0":{"text":"!character.creating || countCopies(copy.type == 'focus') > 0","tree":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"focus"}}]},"right":{"type":"int","value":0}}}},"!character.creating || maxFields(f.value, 'skill' in f.tags) <= 1":{"text":"!character.creating || maxFields(f.value, 'skill' in f.tags) <= 1","tree":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["character","creating"]}},"right":{"type":"binary","op":"<=","left":{"type":"call","fn":"maxFields","args":[{"type":"name","path":["f","value"]},{"type":"binary","op":"in","left":{"type":"string","value":"skill"},"right":{"type":"name","path":["f","tags"]}}]},"right":{"type":"int","value":1}}}},"!flags.day":{"text":"!flags.day","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","day"]}}},"!flags.landed && steps.roll.band == 'miss'":{"text":"!flags.landed && steps.roll.band == 'miss'","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","landed"]}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","roll","band"]},"right":{"type":"string","value":"miss"}}}},"!has(item.attribute) ? 0\n : item.attribute == 'str-dex' ? max(attributes.str.mod, attributes.dex.mod)\n : fieldOf('attributes.{attr}.mod', item.attribute)":{"text":"!has(item.attribute) ? 0 : item.attribute == 'str-dex' ? max(attributes.str.mod, attributes.dex.mod) : fieldOf('attributes.{attr}.mod', item.attribute)","tree":{"type":"conditional","test":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["item","attribute"]}]}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","attribute"]},"right":{"type":"string","value":"str-dex"}},"then":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","str","mod"]},{"type":"name","path":["attributes","dex","mod"]}]},"else":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attr}.mod"},{"type":"name","path":["item","attribute"]}]}}}},"!has(steps.style.item.table)":{"text":"!has(steps.style.item.table)","tree":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","style","item","table"]}]}}},"!has(steps.style.item.table) && class.focus.combat > 0":{"text":"!has(steps.style.item.table) && class.focus.combat > 0","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","style","item","table"]}]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["class","focus","combat"]},"right":{"type":"int","value":0}}}},"!has(steps.style.item.table) && class.focus.noncombat > 0":{"text":"!has(steps.style.item.table) && class.focus.noncombat > 0","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","style","item","table"]}]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["class","focus","noncombat"]},"right":{"type":"int","value":0}}}},"!item.core":{"text":"!item.core","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["item","core"]}}},"!item.repeatable":{"text":"!item.repeatable","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["item","repeatable"]}}},"!params.advancement && flags.entry != 'none'":{"text":"!params.advancement && flags.entry != 'none'","tree":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["params","advancement"]}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","entry"]},"right":{"type":"string","value":"none"}}}},"!scene.expertReroll":{"text":"!scene.expertReroll","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["scene","expertReroll"]}}},"!scene.warriorLuck":{"text":"!scene.warriorLuck","tree":{"type":"unary","op":"!","operand":{"type":"name","path":["scene","warriorLuck"]}}},"!self.equipped && !self.stored && has(item.enc) && item.enc > 0\n && encumbrance.stowed > encumbrance.stowedLimit":{"text":"!self.equipped && !self.stored && has(item.enc) && item.enc > 0 && encumbrance.stowed > encumbrance.stowedLimit","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"unary","op":"!","operand":{"type":"name","path":["self","equipped"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["self","stored"]}}},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","enc"]}]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","enc"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["encumbrance","stowed"]},"right":{"type":"name","path":["encumbrance","stowedLimit"]}}}},"''":{"text":"''","tree":{"type":"string","value":""}},"'accept'":{"text":"'accept'","tree":{"type":"string","value":"accept"}},"'advanced'":{"text":"'advanced'","tree":{"type":"string","value":"advanced"}},"'any-psychic'":{"text":"'any-psychic'","tree":{"type":"string","value":"any-psychic"}},"'any-skill'":{"text":"'any-skill'","tree":{"type":"string","value":"any-skill"}},"'armor.armored-undersuit'":{"text":"'armor.armored-undersuit'","tree":{"type":"string","value":"armor.armored-undersuit"}},"'armor.armored-vacc-suit'":{"text":"'armor.armored-vacc-suit'","tree":{"type":"string","value":"armor.armored-vacc-suit"}},"'armor.light-primitive-armor'":{"text":"'armor.light-primitive-armor'","tree":{"type":"string","value":"armor.light-primitive-armor"}},"'armor.secure-clothing'":{"text":"'armor.secure-clothing'","tree":{"type":"string","value":"armor.secure-clothing"}},"'armor.shield'":{"text":"'armor.shield'","tree":{"type":"string","value":"armor.shield"}},"'armor.woven-body-armor'":{"text":"'armor.woven-body-armor'","tree":{"type":"string","value":"armor.woven-body-armor"}},"'attack' in item.tags || 'combat' in item.tags":{"text":"'attack' in item.tags || 'combat' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"attack"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"combat"},"right":{"type":"name","path":["item","tags"]}}}},"'attack.' + item.skill":{"text":"'attack.' + item.skill","tree":{"type":"binary","op":"+","left":{"type":"string","value":"attack."},"right":{"type":"name","path":["item","skill"]}}},"'attribute' in item.tags":{"text":"'attribute' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"attribute"},"right":{"type":"name","path":["item","tags"]}}},"'attributes.' + params.attribute + '.score'":{"text":"'attributes.' + params.attribute + '.score'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"attributes."},"right":{"type":"name","path":["params","attribute"]}},"right":{"type":"string","value":".score"}}},"'attributes.' + picked.id + '.score'":{"text":"'attributes.' + picked.id + '.score'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"attributes."},"right":{"type":"name","path":["picked","id"]}},"right":{"type":"string","value":".score"}}},"'attributes.' + picked.value + '.score'":{"text":"'attributes.' + picked.value + '.score'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"attributes."},"right":{"type":"name","path":["picked","value"]}},"right":{"type":"string","value":".score"}}},"'attributes.' + steps.attribute.picked + '.score'":{"text":"'attributes.' + steps.attribute.picked + '.score'","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"string","value":"attributes."},"right":{"type":"name","path":["steps","attribute","picked"]}},"right":{"type":"string","value":".score"}}},"'biopsionics'":{"text":"'biopsionics'","tree":{"type":"string","value":"biopsionics"}},"'check' in item.tags || 'save' in item.tags || 'initiative' in item.tags":{"text":"'check' in item.tags || 'save' in item.tags || 'initiative' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"check"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"save"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"initiative"},"right":{"type":"name","path":["item","tags"]}}}},"'class'":{"text":"'class'","tree":{"type":"string","value":"class"}},"'combat'":{"text":"'combat'","tree":{"type":"string","value":"combat"}},"'committed'":{"text":"'committed'","tree":{"type":"string","value":"committed"}},"'created'":{"text":"'created'","tree":{"type":"string","value":"created"}},"'cursed'":{"text":"'cursed'","tree":{"type":"string","value":"cursed"}},"'ended'":{"text":"'ended'","tree":{"type":"string","value":"ended"}},"'equipped'":{"text":"'equipped'","tree":{"type":"string","value":"equipped"}},"'failed'":{"text":"'failed'","tree":{"type":"string","value":"failed"}},"'fix'":{"text":"'fix'","tree":{"type":"string","value":"fix"}},"'foci.' + flags.foci[0][0]":{"text":"'foci.' + flags.foci[0][0]","tree":{"type":"binary","op":"+","left":{"type":"string","value":"foci."},"right":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":0}},"index":{"type":"int","value":0}}}},"'foci.' + flags.foci[1][0]":{"text":"'foci.' + flags.foci[1][0]","tree":{"type":"binary","op":"+","left":{"type":"string","value":"foci."},"right":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":1}},"index":{"type":"int","value":0}}}},"'gained'":{"text":"'gained'","tree":{"type":"string","value":"gained"}},"'gear.ammo-20-rounds'":{"text":"'gear.ammo-20-rounds'","tree":{"type":"string","value":"gear.ammo-20-rounds"}},"'gear.backpack-tl0'":{"text":"'gear.backpack-tl0'","tree":{"type":"string","value":"gear.backpack-tl0"}},"'gear.binoculars-tl3'":{"text":"'gear.binoculars-tl3'","tree":{"type":"string","value":"gear.binoculars-tl3"}},"'gear.bioscanner'":{"text":"'gear.bioscanner'","tree":{"type":"string","value":"gear.bioscanner"}},"'gear.climbing-harness'":{"text":"'gear.climbing-harness'","tree":{"type":"string","value":"gear.climbing-harness"}},"'gear.compad'":{"text":"'gear.compad'","tree":{"type":"string","value":"gear.compad"}},"'gear.dataslab'":{"text":"'gear.dataslab'","tree":{"type":"string","value":"gear.dataslab"}},"'gear.lazarus-patch'":{"text":"'gear.lazarus-patch'","tree":{"type":"string","value":"gear.lazarus-patch"}},"'gear.lift'":{"text":"'gear.lift'","tree":{"type":"string","value":"gear.lift"}},"'gear.line-shunt'":{"text":"'gear.line-shunt'","tree":{"type":"string","value":"gear.line-shunt"}},"'gear.low-light-goggles'":{"text":"'gear.low-light-goggles'","tree":{"type":"string","value":"gear.low-light-goggles"}},"'gear.medkit'":{"text":"'gear.medkit'","tree":{"type":"string","value":"gear.medkit"}},"'gear.metatool'":{"text":"'gear.metatool'","tree":{"type":"string","value":"gear.metatool"}},"'gear.postech-toolkit'":{"text":"'gear.postech-toolkit'","tree":{"type":"string","value":"gear.postech-toolkit"}},"'gear.power-cell-a'":{"text":"'gear.power-cell-a'","tree":{"type":"string","value":"gear.power-cell-a"}},"'gear.rations-1-day'":{"text":"'gear.rations-1-day'","tree":{"type":"string","value":"gear.rations-1-day"}},"'gear.rope-tl0'":{"text":"'gear.rope-tl0'","tree":{"type":"string","value":"gear.rope-tl0"}},"'gear.spare-parts'":{"text":"'gear.spare-parts'","tree":{"type":"string","value":"gear.spare-parts"}},"'gear.survey-scanner'":{"text":"'gear.survey-scanner'","tree":{"type":"string","value":"gear.survey-scanner"}},"'gear.survival-kit'":{"text":"'gear.survival-kit'","tree":{"type":"string","value":"gear.survival-kit"}},"'healed'":{"text":"'healed'","tree":{"type":"string","value":"healed"}},"'health' in item.tags || 'strain' in item.tags":{"text":"'health' in item.tags || 'strain' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"health"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"strain"},"right":{"type":"name","path":["item","tags"]}}}},"'kit'":{"text":"'kit'","tree":{"type":"string","value":"kit"}},"'learning'":{"text":"'learning'","tree":{"type":"string","value":"learning"}},"'level-up' in item.tags || 'creation' in item.tags":{"text":"'level-up' in item.tags || 'creation' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"level-up"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"creation"},"right":{"type":"name","path":["item","tags"]}}}},"'mental'":{"text":"'mental'","tree":{"type":"string","value":"mental"}},"'negated'":{"text":"'negated'","tree":{"type":"string","value":"negated"}},"'noncombat'":{"text":"'noncombat'","tree":{"type":"string","value":"noncombat"}},"'none'":{"text":"'none'","tree":{"type":"string","value":"none"}},"'picked'":{"text":"'picked'","tree":{"type":"string","value":"picked"}},"'psionics' in item.tags":{"text":"'psionics' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"psionics"},"right":{"type":"name","path":["item","tags"]}}},"'quick'":{"text":"'quick'","tree":{"type":"string","value":"quick"}},"'released'":{"text":"'released'","tree":{"type":"string","value":"released"}},"'reloaded'":{"text":"'reloaded'","tree":{"type":"string","value":"reloaded"}},"'rested'":{"text":"'rested'","tree":{"type":"string","value":"rested"}},"'restricted'":{"text":"'restricted'","tree":{"type":"string","value":"restricted"}},"'roll'":{"text":"'roll'","tree":{"type":"string","value":"roll"}},"'rolled'":{"text":"'rolled'","tree":{"type":"string","value":"rolled"}},"'save' in item.tags":{"text":"'save' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"save"},"right":{"type":"name","path":["item","tags"]}}},"'save.' + params.save":{"text":"'save.' + params.save","tree":{"type":"binary","op":"+","left":{"type":"string","value":"save."},"right":{"type":"name","path":["params","save"]}}},"'skill.general' in item.tags || 'skill.combat' in item.tags":{"text":"'skill.general' in item.tags || 'skill.combat' in item.tags","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"in","left":{"type":"string","value":"skill.general"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"in","left":{"type":"string","value":"skill.combat"},"right":{"type":"name","path":["item","tags"]}}}},"'skill.psychic' in item.tags":{"text":"'skill.psychic' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"skill.psychic"},"right":{"type":"name","path":["item","tags"]}}},"'spent'":{"text":"'spent'","tree":{"type":"string","value":"spent"}},"'taken'":{"text":"'taken'","tree":{"type":"string","value":"taken"}},"'techniques.cursed-luck'":{"text":"'techniques.cursed-luck'","tree":{"type":"string","value":"techniques.cursed-luck"}},"'unarmed' in item.tags":{"text":"'unarmed' in item.tags","tree":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}}},"'unrestricted'":{"text":"'unrestricted'","tree":{"type":"string","value":"unrestricted"}},"'weapons.combat-rifle'":{"text":"'weapons.combat-rifle'","tree":{"type":"string","value":"weapons.combat-rifle"}},"'weapons.knife'":{"text":"'weapons.knife'","tree":{"type":"string","value":"weapons.knife"}},"'weapons.laser-pistol'":{"text":"'weapons.laser-pistol'","tree":{"type":"string","value":"weapons.laser-pistol"}},"'weapons.laser-rifle'":{"text":"'weapons.laser-rifle'","tree":{"type":"string","value":"weapons.laser-rifle"}},"'weapons.monoblade-knife'":{"text":"'weapons.monoblade-knife'","tree":{"type":"string","value":"weapons.monoblade-knife"}},"'weapons.monoblade-sword'":{"text":"'weapons.monoblade-sword'","tree":{"type":"string","value":"weapons.monoblade-sword"}},"'weapons.spear'":{"text":"'weapons.spear'","tree":{"type":"string","value":"weapons.spear"}},"'weapons.thermal-knife'":{"text":"'weapons.thermal-knife'","tree":{"type":"string","value":"weapons.thermal-knife"}},"(ac.shield > 0 ? (ac.armor >= ac.shield ? ac.armor + 1 : ac.shield) : ac.armor)\n + attributes.dex.mod":{"text":"(ac.shield > 0 ? (ac.armor >= ac.shield ? ac.armor + 1 : ac.shield) : ac.armor) + attributes.dex.mod","tree":{"type":"binary","op":"+","left":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"name","path":["ac","shield"]},"right":{"type":"int","value":0}},"then":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["ac","armor"]},"right":{"type":"name","path":["ac","shield"]}},"then":{"type":"binary","op":"+","left":{"type":"name","path":["ac","armor"]},"right":{"type":"int","value":1}},"else":{"type":"name","path":["ac","shield"]}},"else":{"type":"name","path":["ac","armor"]}},"right":{"type":"name","path":["attributes","dex","mod"]}}},"(fieldOf('skills.{skill}.dice', params.skill))d6kh2":{"text":"(fieldOf('skills.{skill}.dice', params.skill))d6kh2","tree":{"type":"dice","count":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.dice"},{"type":"name","path":["params","skill"]}]},"sides":6,"modifiers":[{"type":"keepHighest","count":2}]}},"(flags.level >= 4 ? 0 : flags.pool) != flags.had":{"text":"(flags.level >= 4 ? 0 : flags.pool) != flags.had","tree":{"type":"binary","op":"!=","left":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}},"then":{"type":"int","value":0},"else":{"type":"name","path":["flags","pool"]}},"right":{"type":"name","path":["flags","had"]}}},"(flags.next)d6":{"text":"(flags.next)d6","tree":{"type":"dice","count":{"type":"name","path":["flags","next"]},"sides":6,"modifiers":[]}},"(flags.total > flags.before ? flags.total : flags.before + 1) - flags.before":{"text":"(flags.total > flags.before ? flags.total : flags.before + 1) - flags.before","tree":{"type":"binary","op":"-","left":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"name","path":["flags","total"]},"right":{"type":"name","path":["flags","before"]}},"then":{"type":"name","path":["flags","total"]},"else":{"type":"binary","op":"+","left":{"type":"name","path":["flags","before"]},"right":{"type":"int","value":1}}},"right":{"type":"name","path":["flags","before"]}}},"(flags.total > flags.before ? flags.total : flags.before + 1) - hp.perLevel * level":{"text":"(flags.total > flags.before ? flags.total : flags.before + 1) - hp.perLevel * level","tree":{"type":"binary","op":"-","left":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"name","path":["flags","total"]},"right":{"type":"name","path":["flags","before"]}},"then":{"type":"name","path":["flags","total"]},"else":{"type":"binary","op":"+","left":{"type":"name","path":["flags","before"]},"right":{"type":"int","value":1}}},"right":{"type":"binary","op":"*","left":{"type":"name","path":["hp","perLevel"]},"right":{"type":"name","path":["level"]}}}},"(params.kind == 'any' || item.kind == params.kind)\n && !('needs-psionics' in item.tags && psionics.access == 'none')\n && !('no-psionics' in item.tags && psionics.access != 'none')\n && (item.repeatable || countCopies(copy.item == item.id\n && copy.state.level >= item.maxLevel) == 0)":{"text":"(params.kind == 'any' || item.kind == params.kind) && !('needs-psionics' in item.tags && psionics.access == 'none') && !('no-psionics' in item.tags && psionics.access != 'none') && (item.repeatable || countCopies(copy.item == item.id && copy.state.level >= item.maxLevel) == 0)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","kind"]},"right":{"type":"string","value":"any"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"name","path":["params","kind"]}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"needs-psionics"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}}}}},"right":{"type":"unary","op":"!","operand":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"string","value":"no-psionics"},"right":{"type":"name","path":["item","tags"]}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}}}}},"right":{"type":"binary","op":"||","left":{"type":"name","path":["item","repeatable"]},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["copy","state","level"]},"right":{"type":"name","path":["item","maxLevel"]}}}]},"right":{"type":"int","value":0}}}}},"(self.equipped || 'unarmed' in item.tags) && (!has(item.magazine) || self.loaded > 0)":{"text":"(self.equipped || 'unarmed' in item.tags) && (!has(item.magazine) || self.loaded > 0)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"||","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":"in","left":{"type":"string","value":"unarmed"},"right":{"type":"name","path":["item","tags"]}}},"right":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["self","loaded"]},"right":{"type":"int","value":0}}}}},"(skills.metapsionics.level >= 1 ? 1 : 0) + (skills.metapsionics.level >= 3 ? 1 : 0)":{"text":"(skills.metapsionics.level >= 1 ? 1 : 0) + (skills.metapsionics.level >= 3 ? 1 : 0)","tree":{"type":"binary","op":"+","left":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","metapsionics","level"]},"right":{"type":"int","value":1}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}},"right":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","metapsionics","level"]},"right":{"type":"int","value":3}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}}},"-(attributes.boosts + 1)":{"text":"-(attributes.boosts + 1)","tree":{"type":"unary","op":"-","operand":{"type":"binary","op":"+","left":{"type":"name","path":["attributes","boosts"]},"right":{"type":"int","value":1}}}},"-(flags.burst ? 3 : 1)":{"text":"-(flags.burst ? 3 : 1)","tree":{"type":"unary","op":"-","operand":{"type":"conditional","test":{"type":"name","path":["flags","burst"]},"then":{"type":"int","value":3},"else":{"type":"int","value":1}}}},"-flags.damage":{"text":"-flags.damage","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","damage"]}}},"-flags.fromCredit":{"text":"-flags.fromCredit","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","fromCredit"]}}},"-flags.fromExpert":{"text":"-flags.fromExpert","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","fromExpert"]}}},"-flags.fromGeneral":{"text":"-flags.fromGeneral","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","fromGeneral"]}}},"-flags.fromPsychic":{"text":"-flags.fromPsychic","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","fromPsychic"]}}},"-flags.training":{"text":"-flags.training","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["flags","training"]}}},"-maxOf(item.damage)":{"text":"-maxOf(item.damage)","tree":{"type":"unary","op":"-","operand":{"type":"call","fn":"maxOf","args":[{"type":"name","path":["item","damage"]}]}}},"-params.amount":{"text":"-params.amount","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["params","amount"]}}},"-self.torched":{"text":"-self.torched","tree":{"type":"unary","op":"-","operand":{"type":"name","path":["self","torched"]}}},"15 + ceil(level / 2)":{"text":"15 + ceil(level / 2)","tree":{"type":"binary","op":"+","left":{"type":"int","value":15},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]}}},"16 - level - max(attributes.dex.mod, attributes.int.mod)":{"text":"16 - level - max(attributes.dex.mod, attributes.int.mod)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","dex","mod"]},{"type":"name","path":["attributes","int","mod"]}]}}},"16 - level - max(attributes.str.mod, attributes.con.mod)":{"text":"16 - level - max(attributes.str.mod, attributes.con.mod)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","str","mod"]},{"type":"name","path":["attributes","con","mod"]}]}}},"16 - level - max(attributes.wis.mod, attributes.cha.mod)":{"text":"16 - level - max(attributes.wis.mod, attributes.cha.mod)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"int","value":16},"right":{"type":"name","path":["level"]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","wis","mod"]},{"type":"name","path":["attributes","cha","mod"]}]}}},"1d10":{"text":"1d10","tree":{"type":"dice","count":1,"sides":10,"modifiers":[]}},"1d10 + 1":{"text":"1d10 + 1","tree":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":10,"modifiers":[]},"right":{"type":"int","value":1}}},"1d10 + 2":{"text":"1d10 + 2","tree":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":10,"modifiers":[]},"right":{"type":"int","value":2}}},"1d12":{"text":"1d12","tree":{"type":"dice","count":1,"sides":12,"modifiers":[]}},"1d2":{"text":"1d2","tree":{"type":"dice","count":1,"sides":2,"modifiers":[]}},"1d20":{"text":"1d20","tree":{"type":"dice","count":1,"sides":20,"modifiers":[]}},"1d4":{"text":"1d4","tree":{"type":"dice","count":1,"sides":4,"modifiers":[]}},"1d6":{"text":"1d6","tree":{"type":"dice","count":1,"sides":6,"modifiers":[]}},"1d6 + 1":{"text":"1d6 + 1","tree":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":6,"modifiers":[]},"right":{"type":"int","value":1}}},"1d8":{"text":"1d8","tree":{"type":"dice","count":1,"sides":8,"modifiers":[]}},"1d8 + 1":{"text":"1d8 + 1","tree":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":8,"modifiers":[]},"right":{"type":"int","value":1}}},"2d10":{"text":"2d10","tree":{"type":"dice","count":2,"sides":10,"modifiers":[]}},"2d12":{"text":"2d12","tree":{"type":"dice","count":2,"sides":12,"modifiers":[]}},"2d6":{"text":"2d6","tree":{"type":"dice","count":2,"sides":6,"modifiers":[]}},"2d6 + 2":{"text":"2d6 + 2","tree":{"type":"binary","op":"+","left":{"type":"dice","count":2,"sides":6,"modifiers":[]},"right":{"type":"int","value":2}}},"2d8":{"text":"2d8","tree":{"type":"dice","count":2,"sides":8,"modifiers":[]}},"2d8 + 2":{"text":"2d8 + 2","tree":{"type":"binary","op":"+","left":{"type":"dice","count":2,"sides":8,"modifiers":[]},"right":{"type":"int","value":2}}},"3 + fieldOf('skills.{skill}.credit',\n size(flags.open) == 1 ? flags.open[0] : steps.choose.picked)":{"text":"3 + fieldOf('skills.{skill}.credit', size(flags.open) == 1 ? flags.open[0] : steps.choose.picked)","tree":{"type":"binary","op":"+","left":{"type":"int","value":3},"right":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","open"]}]},"right":{"type":"int","value":1}},"then":{"type":"index","object":{"type":"name","path":["flags","open"]},"index":{"type":"int","value":0}},"else":{"type":"name","path":["steps","choose","picked"]}}]}}},"3d10":{"text":"3d10","tree":{"type":"dice","count":3,"sides":10,"modifiers":[]}},"3d4":{"text":"3d4","tree":{"type":"dice","count":3,"sides":4,"modifiers":[]}},"3d6":{"text":"3d6","tree":{"type":"dice","count":3,"sides":6,"modifiers":[]}},"3d8":{"text":"3d8","tree":{"type":"dice","count":3,"sides":8,"modifiers":[]}},"5d12":{"text":"5d12","tree":{"type":"dice","count":5,"sides":12,"modifiers":[]}},"@techniques.telekinetic-armory":{"text":"@techniques.telekinetic-armory","tree":{"type":"ref","id":"techniques.telekinetic-armory"}},"@techniques.telekinetic-manipulation":{"text":"@techniques.telekinetic-manipulation","tree":{"type":"ref","id":"techniques.telekinetic-manipulation"}},"['check.' + params.skill]\n + (params.skill in ['connect', 'lead', 'perform', 'talk'] ? ['check.social'] : [])":{"text":"['check.' + params.skill] + (params.skill in ['connect', 'lead', 'perform', 'talk'] ? ['check.social'] : [])","tree":{"type":"binary","op":"+","left":{"type":"list","items":[{"type":"binary","op":"+","left":{"type":"string","value":"check."},"right":{"type":"name","path":["params","skill"]}}]},"right":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"name","path":["params","skill"]},"right":{"type":"list","items":[{"type":"string","value":"connect"},{"type":"string","value":"lead"},{"type":"string","value":"perform"},{"type":"string","value":"talk"}]}},"then":{"type":"list","items":[{"type":"string","value":"check.social"}]},"else":{"type":"list","items":[]}}}},"['str', 'dex', 'con', 'int', 'wis', 'cha'][indexOf([attributes.str.score,\n attributes.dex.score, attributes.con.score, attributes.int.score,\n attributes.wis.score, attributes.cha.score], maxList([attributes.str.score,\n attributes.dex.score, attributes.con.score, attributes.int.score,\n attributes.wis.score, attributes.cha.score], x))]":{"text":"['str', 'dex', 'con', 'int', 'wis', 'cha'][indexOf([attributes.str.score, attributes.dex.score, attributes.con.score, attributes.int.score, attributes.wis.score, attributes.cha.score], maxList([attributes.str.score, attributes.dex.score, attributes.con.score, attributes.int.score, attributes.wis.score, attributes.cha.score], x))]","tree":{"type":"index","object":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"},{"type":"string","value":"con"},{"type":"string","value":"int"},{"type":"string","value":"wis"},{"type":"string","value":"cha"}]},"index":{"type":"call","fn":"indexOf","args":[{"type":"list","items":[{"type":"name","path":["attributes","str","score"]},{"type":"name","path":["attributes","dex","score"]},{"type":"name","path":["attributes","con","score"]},{"type":"name","path":["attributes","int","score"]},{"type":"name","path":["attributes","wis","score"]},{"type":"name","path":["attributes","cha","score"]}]},{"type":"call","fn":"maxList","args":[{"type":"list","items":[{"type":"name","path":["attributes","str","score"]},{"type":"name","path":["attributes","dex","score"]},{"type":"name","path":["attributes","con","score"]},{"type":"name","path":["attributes","int","score"]},{"type":"name","path":["attributes","wis","score"]},{"type":"name","path":["attributes","cha","score"]}]},{"type":"name","path":["x"]}]}]}}},"[10, 7, 5, 0][encumbrance.level]":{"text":"[10, 7, 5, 0][encumbrance.level]","tree":{"type":"index","object":{"type":"list","items":[{"type":"int","value":10},{"type":"int","value":7},{"type":"int","value":5},{"type":"int","value":0}]},"index":{"type":"name","path":["encumbrance","level"]}}},"[[[['specialist', 'fix', 'fix'], ['die-hard', 'none', '']], [['hacker', 'program', ''], ['tinker', 'fix', '']], [['specialist', 'know', 'know'], ['healer', 'heal', '']], [['specialist', 'fix', 'fix'], ['tinker', 'fix', '']], [['healer', 'heal', ''], ['ironhide', 'none', '']], [['specialist', 'fix', 'fix'], ['hacker', 'program', '']]], [[['diplomat', 'talk', ''], ['connected', 'connect', '']], [['specialist', 'talk', 'talk'], ['die-hard', 'none', '']], [['diplomat', 'talk', ''], ['alert', 'notice', '']], [['specialist', 'lead', 'lead'], ['authority', 'lead', '']], [['healer', 'heal', ''], ['specialist', 'talk', 'talk']], [['specialist', 'notice', 'notice'], ['specialist', 'talk', 'talk']]], [[['specialist', 'pilot', 'pilot'], ['starfarer', 'pilot', '']], [['healer', 'heal', ''], ['die-hard', 'none', '']], [['tinker', 'fix', ''], ['gunslinger', 'shoot', '']], [['specialist', 'sneak', 'sneak'], ['assassin', 'sneak', '']], [['specialist', 'sneak', 'sneak'], ['specialist', 'exert', 'exert']], [['specialist', 'perform', 'perform'], ['specialist', 'sneak', 'sneak']]], [[['savage-fray', 'stab', ''], ['shocking-assault', 'punch-or-stab', '']], [['assassin', 'sneak', ''], ['specialist', 'sneak', 'sneak']], [['armsman', 'stab', ''], ['close-combatant', 'any-combat', '']], [['close-combatant', 'any-combat', ''], ['savage-fray', 'stab', '']], [['ironhide', 'none', ''], ['die-hard', 'none', '']], [['unarmed-combatant', 'punch', ''], ['close-combatant', 'any-combat', '']]], [[['gunslinger', 'shoot', ''], ['close-combatant', 'any-combat', '']], [['sniper', 'shoot', ''], ['specialist', 'sneak', 'sneak']], [['assassin', 'sneak', ''], ['specialist', 'sneak', 'sneak']], [['ironhide', 'none', ''], ['die-hard', 'none', '']], [['gunslinger', 'shoot', ''], ['tinker', 'fix', '']], [['close-combatant', 'any-combat', ''], ['alert', 'notice', '']]], [[['gunslinger', 'shoot', ''], ['authority', 'lead', '']], [['ironhide', 'none', ''], ['connected', 'connect', '']], [['armsman', 'stab', ''], ['specialist', 'lead', 'lead']], [['gunslinger', 'shoot', ''], ['specialist', 'talk', 'talk']], [['assassin', 'sneak', ''], ['die-hard', 'none', '']], [['close-combatant', 'any-combat', ''], ['henchkeeper', 'lead', '']]], [[['alert', 'notice', '']], [['healer', 'heal', '']], [['specialist', 'notice', 'notice']], [['psychic-training', 'any-psychic', '']], [['savage-fray', 'stab', '']], [['hacker', 'program', '']]], [[['armsman', 'stab', '']], [['ironhide', 'none', '']], [['die-hard', 'none', '']], [['psychic-training', 'any-psychic', '']], [['healer', 'heal', '']], [['unarmed-combatant', 'punch', '']]]][steps.style.item.table][flags.row]":{"text":"[[[['specialist', 'fix', 'fix'], ['die-hard', 'none', '']], [['hacker', 'program', ''], ['tinker', 'fix', '']], [['specialist', 'know', 'know'], ['healer', 'heal', '']], [['specialist', 'fix', 'fix'], ['tinker', 'fix', '']], [['healer', 'heal', ''], ['ironhide', 'none', '']], [['specialist', 'fix', 'fix'], ['hacker', 'program', '']]], [[['diplomat', 'talk', ''], ['connected', 'connect', '']], [['specialist', 'talk', 'talk'], ['die-hard', 'none', '']], [['diplomat', 'talk', ''], ['alert', 'notice', '']], [['specialist', 'lead', 'lead'], ['authority', 'lead', '']], [['healer', 'heal', ''], ['specialist', 'talk', 'talk']], [['specialist', 'notice', 'notice'], ['specialist', 'talk', 'talk']]], [[['specialist', 'pilot', 'pilot'], ['starfarer', 'pilot', '']], [['healer', 'heal', ''], ['die-hard', 'none', '']], [['tinker', 'fix', ''], ['gunslinger', 'shoot', '']], [['specialist', 'sneak', 'sneak'], ['assassin', 'sneak', '']], [['specialist', 'sneak', 'sneak'], ['specialist', 'exert', 'exert']], [['specialist', 'perform', 'perform'], ['specialist', 'sneak', 'sneak']]], [[['savage-fray', 'stab', ''], ['shocking-assault', 'punch-or-stab', '']], [['assassin', 'sneak', ''], ['specialist', 'sneak', 'sneak']], [['armsman', 'stab', ''], ['close-combatant', 'any-combat', '']], [['close-combatant', 'any-combat', ''], ['savage-fray', 'stab', '']], [['ironhide', 'none', ''], ['die-hard', 'none', '']], [['unarmed-combatant', 'punch', ''], ['close-combatant', 'any-combat', '']]], [[['gunslinger', 'shoot', ''], ['close-combatant', 'any-combat', '']], [['sniper', 'shoot', ''], ['specialist', 'sneak', 'sneak']], [['assassin', 'sneak', ''], ['specialist', 'sneak', 'sneak']], [['ironhide', 'none', ''], ['die-hard', 'none', '']], [['gunslinger', 'shoot', ''], ['tinker', 'fix', '']], [['close-combatant', 'any-combat', ''], ['alert', 'notice', '']]], [[['gunslinger', 'shoot', ''], ['authority', 'lead', '']], [['ironhide', 'none', ''], ['connected', 'connect', '']], [['armsman', 'stab', ''], ['specialist', 'lead', 'lead']], [['gunslinger', 'shoot', ''], ['specialist', 'talk', 'talk']], [['assassin', 'sneak', ''], ['die-hard', 'none', '']], [['close-combatant', 'any-combat', ''], ['henchkeeper', 'lead', '']]], [[['alert', 'notice', '']], [['healer', 'heal', '']], [['specialist', 'notice', 'notice']], [['psychic-training', 'any-psychic', '']], [['savage-fray', 'stab', '']], [['hacker', 'program', '']]], [[['armsman', 'stab', '']], [['ironhide', 'none', '']], [['die-hard', 'none', '']], [['psychic-training', 'any-psychic', '']], [['healer', 'heal', '']], [['unarmed-combatant', 'punch', '']]]][steps.style.item.table][flags.row]","tree":{"type":"index","object":{"type":"index","object":{"type":"list","items":[{"type":"list","items":[{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"fix"},{"type":"string","value":"fix"}]},{"type":"list","items":[{"type":"string","value":"die-hard"},{"type":"string","value":"none"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"hacker"},{"type":"string","value":"program"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"tinker"},{"type":"string","value":"fix"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"know"},{"type":"string","value":"know"}]},{"type":"list","items":[{"type":"string","value":"healer"},{"type":"string","value":"heal"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"fix"},{"type":"string","value":"fix"}]},{"type":"list","items":[{"type":"string","value":"tinker"},{"type":"string","value":"fix"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"healer"},{"type":"string","value":"heal"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"ironhide"},{"type":"string","value":"none"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"fix"},{"type":"string","value":"fix"}]},{"type":"list","items":[{"type":"string","value":"hacker"},{"type":"string","value":"program"},{"type":"string","value":""}]}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"diplomat"},{"type":"string","value":"talk"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"connected"},{"type":"string","value":"connect"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"talk"},{"type":"string","value":"talk"}]},{"type":"list","items":[{"type":"string","value":"die-hard"},{"type":"string","value":"none"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"diplomat"},{"type":"string","value":"talk"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"alert"},{"type":"string","value":"notice"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"lead"},{"type":"string","value":"lead"}]},{"type":"list","items":[{"type":"string","value":"authority"},{"type":"string","value":"lead"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"healer"},{"type":"string","value":"heal"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"talk"},{"type":"string","value":"talk"}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"notice"},{"type":"string","value":"notice"}]},{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"talk"},{"type":"string","value":"talk"}]}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"pilot"},{"type":"string","value":"pilot"}]},{"type":"list","items":[{"type":"string","value":"starfarer"},{"type":"string","value":"pilot"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"healer"},{"type":"string","value":"heal"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"die-hard"},{"type":"string","value":"none"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"tinker"},{"type":"string","value":"fix"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"gunslinger"},{"type":"string","value":"shoot"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"sneak"},{"type":"string","value":"sneak"}]},{"type":"list","items":[{"type":"string","value":"assassin"},{"type":"string","value":"sneak"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"sneak"},{"type":"string","value":"sneak"}]},{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"exert"},{"type":"string","value":"exert"}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"perform"},{"type":"string","value":"perform"}]},{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"sneak"},{"type":"string","value":"sneak"}]}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"savage-fray"},{"type":"string","value":"stab"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"shocking-assault"},{"type":"string","value":"punch-or-stab"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"assassin"},{"type":"string","value":"sneak"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"sneak"},{"type":"string","value":"sneak"}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"armsman"},{"type":"string","value":"stab"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"close-combatant"},{"type":"string","value":"any-combat"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"close-combatant"},{"type":"string","value":"any-combat"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"savage-fray"},{"type":"string","value":"stab"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"ironhide"},{"type":"string","value":"none"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"die-hard"},{"type":"string","value":"none"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"unarmed-combatant"},{"type":"string","value":"punch"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"close-combatant"},{"type":"string","value":"any-combat"},{"type":"string","value":""}]}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"gunslinger"},{"type":"string","value":"shoot"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"close-combatant"},{"type":"string","value":"any-combat"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"sniper"},{"type":"string","value":"shoot"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"sneak"},{"type":"string","value":"sneak"}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"assassin"},{"type":"string","value":"sneak"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"sneak"},{"type":"string","value":"sneak"}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"ironhide"},{"type":"string","value":"none"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"die-hard"},{"type":"string","value":"none"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"gunslinger"},{"type":"string","value":"shoot"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"tinker"},{"type":"string","value":"fix"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"close-combatant"},{"type":"string","value":"any-combat"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"alert"},{"type":"string","value":"notice"},{"type":"string","value":""}]}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"gunslinger"},{"type":"string","value":"shoot"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"authority"},{"type":"string","value":"lead"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"ironhide"},{"type":"string","value":"none"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"connected"},{"type":"string","value":"connect"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"armsman"},{"type":"string","value":"stab"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"lead"},{"type":"string","value":"lead"}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"gunslinger"},{"type":"string","value":"shoot"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"talk"},{"type":"string","value":"talk"}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"assassin"},{"type":"string","value":"sneak"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"die-hard"},{"type":"string","value":"none"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"close-combatant"},{"type":"string","value":"any-combat"},{"type":"string","value":""}]},{"type":"list","items":[{"type":"string","value":"henchkeeper"},{"type":"string","value":"lead"},{"type":"string","value":""}]}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"alert"},{"type":"string","value":"notice"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"healer"},{"type":"string","value":"heal"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"specialist"},{"type":"string","value":"notice"},{"type":"string","value":"notice"}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"psychic-training"},{"type":"string","value":"any-psychic"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"savage-fray"},{"type":"string","value":"stab"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"hacker"},{"type":"string","value":"program"},{"type":"string","value":""}]}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"armsman"},{"type":"string","value":"stab"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"ironhide"},{"type":"string","value":"none"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"die-hard"},{"type":"string","value":"none"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"psychic-training"},{"type":"string","value":"any-psychic"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"healer"},{"type":"string","value":"heal"},{"type":"string","value":""}]}]},{"type":"list","items":[{"type":"list","items":[{"type":"string","value":"unarmed-combatant"},{"type":"string","value":"punch"},{"type":"string","value":""}]}]}]}]},"index":{"type":"name","path":["steps","style","item","table"]}},"index":{"type":"name","path":["flags","row"]}}},"[]":{"text":"[]","tree":{"type":"list","items":[]}},"[steps.background.item.growth1, steps.background.item.growth2,\n steps.background.item.growth3, steps.background.item.growth4,\n steps.background.item.growth5, steps.background.item.growth6]":{"text":"[steps.background.item.growth1, steps.background.item.growth2, steps.background.item.growth3, steps.background.item.growth4, steps.background.item.growth5, steps.background.item.growth6]","tree":{"type":"list","items":[{"type":"name","path":["steps","background","item","growth1"]},{"type":"name","path":["steps","background","item","growth2"]},{"type":"name","path":["steps","background","item","growth3"]},{"type":"name","path":["steps","background","item","growth4"]},{"type":"name","path":["steps","background","item","growth5"]},{"type":"name","path":["steps","background","item","growth6"]}]}},"[steps.background.item.learning1, steps.background.item.learning2,\n steps.background.item.learning3, steps.background.item.learning4,\n steps.background.item.learning5, steps.background.item.learning6,\n steps.background.item.learning7, steps.background.item.learning8]":{"text":"[steps.background.item.learning1, steps.background.item.learning2, steps.background.item.learning3, steps.background.item.learning4, steps.background.item.learning5, steps.background.item.learning6, steps.background.item.learning7, steps.background.item.learning8]","tree":{"type":"list","items":[{"type":"name","path":["steps","background","item","learning1"]},{"type":"name","path":["steps","background","item","learning2"]},{"type":"name","path":["steps","background","item","learning3"]},{"type":"name","path":["steps","background","item","learning4"]},{"type":"name","path":["steps","background","item","learning5"]},{"type":"name","path":["steps","background","item","learning6"]},{"type":"name","path":["steps","background","item","learning7"]},{"type":"name","path":["steps","background","item","learning8"]}]}},"attributes.cha.score <= 3 ? -2 : attributes.cha.score <= 7 ? -1\n : attributes.cha.score <= 13 ? 0 : attributes.cha.score <= 17 ? 1 : 2":{"text":"attributes.cha.score <= 3 ? -2 : attributes.cha.score <= 7 ? -1 : attributes.cha.score <= 13 ? 0 : attributes.cha.score <= 17 ? 1 : 2","tree":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":3}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":2}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":7}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":13}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"int","value":17}},"then":{"type":"int","value":1},"else":{"type":"int","value":2}}}}}},"attributes.con.score":{"text":"attributes.con.score","tree":{"type":"name","path":["attributes","con","score"]}},"attributes.con.score <= 3 ? -2 : attributes.con.score <= 7 ? -1\n : attributes.con.score <= 13 ? 0 : attributes.con.score <= 17 ? 1 : 2":{"text":"attributes.con.score <= 3 ? -2 : attributes.con.score <= 7 ? -1 : attributes.con.score <= 13 ? 0 : attributes.con.score <= 17 ? 1 : 2","tree":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":3}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":2}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":7}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":13}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"int","value":17}},"then":{"type":"int","value":1},"else":{"type":"int","value":2}}}}}},"attributes.dex.mod":{"text":"attributes.dex.mod","tree":{"type":"name","path":["attributes","dex","mod"]}},"attributes.dex.score <= 3 ? -2 : attributes.dex.score <= 7 ? -1\n : attributes.dex.score <= 13 ? 0 : attributes.dex.score <= 17 ? 1 : 2":{"text":"attributes.dex.score <= 3 ? -2 : attributes.dex.score <= 7 ? -1 : attributes.dex.score <= 13 ? 0 : attributes.dex.score <= 17 ? 1 : 2","tree":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":3}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":2}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":7}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":13}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"int","value":17}},"then":{"type":"int","value":1},"else":{"type":"int","value":2}}}}}},"attributes.int.score <= 3 ? -2 : attributes.int.score <= 7 ? -1\n : attributes.int.score <= 13 ? 0 : attributes.int.score <= 17 ? 1 : 2":{"text":"attributes.int.score <= 3 ? -2 : attributes.int.score <= 7 ? -1 : attributes.int.score <= 13 ? 0 : attributes.int.score <= 17 ? 1 : 2","tree":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":3}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":2}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":7}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":13}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"int","value":17}},"then":{"type":"int","value":1},"else":{"type":"int","value":2}}}}}},"attributes.str.score":{"text":"attributes.str.score","tree":{"type":"name","path":["attributes","str","score"]}},"attributes.str.score <= 3 ? -2 : attributes.str.score <= 7 ? -1\n : attributes.str.score <= 13 ? 0 : attributes.str.score <= 17 ? 1 : 2":{"text":"attributes.str.score <= 3 ? -2 : attributes.str.score <= 7 ? -1 : attributes.str.score <= 13 ? 0 : attributes.str.score <= 17 ? 1 : 2","tree":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":3}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":2}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":7}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":13}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"int","value":17}},"then":{"type":"int","value":1},"else":{"type":"int","value":2}}}}}},"attributes.wis.score <= 3 ? -2 : attributes.wis.score <= 7 ? -1\n : attributes.wis.score <= 13 ? 0 : attributes.wis.score <= 17 ? 1 : 2":{"text":"attributes.wis.score <= 3 ? -2 : attributes.wis.score <= 7 ? -1 : attributes.wis.score <= 13 ? 0 : attributes.wis.score <= 17 ? 1 : 2","tree":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":3}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":2}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":7}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":13}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"int","value":17}},"then":{"type":"int","value":1},"else":{"type":"int","value":2}}}}}},"ceil(level / 3)":{"text":"ceil(level / 3)","tree":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":3}}]}},"character.creating":{"text":"character.creating","tree":{"type":"name","path":["character","creating"]}},"character.creating && countCopies(copy.type == 'class') == 0":{"text":"character.creating && countCopies(copy.type == 'class') == 0","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["character","creating"]},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"class"}}]},"right":{"type":"int","value":0}}}},"choice.id == 'skill' ? flags.foci[0][2]\n : choice.id == 'discipline' && has(steps.focusSkill1.data)\n && steps.focusSkill1.data.skill in options ? steps.focusSkill1.data.skill\n : options[0]":{"text":"choice.id == 'skill' ? flags.foci[0][2] : choice.id == 'discipline' && has(steps.focusSkill1.data) && steps.focusSkill1.data.skill in options ? steps.focusSkill1.data.skill : options[0]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["choice","id"]},"right":{"type":"string","value":"skill"}},"then":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":0}},"index":{"type":"int","value":2}},"else":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["choice","id"]},"right":{"type":"string","value":"discipline"}},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focusSkill1","data"]}]}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["steps","focusSkill1","data","skill"]},"right":{"type":"name","path":["options"]}}},"then":{"type":"name","path":["steps","focusSkill1","data","skill"]},"else":{"type":"index","object":{"type":"name","path":["options"]},"index":{"type":"int","value":0}}}}},"choice.id == 'skill' ? flags.foci[1][2]\n : choice.id == 'discipline' && has(steps.focusSkill2.data)\n && steps.focusSkill2.data.skill in options ? steps.focusSkill2.data.skill\n : options[0]":{"text":"choice.id == 'skill' ? flags.foci[1][2] : choice.id == 'discipline' && has(steps.focusSkill2.data) && steps.focusSkill2.data.skill in options ? steps.focusSkill2.data.skill : options[0]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["choice","id"]},"right":{"type":"string","value":"skill"}},"then":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":1}},"index":{"type":"int","value":2}},"else":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["choice","id"]},"right":{"type":"string","value":"discipline"}},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","focusSkill2","data"]}]}},"right":{"type":"binary","op":"in","left":{"type":"name","path":["steps","focusSkill2","data","skill"]},"right":{"type":"name","path":["options"]}}},"then":{"type":"name","path":["steps","focusSkill2","data","skill"]},"else":{"type":"index","object":{"type":"name","path":["options"]},"index":{"type":"int","value":0}}}}},"choice.picks == [] ? @partial-classes.expert : @partial-classes.warrior":{"text":"choice.picks == [] ? @partial-classes.expert : @partial-classes.warrior","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["choice","picks"]},"right":{"type":"list","items":[]}},"then":{"type":"ref","id":"partial-classes.expert"},"else":{"type":"ref","id":"partial-classes.warrior"}}},"class.expertPoints":{"text":"class.expertPoints","tree":{"type":"name","path":["class","expertPoints"]}},"class.expertPoints > 0":{"text":"class.expertPoints > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["class","expertPoints"]},"right":{"type":"int","value":0}}},"class.focus.combat > 0":{"text":"class.focus.combat > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["class","focus","combat"]},"right":{"type":"int","value":0}}},"class.focus.noncombat > 0":{"text":"class.focus.noncombat > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["class","focus","noncombat"]},"right":{"type":"int","value":0}}},"combat.attackBonus":{"text":"combat.attackBonus","tree":{"type":"name","path":["combat","attackBonus"]}},"countCopies(copy.id == self.id && copy.type == 'technique') > 0 ? 'copy'\n : countCopies(copy.id == self.id && copy.type == 'focus') > 0 ? 'pick'\n : 'grant'":{"text":"countCopies(copy.id == self.id && copy.type == 'technique') > 0 ? 'copy' : countCopies(copy.id == self.id && copy.type == 'focus') > 0 ? 'pick' : 'grant'","tree":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","id"]},"right":{"type":"name","path":["self","id"]}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"technique"}}}]},"right":{"type":"int","value":0}},"then":{"type":"string","value":"copy"},"else":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","id"]},"right":{"type":"name","path":["self","id"]}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"focus"}}}]},"right":{"type":"int","value":0}},"then":{"type":"string","value":"pick"},"else":{"type":"string","value":"grant"}}}},"countCopies(copy.item == @classes.expert) > 0":{"text":"countCopies(copy.item == @classes.expert) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"ref","id":"classes.expert"}}]},"right":{"type":"int","value":0}}},"countCopies(copy.item == @classes.warrior) > 0":{"text":"countCopies(copy.item == @classes.warrior) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"ref","id":"classes.warrior"}}]},"right":{"type":"int","value":0}}},"countCopies(copy.item == @foci.psychic-training && copy.state.level >= 2) > 0":{"text":"countCopies(copy.item == @foci.psychic-training && copy.state.level >= 2) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"ref","id":"foci.psychic-training"}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["copy","state","level"]},"right":{"type":"int","value":2}}}]},"right":{"type":"int","value":0}}},"countCopies(copy.item == item.id) <= 1":{"text":"countCopies(copy.item == item.id) <= 1","tree":{"type":"binary","op":"<=","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":1}}},"countCopies(copy.item == params.technique) == 0\n && fieldOf('skills.{psychic}.level', steps.start.item.discipline)\n >= steps.start.item.level":{"text":"countCopies(copy.item == params.technique) == 0 && fieldOf('skills.{psychic}.level', steps.start.item.discipline) >= steps.start.item.level","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["params","technique"]}}]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">=","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{psychic}.level"},{"type":"name","path":["steps","start","item","discipline"]}]},"right":{"type":"name","path":["steps","start","item","level"]}}}},"countCopies(copy.type == 'class' && copy.fields.kit == item.id)":{"text":"countCopies(copy.type == 'class' && copy.fields.kit == item.id)","tree":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"class"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["copy","fields","kit"]},"right":{"type":"name","path":["item","id"]}}}]}},"countCopies(copy.type == 'technique' && copy.state.torched > 0) > 0":{"text":"countCopies(copy.type == 'technique' && copy.state.torched > 0) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"technique"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["copy","state","torched"]},"right":{"type":"int","value":0}}}]},"right":{"type":"int","value":0}}},"countGrants(grant.type == 'technique' && grant.state.torched > 0) > 0":{"text":"countGrants(grant.type == 'technique' && grant.state.torched > 0) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countGrants","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["grant","type"]},"right":{"type":"string","value":"technique"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["grant","state","torched"]},"right":{"type":"int","value":0}}}]},"right":{"type":"int","value":0}}},"countPicks(pick.type == 'technique' && pick.state.torched > 0) > 0":{"text":"countPicks(pick.type == 'technique' && pick.state.torched > 0) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"countPicks","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["pick","type"]},"right":{"type":"string","value":"technique"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["pick","state","torched"]},"right":{"type":"int","value":0}}}]},"right":{"type":"int","value":0}}},"effort.active > 0":{"text":"effort.active > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["effort","active"]},"right":{"type":"int","value":0}}},"effort.available > 0":{"text":"effort.available > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["effort","available"]},"right":{"type":"int","value":0}}},"effort.max + effort.torched - effort.scene - effort.day - effort.active >= 0":{"text":"effort.max + effort.torched - effort.scene - effort.day - effort.active >= 0","tree":{"type":"binary","op":">=","left":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"binary","op":"+","left":{"type":"name","path":["effort","max"]},"right":{"type":"name","path":["effort","torched"]}},"right":{"type":"name","path":["effort","scene"]}},"right":{"type":"name","path":["effort","day"]}},"right":{"type":"name","path":["effort","active"]}},"right":{"type":"int","value":0}}},"effort.max - effort.scene - effort.day - effort.active <= 0":{"text":"effort.max - effort.scene - effort.day - effort.active <= 0","tree":{"type":"binary","op":"<=","left":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["effort","max"]},"right":{"type":"name","path":["effort","scene"]}},"right":{"type":"name","path":["effort","day"]}},"right":{"type":"name","path":["effort","active"]}},"right":{"type":"int","value":0}}},"encumbrance.strength":{"text":"encumbrance.strength","tree":{"type":"name","path":["encumbrance","strength"]}},"fieldId('skills.{skill}.credit', flags.skill)":{"text":"fieldId('skills.{skill}.credit', flags.skill)","tree":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["flags","skill"]}]}},"fieldId('skills.{skill}.credit', params.skill)":{"text":"fieldId('skills.{skill}.credit', params.skill)","tree":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["params","skill"]}]}},"fieldId('skills.{skill}.level', flags.skill)":{"text":"fieldId('skills.{skill}.level', flags.skill)","tree":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["flags","skill"]}]}},"fieldId('skills.{skill}.level', params.skill)":{"text":"fieldId('skills.{skill}.level', params.skill)","tree":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["params","skill"]}]}},"fieldOf('attributes.{attr}.mod', params.attribute)":{"text":"fieldOf('attributes.{attr}.mod', params.attribute)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attr}.mod"},{"type":"name","path":["params","attribute"]}]}},"fieldOf('attributes.{attr}.score', picked.value) + 1":{"text":"fieldOf('attributes.{attr}.score', picked.value) + 1","tree":{"type":"binary","op":"+","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attr}.score"},{"type":"name","path":["picked","value"]}]},"right":{"type":"int","value":1}}},"fieldOf('skills.{psychic}.level', x) >= 0":{"text":"fieldOf('skills.{psychic}.level', x) >= 0","tree":{"type":"binary","op":">=","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{psychic}.level"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":0}}},"fieldOf('skills.{skill}.credit', params.skill)":{"text":"fieldOf('skills.{skill}.credit', params.skill)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.credit"},{"type":"name","path":["params","skill"]}]}},"fieldOf('skills.{skill}.level', item.skill)":{"text":"fieldOf('skills.{skill}.level', item.skill)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["item","skill"]}]}},"fieldOf('skills.{skill}.level', params.skill)":{"text":"fieldOf('skills.{skill}.level', params.skill)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["params","skill"]}]}},"fieldOf('skills.{skill}.level', size(flags.open) == 1 ? flags.open[0] : steps.choose.picked)":{"text":"fieldOf('skills.{skill}.level', size(flags.open) == 1 ? flags.open[0] : steps.choose.picked)","tree":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","open"]}]},"right":{"type":"int","value":1}},"then":{"type":"index","object":{"type":"name","path":["flags","open"]},"index":{"type":"int","value":0}},"else":{"type":"name","path":["steps","choose","picked"]}}]}},"filterList([@styles.expert-smart, options[0]], x in options)[0]":{"text":"filterList([@styles.expert-smart, options[0]], x in options)[0]","tree":{"type":"index","object":{"type":"call","fn":"filterList","args":[{"type":"list","items":[{"type":"ref","id":"styles.expert-smart"},{"type":"index","object":{"type":"name","path":["options"]},"index":{"type":"int","value":0}}]},{"type":"binary","op":"in","left":{"type":"name","path":["x"]},"right":{"type":"name","path":["options"]}}]},"index":{"type":"int","value":0}}},"filterList(flags.learning, x != 'any-skill')":{"text":"filterList(flags.learning, x != 'any-skill')","tree":{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","learning"]},{"type":"binary","op":"!=","left":{"type":"name","path":["x"]},"right":{"type":"string","value":"any-skill"}}]}},"filterList(keysOf('attr'), fieldOf('attributes.{attr}.score', x) < 18)":{"text":"filterList(keysOf('attr'), fieldOf('attributes.{attr}.score', x) < 18)","tree":{"type":"call","fn":"filterList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"attr"}]},{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attr}.score"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":18}}]}},"flags.ac >= 0":{"text":"flags.ac >= 0","tree":{"type":"binary","op":">=","left":{"type":"name","path":["flags","ac"]},"right":{"type":"int","value":0}}},"flags.ac >= 0 && roll.total >= flags.ac":{"text":"flags.ac >= 0 && roll.total >= flags.ac","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["flags","ac"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","ac"]}}}},"flags.allowed":{"text":"flags.allowed","tree":{"type":"name","path":["flags","allowed"]}},"flags.allowed && flags.fromGeneral <= skillPoints.general":{"text":"flags.allowed && flags.fromGeneral <= skillPoints.general","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","allowed"]},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["flags","fromGeneral"]},"right":{"type":"name","path":["skillPoints","general"]}}}},"flags.allowed && flags.fromGeneral <= skillPoints.general ? 'learned' : 'refused'":{"text":"flags.allowed && flags.fromGeneral <= skillPoints.general ? 'learned' : 'refused'","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","allowed"]},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["flags","fromGeneral"]},"right":{"type":"name","path":["skillPoints","general"]}}},"then":{"type":"string","value":"learned"},"else":{"type":"string","value":"refused"}}},"flags.allowed && flags.fromGeneral <= skillPoints.general ? 'raised' : 'refused'":{"text":"flags.allowed && flags.fromGeneral <= skillPoints.general ? 'raised' : 'refused'","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","allowed"]},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["flags","fromGeneral"]},"right":{"type":"name","path":["skillPoints","general"]}}},"then":{"type":"string","value":"raised"},"else":{"type":"string","value":"refused"}}},"flags.allowed ? 'boosted' : 'refused'":{"text":"flags.allowed ? 'boosted' : 'refused'","tree":{"type":"conditional","test":{"type":"name","path":["flags","allowed"]},"then":{"type":"string","value":"boosted"},"else":{"type":"string","value":"refused"}}},"flags.attr":{"text":"flags.attr","tree":{"type":"name","path":["flags","attr"]}},"flags.bonus":{"text":"flags.bonus","tree":{"type":"name","path":["flags","bonus"]}},"flags.burst ? 2 : 0":{"text":"flags.burst ? 2 : 0","tree":{"type":"conditional","test":{"type":"name","path":["flags","burst"]},"then":{"type":"int","value":2},"else":{"type":"int","value":0}}},"flags.cha > 0":{"text":"flags.cha > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","cha"]},"right":{"type":"int","value":0}}},"flags.con > 0":{"text":"flags.con > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","con"]},"right":{"type":"int","value":0}}},"flags.cost - flags.training - flags.fromPsychic":{"text":"flags.cost - flags.training - flags.fromPsychic","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["flags","cost"]},"right":{"type":"name","path":["flags","training"]}},"right":{"type":"name","path":["flags","fromPsychic"]}}},"flags.cost - flags.training - flags.fromPsychic - flags.fromExpert":{"text":"flags.cost - flags.training - flags.fromPsychic - flags.fromExpert","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["flags","cost"]},"right":{"type":"name","path":["flags","training"]}},"right":{"type":"name","path":["flags","fromPsychic"]}},"right":{"type":"name","path":["flags","fromExpert"]}}},"flags.damage":{"text":"flags.damage","tree":{"type":"name","path":["flags","damage"]}},"flags.damage > 0":{"text":"flags.damage > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","damage"]},"right":{"type":"int","value":0}}},"flags.day":{"text":"flags.day","tree":{"type":"name","path":["flags","day"]}},"flags.dex > 0":{"text":"flags.dex > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","dex"]},"right":{"type":"int","value":0}}},"flags.difficulty >= 0":{"text":"flags.difficulty >= 0","tree":{"type":"binary","op":">=","left":{"type":"name","path":["flags","difficulty"]},"right":{"type":"int","value":0}}},"flags.difficulty >= 0 && roll.total >= flags.difficulty":{"text":"flags.difficulty >= 0 && roll.total >= flags.difficulty","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["flags","difficulty"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","difficulty"]}}}},"flags.entry":{"text":"flags.entry","tree":{"type":"name","path":["flags","entry"]}},"flags.fits":{"text":"flags.fits","tree":{"type":"name","path":["flags","fits"]}},"flags.fits && has(item.heal)":{"text":"flags.fits && has(item.heal)","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","fits"]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","heal"]}]}}},"flags.fits && item.strain > 0":{"text":"flags.fits && item.strain > 0","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","fits"]},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","strain"]},"right":{"type":"int","value":0}}}},"flags.fits ? 'applied' : 'failed'":{"text":"flags.fits ? 'applied' : 'failed'","tree":{"type":"conditional","test":{"type":"name","path":["flags","fits"]},"then":{"type":"string","value":"applied"},"else":{"type":"string","value":"failed"}}},"flags.fits ? 'triggered' : 'failed'":{"text":"flags.fits ? 'triggered' : 'failed'","tree":{"type":"conditional","test":{"type":"name","path":["flags","fits"]},"then":{"type":"string","value":"triggered"},"else":{"type":"string","value":"failed"}}},"flags.foci[0][0] == 'specialist' ? flags.foci[0][2] : flags.foci[0][1]":{"text":"flags.foci[0][0] == 'specialist' ? flags.foci[0][2] : flags.foci[0][1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":0}},"index":{"type":"int","value":0}},"right":{"type":"string","value":"specialist"}},"then":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":0}},"index":{"type":"int","value":2}},"else":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":0}},"index":{"type":"int","value":1}}}},"flags.foci[1][0] == 'specialist' ? flags.foci[1][2] : flags.foci[1][1]":{"text":"flags.foci[1][0] == 'specialist' ? flags.foci[1][2] : flags.foci[1][1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":1}},"index":{"type":"int","value":0}},"right":{"type":"string","value":"specialist"}},"then":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":1}},"index":{"type":"int","value":2}},"else":{"type":"index","object":{"type":"index","object":{"type":"name","path":["flags","foci"]},"index":{"type":"int","value":1}},"index":{"type":"int","value":1}}}},"flags.from":{"text":"flags.from","tree":{"type":"name","path":["flags","from"]}},"flags.from + 2 - min(flags.from + 2, flags.credit)":{"text":"flags.from + 2 - min(flags.from + 2, flags.credit)","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"+","left":{"type":"name","path":["flags","from"]},"right":{"type":"int","value":2}},"right":{"type":"call","fn":"min","args":[{"type":"binary","op":"+","left":{"type":"name","path":["flags","from"]},"right":{"type":"int","value":2}},{"type":"name","path":["flags","credit"]}]}}},"flags.from < 4 && level >= [1, 1, 3, 6, 9][flags.from + 1]\n && (!flags.psychic || psionics.access == 'unrestricted'\n || (psionics.access == 'restricted' && params.skill == psionics.discipline))":{"text":"flags.from < 4 && level >= [1, 1, 3, 6, 9][flags.from + 1] && (!flags.psychic || psionics.access == 'unrestricted' || psionics.access == 'restricted' && params.skill == psionics.discipline)","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"<","left":{"type":"name","path":["flags","from"]},"right":{"type":"int","value":4}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1},{"type":"int","value":1},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":9}]},"index":{"type":"binary","op":"+","left":{"type":"name","path":["flags","from"]},"right":{"type":"int","value":1}}}}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"unary","op":"!","operand":{"type":"name","path":["flags","psychic"]}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"unrestricted"}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"restricted"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["params","skill"]},"right":{"type":"name","path":["psionics","discipline"]}}}}}},"flags.fromCredit > 0":{"text":"flags.fromCredit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","fromCredit"]},"right":{"type":"int","value":0}}},"flags.fromExpert > 0":{"text":"flags.fromExpert > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","fromExpert"]},"right":{"type":"int","value":0}}},"flags.fromGeneral > 0":{"text":"flags.fromGeneral > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","fromGeneral"]},"right":{"type":"int","value":0}}},"flags.fromPsychic > 0":{"text":"flags.fromPsychic > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","fromPsychic"]},"right":{"type":"int","value":0}}},"flags.general ? min(flags.cost - flags.training, skillPoints.expert) : 0":{"text":"flags.general ? min(flags.cost - flags.training, skillPoints.expert) : 0","tree":{"type":"conditional","test":{"type":"name","path":["flags","general"]},"then":{"type":"call","fn":"min","args":[{"type":"binary","op":"-","left":{"type":"name","path":["flags","cost"]},"right":{"type":"name","path":["flags","training"]}},{"type":"name","path":["skillPoints","expert"]}]},"else":{"type":"int","value":0}}},"flags.held == 'copy'":{"text":"flags.held == 'copy'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","held"]},"right":{"type":"string","value":"copy"}}},"flags.held == 'grant'":{"text":"flags.held == 'grant'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","held"]},"right":{"type":"string","value":"grant"}}},"flags.held == 'pick'":{"text":"flags.held == 'pick'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["flags","held"]},"right":{"type":"string","value":"pick"}}},"flags.int > 0":{"text":"flags.int > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","int"]},"right":{"type":"int","value":0}}},"flags.landed":{"text":"flags.landed","tree":{"type":"name","path":["flags","landed"]}},"flags.landed ? 'hit' : steps.roll.band":{"text":"flags.landed ? 'hit' : steps.roll.band","tree":{"type":"conditional","test":{"type":"name","path":["flags","landed"]},"then":{"type":"string","value":"hit"},"else":{"type":"name","path":["steps","roll","band"]}}},"flags.landed ? max(0, steps.damage.total, flags.shock)\n : has(steps.missDamage) ? flags.shock + steps.missDamage.total : 0":{"text":"flags.landed ? max(0, steps.damage.total, flags.shock) : has(steps.missDamage) ? flags.shock + steps.missDamage.total : 0","tree":{"type":"conditional","test":{"type":"name","path":["flags","landed"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["steps","damage","total"]},{"type":"name","path":["flags","shock"]}]},"else":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","missDamage"]}]},"then":{"type":"binary","op":"+","left":{"type":"name","path":["flags","shock"]},"right":{"type":"name","path":["steps","missDamage","total"]}},"else":{"type":"int","value":0}}}},"flags.level":{"text":"flags.level","tree":{"type":"name","path":["flags","level"]}},"flags.level != flags.from":{"text":"flags.level != flags.from","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","level"]},"right":{"type":"name","path":["flags","from"]}}},"flags.level + 1":{"text":"flags.level + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":1}}},"flags.level < 4 && flags.pool >= flags.level + 2":{"text":"flags.level < 4 && flags.pool >= flags.level + 2","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"<","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["flags","pool"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":2}}}}},"flags.level >= 4 && flags.pool > 0":{"text":"flags.level >= 4 && flags.pool > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}},"right":{"type":"binary","op":">","left":{"type":"name","path":["flags","pool"]},"right":{"type":"int","value":0}}}},"flags.level >= 4 ? 0 : flags.pool":{"text":"flags.level >= 4 ? 0 : flags.pool","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":4}},"then":{"type":"int","value":0},"else":{"type":"name","path":["flags","pool"]}}},"flags.next":{"text":"flags.next","tree":{"type":"name","path":["flags","next"]}},"flags.next in [2, 5, 7, 10]":{"text":"flags.next in [2, 5, 7, 10]","tree":{"type":"binary","op":"in","left":{"type":"name","path":["flags","next"]},"right":{"type":"list","items":[{"type":"int","value":2},{"type":"int","value":5},{"type":"int","value":7},{"type":"int","value":10}]}}},"flags.open":{"text":"flags.open","tree":{"type":"name","path":["flags","open"]}},"flags.open[0]":{"text":"flags.open[0]","tree":{"type":"index","object":{"type":"name","path":["flags","open"]},"index":{"type":"int","value":0}}},"flags.pool":{"text":"flags.pool","tree":{"type":"name","path":["flags","pool"]}},"flags.pool - 3":{"text":"flags.pool - 3","tree":{"type":"binary","op":"-","left":{"type":"name","path":["flags","pool"]},"right":{"type":"int","value":3}}},"flags.pool - flags.level - 2":{"text":"flags.pool - flags.level - 2","tree":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["flags","pool"]},"right":{"type":"name","path":["flags","level"]}},"right":{"type":"int","value":2}}},"flags.psychic && flags.allowed && flags.fromGeneral <= skillPoints.general\n && flags.from >= 0":{"text":"flags.psychic && flags.allowed && flags.fromGeneral <= skillPoints.general && flags.from >= 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","psychic"]},"right":{"type":"name","path":["flags","allowed"]}},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["flags","fromGeneral"]},"right":{"type":"name","path":["skillPoints","general"]}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["flags","from"]},"right":{"type":"int","value":0}}}},"flags.psychic ? min(flags.cost - flags.training, skillPoints.psychic) : 0":{"text":"flags.psychic ? min(flags.cost - flags.training, skillPoints.psychic) : 0","tree":{"type":"conditional","test":{"type":"name","path":["flags","psychic"]},"then":{"type":"call","fn":"min","args":[{"type":"binary","op":"-","left":{"type":"name","path":["flags","cost"]},"right":{"type":"name","path":["flags","training"]}},{"type":"name","path":["skillPoints","psychic"]}]},"else":{"type":"int","value":0}}},"flags.reroll":{"text":"flags.reroll","tree":{"type":"name","path":["flags","reroll"]}},"flags.skill":{"text":"flags.skill","tree":{"type":"name","path":["flags","skill"]}},"flags.skill != ''":{"text":"flags.skill != ''","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","skill"]},"right":{"type":"string","value":""}}},"flags.skill < 0 ? -2 : flags.skill":{"text":"flags.skill < 0 ? -2 : flags.skill","tree":{"type":"conditional","test":{"type":"binary","op":"<","left":{"type":"name","path":["flags","skill"]},"right":{"type":"int","value":0}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":2}},"else":{"type":"name","path":["flags","skill"]}}},"flags.skill in keysOf('psychic') && fieldOf('skills.{psychic}.level', flags.skill) >= 1":{"text":"flags.skill in keysOf('psychic') && fieldOf('skills.{psychic}.level', flags.skill) >= 1","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"name","path":["flags","skill"]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"psychic"}]}},"right":{"type":"binary","op":">=","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{psychic}.level"},{"type":"name","path":["flags","skill"]}]},"right":{"type":"int","value":1}}}},"flags.skill in keysOf('psychic') && flags.level >= 1 && flags.level > flags.from":{"text":"flags.skill in keysOf('psychic') && flags.level >= 1 && flags.level > flags.from","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"name","path":["flags","skill"]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"psychic"}]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":1}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["flags","level"]},"right":{"type":"name","path":["flags","from"]}}}},"flags.skill in keysOf('psychic') && flags.level >= 2 && flags.level - flags.from >= 2":{"text":"flags.skill in keysOf('psychic') && flags.level >= 2 && flags.level - flags.from >= 2","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"name","path":["flags","skill"]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"psychic"}]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["flags","level"]},"right":{"type":"int","value":2}}},"right":{"type":"binary","op":">=","left":{"type":"binary","op":"-","left":{"type":"name","path":["flags","level"]},"right":{"type":"name","path":["flags","from"]}},"right":{"type":"int","value":2}}}},"flags.stat || params.entry == 'none' ? []\n : countList(flags.pool, fieldOf('skills.{skill}.level', x) < 1) > 0\n ? filterList(flags.pool, fieldOf('skills.{skill}.level', x) < 1)\n : filterList(keysOf('general') + keysOf('combat'),\n fieldOf('skills.{skill}.level', x) < 1)":{"text":"flags.stat || params.entry == 'none' ? [] : countList(flags.pool, fieldOf('skills.{skill}.level', x) < 1) > 0 ? filterList(flags.pool, fieldOf('skills.{skill}.level', x) < 1) : filterList(keysOf('general') + keysOf('combat'), fieldOf('skills.{skill}.level', x) < 1)","tree":{"type":"conditional","test":{"type":"binary","op":"||","left":{"type":"name","path":["flags","stat"]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"none"}}},"then":{"type":"list","items":[]},"else":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"countList","args":[{"type":"name","path":["flags","pool"]},{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":1}}]},"right":{"type":"int","value":0}},"then":{"type":"call","fn":"filterList","args":[{"type":"name","path":["flags","pool"]},{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":1}}]},"else":{"type":"call","fn":"filterList","args":[{"type":"binary","op":"+","left":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"general"}]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"combat"}]}},{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":1}}]}}}},"flags.str > 0":{"text":"flags.str > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","str"]},"right":{"type":"int","value":0}}},"flags.torched && flags.held == 'copy'":{"text":"flags.torched && flags.held == 'copy'","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","torched"]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["flags","held"]},"right":{"type":"string","value":"copy"}}}},"flags.torched && flags.held == 'grant'":{"text":"flags.torched && flags.held == 'grant'","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","torched"]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["flags","held"]},"right":{"type":"string","value":"grant"}}}},"flags.torched && flags.held == 'pick'":{"text":"flags.torched && flags.held == 'pick'","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","torched"]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["flags","held"]},"right":{"type":"string","value":"pick"}}}},"flags.trained ? 1 : flags.next - 1":{"text":"flags.trained ? 1 : flags.next - 1","tree":{"type":"conditional","test":{"type":"name","path":["flags","trained"]},"then":{"type":"int","value":1},"else":{"type":"binary","op":"-","left":{"type":"name","path":["flags","next"]},"right":{"type":"int","value":1}}}},"flags.training > 0":{"text":"flags.training > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","training"]},"right":{"type":"int","value":0}}},"flags.wis > 0":{"text":"flags.wis > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["flags","wis"]},"right":{"type":"int","value":0}}},"floor(encumbrance.strength / 2)":{"text":"floor(encumbrance.strength / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["encumbrance","strength"]},"right":{"type":"int","value":2}}]}},"floor(level / 2)":{"text":"floor(level / 2)","tree":{"type":"call","fn":"floor","args":[{"type":"binary","op":"/","left":{"type":"name","path":["level"]},"right":{"type":"int","value":2}}]}},"has(item.ammo)":{"text":"has(item.ammo)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","ammo"]}]}},"has(item.fixedAc)":{"text":"has(item.fixedAc)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","fixedAc"]}]}},"has(item.fixedAc) ? item.fixedAc : has(params.targetAc) ? params.targetAc\n : size(participants.target) == 0 ? -1\n : flags.advanced && has(participants.target[0].ac.advanced)\n ? participants.target[0].ac.advanced : participants.target[0].ac.value":{"text":"has(item.fixedAc) ? item.fixedAc : has(params.targetAc) ? params.targetAc : size(participants.target) == 0 ? -1 : flags.advanced && has(participants.target[0].ac.advanced) ? participants.target[0].ac.advanced : participants.target[0].ac.value","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["item","fixedAc"]}]},"then":{"type":"name","path":["item","fixedAc"]},"else":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","targetAc"]}]},"then":{"type":"name","path":["params","targetAc"]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"int","value":0}},"then":{"type":"unary","op":"-","operand":{"type":"int","value":1}},"else":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"name","path":["flags","advanced"]},"right":{"type":"call","fn":"has","args":[{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"ac"},"name":"advanced"}]}},"then":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"ac"},"name":"advanced"},"else":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"ac"},"name":"value"}}}}}},"has(item.kind) && item.kind == action.item.ammo && self.quantity > 0":{"text":"has(item.kind) && item.kind == action.item.ammo && self.quantity > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","kind"]}]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["item","kind"]},"right":{"type":"name","path":["action","item","ammo"]}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["self","quantity"]},"right":{"type":"int","value":0}}}},"has(item.magazine)":{"text":"has(item.magazine)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]}},"has(item.magazine) && self.loaded < item.magazine":{"text":"has(item.magazine) && self.loaded < item.magazine","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]},"right":{"type":"binary","op":"<","left":{"type":"name","path":["self","loaded"]},"right":{"type":"name","path":["item","magazine"]}}}},"has(item.magazine) ? item.magazine : 0":{"text":"has(item.magazine) ? item.magazine : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["item","magazine"]}]},"then":{"type":"name","path":["item","magazine"]},"else":{"type":"int","value":0}}},"has(item.shock) && item.shock > 0 && flags.ac >= 0\n && ((shock.anyAc && item.skill != 'shoot') || flags.ac <= item.shockAc)\n ? max(0, item.shock + flags.attr + shock.bonus\n + (item.skill == 'stab' ? damage.melee : 0))\n : 0":{"text":"has(item.shock) && item.shock > 0 && flags.ac >= 0 && (shock.anyAc && item.skill != 'shoot' || flags.ac <= item.shockAc) ? max(0, item.shock + flags.attr + shock.bonus + (item.skill == 'stab' ? damage.melee : 0)) : 0","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["item","shock"]}]},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","shock"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["flags","ac"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"&&","left":{"type":"name","path":["shock","anyAc"]},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["item","skill"]},"right":{"type":"string","value":"shoot"}}},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["flags","ac"]},"right":{"type":"name","path":["item","shockAc"]}}}},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"name","path":["item","shock"]},"right":{"type":"name","path":["flags","attr"]}},"right":{"type":"name","path":["shock","bonus"]}},"right":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","skill"]},"right":{"type":"string","value":"stab"}},"then":{"type":"name","path":["damage","melee"]},"else":{"type":"int","value":0}}}]},"else":{"type":"int","value":0}}},"has(params.difficulty) ? params.difficulty : -1":{"text":"has(params.difficulty) ? params.difficulty : -1","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["params","difficulty"]}]},"then":{"type":"name","path":["params","difficulty"]},"else":{"type":"unary","op":"-","operand":{"type":"int","value":1}}}},"has(participants.target) && size(participants.target) > 0\n && participants.target[0].psionics.cursedLuck":{"text":"has(participants.target) && size(participants.target) > 0 && participants.target[0].psionics.cursedLuck","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"int","value":0}}},"right":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"psionics"},"name":"cursedLuck"}}},"has(picked.item)":{"text":"has(picked.item)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["picked","item"]}]}},"has(picked.item)\n && (picked.item.repeatable || countCopies(copy.item == picked.id) == 0)":{"text":"has(picked.item) && (picked.item.repeatable || countCopies(copy.item == picked.id) == 0)","tree":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["picked","item"]}]},"right":{"type":"binary","op":"||","left":{"type":"name","path":["picked","item","repeatable"]},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["picked","id"]}}]},"right":{"type":"int","value":0}}}}},"has(picked.item) && !picked.item.repeatable\n && countCopies(copy.item == picked.id) > 0":{"text":"has(picked.item) && !picked.item.repeatable && countCopies(copy.item == picked.id) > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["picked","item"]}]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["picked","item","repeatable"]}}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["picked","id"]}}]},"right":{"type":"int","value":0}}}},"has(steps.attribute)":{"text":"has(steps.attribute)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","attribute"]}]}},"has(steps.heal)":{"text":"has(steps.heal)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","heal"]}]}},"has(steps.heal) ? steps.heal.total : 0":{"text":"has(steps.heal) ? steps.heal.total : 0","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","heal"]}]},"then":{"type":"name","path":["steps","heal","total"]},"else":{"type":"int","value":0}}},"has(steps.kit.item)":{"text":"has(steps.kit.item)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","kit","item"]}]}},"has(steps.pair)":{"text":"has(steps.pair)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","pair"]}]}},"has(steps.reroll) && steps.reroll.band == 'success' ? 'success' : steps.check.band":{"text":"has(steps.reroll) && steps.reroll.band == 'success' ? 'success' : steps.check.band","tree":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","reroll"]}]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","reroll","band"]},"right":{"type":"string","value":"success"}}},"then":{"type":"string","value":"success"},"else":{"type":"name","path":["steps","check","band"]}}},"has(steps.reroll) ? max(steps.check.total, steps.reroll.total) : steps.check.total":{"text":"has(steps.reroll) ? max(steps.check.total, steps.reroll.total) : steps.check.total","tree":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","reroll"]}]},"then":{"type":"call","fn":"max","args":[{"type":"name","path":["steps","check","total"]},{"type":"name","path":["steps","reroll","total"]}]},"else":{"type":"name","path":["steps","check","total"]}}},"has(steps.style.item.table)":{"text":"has(steps.style.item.table)","tree":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","style","item","table"]}]}},"hasChoice('technique') || psionics.access != 'none' || effort.max > 0":{"text":"hasChoice('technique') || psionics.access != 'none' || effort.max > 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"call","fn":"hasChoice","args":[{"type":"string","value":"technique"}]},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["effort","max"]},"right":{"type":"int","value":0}}}},"henchmen.max > 0":{"text":"henchmen.max > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["henchmen","max"]},"right":{"type":"int","value":0}}},"hp.current > 0":{"text":"hp.current > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["hp","current"]},"right":{"type":"int","value":0}}},"hp.max":{"text":"hp.max","tree":{"type":"name","path":["hp","max"]}},"hp.rolled + hp.perLevel * level":{"text":"hp.rolled + hp.perLevel * level","tree":{"type":"binary","op":"+","left":{"type":"name","path":["hp","rolled"]},"right":{"type":"binary","op":"*","left":{"type":"name","path":["hp","perLevel"]},"right":{"type":"name","path":["level"]}}}},"item.activationStrain":{"text":"item.activationStrain","tree":{"type":"name","path":["item","activationStrain"]}},"item.activationStrain > 0":{"text":"item.activationStrain > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["item","activationStrain"]},"right":{"type":"int","value":0}}},"item.advanced || (item.skill == 'stab' && combat.meleeAdvanced)\n || (item.skill == 'punch' && combat.punchAdvanced)":{"text":"item.advanced || item.skill == 'stab' && combat.meleeAdvanced || item.skill == 'punch' && combat.punchAdvanced","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"name","path":["item","advanced"]},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","skill"]},"right":{"type":"string","value":"stab"}},"right":{"type":"name","path":["combat","meleeAdvanced"]}}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","skill"]},"right":{"type":"string","value":"punch"}},"right":{"type":"name","path":["combat","punchAdvanced"]}}}},"item.category":{"text":"item.category","tree":{"type":"name","path":["item","category"]}},"item.category == 'pharmaceutical' && self.quantity > 0":{"text":"item.category == 'pharmaceutical' && self.quantity > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","category"]},"right":{"type":"string","value":"pharmaceutical"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["self","quantity"]},"right":{"type":"int","value":0}}}},"item.core && item.discipline == x":{"text":"item.core && item.discipline == x","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["item","core"]},"right":{"type":"binary","op":"==","left":{"type":"name","path":["item","discipline"]},"right":{"type":"name","path":["x"]}}}},"item.damage":{"text":"item.damage","tree":{"type":"name","path":["item","damage"]}},"item.discipline == flags.skill && !item.core\n && item.level <= fieldOf('skills.{psychic}.level', flags.skill)\n && countCopies(copy.item == item.id) == 0":{"text":"item.discipline == flags.skill && !item.core && item.level <= fieldOf('skills.{psychic}.level', flags.skill) && countCopies(copy.item == item.id) == 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","discipline"]},"right":{"type":"name","path":["flags","skill"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["item","core"]}}},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["item","level"]},"right":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{psychic}.level"},{"type":"name","path":["flags","skill"]}]}}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":0}}}},"item.discipline == params.discipline && !item.core\n && item.level <= fieldOf('skills.{psychic}.level', params.discipline)\n && countCopies(copy.item == item.id) == 0":{"text":"item.discipline == params.discipline && !item.core && item.level <= fieldOf('skills.{psychic}.level', params.discipline) && countCopies(copy.item == item.id) == 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["item","discipline"]},"right":{"type":"name","path":["params","discipline"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["item","core"]}}},"right":{"type":"binary","op":"<=","left":{"type":"name","path":["item","level"]},"right":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{psychic}.level"},{"type":"name","path":["params","discipline"]}]}}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"==","left":{"type":"name","path":["copy","item"]},"right":{"type":"name","path":["item","id"]}}]},"right":{"type":"int","value":0}}}},"item.enc":{"text":"item.enc","tree":{"type":"name","path":["item","enc"]}},"item.enc * ceil(self.quantity / item.bundle)":{"text":"item.enc * ceil(self.quantity / item.bundle)","tree":{"type":"binary","op":"*","left":{"type":"name","path":["item","enc"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["self","quantity"]},"right":{"type":"name","path":["item","bundle"]}}]}}},"item.energy ? 1 : 0":{"text":"item.energy ? 1 : 0","tree":{"type":"conditional","test":{"type":"name","path":["item","energy"]},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"item.heal":{"text":"item.heal","tree":{"type":"name","path":["item","heal"]}},"item.healAddsSkill ? max(0, skills.heal.level) : 0":{"text":"item.healAddsSkill ? max(0, skills.heal.level) : 0","tree":{"type":"conditional","test":{"type":"name","path":["item","healAddsSkill"]},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","heal","level"]}]},"else":{"type":"int","value":0}}},"item.id == @techniques.cursed-luck":{"text":"item.id == @techniques.cursed-luck","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","id"]},"right":{"type":"ref","id":"techniques.cursed-luck"}}},"item.id == fieldId('skills.{skill}.dice', pick.value)":{"text":"item.id == fieldId('skills.{skill}.dice', pick.value)","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","id"]},"right":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{skill}.dice"},{"type":"name","path":["pick","value"]}]}}},"item.id == params.technique":{"text":"item.id == params.technique","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","id"]},"right":{"type":"name","path":["params","technique"]}}},"item.id == steps.focus.picked":{"text":"item.id == steps.focus.picked","tree":{"type":"binary","op":"==","left":{"type":"name","path":["item","id"]},"right":{"type":"name","path":["steps","focus","picked"]}}},"item.level":{"text":"item.level","tree":{"type":"name","path":["item","level"]}},"item.level <= 1":{"text":"item.level <= 1","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["item","level"]},"right":{"type":"int","value":1}}},"item.magazine":{"text":"item.magazine","tree":{"type":"name","path":["item","magazine"]}},"item.maxLevel":{"text":"item.maxLevel","tree":{"type":"name","path":["item","maxLevel"]}},"item.nonlethal ? 'damage.nonlethal' : 'damage'":{"text":"item.nonlethal ? 'damage.nonlethal' : 'damage'","tree":{"type":"conditional","test":{"type":"name","path":["item","nonlethal"]},"then":{"type":"string","value":"damage.nonlethal"},"else":{"type":"string","value":"damage"}}},"item.skill == 'punch' ? max(0, skills.punch.level)\n : item.skill == 'stab' ? damage.melee : damage.ranged":{"text":"item.skill == 'punch' ? max(0, skills.punch.level) : item.skill == 'stab' ? damage.melee : damage.ranged","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","skill"]},"right":{"type":"string","value":"punch"}},"then":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","punch","level"]}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","skill"]},"right":{"type":"string","value":"stab"}},"then":{"type":"name","path":["damage","melee"]},"else":{"type":"name","path":["damage","ranged"]}}}},"item.skill == 'punch' ? miss.punch : item.skill == 'stab' ? miss.melee : miss.ranged":{"text":"item.skill == 'punch' ? miss.punch : item.skill == 'stab' ? miss.melee : miss.ranged","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","skill"]},"right":{"type":"string","value":"punch"}},"then":{"type":"name","path":["miss","punch"]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["item","skill"]},"right":{"type":"string","value":"stab"}},"then":{"type":"name","path":["miss","melee"]},"else":{"type":"name","path":["miss","ranged"]}}}},"item.strain":{"text":"item.strain","tree":{"type":"name","path":["item","strain"]}},"item.strength":{"text":"item.strength","tree":{"type":"name","path":["item","strength"]}},"keysOf('attr')":{"text":"keysOf('attr')","tree":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"attr"}]}},"keysOf('attr') + ['none']":{"text":"keysOf('attr') + ['none']","tree":{"type":"binary","op":"+","left":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"attr"}]},"right":{"type":"list","items":[{"type":"string","value":"none"}]}}},"keysOf('psychic')":{"text":"keysOf('psychic')","tree":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"psychic"}]}},"level":{"text":"level","tree":{"type":"name","path":["level"]}},"level + 1":{"text":"level + 1","tree":{"type":"binary","op":"+","left":{"type":"name","path":["level"]},"right":{"type":"int","value":1}}},"level >= 10 ? 93 + 24 * (level - 9) : [0, 3, 6, 12, 18, 27, 39, 54, 72, 93][level]":{"text":"level >= 10 ? 93 + 24 * (level - 9) : [0, 3, 6, 12, 18, 27, 39, 54, 72, 93][level]","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":10}},"then":{"type":"binary","op":"+","left":{"type":"int","value":93},"right":{"type":"binary","op":"*","left":{"type":"int","value":24},"right":{"type":"binary","op":"-","left":{"type":"name","path":["level"]},"right":{"type":"int","value":9}}}},"else":{"type":"index","object":{"type":"list","items":[{"type":"int","value":0},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":12},{"type":"int","value":18},{"type":"int","value":27},{"type":"int","value":39},{"type":"int","value":54},{"type":"int","value":72},{"type":"int","value":93}]},"index":{"type":"name","path":["level"]}}}},"level >= 5 ? 2 : 1":{"text":"level >= 5 ? 2 : 1","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"int","value":5}},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}},"max(0, effort.max + effort.torched - effort.scene - effort.day - effort.active)":{"text":"max(0, effort.max + effort.torched - effort.scene - effort.day - effort.active)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"binary","op":"+","left":{"type":"name","path":["effort","max"]},"right":{"type":"name","path":["effort","torched"]}},"right":{"type":"name","path":["effort","scene"]}},"right":{"type":"name","path":["effort","day"]}},"right":{"type":"name","path":["effort","active"]}}]}},"max(0, skills.punch.level)":{"text":"max(0, skills.punch.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","punch","level"]}]}},"max(0, skills.shoot.level)":{"text":"max(0, skills.shoot.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","shoot","level"]}]}},"max(0, skills.stab.level)":{"text":"max(0, skills.stab.level)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":0},{"type":"name","path":["skills","stab","level"]}]}},"max(1, steps.hp.total + attributes.con.mod)":{"text":"max(1, steps.hp.total + attributes.con.mod)","tree":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"+","left":{"type":"name","path":["steps","hp","total"]},"right":{"type":"name","path":["attributes","con","mod"]}}]}},"max(10, ac.innate, maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped\n && !copy.fields.shield && copy.fields.category != 'primitive'))\n + (maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped && copy.fields.shield\n && copy.fields.category != 'primitive') > 0 ? 1 : 0)\n + attributes.dex.mod":{"text":"max(10, ac.innate, maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped && !copy.fields.shield && copy.fields.category != 'primitive')) + (maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped && copy.fields.shield && copy.fields.category != 'primitive') > 0 ? 1 : 0) + attributes.dex.mod","tree":{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"call","fn":"max","args":[{"type":"int","value":10},{"type":"name","path":["ac","innate"]},{"type":"call","fn":"maxCopies","args":[{"type":"name","path":["copy","fields","ac"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["copy","fields","shield"]}}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["copy","fields","category"]},"right":{"type":"string","value":"primitive"}}}]}]},"right":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"maxCopies","args":[{"type":"name","path":["copy","fields","ac"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}},"right":{"type":"name","path":["copy","fields","shield"]}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["copy","fields","category"]},"right":{"type":"string","value":"primitive"}}}]},"right":{"type":"int","value":0}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}}},"right":{"type":"name","path":["attributes","dex","mod"]}}},"max(10, ac.innate, maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped\n && !copy.fields.shield))":{"text":"max(10, ac.innate, maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped && !copy.fields.shield))","tree":{"type":"call","fn":"max","args":[{"type":"int","value":10},{"type":"name","path":["ac","innate"]},{"type":"call","fn":"maxCopies","args":[{"type":"name","path":["copy","fields","ac"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["copy","fields","shield"]}}}]}]}},"max(encumbrance.readied <= encumbrance.readiedLimit ? 0\n : encumbrance.readied <= encumbrance.readiedLimit + 2 ? 1\n : encumbrance.readied <= encumbrance.readiedLimit + 4 ? 2 : 3,\n encumbrance.stowed <= encumbrance.stowedLimit ? 0\n : encumbrance.stowed <= encumbrance.stowedLimit + 4 ? 1\n : encumbrance.stowed <= encumbrance.stowedLimit + 8 ? 2 : 3)":{"text":"max(encumbrance.readied <= encumbrance.readiedLimit ? 0 : encumbrance.readied <= encumbrance.readiedLimit + 2 ? 1 : encumbrance.readied <= encumbrance.readiedLimit + 4 ? 2 : 3, encumbrance.stowed <= encumbrance.stowedLimit ? 0 : encumbrance.stowed <= encumbrance.stowedLimit + 4 ? 1 : encumbrance.stowed <= encumbrance.stowedLimit + 8 ? 2 : 3)","tree":{"type":"call","fn":"max","args":[{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["encumbrance","readied"]},"right":{"type":"name","path":["encumbrance","readiedLimit"]}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["encumbrance","readied"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["encumbrance","readiedLimit"]},"right":{"type":"int","value":2}}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["encumbrance","readied"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["encumbrance","readiedLimit"]},"right":{"type":"int","value":4}}},"then":{"type":"int","value":2},"else":{"type":"int","value":3}}}},{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["encumbrance","stowed"]},"right":{"type":"name","path":["encumbrance","stowedLimit"]}},"then":{"type":"int","value":0},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["encumbrance","stowed"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["encumbrance","stowedLimit"]},"right":{"type":"int","value":4}}},"then":{"type":"int","value":1},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["encumbrance","stowed"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["encumbrance","stowedLimit"]},"right":{"type":"int","value":8}}},"then":{"type":"int","value":2},"else":{"type":"int","value":3}}}}]}},"maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped && copy.fields.shield)":{"text":"maxCopies(copy.fields.ac, copy.type == 'armor' && copy.equipped && copy.fields.shield)","tree":{"type":"call","fn":"maxCopies","args":[{"type":"name","path":["copy","fields","ac"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"armor"}},"right":{"type":"name","path":["copy","equipped"]}},"right":{"type":"name","path":["copy","fields","shield"]}}]}},"min(18, attributes.cha.score + flags.cha)":{"text":"min(18, attributes.cha.score + flags.cha)","tree":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","cha","score"]},"right":{"type":"name","path":["flags","cha"]}}]}},"min(18, attributes.con.score + flags.con)":{"text":"min(18, attributes.con.score + flags.con)","tree":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","con","score"]},"right":{"type":"name","path":["flags","con"]}}]}},"min(18, attributes.dex.score + flags.dex)":{"text":"min(18, attributes.dex.score + flags.dex)","tree":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","dex","score"]},"right":{"type":"name","path":["flags","dex"]}}]}},"min(18, attributes.int.score + flags.int)":{"text":"min(18, attributes.int.score + flags.int)","tree":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","int","score"]},"right":{"type":"name","path":["flags","int"]}}]}},"min(18, attributes.str.score + flags.str)":{"text":"min(18, attributes.str.score + flags.str)","tree":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","str","score"]},"right":{"type":"name","path":["flags","str"]}}]}},"min(18, attributes.wis.score + flags.wis)":{"text":"min(18, attributes.wis.score + flags.wis)","tree":{"type":"call","fn":"min","args":[{"type":"int","value":18},{"type":"binary","op":"+","left":{"type":"name","path":["attributes","wis","score"]},"right":{"type":"name","path":["flags","wis"]}}]}},"min(flags.cost - flags.training, skillPoints.psychic)":{"text":"min(flags.cost - flags.training, skillPoints.psychic)","tree":{"type":"call","fn":"min","args":[{"type":"binary","op":"-","left":{"type":"name","path":["flags","cost"]},"right":{"type":"name","path":["flags","training"]}},{"type":"name","path":["skillPoints","psychic"]}]}},"min(flags.from + 2, flags.credit)":{"text":"min(flags.from + 2, flags.credit)","tree":{"type":"call","fn":"min","args":[{"type":"binary","op":"+","left":{"type":"name","path":["flags","from"]},"right":{"type":"int","value":2}},{"type":"name","path":["flags","credit"]}]}},"minList([steps.str.total, steps.dex.total, steps.con.total, steps.int.total,\n steps.wis.total, steps.cha.total], x) >= 14 ? 'none'\n : ['str', 'dex', 'con', 'int', 'wis', 'cha'][indexOf([steps.str.total,\n steps.dex.total, steps.con.total, steps.int.total, steps.wis.total,\n steps.cha.total], minList([steps.str.total, steps.dex.total,\n steps.con.total, steps.int.total, steps.wis.total, steps.cha.total], x))]":{"text":"minList([steps.str.total, steps.dex.total, steps.con.total, steps.int.total, steps.wis.total, steps.cha.total], x) >= 14 ? 'none' : ['str', 'dex', 'con', 'int', 'wis', 'cha'][indexOf([steps.str.total, steps.dex.total, steps.con.total, steps.int.total, steps.wis.total, steps.cha.total], minList([steps.str.total, steps.dex.total, steps.con.total, steps.int.total, steps.wis.total, steps.cha.total], x))]","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"call","fn":"minList","args":[{"type":"list","items":[{"type":"name","path":["steps","str","total"]},{"type":"name","path":["steps","dex","total"]},{"type":"name","path":["steps","con","total"]},{"type":"name","path":["steps","int","total"]},{"type":"name","path":["steps","wis","total"]},{"type":"name","path":["steps","cha","total"]}]},{"type":"name","path":["x"]}]},"right":{"type":"int","value":14}},"then":{"type":"string","value":"none"},"else":{"type":"index","object":{"type":"list","items":[{"type":"string","value":"str"},{"type":"string","value":"dex"},{"type":"string","value":"con"},{"type":"string","value":"int"},{"type":"string","value":"wis"},{"type":"string","value":"cha"}]},"index":{"type":"call","fn":"indexOf","args":[{"type":"list","items":[{"type":"name","path":["steps","str","total"]},{"type":"name","path":["steps","dex","total"]},{"type":"name","path":["steps","con","total"]},{"type":"name","path":["steps","int","total"]},{"type":"name","path":["steps","wis","total"]},{"type":"name","path":["steps","cha","total"]}]},{"type":"call","fn":"minList","args":[{"type":"list","items":[{"type":"name","path":["steps","str","total"]},{"type":"name","path":["steps","dex","total"]},{"type":"name","path":["steps","con","total"]},{"type":"name","path":["steps","int","total"]},{"type":"name","path":["steps","wis","total"]},{"type":"name","path":["steps","cha","total"]}]},{"type":"name","path":["x"]}]}]}}}},"options[0]":{"text":"options[0]","tree":{"type":"index","object":{"type":"name","path":["options"]},"index":{"type":"int","value":0}}},"params.advancement && flags.entry != 'none'":{"text":"params.advancement && flags.entry != 'none'","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["params","advancement"]},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["flags","entry"]},"right":{"type":"string","value":"none"}}}},"params.advancement ? 'level-up.focus' : 'creation.focus'":{"text":"params.advancement ? 'level-up.focus' : 'creation.focus'","tree":{"type":"conditional","test":{"type":"name","path":["params","advancement"]},"then":{"type":"string","value":"level-up.focus"},"else":{"type":"string","value":"creation.focus"}}},"params.amount":{"text":"params.amount","tree":{"type":"name","path":["params","amount"]}},"params.entry == 'any-combat' ? ['punch', 'shoot', 'stab']\n : params.entry == 'punch-or-stab' ? ['punch', 'stab']\n : params.entry == 'any-psychic'\n ? filterList(keysOf('psychic'), psionics.access == 'unrestricted'\n || x == psionics.discipline)\n : params.entry == 'any-skill' ? keysOf('general') + keysOf('combat')\n : params.entry in keysOf('psychic') && psionics.access != 'unrestricted'\n && params.entry != psionics.discipline ? []\n : [params.entry]":{"text":"params.entry == 'any-combat' ? ['punch', 'shoot', 'stab'] : params.entry == 'punch-or-stab' ? ['punch', 'stab'] : params.entry == 'any-psychic' ? filterList(keysOf('psychic'), psionics.access == 'unrestricted' || x == psionics.discipline) : params.entry == 'any-skill' ? keysOf('general') + keysOf('combat') : params.entry in keysOf('psychic') && psionics.access != 'unrestricted' && params.entry != psionics.discipline ? [] : [params.entry]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"any-combat"}},"then":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"stab"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"punch-or-stab"}},"then":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"stab"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"any-psychic"}},"then":{"type":"call","fn":"filterList","args":[{"type":"call","fn":"keysOf","args":[{"type":"string","value":"psychic"}]},{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"unrestricted"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["x"]},"right":{"type":"name","path":["psionics","discipline"]}}}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"any-skill"}},"then":{"type":"binary","op":"+","left":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"general"}]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"combat"}]}},"else":{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"in","left":{"type":"name","path":["params","entry"]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"psychic"}]}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"unrestricted"}}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["params","entry"]},"right":{"type":"name","path":["psionics","discipline"]}}},"then":{"type":"list","items":[]},"else":{"type":"list","items":[{"type":"name","path":["params","entry"]}]}}}}}}},"params.entry == 'any-combat' ? ['punch', 'shoot', 'stab']\n : params.entry == 'stab-or-shoot' ? ['stab', 'shoot']\n : params.entry == 'shoot-or-trade' ? ['shoot', 'trade']\n : params.entry == 'punch-or-stab' ? ['punch', 'stab']\n : params.entry == 'any-psychic' ? keysOf('psychic')\n : params.entry == 'any-skill' ? keysOf('general') + keysOf('combat')\n : params.entry == 'raise-zero'\n ? filterList(keysOf('general') + keysOf('combat'),\n fieldOf('skills.{skill}.level', x) == 0)\n : params.entry in keysOf('skill') ? [params.entry] : []":{"text":"params.entry == 'any-combat' ? ['punch', 'shoot', 'stab'] : params.entry == 'stab-or-shoot' ? ['stab', 'shoot'] : params.entry == 'shoot-or-trade' ? ['shoot', 'trade'] : params.entry == 'punch-or-stab' ? ['punch', 'stab'] : params.entry == 'any-psychic' ? keysOf('psychic') : params.entry == 'any-skill' ? keysOf('general') + keysOf('combat') : params.entry == 'raise-zero' ? filterList(keysOf('general') + keysOf('combat'), fieldOf('skills.{skill}.level', x) == 0) : params.entry in keysOf('skill') ? [params.entry] : []","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"any-combat"}},"then":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"shoot"},{"type":"string","value":"stab"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"stab-or-shoot"}},"then":{"type":"list","items":[{"type":"string","value":"stab"},{"type":"string","value":"shoot"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"shoot-or-trade"}},"then":{"type":"list","items":[{"type":"string","value":"shoot"},{"type":"string","value":"trade"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"punch-or-stab"}},"then":{"type":"list","items":[{"type":"string","value":"punch"},{"type":"string","value":"stab"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"any-psychic"}},"then":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"psychic"}]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"any-skill"}},"then":{"type":"binary","op":"+","left":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"general"}]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"combat"}]}},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"raise-zero"}},"then":{"type":"call","fn":"filterList","args":[{"type":"binary","op":"+","left":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"general"}]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"combat"}]}},{"type":"binary","op":"==","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"skills.{skill}.level"},{"type":"name","path":["x"]}]},"right":{"type":"int","value":0}}]},"else":{"type":"conditional","test":{"type":"binary","op":"in","left":{"type":"name","path":["params","entry"]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"skill"}]}},"then":{"type":"list","items":[{"type":"name","path":["params","entry"]}]},"else":{"type":"list","items":[]}}}}}}}}}},"params.entry == 'any-stat'":{"text":"params.entry == 'any-stat'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"any-stat"}}},"params.entry == 'mental'":{"text":"params.entry == 'mental'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"mental"}}},"params.entry == 'physical'":{"text":"params.entry == 'physical'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["params","entry"]},"right":{"type":"string","value":"physical"}}},"params.entry in ['any-stat', 'physical', 'mental']":{"text":"params.entry in ['any-stat', 'physical', 'mental']","tree":{"type":"binary","op":"in","left":{"type":"name","path":["params","entry"]},"right":{"type":"list","items":[{"type":"string","value":"any-stat"},{"type":"string","value":"physical"},{"type":"string","value":"mental"}]}}},"params.entry in ['physical', 'mental']":{"text":"params.entry in ['physical', 'mental']","tree":{"type":"binary","op":"in","left":{"type":"name","path":["params","entry"]},"right":{"type":"list","items":[{"type":"string","value":"physical"},{"type":"string","value":"mental"}]}}},"params.modifier":{"text":"params.modifier","tree":{"type":"name","path":["params","modifier"]}},"params.mortallyWounded ? 2 : 1":{"text":"params.mortallyWounded ? 2 : 1","tree":{"type":"conditional","test":{"type":"name","path":["params","mortallyWounded"]},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}},"params.random":{"text":"params.random","tree":{"type":"name","path":["params","random"]}},"params.save == 'physical' ? saves.physical\n : params.save == 'evasion' ? saves.evasion : saves.mental":{"text":"params.save == 'physical' ? saves.physical : params.save == 'evasion' ? saves.evasion : saves.mental","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","save"]},"right":{"type":"string","value":"physical"}},"then":{"type":"name","path":["saves","physical"]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","save"]},"right":{"type":"string","value":"evasion"}},"then":{"type":"name","path":["saves","evasion"]},"else":{"type":"name","path":["saves","mental"]}}}},"params.skill":{"text":"params.skill","tree":{"type":"name","path":["params","skill"]}},"params.skill == psionics.training ? min(flags.cost, skillPoints.training) : 0":{"text":"params.skill == psionics.training ? min(flags.cost, skillPoints.training) : 0","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["params","skill"]},"right":{"type":"name","path":["psionics","training"]}},"then":{"type":"call","fn":"min","args":[{"type":"name","path":["flags","cost"]},{"type":"name","path":["skillPoints","training"]}]},"else":{"type":"int","value":0}}},"params.skill in keysOf('general')":{"text":"params.skill in keysOf('general')","tree":{"type":"binary","op":"in","left":{"type":"name","path":["params","skill"]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"general"}]}}},"params.skill in keysOf('psychic')":{"text":"params.skill in keysOf('psychic')","tree":{"type":"binary","op":"in","left":{"type":"name","path":["params","skill"]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"psychic"}]}}},"params.technique":{"text":"params.technique","tree":{"type":"name","path":["params","technique"]}},"params.until == 'day' && effort.max - effort.scene - effort.day - effort.active > 0":{"text":"params.until == 'day' && effort.max - effort.scene - effort.day - effort.active > 0","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["params","until"]},"right":{"type":"string","value":"day"}},"right":{"type":"binary","op":">","left":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"binary","op":"-","left":{"type":"name","path":["effort","max"]},"right":{"type":"name","path":["effort","scene"]}},"right":{"type":"name","path":["effort","day"]}},"right":{"type":"name","path":["effort","active"]}},"right":{"type":"int","value":0}}}},"pick.value":{"text":"pick.value","tree":{"type":"name","path":["pick","value"]}},"picked.id":{"text":"picked.id","tree":{"type":"name","path":["picked","id"]}},"picked.id != 'none'":{"text":"picked.id != 'none'","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["picked","id"]},"right":{"type":"string","value":"none"}}},"psionics.access != 'none'":{"text":"psionics.access != 'none'","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}}},"psionics.access != 'none' || effort.max > 0":{"text":"psionics.access != 'none' || effort.max > 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}},"right":{"type":"binary","op":">","left":{"type":"name","path":["effort","max"]},"right":{"type":"int","value":0}}}},"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'":{"text":"psionics.access != 'restricted' || psionics.discipline == 'biopsionics'","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"restricted"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","discipline"]},"right":{"type":"string","value":"biopsionics"}}}},"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'":{"text":"psionics.access != 'restricted' || psionics.discipline == 'metapsionics'","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"restricted"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","discipline"]},"right":{"type":"string","value":"metapsionics"}}}},"psionics.access != 'restricted' || psionics.discipline == 'precognition'":{"text":"psionics.access != 'restricted' || psionics.discipline == 'precognition'","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"restricted"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","discipline"]},"right":{"type":"string","value":"precognition"}}}},"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'":{"text":"psionics.access != 'restricted' || psionics.discipline == 'telekinesis'","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"restricted"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","discipline"]},"right":{"type":"string","value":"telekinesis"}}}},"psionics.access != 'restricted' || psionics.discipline == 'telepathy'":{"text":"psionics.access != 'restricted' || psionics.discipline == 'telepathy'","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"restricted"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","discipline"]},"right":{"type":"string","value":"telepathy"}}}},"psionics.access != 'restricted' || psionics.discipline == 'teleportation'":{"text":"psionics.access != 'restricted' || psionics.discipline == 'teleportation'","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"restricted"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","discipline"]},"right":{"type":"string","value":"teleportation"}}}},"psionics.access == 'none'":{"text":"psionics.access == 'none'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}}},"psionics.access == 'none' ? 3 : 2":{"text":"psionics.access == 'none' ? 3 : 2","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}},"then":{"type":"int","value":3},"else":{"type":"int","value":2}}},"psionics.access == 'none' ? effort.wild\n : max(1, 1 + maxFields(f.value, 'skill.psychic' in f.tags)\n + max(attributes.wis.mod, attributes.con.mod)) + effort.bonus":{"text":"psionics.access == 'none' ? effort.wild : max(1, 1 + maxFields(f.value, 'skill.psychic' in f.tags) + max(attributes.wis.mod, attributes.con.mod)) + effort.bonus","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}},"then":{"type":"name","path":["effort","wild"]},"else":{"type":"binary","op":"+","left":{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"+","left":{"type":"binary","op":"+","left":{"type":"int","value":1},"right":{"type":"call","fn":"maxFields","args":[{"type":"name","path":["f","value"]},{"type":"binary","op":"in","left":{"type":"string","value":"skill.psychic"},"right":{"type":"name","path":["f","tags"]}}]}},"right":{"type":"call","fn":"max","args":[{"type":"name","path":["attributes","wis","mod"]},{"type":"name","path":["attributes","con","mod"]}]}}]},"right":{"type":"name","path":["effort","bonus"]}}}},"psionics.access == 'restricted' && psionics.discipline != 'none'":{"text":"psionics.access == 'restricted' && psionics.discipline != 'none'","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"restricted"}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","discipline"]},"right":{"type":"string","value":"none"}}}},"psionics.access == 'restricted' ? psionics.discipline : 'biopsionics'":{"text":"psionics.access == 'restricted' ? psionics.discipline : 'biopsionics'","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"restricted"}},"then":{"type":"name","path":["psionics","discipline"]},"else":{"type":"string","value":"biopsionics"}}},"psionics.access == 'unrestricted'":{"text":"psionics.access == 'unrestricted'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"unrestricted"}}},"psionics.access == 'unrestricted'\n || sumFields(f.value >= 0 && (psionics.access == 'none' || psionics.discipline == 'none'\n || f.id != fieldId('skills.{psychic}.level', psionics.discipline)) ? 1 : 0,\n 'skill.psychic' in f.tags) == 0":{"text":"psionics.access == 'unrestricted' || sumFields(f.value >= 0 && (psionics.access == 'none' || psionics.discipline == 'none' || f.id != fieldId('skills.{psychic}.level', psionics.discipline)) ? 1 : 0, 'skill.psychic' in f.tags) == 0","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"unrestricted"}},"right":{"type":"binary","op":"==","left":{"type":"call","fn":"sumFields","args":[{"type":"conditional","test":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["f","value"]},"right":{"type":"int","value":0}},"right":{"type":"binary","op":"||","left":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"none"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","discipline"]},"right":{"type":"string","value":"none"}}},"right":{"type":"binary","op":"!=","left":{"type":"name","path":["f","id"]},"right":{"type":"call","fn":"fieldId","args":[{"type":"string","value":"skills.{psychic}.level"},{"type":"name","path":["psionics","discipline"]}]}}}},"then":{"type":"int","value":1},"else":{"type":"int","value":0}},{"type":"binary","op":"in","left":{"type":"string","value":"skill.psychic"},"right":{"type":"name","path":["f","tags"]}}]},"right":{"type":"int","value":0}}}},"psionics.access == 'unrestricted' || value == psionics.discipline":{"text":"psionics.access == 'unrestricted' || value == psionics.discipline","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["psionics","access"]},"right":{"type":"string","value":"unrestricted"}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["value"]},"right":{"type":"name","path":["psionics","discipline"]}}}},"psionics.discipline":{"text":"psionics.discipline","tree":{"type":"name","path":["psionics","discipline"]}},"psionics.discipline != 'none'":{"text":"psionics.discipline != 'none'","tree":{"type":"binary","op":"!=","left":{"type":"name","path":["psionics","discipline"]},"right":{"type":"string","value":"none"}}},"roll.faces[0] == 20 || (roll.faces[0] != 1 && roll.total >= flags.target)":{"text":"roll.faces[0] == 20 || roll.faces[0] != 1 && roll.total >= flags.target","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"index","object":{"type":"name","path":["roll","faces"]},"index":{"type":"int","value":0}},"right":{"type":"int","value":20}},"right":{"type":"binary","op":"&&","left":{"type":"binary","op":"!=","left":{"type":"index","object":{"type":"name","path":["roll","faces"]},"index":{"type":"int","value":0}},"right":{"type":"int","value":1}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["roll","total"]},"right":{"type":"name","path":["flags","target"]}}}}},"self.active":{"text":"self.active","tree":{"type":"name","path":["self","active"]}},"self.committed":{"text":"self.committed","tree":{"type":"name","path":["self","committed"]}},"self.committed > 0":{"text":"self.committed > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["self","committed"]},"right":{"type":"int","value":0}}},"self.equipped && has(item.enc) && item.enc > 0\n && countCopies(copy.type == 'weapon' && copy.equipped && has(copy.fields.enc)\n && copy.fields.enc > 0) > 1\n && encumbrance.readied > encumbrance.readiedLimit\n && encumbrance.stowed + item.enc * ceil(self.quantity / item.bundle)\n <= encumbrance.stowedLimit":{"text":"self.equipped && has(item.enc) && item.enc > 0 && countCopies(copy.type == 'weapon' && copy.equipped && has(copy.fields.enc) && copy.fields.enc > 0) > 1 && encumbrance.readied > encumbrance.readiedLimit && encumbrance.stowed + item.enc * ceil(self.quantity / item.bundle) <= encumbrance.stowedLimit","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","enc"]}]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","enc"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":">","left":{"type":"call","fn":"countCopies","args":[{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"weapon"}},"right":{"type":"name","path":["copy","equipped"]}},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["copy","fields","enc"]}]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["copy","fields","enc"]},"right":{"type":"int","value":0}}}]},"right":{"type":"int","value":1}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["encumbrance","readied"]},"right":{"type":"name","path":["encumbrance","readiedLimit"]}}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["encumbrance","stowed"]},"right":{"type":"binary","op":"*","left":{"type":"name","path":["item","enc"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["self","quantity"]},"right":{"type":"name","path":["item","bundle"]}}]}}},"right":{"type":"name","path":["encumbrance","stowedLimit"]}}}},"self.equipped && has(item.enc) && item.enc > 0\n && encumbrance.readied > encumbrance.readiedLimit":{"text":"self.equipped && has(item.enc) && item.enc > 0 && encumbrance.readied > encumbrance.readiedLimit","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","enc"]}]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","enc"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["encumbrance","readied"]},"right":{"type":"name","path":["encumbrance","readiedLimit"]}}}},"self.equipped && has(item.enc) && item.enc > 0\n && encumbrance.readied > encumbrance.readiedLimit\n && encumbrance.stowed + item.enc * ceil(self.quantity / item.bundle)\n <= encumbrance.stowedLimit":{"text":"self.equipped && has(item.enc) && item.enc > 0 && encumbrance.readied > encumbrance.readiedLimit && encumbrance.stowed + item.enc * ceil(self.quantity / item.bundle) <= encumbrance.stowedLimit","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","enc"]}]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","enc"]},"right":{"type":"int","value":0}}},"right":{"type":"binary","op":">","left":{"type":"name","path":["encumbrance","readied"]},"right":{"type":"name","path":["encumbrance","readiedLimit"]}}},"right":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["encumbrance","stowed"]},"right":{"type":"binary","op":"*","left":{"type":"name","path":["item","enc"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["self","quantity"]},"right":{"type":"name","path":["item","bundle"]}}]}}},"right":{"type":"name","path":["encumbrance","stowedLimit"]}}}},"self.equipped && has(item.enc) && item.enc > 0 && item.shield\n && encumbrance.readied > encumbrance.readiedLimit":{"text":"self.equipped && has(item.enc) && item.enc > 0 && item.shield && encumbrance.readied > encumbrance.readiedLimit","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["item","enc"]}]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","enc"]},"right":{"type":"int","value":0}}},"right":{"type":"name","path":["item","shield"]}},"right":{"type":"binary","op":">","left":{"type":"name","path":["encumbrance","readied"]},"right":{"type":"name","path":["encumbrance","readiedLimit"]}}}},"self.equipped && item.strength > 0":{"text":"self.equipped && item.strength > 0","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["self","equipped"]},"right":{"type":"binary","op":">","left":{"type":"name","path":["item","strength"]},"right":{"type":"int","value":0}}}},"self.level":{"text":"self.level","tree":{"type":"name","path":["self","level"]}},"self.level + 2":{"text":"self.level + 2","tree":{"type":"binary","op":"+","left":{"type":"name","path":["self","level"]},"right":{"type":"int","value":2}}},"self.level >= 2":{"text":"self.level >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["self","level"]},"right":{"type":"int","value":2}}},"self.torched > 0":{"text":"self.torched > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["self","torched"]},"right":{"type":"int","value":0}}},"situational.burst && item.burst && self.loaded >= 3":{"text":"situational.burst && item.burst && self.loaded >= 3","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"name","path":["situational","burst"]},"right":{"type":"name","path":["item","burst"]}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["self","loaded"]},"right":{"type":"int","value":3}}}},"situational.executionShot && skills.shoot.dice < 3":{"text":"situational.executionShot && skills.shoot.dice < 3","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["situational","executionShot"]},"right":{"type":"binary","op":"<","left":{"type":"name","path":["skills","shoot","dice"]},"right":{"type":"int","value":3}}}},"situational.hacking && skills.program.dice < 3":{"text":"situational.hacking && skills.program.dice < 3","tree":{"type":"binary","op":"&&","left":{"type":"name","path":["situational","hacking"]},"right":{"type":"binary","op":"<","left":{"type":"name","path":["skills","program","dice"]},"right":{"type":"int","value":3}}}},"situational.negotiation":{"text":"situational.negotiation","tree":{"type":"name","path":["situational","negotiation"]}},"situational.telepathy":{"text":"situational.telepathy","tree":{"type":"name","path":["situational","telepathy"]}},"size(flags.foci) > 0":{"text":"size(flags.foci) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","foci"]}]},"right":{"type":"int","value":0}}},"size(flags.foci) > 1":{"text":"size(flags.foci) > 1","tree":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","foci"]}]},"right":{"type":"int","value":1}}},"size(flags.open) == 0":{"text":"size(flags.open) == 0","tree":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","open"]}]},"right":{"type":"int","value":0}}},"size(flags.open) == 1 ? flags.open[0] : has(steps.choose) ? steps.choose.picked : ''":{"text":"size(flags.open) == 1 ? flags.open[0] : has(steps.choose) ? steps.choose.picked : ''","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","open"]}]},"right":{"type":"int","value":1}},"then":{"type":"index","object":{"type":"name","path":["flags","open"]},"index":{"type":"int","value":0}},"else":{"type":"conditional","test":{"type":"call","fn":"has","args":[{"type":"name","path":["steps","choose"]}]},"then":{"type":"name","path":["steps","choose","picked"]},"else":{"type":"string","value":""}}}},"size(flags.open) == 1 ? flags.open[0] : steps.choose.picked":{"text":"size(flags.open) == 1 ? flags.open[0] : steps.choose.picked","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","open"]}]},"right":{"type":"int","value":1}},"then":{"type":"index","object":{"type":"name","path":["flags","open"]},"index":{"type":"int","value":0}},"else":{"type":"name","path":["steps","choose","picked"]}}},"size(flags.open) > 1":{"text":"size(flags.open) > 1","tree":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["flags","open"]}]},"right":{"type":"int","value":1}}},"size(participants.target) > 0 && has(participants.target[0].strain.total)\n && has(participants.target[0].strain.max)\n && participants.target[0].strain.total + (params.mortallyWounded ? 2 : 1)\n > participants.target[0].strain.max":{"text":"size(participants.target) > 0 && has(participants.target[0].strain.total) && has(participants.target[0].strain.max) && participants.target[0].strain.total + (params.mortallyWounded ? 2 : 1) > participants.target[0].strain.max","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["participants","target"]}]},"right":{"type":"int","value":0}},"right":{"type":"call","fn":"has","args":[{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"strain"},"name":"total"}]}},"right":{"type":"call","fn":"has","args":[{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"strain"},"name":"max"}]}},"right":{"type":"binary","op":">","left":{"type":"binary","op":"+","left":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"strain"},"name":"total"},"right":{"type":"conditional","test":{"type":"name","path":["params","mortallyWounded"]},"then":{"type":"int","value":2},"else":{"type":"int","value":1}}},"right":{"type":"member","object":{"type":"member","object":{"type":"index","object":{"type":"name","path":["participants","target"]},"index":{"type":"int","value":0}},"name":"strain"},"name":"max"}}}},"size(steps.focus.added) == 0 ? 'none'\n : steps.focus.item.skill != 'chosen' ? steps.focus.item.skill\n : size(steps.picks.picked) > 0 ? steps.picks.picked[0] : 'any-skill'":{"text":"size(steps.focus.added) == 0 ? 'none' : steps.focus.item.skill != 'chosen' ? steps.focus.item.skill : size(steps.picks.picked) > 0 ? steps.picks.picked[0] : 'any-skill'","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"call","fn":"size","args":[{"type":"name","path":["steps","focus","added"]}]},"right":{"type":"int","value":0}},"then":{"type":"string","value":"none"},"else":{"type":"conditional","test":{"type":"binary","op":"!=","left":{"type":"name","path":["steps","focus","item","skill"]},"right":{"type":"string","value":"chosen"}},"then":{"type":"name","path":["steps","focus","item","skill"]},"else":{"type":"conditional","test":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["steps","picks","picked"]}]},"right":{"type":"int","value":0}},"then":{"type":"index","object":{"type":"name","path":["steps","picks","picked"]},"index":{"type":"int","value":0}},"else":{"type":"string","value":"any-skill"}}}}},"size(steps.focus.added) > 0":{"text":"size(steps.focus.added) > 0","tree":{"type":"binary","op":">","left":{"type":"call","fn":"size","args":[{"type":"name","path":["steps","focus","added"]}]},"right":{"type":"int","value":0}}},"skillPoints.general >= attributes.boosts + 1\n && level >= [1, 1, 3, 6, 9][attributes.boosts]\n && fieldOf('attributes.{attr}.score', params.attribute) < 18":{"text":"skillPoints.general >= attributes.boosts + 1 && level >= [1, 1, 3, 6, 9][attributes.boosts] && fieldOf('attributes.{attr}.score', params.attribute) < 18","tree":{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"binary","op":">=","left":{"type":"name","path":["skillPoints","general"]},"right":{"type":"binary","op":"+","left":{"type":"name","path":["attributes","boosts"]},"right":{"type":"int","value":1}}},"right":{"type":"binary","op":">=","left":{"type":"name","path":["level"]},"right":{"type":"index","object":{"type":"list","items":[{"type":"int","value":1},{"type":"int","value":1},{"type":"int","value":3},{"type":"int","value":6},{"type":"int","value":9}]},"index":{"type":"name","path":["attributes","boosts"]}}}},"right":{"type":"binary","op":"<","left":{"type":"call","fn":"fieldOf","args":[{"type":"string","value":"attributes.{attr}.score"},{"type":"name","path":["params","attribute"]}]},"right":{"type":"int","value":18}}}},"skillPoints.training > 0":{"text":"skillPoints.training > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skillPoints","training"]},"right":{"type":"int","value":0}}},"skills.administer.credit > 0":{"text":"skills.administer.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","administer","credit"]},"right":{"type":"int","value":0}}},"skills.biopsionics.credit > 0":{"text":"skills.biopsionics.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","biopsionics","credit"]},"right":{"type":"int","value":0}}},"skills.biopsionics.level >= 1":{"text":"skills.biopsionics.level >= 1","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","biopsionics","level"]},"right":{"type":"int","value":1}}},"skills.biopsionics.level >= 2":{"text":"skills.biopsionics.level >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","biopsionics","level"]},"right":{"type":"int","value":2}}},"skills.biopsionics.level >= 3":{"text":"skills.biopsionics.level >= 3","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","biopsionics","level"]},"right":{"type":"int","value":3}}},"skills.biopsionics.level >= 4":{"text":"skills.biopsionics.level >= 4","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","biopsionics","level"]},"right":{"type":"int","value":4}}},"skills.biopsionics.level >= 4 ? 3d6 + 8 : skills.biopsionics.level == 3 ? 2d6 + 6\n : skills.biopsionics.level == 2 ? 2d6 + 2 : 1d6 + 1":{"text":"skills.biopsionics.level >= 4 ? 3d6 + 8 : skills.biopsionics.level == 3 ? 2d6 + 6 : skills.biopsionics.level == 2 ? 2d6 + 2 : 1d6 + 1","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","biopsionics","level"]},"right":{"type":"int","value":4}},"then":{"type":"binary","op":"+","left":{"type":"dice","count":3,"sides":6,"modifiers":[]},"right":{"type":"int","value":8}},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["skills","biopsionics","level"]},"right":{"type":"int","value":3}},"then":{"type":"binary","op":"+","left":{"type":"dice","count":2,"sides":6,"modifiers":[]},"right":{"type":"int","value":6}},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["skills","biopsionics","level"]},"right":{"type":"int","value":2}},"then":{"type":"binary","op":"+","left":{"type":"dice","count":2,"sides":6,"modifiers":[]},"right":{"type":"int","value":2}},"else":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":6,"modifiers":[]},"right":{"type":"int","value":1}}}}}},"skills.connect.credit > 0":{"text":"skills.connect.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","connect","credit"]},"right":{"type":"int","value":0}}},"skills.exert.credit > 0":{"text":"skills.exert.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","exert","credit"]},"right":{"type":"int","value":0}}},"skills.fix.credit > 0":{"text":"skills.fix.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","fix","credit"]},"right":{"type":"int","value":0}}},"skills.heal.credit > 0":{"text":"skills.heal.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","heal","credit"]},"right":{"type":"int","value":0}}},"skills.know.credit > 0":{"text":"skills.know.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","know","credit"]},"right":{"type":"int","value":0}}},"skills.lead.credit > 0":{"text":"skills.lead.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","lead","credit"]},"right":{"type":"int","value":0}}},"skills.metapsionics.credit > 0":{"text":"skills.metapsionics.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","metapsionics","credit"]},"right":{"type":"int","value":0}}},"skills.metapsionics.level >= 1":{"text":"skills.metapsionics.level >= 1","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","metapsionics","level"]},"right":{"type":"int","value":1}}},"skills.metapsionics.level >= 2":{"text":"skills.metapsionics.level >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","metapsionics","level"]},"right":{"type":"int","value":2}}},"skills.metapsionics.level >= 3":{"text":"skills.metapsionics.level >= 3","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","metapsionics","level"]},"right":{"type":"int","value":3}}},"skills.metapsionics.level >= 4":{"text":"skills.metapsionics.level >= 4","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","metapsionics","level"]},"right":{"type":"int","value":4}}},"skills.notice.credit > 0":{"text":"skills.notice.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","notice","credit"]},"right":{"type":"int","value":0}}},"skills.perform.credit > 0":{"text":"skills.perform.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","perform","credit"]},"right":{"type":"int","value":0}}},"skills.pilot.credit > 0":{"text":"skills.pilot.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","pilot","credit"]},"right":{"type":"int","value":0}}},"skills.precognition.credit > 0":{"text":"skills.precognition.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","precognition","credit"]},"right":{"type":"int","value":0}}},"skills.precognition.level >= 1":{"text":"skills.precognition.level >= 1","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","precognition","level"]},"right":{"type":"int","value":1}}},"skills.precognition.level >= 2":{"text":"skills.precognition.level >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","precognition","level"]},"right":{"type":"int","value":2}}},"skills.precognition.level >= 3":{"text":"skills.precognition.level >= 3","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","precognition","level"]},"right":{"type":"int","value":3}}},"skills.precognition.level >= 4":{"text":"skills.precognition.level >= 4","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","precognition","level"]},"right":{"type":"int","value":4}}},"skills.program.credit > 0":{"text":"skills.program.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","program","credit"]},"right":{"type":"int","value":0}}},"skills.punch.credit > 0":{"text":"skills.punch.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","punch","credit"]},"right":{"type":"int","value":0}}},"skills.punch.level >= 4 ? 1d12 + 1 : skills.punch.level == 3 ? 1d12\n : skills.punch.level == 2 ? 1d10 : skills.punch.level == 1 ? 1d8 : 1d6":{"text":"skills.punch.level >= 4 ? 1d12 + 1 : skills.punch.level == 3 ? 1d12 : skills.punch.level == 2 ? 1d10 : skills.punch.level == 1 ? 1d8 : 1d6","tree":{"type":"conditional","test":{"type":"binary","op":">=","left":{"type":"name","path":["skills","punch","level"]},"right":{"type":"int","value":4}},"then":{"type":"binary","op":"+","left":{"type":"dice","count":1,"sides":12,"modifiers":[]},"right":{"type":"int","value":1}},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["skills","punch","level"]},"right":{"type":"int","value":3}},"then":{"type":"dice","count":1,"sides":12,"modifiers":[]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["skills","punch","level"]},"right":{"type":"int","value":2}},"then":{"type":"dice","count":1,"sides":10,"modifiers":[]},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["skills","punch","level"]},"right":{"type":"int","value":1}},"then":{"type":"dice","count":1,"sides":8,"modifiers":[]},"else":{"type":"dice","count":1,"sides":6,"modifiers":[]}}}}}},"skills.shoot.credit > 0":{"text":"skills.shoot.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","shoot","credit"]},"right":{"type":"int","value":0}}},"skills.sneak.credit > 0":{"text":"skills.sneak.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","sneak","credit"]},"right":{"type":"int","value":0}}},"skills.stab.credit > 0":{"text":"skills.stab.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","stab","credit"]},"right":{"type":"int","value":0}}},"skills.survive.credit > 0":{"text":"skills.survive.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","survive","credit"]},"right":{"type":"int","value":0}}},"skills.talk.credit > 0":{"text":"skills.talk.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","talk","credit"]},"right":{"type":"int","value":0}}},"skills.telekinesis.credit > 0":{"text":"skills.telekinesis.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","telekinesis","credit"]},"right":{"type":"int","value":0}}},"skills.telekinesis.level >= 1":{"text":"skills.telekinesis.level >= 1","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","telekinesis","level"]},"right":{"type":"int","value":1}}},"skills.telekinesis.level >= 2":{"text":"skills.telekinesis.level >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","telekinesis","level"]},"right":{"type":"int","value":2}}},"skills.telekinesis.level >= 3":{"text":"skills.telekinesis.level >= 3","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","telekinesis","level"]},"right":{"type":"int","value":3}}},"skills.telekinesis.level >= 4":{"text":"skills.telekinesis.level >= 4","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","telekinesis","level"]},"right":{"type":"int","value":4}}},"skills.telepathy.credit > 0":{"text":"skills.telepathy.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","telepathy","credit"]},"right":{"type":"int","value":0}}},"skills.telepathy.level >= 1":{"text":"skills.telepathy.level >= 1","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","telepathy","level"]},"right":{"type":"int","value":1}}},"skills.telepathy.level >= 2":{"text":"skills.telepathy.level >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","telepathy","level"]},"right":{"type":"int","value":2}}},"skills.telepathy.level >= 3":{"text":"skills.telepathy.level >= 3","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","telepathy","level"]},"right":{"type":"int","value":3}}},"skills.telepathy.level >= 4":{"text":"skills.telepathy.level >= 4","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","telepathy","level"]},"right":{"type":"int","value":4}}},"skills.teleportation.credit > 0":{"text":"skills.teleportation.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","teleportation","credit"]},"right":{"type":"int","value":0}}},"skills.teleportation.level >= 1":{"text":"skills.teleportation.level >= 1","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","teleportation","level"]},"right":{"type":"int","value":1}}},"skills.teleportation.level >= 2":{"text":"skills.teleportation.level >= 2","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","teleportation","level"]},"right":{"type":"int","value":2}}},"skills.teleportation.level >= 3":{"text":"skills.teleportation.level >= 3","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","teleportation","level"]},"right":{"type":"int","value":3}}},"skills.teleportation.level >= 4":{"text":"skills.teleportation.level >= 4","tree":{"type":"binary","op":">=","left":{"type":"name","path":["skills","teleportation","level"]},"right":{"type":"int","value":4}}},"skills.trade.credit > 0":{"text":"skills.trade.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","trade","credit"]},"right":{"type":"int","value":0}}},"skills.work.credit > 0":{"text":"skills.work.credit > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["skills","work","credit"]},"right":{"type":"int","value":0}}},"sortList(keysOf('general') + keysOf('combat')) + ['raise-zero']":{"text":"sortList(keysOf('general') + keysOf('combat')) + ['raise-zero']","tree":{"type":"binary","op":"+","left":{"type":"call","fn":"sortList","args":[{"type":"binary","op":"+","left":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"general"}]},"right":{"type":"call","fn":"keysOf","args":[{"type":"string","value":"combat"}]}}]},"right":{"type":"list","items":[{"type":"string","value":"raise-zero"}]}}},"steps.background.item.freeSkill":{"text":"steps.background.item.freeSkill","tree":{"type":"name","path":["steps","background","item","freeSkill"]}},"steps.background.item.quick1":{"text":"steps.background.item.quick1","tree":{"type":"name","path":["steps","background","item","quick1"]}},"steps.background.item.quick2":{"text":"steps.background.item.quick2","tree":{"type":"name","path":["steps","background","item","quick2"]}},"steps.bonus.picked":{"text":"steps.bonus.picked","tree":{"type":"name","path":["steps","bonus","picked"]}},"steps.cha.total":{"text":"steps.cha.total","tree":{"type":"name","path":["steps","cha","total"]}},"steps.check.band == 'failure'":{"text":"steps.check.band == 'failure'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","check","band"]},"right":{"type":"string","value":"failure"}}},"steps.con.total":{"text":"steps.con.total","tree":{"type":"name","path":["steps","con","total"]}},"steps.credits.total * 100":{"text":"steps.credits.total * 100","tree":{"type":"binary","op":"*","left":{"type":"name","path":["steps","credits","total"]},"right":{"type":"int","value":100}}},"steps.dex.total":{"text":"steps.dex.total","tree":{"type":"name","path":["steps","dex","total"]}},"steps.focus.added[0]":{"text":"steps.focus.added[0]","tree":{"type":"index","object":{"type":"name","path":["steps","focus","added"]},"index":{"type":"int","value":0}}},"steps.focus1.added[0]":{"text":"steps.focus1.added[0]","tree":{"type":"index","object":{"type":"name","path":["steps","focus1","added"]},"index":{"type":"int","value":0}}},"steps.focus2.added[0]":{"text":"steps.focus2.added[0]","tree":{"type":"index","object":{"type":"name","path":["steps","focus2","added"]},"index":{"type":"int","value":0}}},"steps.heal.total":{"text":"steps.heal.total","tree":{"type":"name","path":["steps","heal","total"]}},"steps.int.total":{"text":"steps.int.total","tree":{"type":"name","path":["steps","int","total"]}},"steps.learn1.picked":{"text":"steps.learn1.picked","tree":{"type":"name","path":["steps","learn1","picked"]}},"steps.learn2.picked":{"text":"steps.learn2.picked","tree":{"type":"name","path":["steps","learn2","picked"]}},"steps.method.picked == 'roll'":{"text":"steps.method.picked == 'roll'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","method","picked"]},"right":{"type":"string","value":"roll"}}},"steps.roll.band == 'hit' || flags.hit":{"text":"steps.roll.band == 'hit' || flags.hit","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["steps","roll","band"]},"right":{"type":"string","value":"hit"}},"right":{"type":"name","path":["flags","hit"]}}},"steps.roll.band == 'miss'":{"text":"steps.roll.band == 'miss'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","roll","band"]},"right":{"type":"string","value":"miss"}}},"steps.roll.total":{"text":"steps.roll.total","tree":{"type":"name","path":["steps","roll","total"]}},"steps.roll.total <= 2":{"text":"steps.roll.total <= 2","tree":{"type":"binary","op":"<=","left":{"type":"name","path":["steps","roll","total"]},"right":{"type":"int","value":2}}},"steps.roll.total <= 2 ? 'wisdom' : steps.roll.total <= 4 ? 'constitution'\n : steps.roll.total == 5 ? 'chosen' : 'harmless'":{"text":"steps.roll.total <= 2 ? 'wisdom' : steps.roll.total <= 4 ? 'constitution' : steps.roll.total == 5 ? 'chosen' : 'harmless'","tree":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["steps","roll","total"]},"right":{"type":"int","value":2}},"then":{"type":"string","value":"wisdom"},"else":{"type":"conditional","test":{"type":"binary","op":"<=","left":{"type":"name","path":["steps","roll","total"]},"right":{"type":"int","value":4}},"then":{"type":"string","value":"constitution"},"else":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","roll","total"]},"right":{"type":"int","value":5}},"then":{"type":"string","value":"chosen"},"else":{"type":"string","value":"harmless"}}}}},"steps.roll.total == 3 || steps.roll.total == 4":{"text":"steps.roll.total == 3 || steps.roll.total == 4","tree":{"type":"binary","op":"||","left":{"type":"binary","op":"==","left":{"type":"name","path":["steps","roll","total"]},"right":{"type":"int","value":3}},"right":{"type":"binary","op":"==","left":{"type":"name","path":["steps","roll","total"]},"right":{"type":"int","value":4}}}},"steps.roll.total == 5":{"text":"steps.roll.total == 5","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","roll","total"]},"right":{"type":"int","value":5}}},"steps.save.band":{"text":"steps.save.band","tree":{"type":"name","path":["steps","save","band"]}},"steps.save.result == 'success'":{"text":"steps.save.result == 'success'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","save","result"]},"right":{"type":"string","value":"success"}}},"steps.save.result == 'success' ? 'freed' : 'cursed'":{"text":"steps.save.result == 'success' ? 'freed' : 'cursed'","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","save","result"]},"right":{"type":"string","value":"success"}},"then":{"type":"string","value":"freed"},"else":{"type":"string","value":"cursed"}}},"steps.skills.picked == 'pick'":{"text":"steps.skills.picked == 'pick'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skills","picked"]},"right":{"type":"string","value":"pick"}}},"steps.skills.picked == 'quick'":{"text":"steps.skills.picked == 'quick'","tree":{"type":"binary","op":"==","left":{"type":"name","path":["steps","skills","picked"]},"right":{"type":"string","value":"quick"}}},"steps.start.item.discipline == psionics.training\n ? min(steps.start.item.level, skillPoints.training) : 0":{"text":"steps.start.item.discipline == psionics.training ? min(steps.start.item.level, skillPoints.training) : 0","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","start","item","discipline"]},"right":{"type":"name","path":["psionics","training"]}},"then":{"type":"call","fn":"min","args":[{"type":"name","path":["steps","start","item","level"]},{"type":"name","path":["skillPoints","training"]}]},"else":{"type":"int","value":0}}},"steps.start.item.level":{"text":"steps.start.item.level","tree":{"type":"name","path":["steps","start","item","level"]}},"steps.str.total":{"text":"steps.str.total","tree":{"type":"name","path":["steps","str","total"]}},"steps.style.item.cha":{"text":"steps.style.item.cha","tree":{"type":"name","path":["steps","style","item","cha"]}},"steps.style.item.class":{"text":"steps.style.item.class","tree":{"type":"name","path":["steps","style","item","class"]}},"steps.style.item.con":{"text":"steps.style.item.con","tree":{"type":"name","path":["steps","style","item","con"]}},"steps.style.item.dex":{"text":"steps.style.item.dex","tree":{"type":"name","path":["steps","style","item","dex"]}},"steps.style.item.int":{"text":"steps.style.item.int","tree":{"type":"name","path":["steps","style","item","int"]}},"steps.style.item.str":{"text":"steps.style.item.str","tree":{"type":"name","path":["steps","style","item","str"]}},"steps.style.item.wis":{"text":"steps.style.item.wis","tree":{"type":"name","path":["steps","style","item","wis"]}},"steps.table1.picked == 'growth' ? 1d6 : 1d8":{"text":"steps.table1.picked == 'growth' ? 1d6 : 1d8","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table1","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"dice","count":1,"sides":6,"modifiers":[]},"else":{"type":"dice","count":1,"sides":8,"modifiers":[]}}},"steps.table1.picked == 'growth' ? flags.growth[steps.roll1.total - 1]\n : flags.learning[steps.roll1.total - 1]":{"text":"steps.table1.picked == 'growth' ? flags.growth[steps.roll1.total - 1] : flags.learning[steps.roll1.total - 1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table1","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"index","object":{"type":"name","path":["flags","growth"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll1","total"]},"right":{"type":"int","value":1}}},"else":{"type":"index","object":{"type":"name","path":["flags","learning"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll1","total"]},"right":{"type":"int","value":1}}}}},"steps.table2.picked == 'growth' ? 1d6 : 1d8":{"text":"steps.table2.picked == 'growth' ? 1d6 : 1d8","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table2","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"dice","count":1,"sides":6,"modifiers":[]},"else":{"type":"dice","count":1,"sides":8,"modifiers":[]}}},"steps.table2.picked == 'growth' ? flags.growth[steps.roll2.total - 1]\n : flags.learning[steps.roll2.total - 1]":{"text":"steps.table2.picked == 'growth' ? flags.growth[steps.roll2.total - 1] : flags.learning[steps.roll2.total - 1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table2","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"index","object":{"type":"name","path":["flags","growth"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll2","total"]},"right":{"type":"int","value":1}}},"else":{"type":"index","object":{"type":"name","path":["flags","learning"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll2","total"]},"right":{"type":"int","value":1}}}}},"steps.table3.picked == 'growth' ? 1d6 : 1d8":{"text":"steps.table3.picked == 'growth' ? 1d6 : 1d8","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table3","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"dice","count":1,"sides":6,"modifiers":[]},"else":{"type":"dice","count":1,"sides":8,"modifiers":[]}}},"steps.table3.picked == 'growth' ? flags.growth[steps.roll3.total - 1]\n : flags.learning[steps.roll3.total - 1]":{"text":"steps.table3.picked == 'growth' ? flags.growth[steps.roll3.total - 1] : flags.learning[steps.roll3.total - 1]","tree":{"type":"conditional","test":{"type":"binary","op":"==","left":{"type":"name","path":["steps","table3","picked"]},"right":{"type":"string","value":"growth"}},"then":{"type":"index","object":{"type":"name","path":["flags","growth"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll3","total"]},"right":{"type":"int","value":1}}},"else":{"type":"index","object":{"type":"name","path":["flags","learning"]},"index":{"type":"binary","op":"-","left":{"type":"name","path":["steps","roll3","total"]},"right":{"type":"int","value":1}}}}},"steps.wis.total":{"text":"steps.wis.total","tree":{"type":"name","path":["steps","wis","total"]}},"strain.current > 0":{"text":"strain.current > 0","tree":{"type":"binary","op":">","left":{"type":"name","path":["strain","current"]},"right":{"type":"int","value":0}}},"strain.max":{"text":"strain.max","tree":{"type":"name","path":["strain","max"]}},"strain.permanent + strain.current":{"text":"strain.permanent + strain.current","tree":{"type":"binary","op":"+","left":{"type":"name","path":["strain","permanent"]},"right":{"type":"name","path":["strain","current"]}}},"strain.total + item.activationStrain <= strain.max":{"text":"strain.total + item.activationStrain <= strain.max","tree":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["item","activationStrain"]}},"right":{"type":"name","path":["strain","max"]}}},"strain.total + item.strain <= strain.max":{"text":"strain.total + item.strain <= strain.max","tree":{"type":"binary","op":"<=","left":{"type":"binary","op":"+","left":{"type":"name","path":["strain","total"]},"right":{"type":"name","path":["item","strain"]}},"right":{"type":"name","path":["strain","max"]}}},"sumCopies(copy.fields.enc * ceil(copy.quantity / copy.fields.bundle), has(copy.fields.enc)\n && !copy.equipped && !copy.state.stored)":{"text":"sumCopies(copy.fields.enc * ceil(copy.quantity / copy.fields.bundle), has(copy.fields.enc) && !copy.equipped && !copy.state.stored)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","enc"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["copy","quantity"]},"right":{"type":"name","path":["copy","fields","bundle"]}}]}},{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["copy","fields","enc"]}]},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["copy","equipped"]}}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["copy","state","stored"]}}}]}},"sumCopies(copy.fields.enc * ceil(copy.quantity / copy.fields.bundle), has(copy.fields.enc)\n && copy.equipped && !copy.state.stored)":{"text":"sumCopies(copy.fields.enc * ceil(copy.quantity / copy.fields.bundle), has(copy.fields.enc) && copy.equipped && !copy.state.stored)","tree":{"type":"call","fn":"sumCopies","args":[{"type":"binary","op":"*","left":{"type":"name","path":["copy","fields","enc"]},"right":{"type":"call","fn":"ceil","args":[{"type":"binary","op":"/","left":{"type":"name","path":["copy","quantity"]},"right":{"type":"name","path":["copy","fields","bundle"]}}]}},{"type":"binary","op":"&&","left":{"type":"binary","op":"&&","left":{"type":"call","fn":"has","args":[{"type":"name","path":["copy","fields","enc"]}]},"right":{"type":"name","path":["copy","equipped"]}},"right":{"type":"unary","op":"!","operand":{"type":"name","path":["copy","state","stored"]}}}]}},"sumCopies(copy.fields.strain, copy.type == 'cyberware' && has(copy.fields.strain))":{"text":"sumCopies(copy.fields.strain, copy.type == 'cyberware' && has(copy.fields.strain))","tree":{"type":"call","fn":"sumCopies","args":[{"type":"name","path":["copy","fields","strain"]},{"type":"binary","op":"&&","left":{"type":"binary","op":"==","left":{"type":"name","path":["copy","type"]},"right":{"type":"string","value":"cyberware"}},"right":{"type":"call","fn":"has","args":[{"type":"name","path":["copy","fields","strain"]}]}}]}},"sumList(steps.hp.faces, max(1, x + attributes.con.mod)) + hp.perLevel * level":{"text":"sumList(steps.hp.faces, max(1, x + attributes.con.mod)) + hp.perLevel * level","tree":{"type":"binary","op":"+","left":{"type":"call","fn":"sumList","args":[{"type":"name","path":["steps","hp","faces"]},{"type":"call","fn":"max","args":[{"type":"int","value":1},{"type":"binary","op":"+","left":{"type":"name","path":["x"]},"right":{"type":"name","path":["attributes","con","mod"]}}]}]},"right":{"type":"binary","op":"*","left":{"type":"name","path":["hp","perLevel"]},"right":{"type":"name","path":["level"]}}}}}};