@maka/maka-cli 5.127.0 → 5.129.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 (887) hide show
  1. package/bundle/typescript/package.json +8 -6
  2. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +24 -3
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +11 -5
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +7 -5
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +53 -15
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +2 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js +11 -5
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js +6 -2
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +4 -2
  10. package/bundle/typescript/src/commands/game/sideQuest/game.js +10 -3
  11. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +108 -38
  12. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +5 -0
  13. package/bundle/typescript/src/commands/game/sideQuest/utilities/sustaining.js +36 -0
  14. package/bundle/typescript/src/commands/profile.js +10 -2
  15. package/package.json +8 -6
  16. package/bundle/typescript/src/command.d.ts +0 -37
  17. package/bundle/typescript/src/command.js.map +0 -1
  18. package/bundle/typescript/src/commands/_index.d.ts +0 -28
  19. package/bundle/typescript/src/commands/_index.js.map +0 -1
  20. package/bundle/typescript/src/commands/aws/_index.d.ts +0 -16
  21. package/bundle/typescript/src/commands/aws/_index.js.map +0 -1
  22. package/bundle/typescript/src/commands/aws/aws.command.d.ts +0 -3
  23. package/bundle/typescript/src/commands/aws/aws.command.js.map +0 -1
  24. package/bundle/typescript/src/commands/aws/cecr.sub.cmd.d.ts +0 -1
  25. package/bundle/typescript/src/commands/aws/cecr.sub.cmd.js.map +0 -1
  26. package/bundle/typescript/src/commands/aws/chz.sub.cmd.d.ts +0 -1
  27. package/bundle/typescript/src/commands/aws/chz.sub.cmd.js.map +0 -1
  28. package/bundle/typescript/src/commands/aws/ci.sub.cmd.d.ts +0 -1
  29. package/bundle/typescript/src/commands/aws/ci.sub.cmd.js.map +0 -1
  30. package/bundle/typescript/src/commands/aws/ckp.sub.cmd.d.ts +0 -1
  31. package/bundle/typescript/src/commands/aws/ckp.sub.cmd.js.map +0 -1
  32. package/bundle/typescript/src/commands/aws/csg.sub.cmd.d.ts +0 -1
  33. package/bundle/typescript/src/commands/aws/csg.sub.cmd.js.map +0 -1
  34. package/bundle/typescript/src/commands/aws/decr.sub.cmd.d.ts +0 -1
  35. package/bundle/typescript/src/commands/aws/decr.sub.cmd.js.map +0 -1
  36. package/bundle/typescript/src/commands/aws/di.sub.cmd.d.ts +0 -1
  37. package/bundle/typescript/src/commands/aws/di.sub.cmd.js.map +0 -1
  38. package/bundle/typescript/src/commands/aws/dkp.sub.cmd.d.ts +0 -1
  39. package/bundle/typescript/src/commands/aws/dkp.sub.cmd.js.map +0 -1
  40. package/bundle/typescript/src/commands/aws/dsg.sub.cmd.d.ts +0 -1
  41. package/bundle/typescript/src/commands/aws/dsg.sub.cmd.js.map +0 -1
  42. package/bundle/typescript/src/commands/aws/lecr.sub.cmd.d.ts +0 -1
  43. package/bundle/typescript/src/commands/aws/lecr.sub.cmd.js.map +0 -1
  44. package/bundle/typescript/src/commands/aws/rbi.sub.cmd.d.ts +0 -1
  45. package/bundle/typescript/src/commands/aws/rbi.sub.cmd.js.map +0 -1
  46. package/bundle/typescript/src/commands/aws/rdn.sub.cmd.d.ts +0 -1
  47. package/bundle/typescript/src/commands/aws/rdn.sub.cmd.js.map +0 -1
  48. package/bundle/typescript/src/commands/aws/rkp.sub.cmd.d.ts +0 -1
  49. package/bundle/typescript/src/commands/aws/rkp.sub.cmd.js.map +0 -1
  50. package/bundle/typescript/src/commands/aws/sth.sub.cmd.d.ts +0 -1
  51. package/bundle/typescript/src/commands/aws/sth.sub.cmd.js.map +0 -1
  52. package/bundle/typescript/src/commands/aws/ti.sub.cmd.d.ts +0 -1
  53. package/bundle/typescript/src/commands/aws/ti.sub.cmd.js.map +0 -1
  54. package/bundle/typescript/src/commands/build/_index.d.ts +0 -2
  55. package/bundle/typescript/src/commands/build/_index.js.map +0 -1
  56. package/bundle/typescript/src/commands/build/build.d.ts +0 -3
  57. package/bundle/typescript/src/commands/build/build.js.map +0 -1
  58. package/bundle/typescript/src/commands/build/docker.sub.cmd.d.ts +0 -1
  59. package/bundle/typescript/src/commands/build/docker.sub.cmd.js.map +0 -1
  60. package/bundle/typescript/src/commands/create.d.ts +0 -1
  61. package/bundle/typescript/src/commands/create.js.map +0 -1
  62. package/bundle/typescript/src/commands/debug.d.ts +0 -1
  63. package/bundle/typescript/src/commands/debug.js.map +0 -1
  64. package/bundle/typescript/src/commands/deploy/_index.d.ts +0 -4
  65. package/bundle/typescript/src/commands/deploy/_index.js.map +0 -1
  66. package/bundle/typescript/src/commands/deploy/deploy.command.d.ts +0 -3
  67. package/bundle/typescript/src/commands/deploy/deploy.command.js.map +0 -1
  68. package/bundle/typescript/src/commands/deploy/galaxy.sub.cmd.d.ts +0 -1
  69. package/bundle/typescript/src/commands/deploy/galaxy.sub.cmd.js.map +0 -1
  70. package/bundle/typescript/src/commands/deploy/github.sub.cmd.d.ts +0 -1
  71. package/bundle/typescript/src/commands/deploy/github.sub.cmd.js.map +0 -1
  72. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.d.ts +0 -1
  73. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js.map +0 -1
  74. package/bundle/typescript/src/commands/env/_index.d.ts +0 -3
  75. package/bundle/typescript/src/commands/env/_index.js.map +0 -1
  76. package/bundle/typescript/src/commands/env/env.command.d.ts +0 -3
  77. package/bundle/typescript/src/commands/env/env.command.js.map +0 -1
  78. package/bundle/typescript/src/commands/env/get.sub.cmd.d.ts +0 -1
  79. package/bundle/typescript/src/commands/env/get.sub.cmd.js.map +0 -1
  80. package/bundle/typescript/src/commands/env/prompt-for-env.d.ts +0 -10
  81. package/bundle/typescript/src/commands/env/prompt-for-env.js.map +0 -1
  82. package/bundle/typescript/src/commands/env/set.sub.cmd.d.ts +0 -1
  83. package/bundle/typescript/src/commands/env/set.sub.cmd.js.map +0 -1
  84. package/bundle/typescript/src/commands/game/_index.d.ts +0 -2
  85. package/bundle/typescript/src/commands/game/_index.js.map +0 -1
  86. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.d.ts +0 -71
  87. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js.map +0 -1
  88. package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +0 -160
  89. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +0 -1
  90. package/bundle/typescript/src/commands/game/sideQuest/aspects.d.ts +0 -68
  91. package/bundle/typescript/src/commands/game/sideQuest/aspects.js.map +0 -1
  92. package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +0 -207
  93. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +0 -1
  94. package/bundle/typescript/src/commands/game/sideQuest/commands/abandon.d.ts +0 -30
  95. package/bundle/typescript/src/commands/game/sideQuest/commands/abandon.js.map +0 -1
  96. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.d.ts +0 -26
  97. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +0 -1
  98. package/bundle/typescript/src/commands/game/sideQuest/commands/ar.d.ts +0 -34
  99. package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js.map +0 -1
  100. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.d.ts +0 -65
  101. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +0 -1
  102. package/bundle/typescript/src/commands/game/sideQuest/commands/assense.d.ts +0 -16
  103. package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js.map +0 -1
  104. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.d.ts +0 -42
  105. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +0 -1
  106. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.d.ts +0 -199
  107. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +0 -1
  108. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +0 -59
  109. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +0 -1
  110. package/bundle/typescript/src/commands/game/sideQuest/commands/brandish.d.ts +0 -21
  111. package/bundle/typescript/src/commands/game/sideQuest/commands/brandish.js.map +0 -1
  112. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +0 -39
  113. package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +0 -1
  114. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.d.ts +0 -28
  115. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +0 -1
  116. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +0 -64
  117. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +0 -1
  118. package/bundle/typescript/src/commands/game/sideQuest/commands/call.d.ts +0 -72
  119. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +0 -1
  120. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +0 -119
  121. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +0 -1
  122. package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.d.ts +0 -6
  123. package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.js.map +0 -1
  124. package/bundle/typescript/src/commands/game/sideQuest/commands/climb.d.ts +0 -48
  125. package/bundle/typescript/src/commands/game/sideQuest/commands/climb.js.map +0 -1
  126. package/bundle/typescript/src/commands/game/sideQuest/commands/command-registry.d.ts +0 -19
  127. package/bundle/typescript/src/commands/game/sideQuest/commands/command-registry.js.map +0 -1
  128. package/bundle/typescript/src/commands/game/sideQuest/commands/command.d.ts +0 -63
  129. package/bundle/typescript/src/commands/game/sideQuest/commands/command.js.map +0 -1
  130. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.d.ts +0 -69
  131. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +0 -1
  132. package/bundle/typescript/src/commands/game/sideQuest/commands/compile.d.ts +0 -65
  133. package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js.map +0 -1
  134. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.d.ts +0 -18
  135. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +0 -1
  136. package/bundle/typescript/src/commands/game/sideQuest/commands/container-verbs.d.ts +0 -18
  137. package/bundle/typescript/src/commands/game/sideQuest/commands/container-verbs.js.map +0 -1
  138. package/bundle/typescript/src/commands/game/sideQuest/commands/cover.d.ts +0 -30
  139. package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js.map +0 -1
  140. package/bundle/typescript/src/commands/game/sideQuest/commands/crew.d.ts +0 -46
  141. package/bundle/typescript/src/commands/game/sideQuest/commands/crew.js.map +0 -1
  142. package/bundle/typescript/src/commands/game/sideQuest/commands/deck.d.ts +0 -42
  143. package/bundle/typescript/src/commands/game/sideQuest/commands/deck.js.map +0 -1
  144. package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.d.ts +0 -61
  145. package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js.map +0 -1
  146. package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.d.ts +0 -23
  147. package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js.map +0 -1
  148. package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.d.ts +0 -14
  149. package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.js.map +0 -1
  150. package/bundle/typescript/src/commands/game/sideQuest/commands/download.d.ts +0 -46
  151. package/bundle/typescript/src/commands/game/sideQuest/commands/download.js.map +0 -1
  152. package/bundle/typescript/src/commands/game/sideQuest/commands/drink.d.ts +0 -14
  153. package/bundle/typescript/src/commands/game/sideQuest/commands/drink.js.map +0 -1
  154. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.d.ts +0 -15
  155. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +0 -1
  156. package/bundle/typescript/src/commands/game/sideQuest/commands/drop.d.ts +0 -7
  157. package/bundle/typescript/src/commands/game/sideQuest/commands/drop.js.map +0 -1
  158. package/bundle/typescript/src/commands/game/sideQuest/commands/eat.d.ts +0 -14
  159. package/bundle/typescript/src/commands/game/sideQuest/commands/eat.js.map +0 -1
  160. package/bundle/typescript/src/commands/game/sideQuest/commands/edge.d.ts +0 -13
  161. package/bundle/typescript/src/commands/game/sideQuest/commands/edge.js.map +0 -1
  162. package/bundle/typescript/src/commands/game/sideQuest/commands/emote.d.ts +0 -17
  163. package/bundle/typescript/src/commands/game/sideQuest/commands/emote.js.map +0 -1
  164. package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.d.ts +0 -6
  165. package/bundle/typescript/src/commands/game/sideQuest/commands/end-call.js.map +0 -1
  166. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.d.ts +0 -59
  167. package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js.map +0 -1
  168. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.d.ts +0 -11
  169. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +0 -1
  170. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.d.ts +0 -23
  171. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +0 -1
  172. package/bundle/typescript/src/commands/game/sideQuest/commands/fit.d.ts +0 -29
  173. package/bundle/typescript/src/commands/game/sideQuest/commands/fit.js.map +0 -1
  174. package/bundle/typescript/src/commands/game/sideQuest/commands/follow.d.ts +0 -37
  175. package/bundle/typescript/src/commands/game/sideQuest/commands/follow.js.map +0 -1
  176. package/bundle/typescript/src/commands/game/sideQuest/commands/garage.d.ts +0 -15
  177. package/bundle/typescript/src/commands/game/sideQuest/commands/garage.js.map +0 -1
  178. package/bundle/typescript/src/commands/game/sideQuest/commands/give.d.ts +0 -7
  179. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +0 -1
  180. package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +0 -88
  181. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +0 -1
  182. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.d.ts +0 -38
  183. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +0 -1
  184. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +0 -103
  185. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +0 -1
  186. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.d.ts +0 -16
  187. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +0 -1
  188. package/bundle/typescript/src/commands/game/sideQuest/commands/heal.d.ts +0 -53
  189. package/bundle/typescript/src/commands/game/sideQuest/commands/heal.js.map +0 -1
  190. package/bundle/typescript/src/commands/game/sideQuest/commands/hints.d.ts +0 -10
  191. package/bundle/typescript/src/commands/game/sideQuest/commands/hints.js.map +0 -1
  192. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.d.ts +0 -16
  193. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +0 -1
  194. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +0 -8
  195. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +0 -1
  196. package/bundle/typescript/src/commands/game/sideQuest/commands/install.d.ts +0 -21
  197. package/bundle/typescript/src/commands/game/sideQuest/commands/install.js.map +0 -1
  198. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.d.ts +0 -6
  199. package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +0 -1
  200. package/bundle/typescript/src/commands/game/sideQuest/commands/jack.d.ts +0 -36
  201. package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js.map +0 -1
  202. package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.d.ts +0 -24
  203. package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js.map +0 -1
  204. package/bundle/typescript/src/commands/game/sideQuest/commands/job-offer.d.ts +0 -38
  205. package/bundle/typescript/src/commands/game/sideQuest/commands/job-offer.js.map +0 -1
  206. package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.d.ts +0 -12
  207. package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js.map +0 -1
  208. package/bundle/typescript/src/commands/game/sideQuest/commands/journal.d.ts +0 -44
  209. package/bundle/typescript/src/commands/game/sideQuest/commands/journal.js.map +0 -1
  210. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.d.ts +0 -16
  211. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js.map +0 -1
  212. package/bundle/typescript/src/commands/game/sideQuest/commands/kill.d.ts +0 -13
  213. package/bundle/typescript/src/commands/game/sideQuest/commands/kill.js.map +0 -1
  214. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.d.ts +0 -40
  215. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js.map +0 -1
  216. package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.d.ts +0 -23
  217. package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js.map +0 -1
  218. package/bundle/typescript/src/commands/game/sideQuest/commands/lock.d.ts +0 -8
  219. package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js.map +0 -1
  220. package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +0 -62
  221. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +0 -1
  222. package/bundle/typescript/src/commands/game/sideQuest/commands/loot.d.ts +0 -21
  223. package/bundle/typescript/src/commands/game/sideQuest/commands/loot.js.map +0 -1
  224. package/bundle/typescript/src/commands/game/sideQuest/commands/map.d.ts +0 -26
  225. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +0 -1
  226. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.d.ts +0 -27
  227. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +0 -1
  228. package/bundle/typescript/src/commands/game/sideQuest/commands/message.d.ts +0 -44
  229. package/bundle/typescript/src/commands/game/sideQuest/commands/message.js.map +0 -1
  230. package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +0 -194
  231. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +0 -1
  232. package/bundle/typescript/src/commands/game/sideQuest/commands/note.d.ts +0 -99
  233. package/bundle/typescript/src/commands/game/sideQuest/commands/note.js.map +0 -1
  234. package/bundle/typescript/src/commands/game/sideQuest/commands/order.d.ts +0 -19
  235. package/bundle/typescript/src/commands/game/sideQuest/commands/order.js.map +0 -1
  236. package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.d.ts +0 -14
  237. package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js.map +0 -1
  238. package/bundle/typescript/src/commands/game/sideQuest/commands/palm.d.ts +0 -16
  239. package/bundle/typescript/src/commands/game/sideQuest/commands/palm.js.map +0 -1
  240. package/bundle/typescript/src/commands/game/sideQuest/commands/pan.d.ts +0 -12
  241. package/bundle/typescript/src/commands/game/sideQuest/commands/pan.js.map +0 -1
  242. package/bundle/typescript/src/commands/game/sideQuest/commands/pay.d.ts +0 -13
  243. package/bundle/typescript/src/commands/game/sideQuest/commands/pay.js.map +0 -1
  244. package/bundle/typescript/src/commands/game/sideQuest/commands/perform.d.ts +0 -13
  245. package/bundle/typescript/src/commands/game/sideQuest/commands/perform.js.map +0 -1
  246. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.d.ts +0 -18
  247. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +0 -1
  248. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.d.ts +0 -43
  249. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +0 -1
  250. package/bundle/typescript/src/commands/game/sideQuest/commands/players.d.ts +0 -12
  251. package/bundle/typescript/src/commands/game/sideQuest/commands/players.js.map +0 -1
  252. package/bundle/typescript/src/commands/game/sideQuest/commands/posture.d.ts +0 -45
  253. package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js.map +0 -1
  254. package/bundle/typescript/src/commands/game/sideQuest/commands/project.d.ts +0 -19
  255. package/bundle/typescript/src/commands/game/sideQuest/commands/project.js.map +0 -1
  256. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.d.ts +0 -21
  257. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +0 -1
  258. package/bundle/typescript/src/commands/game/sideQuest/commands/read.d.ts +0 -6
  259. package/bundle/typescript/src/commands/game/sideQuest/commands/read.js.map +0 -1
  260. package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.d.ts +0 -12
  261. package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js.map +0 -1
  262. package/bundle/typescript/src/commands/game/sideQuest/commands/register.d.ts +0 -29
  263. package/bundle/typescript/src/commands/game/sideQuest/commands/register.js.map +0 -1
  264. package/bundle/typescript/src/commands/game/sideQuest/commands/reload.d.ts +0 -14
  265. package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js.map +0 -1
  266. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.d.ts +0 -15
  267. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +0 -1
  268. package/bundle/typescript/src/commands/game/sideQuest/commands/review.d.ts +0 -39
  269. package/bundle/typescript/src/commands/game/sideQuest/commands/review.js.map +0 -1
  270. package/bundle/typescript/src/commands/game/sideQuest/commands/roles.d.ts +0 -34
  271. package/bundle/typescript/src/commands/game/sideQuest/commands/roles.js.map +0 -1
  272. package/bundle/typescript/src/commands/game/sideQuest/commands/say.d.ts +0 -30
  273. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +0 -1
  274. package/bundle/typescript/src/commands/game/sideQuest/commands/search.d.ts +0 -6
  275. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +0 -1
  276. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.d.ts +0 -17
  277. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js.map +0 -1
  278. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.d.ts +0 -24
  279. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +0 -1
  280. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.d.ts +0 -28
  281. package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +0 -1
  282. package/bundle/typescript/src/commands/game/sideQuest/commands/sin.d.ts +0 -21
  283. package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js.map +0 -1
  284. package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.d.ts +0 -15
  285. package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js.map +0 -1
  286. package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.d.ts +0 -16
  287. package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js.map +0 -1
  288. package/bundle/typescript/src/commands/game/sideQuest/commands/source.d.ts +0 -11
  289. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js.map +0 -1
  290. package/bundle/typescript/src/commands/game/sideQuest/commands/spells.d.ts +0 -14
  291. package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js.map +0 -1
  292. package/bundle/typescript/src/commands/game/sideQuest/commands/sprites.d.ts +0 -35
  293. package/bundle/typescript/src/commands/game/sideQuest/commands/sprites.js.map +0 -1
  294. package/bundle/typescript/src/commands/game/sideQuest/commands/stance.d.ts +0 -22
  295. package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js.map +0 -1
  296. package/bundle/typescript/src/commands/game/sideQuest/commands/standby.d.ts +0 -40
  297. package/bundle/typescript/src/commands/game/sideQuest/commands/standby.js.map +0 -1
  298. package/bundle/typescript/src/commands/game/sideQuest/commands/store.d.ts +0 -7
  299. package/bundle/typescript/src/commands/game/sideQuest/commands/store.js.map +0 -1
  300. package/bundle/typescript/src/commands/game/sideQuest/commands/subdue.d.ts +0 -21
  301. package/bundle/typescript/src/commands/game/sideQuest/commands/subdue.js.map +0 -1
  302. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.d.ts +0 -19
  303. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js.map +0 -1
  304. package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.d.ts +0 -20
  305. package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js.map +0 -1
  306. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.d.ts +0 -60
  307. package/bundle/typescript/src/commands/game/sideQuest/commands/sustain.js.map +0 -1
  308. package/bundle/typescript/src/commands/game/sideQuest/commands/take.d.ts +0 -17
  309. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +0 -1
  310. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.d.ts +0 -56
  311. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +0 -1
  312. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.d.ts +0 -52
  313. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +0 -1
  314. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.d.ts +0 -89
  315. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +0 -1
  316. package/bundle/typescript/src/commands/game/sideQuest/commands/time.d.ts +0 -20
  317. package/bundle/typescript/src/commands/game/sideQuest/commands/time.js.map +0 -1
  318. package/bundle/typescript/src/commands/game/sideQuest/commands/treat.d.ts +0 -14
  319. package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js.map +0 -1
  320. package/bundle/typescript/src/commands/game/sideQuest/commands/unequip.d.ts +0 -6
  321. package/bundle/typescript/src/commands/game/sideQuest/commands/unequip.js.map +0 -1
  322. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.d.ts +0 -7
  323. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +0 -1
  324. package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.d.ts +0 -57
  325. package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.js.map +0 -1
  326. package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +0 -83
  327. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +0 -1
  328. package/bundle/typescript/src/commands/game/sideQuest/commands/work.d.ts +0 -15
  329. package/bundle/typescript/src/commands/game/sideQuest/commands/work.js.map +0 -1
  330. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +0 -19
  331. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +0 -1
  332. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +0 -170
  333. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +0 -1
  334. package/bundle/typescript/src/commands/game/sideQuest/factories/command-factory.d.ts +0 -9
  335. package/bundle/typescript/src/commands/game/sideQuest/factories/command-factory.js.map +0 -1
  336. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.d.ts +0 -5
  337. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +0 -1
  338. package/bundle/typescript/src/commands/game/sideQuest/factories/npc-factory.d.ts +0 -9
  339. package/bundle/typescript/src/commands/game/sideQuest/factories/npc-factory.js.map +0 -1
  340. package/bundle/typescript/src/commands/game/sideQuest/factories/npc-spread.d.ts +0 -50
  341. package/bundle/typescript/src/commands/game/sideQuest/factories/npc-spread.js.map +0 -1
  342. package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.d.ts +0 -87
  343. package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js.map +0 -1
  344. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.d.ts +0 -34
  345. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +0 -1
  346. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +0 -414
  347. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +0 -1
  348. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.d.ts +0 -46
  349. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +0 -1
  350. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +0 -223
  351. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +0 -1
  352. package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.d.ts +0 -30
  353. package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js.map +0 -1
  354. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +0 -1677
  355. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +0 -1
  356. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.d.ts +0 -119
  357. package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js.map +0 -1
  358. package/bundle/typescript/src/commands/game/sideQuest/headless.d.ts +0 -102
  359. package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +0 -1
  360. package/bundle/typescript/src/commands/game/sideQuest/metamagics.d.ts +0 -32
  361. package/bundle/typescript/src/commands/game/sideQuest/metamagics.js.map +0 -1
  362. package/bundle/typescript/src/commands/game/sideQuest/metatypes.d.ts +0 -55
  363. package/bundle/typescript/src/commands/game/sideQuest/metatypes.js.map +0 -1
  364. package/bundle/typescript/src/commands/game/sideQuest/minigames/hack-minigame.d.ts +0 -16
  365. package/bundle/typescript/src/commands/game/sideQuest/minigames/hack-minigame.js.map +0 -1
  366. package/bundle/typescript/src/commands/game/sideQuest/minigames/lockpick-minigame.d.ts +0 -15
  367. package/bundle/typescript/src/commands/game/sideQuest/minigames/lockpick-minigame.js.map +0 -1
  368. package/bundle/typescript/src/commands/game/sideQuest/models/_index.d.ts +0 -8
  369. package/bundle/typescript/src/commands/game/sideQuest/models/_index.js.map +0 -1
  370. package/bundle/typescript/src/commands/game/sideQuest/models/container.d.ts +0 -78
  371. package/bundle/typescript/src/commands/game/sideQuest/models/container.js.map +0 -1
  372. package/bundle/typescript/src/commands/game/sideQuest/models/device.d.ts +0 -265
  373. package/bundle/typescript/src/commands/game/sideQuest/models/device.js.map +0 -1
  374. package/bundle/typescript/src/commands/game/sideQuest/models/door.d.ts +0 -53
  375. package/bundle/typescript/src/commands/game/sideQuest/models/door.js.map +0 -1
  376. package/bundle/typescript/src/commands/game/sideQuest/models/home-containers.d.ts +0 -36
  377. package/bundle/typescript/src/commands/game/sideQuest/models/home-containers.js.map +0 -1
  378. package/bundle/typescript/src/commands/game/sideQuest/models/host.d.ts +0 -80
  379. package/bundle/typescript/src/commands/game/sideQuest/models/host.js.map +0 -1
  380. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.d.ts +0 -70
  381. package/bundle/typescript/src/commands/game/sideQuest/models/inventory.js.map +0 -1
  382. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +0 -446
  383. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +0 -1
  384. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +0 -508
  385. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +0 -1
  386. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +0 -1883
  387. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +0 -1
  388. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +0 -489
  389. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +0 -1
  390. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +0 -331
  391. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +0 -1
  392. package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +0 -224
  393. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +0 -1
  394. package/bundle/typescript/src/commands/game/sideQuest/resonance-actions.d.ts +0 -108
  395. package/bundle/typescript/src/commands/game/sideQuest/resonance-actions.js.map +0 -1
  396. package/bundle/typescript/src/commands/game/sideQuest/scenes/_index.d.ts +0 -0
  397. package/bundle/typescript/src/commands/game/sideQuest/scenes/_index.js.map +0 -1
  398. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.d.ts +0 -130
  399. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js.map +0 -1
  400. package/bundle/typescript/src/commands/game/sideQuest/skills.d.ts +0 -17
  401. package/bundle/typescript/src/commands/game/sideQuest/skills.js.map +0 -1
  402. package/bundle/typescript/src/commands/game/sideQuest/spells.d.ts +0 -135
  403. package/bundle/typescript/src/commands/game/sideQuest/spells.js.map +0 -1
  404. package/bundle/typescript/src/commands/game/sideQuest/sprite-powers.d.ts +0 -88
  405. package/bundle/typescript/src/commands/game/sideQuest/sprite-powers.js.map +0 -1
  406. package/bundle/typescript/src/commands/game/sideQuest/types/enums.d.ts +0 -47
  407. package/bundle/typescript/src/commands/game/sideQuest/types/enums.js.map +0 -1
  408. package/bundle/typescript/src/commands/game/sideQuest/types/player-equipment.d.ts +0 -59
  409. package/bundle/typescript/src/commands/game/sideQuest/types/player-equipment.js.map +0 -1
  410. package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +0 -379
  411. package/bundle/typescript/src/commands/game/sideQuest/types/repro.js.map +0 -1
  412. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +0 -478
  413. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.js.map +0 -1
  414. package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.d.ts +0 -81
  415. package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js.map +0 -1
  416. package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.d.ts +0 -8
  417. package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.js.map +0 -1
  418. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +0 -43
  419. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.js.map +0 -1
  420. package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.d.ts +0 -63
  421. package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js.map +0 -1
  422. package/bundle/typescript/src/commands/game/sideQuest/types/seed/lifestyle-seed.d.ts +0 -22
  423. package/bundle/typescript/src/commands/game/sideQuest/types/seed/lifestyle-seed.js.map +0 -1
  424. package/bundle/typescript/src/commands/game/sideQuest/types/seed/npc-seed.d.ts +0 -7
  425. package/bundle/typescript/src/commands/game/sideQuest/types/seed/npc-seed.js.map +0 -1
  426. package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +0 -69
  427. package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.js.map +0 -1
  428. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +0 -42
  429. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.js.map +0 -1
  430. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +0 -56
  431. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.js.map +0 -1
  432. package/bundle/typescript/src/commands/game/sideQuest/types/seed/win-condition-seed.d.ts +0 -15
  433. package/bundle/typescript/src/commands/game/sideQuest/types/seed/win-condition-seed.js.map +0 -1
  434. package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.d.ts +0 -126
  435. package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js.map +0 -1
  436. package/bundle/typescript/src/commands/game/sideQuest/types/shared/direction-enum.d.ts +0 -8
  437. package/bundle/typescript/src/commands/game/sideQuest/types/shared/direction-enum.js.map +0 -1
  438. package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.d.ts +0 -31
  439. package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.js.map +0 -1
  440. package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.d.ts +0 -74
  441. package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.js.map +0 -1
  442. package/bundle/typescript/src/commands/game/sideQuest/ui.d.ts +0 -44
  443. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +0 -1
  444. package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.d.ts +0 -55
  445. package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js.map +0 -1
  446. package/bundle/typescript/src/commands/game/sideQuest/utilities/alarmed-staff.d.ts +0 -116
  447. package/bundle/typescript/src/commands/game/sideQuest/utilities/alarmed-staff.js.map +0 -1
  448. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.d.ts +0 -96
  449. package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +0 -1
  450. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.d.ts +0 -69
  451. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +0 -1
  452. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.d.ts +0 -27
  453. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +0 -1
  454. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.d.ts +0 -131
  455. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js.map +0 -1
  456. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.d.ts +0 -100
  457. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js.map +0 -1
  458. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +0 -308
  459. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +0 -1
  460. package/bundle/typescript/src/commands/game/sideQuest/utilities/barrier-combat.d.ts +0 -38
  461. package/bundle/typescript/src/commands/game/sideQuest/utilities/barrier-combat.js.map +0 -1
  462. package/bundle/typescript/src/commands/game/sideQuest/utilities/brand-mark.d.ts +0 -26
  463. package/bundle/typescript/src/commands/game/sideQuest/utilities/brand-mark.js.map +0 -1
  464. package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.d.ts +0 -17
  465. package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js.map +0 -1
  466. package/bundle/typescript/src/commands/game/sideQuest/utilities/canon-lore.d.ts +0 -7
  467. package/bundle/typescript/src/commands/game/sideQuest/utilities/canon-lore.js.map +0 -1
  468. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +0 -341
  469. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +0 -1
  470. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +0 -399
  471. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +0 -1
  472. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +0 -272
  473. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +0 -1
  474. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +0 -212
  475. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +0 -1
  476. package/bundle/typescript/src/commands/game/sideQuest/utilities/comm-style.d.ts +0 -61
  477. package/bundle/typescript/src/commands/game/sideQuest/utilities/comm-style.js.map +0 -1
  478. package/bundle/typescript/src/commands/game/sideQuest/utilities/command-queue.d.ts +0 -19
  479. package/bundle/typescript/src/commands/game/sideQuest/utilities/command-queue.js.map +0 -1
  480. package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.d.ts +0 -102
  481. package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.js.map +0 -1
  482. package/bundle/typescript/src/commands/game/sideQuest/utilities/commit-ref.d.ts +0 -13
  483. package/bundle/typescript/src/commands/game/sideQuest/utilities/commit-ref.js.map +0 -1
  484. package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.d.ts +0 -40
  485. package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.js.map +0 -1
  486. package/bundle/typescript/src/commands/game/sideQuest/utilities/crash-evidence.d.ts +0 -53
  487. package/bundle/typescript/src/commands/game/sideQuest/utilities/crash-evidence.js.map +0 -1
  488. package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.d.ts +0 -26
  489. package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js.map +0 -1
  490. package/bundle/typescript/src/commands/game/sideQuest/utilities/data-work.d.ts +0 -21
  491. package/bundle/typescript/src/commands/game/sideQuest/utilities/data-work.js.map +0 -1
  492. package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.d.ts +0 -75
  493. package/bundle/typescript/src/commands/game/sideQuest/utilities/ddp-lite.js.map +0 -1
  494. package/bundle/typescript/src/commands/game/sideQuest/utilities/detach-args.d.ts +0 -66
  495. package/bundle/typescript/src/commands/game/sideQuest/utilities/detach-args.js.map +0 -1
  496. package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.d.ts +0 -23
  497. package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js.map +0 -1
  498. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +0 -137
  499. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +0 -1
  500. package/bundle/typescript/src/commands/game/sideQuest/utilities/docwagon.d.ts +0 -33
  501. package/bundle/typescript/src/commands/game/sideQuest/utilities/docwagon.js.map +0 -1
  502. package/bundle/typescript/src/commands/game/sideQuest/utilities/earshot.d.ts +0 -76
  503. package/bundle/typescript/src/commands/game/sideQuest/utilities/earshot.js.map +0 -1
  504. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.d.ts +0 -248
  505. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js.map +0 -1
  506. package/bundle/typescript/src/commands/game/sideQuest/utilities/emitter.d.ts +0 -44
  507. package/bundle/typescript/src/commands/game/sideQuest/utilities/emitter.js.map +0 -1
  508. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.d.ts +0 -230
  509. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js.map +0 -1
  510. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.d.ts +0 -124
  511. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +0 -1
  512. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +0 -129
  513. package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +0 -1
  514. package/bundle/typescript/src/commands/game/sideQuest/utilities/generation-capture.d.ts +0 -94
  515. package/bundle/typescript/src/commands/game/sideQuest/utilities/generation-capture.js.map +0 -1
  516. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.d.ts +0 -36
  517. package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js.map +0 -1
  518. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.d.ts +0 -63
  519. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-names.js.map +0 -1
  520. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.d.ts +0 -58
  521. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.js.map +0 -1
  522. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +0 -65
  523. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +0 -1
  524. package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.d.ts +0 -72
  525. package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.js.map +0 -1
  526. package/bundle/typescript/src/commands/game/sideQuest/utilities/handoff.d.ts +0 -42
  527. package/bundle/typescript/src/commands/game/sideQuest/utilities/handoff.js.map +0 -1
  528. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.d.ts +0 -25
  529. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.js.map +0 -1
  530. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.d.ts +0 -29
  531. package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.js.map +0 -1
  532. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.d.ts +0 -8
  533. package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js.map +0 -1
  534. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.d.ts +0 -9
  535. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.js.map +0 -1
  536. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.d.ts +0 -186
  537. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js.map +0 -1
  538. package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.d.ts +0 -62
  539. package/bundle/typescript/src/commands/game/sideQuest/utilities/identity.js.map +0 -1
  540. package/bundle/typescript/src/commands/game/sideQuest/utilities/input-history.d.ts +0 -100
  541. package/bundle/typescript/src/commands/game/sideQuest/utilities/input-history.js.map +0 -1
  542. package/bundle/typescript/src/commands/game/sideQuest/utilities/jackpoint.d.ts +0 -83
  543. package/bundle/typescript/src/commands/game/sideQuest/utilities/jackpoint.js.map +0 -1
  544. package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.d.ts +0 -50
  545. package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.js.map +0 -1
  546. package/bundle/typescript/src/commands/game/sideQuest/utilities/line-editor.d.ts +0 -83
  547. package/bundle/typescript/src/commands/game/sideQuest/utilities/line-editor.js.map +0 -1
  548. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.d.ts +0 -52
  549. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js.map +0 -1
  550. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.d.ts +0 -33
  551. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js.map +0 -1
  552. package/bundle/typescript/src/commands/game/sideQuest/utilities/logo-mark.d.ts +0 -52
  553. package/bundle/typescript/src/commands/game/sideQuest/utilities/logo-mark.js.map +0 -1
  554. package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.d.ts +0 -89
  555. package/bundle/typescript/src/commands/game/sideQuest/utilities/map-view.js.map +0 -1
  556. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.d.ts +0 -60
  557. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js.map +0 -1
  558. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-intrusion.d.ts +0 -121
  559. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-intrusion.js.map +0 -1
  560. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.d.ts +0 -62
  561. package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.js.map +0 -1
  562. package/bundle/typescript/src/commands/game/sideQuest/utilities/meet-location.d.ts +0 -37
  563. package/bundle/typescript/src/commands/game/sideQuest/utilities/meet-location.js.map +0 -1
  564. package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.d.ts +0 -35
  565. package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.js.map +0 -1
  566. package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.d.ts +0 -34
  567. package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js.map +0 -1
  568. package/bundle/typescript/src/commands/game/sideQuest/utilities/owned-drones.d.ts +0 -39
  569. package/bundle/typescript/src/commands/game/sideQuest/utilities/owned-drones.js.map +0 -1
  570. package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.d.ts +0 -76
  571. package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js.map +0 -1
  572. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.d.ts +0 -141
  573. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +0 -1
  574. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +0 -290
  575. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +0 -1
  576. package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.d.ts +0 -50
  577. package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.js.map +0 -1
  578. package/bundle/typescript/src/commands/game/sideQuest/utilities/prefs.d.ts +0 -4
  579. package/bundle/typescript/src/commands/game/sideQuest/utilities/prefs.js.map +0 -1
  580. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.d.ts +0 -93
  581. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js.map +0 -1
  582. package/bundle/typescript/src/commands/game/sideQuest/utilities/presence-gate.d.ts +0 -21
  583. package/bundle/typescript/src/commands/game/sideQuest/utilities/presence-gate.js.map +0 -1
  584. package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.d.ts +0 -55
  585. package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.js.map +0 -1
  586. package/bundle/typescript/src/commands/game/sideQuest/utilities/pursuit.d.ts +0 -16
  587. package/bundle/typescript/src/commands/game/sideQuest/utilities/pursuit.js.map +0 -1
  588. package/bundle/typescript/src/commands/game/sideQuest/utilities/range.d.ts +0 -28
  589. package/bundle/typescript/src/commands/game/sideQuest/utilities/range.js.map +0 -1
  590. package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.d.ts +0 -84
  591. package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.js.map +0 -1
  592. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +0 -305
  593. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +0 -1
  594. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.d.ts +0 -101
  595. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +0 -1
  596. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-context.d.ts +0 -28
  597. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-context.js.map +0 -1
  598. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.d.ts +0 -74
  599. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-legs.js.map +0 -1
  600. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-lock.d.ts +0 -18
  601. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-lock.js.map +0 -1
  602. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-telemetry.d.ts +0 -25
  603. package/bundle/typescript/src/commands/game/sideQuest/utilities/session-telemetry.js.map +0 -1
  604. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.d.ts +0 -451
  605. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +0 -1
  606. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +0 -124
  607. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +0 -1
  608. package/bundle/typescript/src/commands/game/sideQuest/utilities/social.d.ts +0 -28
  609. package/bundle/typescript/src/commands/game/sideQuest/utilities/social.js.map +0 -1
  610. package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.d.ts +0 -6
  611. package/bundle/typescript/src/commands/game/sideQuest/utilities/splash.js.map +0 -1
  612. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +0 -679
  613. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +0 -1
  614. package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.d.ts +0 -17
  615. package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js.map +0 -1
  616. package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.d.ts +0 -61
  617. package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.js.map +0 -1
  618. package/bundle/typescript/src/commands/game/sideQuest/utilities/table-notes.d.ts +0 -30
  619. package/bundle/typescript/src/commands/game/sideQuest/utilities/table-notes.js.map +0 -1
  620. package/bundle/typescript/src/commands/game/sideQuest/utilities/terminal-reset.d.ts +0 -17
  621. package/bundle/typescript/src/commands/game/sideQuest/utilities/terminal-reset.js.map +0 -1
  622. package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.d.ts +0 -106
  623. package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js.map +0 -1
  624. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.d.ts +0 -72
  625. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +0 -1
  626. package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.d.ts +0 -83
  627. package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.js.map +0 -1
  628. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.d.ts +0 -1
  629. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js.map +0 -1
  630. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.d.ts +0 -37
  631. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +0 -1
  632. package/bundle/typescript/src/commands/generate.d.ts +0 -1
  633. package/bundle/typescript/src/commands/generate.js.map +0 -1
  634. package/bundle/typescript/src/commands/get/_index.d.ts +0 -4
  635. package/bundle/typescript/src/commands/get/_index.js.map +0 -1
  636. package/bundle/typescript/src/commands/get/get.command.d.ts +0 -3
  637. package/bundle/typescript/src/commands/get/get.command.js.map +0 -1
  638. package/bundle/typescript/src/commands/get/global.sub.cmd.d.ts +0 -1
  639. package/bundle/typescript/src/commands/get/global.sub.cmd.js.map +0 -1
  640. package/bundle/typescript/src/commands/get/local.sub.cmd.d.ts +0 -1
  641. package/bundle/typescript/src/commands/get/local.sub.cmd.js.map +0 -1
  642. package/bundle/typescript/src/commands/get/whoami.sub.cmd.d.ts +0 -1
  643. package/bundle/typescript/src/commands/get/whoami.sub.cmd.js.map +0 -1
  644. package/bundle/typescript/src/commands/help.d.ts +0 -1
  645. package/bundle/typescript/src/commands/help.js.map +0 -1
  646. package/bundle/typescript/src/commands/install.d.ts +0 -1
  647. package/bundle/typescript/src/commands/install.js.map +0 -1
  648. package/bundle/typescript/src/commands/jsdoc.d.ts +0 -1
  649. package/bundle/typescript/src/commands/jsdoc.js.map +0 -1
  650. package/bundle/typescript/src/commands/lint.d.ts +0 -1
  651. package/bundle/typescript/src/commands/lint.js.map +0 -1
  652. package/bundle/typescript/src/commands/login.d.ts +0 -1
  653. package/bundle/typescript/src/commands/login.js.map +0 -1
  654. package/bundle/typescript/src/commands/logout.d.ts +0 -1
  655. package/bundle/typescript/src/commands/logout.js.map +0 -1
  656. package/bundle/typescript/src/commands/maka.cmd.d.ts +0 -5
  657. package/bundle/typescript/src/commands/maka.cmd.js.map +0 -1
  658. package/bundle/typescript/src/commands/murder.d.ts +0 -1
  659. package/bundle/typescript/src/commands/murder.js.map +0 -1
  660. package/bundle/typescript/src/commands/profile.d.ts +0 -1
  661. package/bundle/typescript/src/commands/profile.js.map +0 -1
  662. package/bundle/typescript/src/commands/proxy.d.ts +0 -1
  663. package/bundle/typescript/src/commands/proxy.js.map +0 -1
  664. package/bundle/typescript/src/commands/register.d.ts +0 -1
  665. package/bundle/typescript/src/commands/register.js.map +0 -1
  666. package/bundle/typescript/src/commands/registry.d.ts +0 -10
  667. package/bundle/typescript/src/commands/registry.js.map +0 -1
  668. package/bundle/typescript/src/commands/remote/_index.d.ts +0 -4
  669. package/bundle/typescript/src/commands/remote/_index.js.map +0 -1
  670. package/bundle/typescript/src/commands/remote/logs.sub.cmd.d.ts +0 -1
  671. package/bundle/typescript/src/commands/remote/logs.sub.cmd.js.map +0 -1
  672. package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.d.ts +0 -1
  673. package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js.map +0 -1
  674. package/bundle/typescript/src/commands/remote/remote.command.d.ts +0 -3
  675. package/bundle/typescript/src/commands/remote/remote.command.js.map +0 -1
  676. package/bundle/typescript/src/commands/remote/ssh.sub.cmd.d.ts +0 -1
  677. package/bundle/typescript/src/commands/remote/ssh.sub.cmd.js.map +0 -1
  678. package/bundle/typescript/src/commands/run/_index.d.ts +0 -2
  679. package/bundle/typescript/src/commands/run/_index.js.map +0 -1
  680. package/bundle/typescript/src/commands/run/docker.sub.cmd.d.ts +0 -1
  681. package/bundle/typescript/src/commands/run/docker.sub.cmd.js.map +0 -1
  682. package/bundle/typescript/src/commands/run/run.command.d.ts +0 -3
  683. package/bundle/typescript/src/commands/run/run.command.js.map +0 -1
  684. package/bundle/typescript/src/commands/set/_index.d.ts +0 -3
  685. package/bundle/typescript/src/commands/set/_index.js.map +0 -1
  686. package/bundle/typescript/src/commands/set/global.sub.cmd.d.ts +0 -1
  687. package/bundle/typescript/src/commands/set/global.sub.cmd.js.map +0 -1
  688. package/bundle/typescript/src/commands/set/local.sub.cmd.d.ts +0 -1
  689. package/bundle/typescript/src/commands/set/local.sub.cmd.js.map +0 -1
  690. package/bundle/typescript/src/commands/set/set.command.d.ts +0 -3
  691. package/bundle/typescript/src/commands/set/set.command.js.map +0 -1
  692. package/bundle/typescript/src/commands/ssl.d.ts +0 -1
  693. package/bundle/typescript/src/commands/ssl.js.map +0 -1
  694. package/bundle/typescript/src/commands/testCmd/_index.d.ts +0 -3
  695. package/bundle/typescript/src/commands/testCmd/_index.js.map +0 -1
  696. package/bundle/typescript/src/commands/testCmd/jest.sub.cmd.d.ts +0 -1
  697. package/bundle/typescript/src/commands/testCmd/jest.sub.cmd.js.map +0 -1
  698. package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.d.ts +0 -1
  699. package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.js.map +0 -1
  700. package/bundle/typescript/src/commands/testCmd/test.command.d.ts +0 -3
  701. package/bundle/typescript/src/commands/testCmd/test.command.js.map +0 -1
  702. package/bundle/typescript/src/commands/undo.d.ts +0 -1
  703. package/bundle/typescript/src/commands/undo.js.map +0 -1
  704. package/bundle/typescript/src/commands/uninstall.d.ts +0 -1
  705. package/bundle/typescript/src/commands/uninstall.js.map +0 -1
  706. package/bundle/typescript/src/commands/update.d.ts +0 -1
  707. package/bundle/typescript/src/commands/update.js.map +0 -1
  708. package/bundle/typescript/src/commands/version/_index.d.ts +0 -3
  709. package/bundle/typescript/src/commands/version/_index.js.map +0 -1
  710. package/bundle/typescript/src/commands/version/list.sub.cmd.d.ts +0 -1
  711. package/bundle/typescript/src/commands/version/list.sub.cmd.js.map +0 -1
  712. package/bundle/typescript/src/commands/version/use.sub.cmd.d.ts +0 -1
  713. package/bundle/typescript/src/commands/version/use.sub.cmd.js.map +0 -1
  714. package/bundle/typescript/src/commands/version/version.d.ts +0 -3
  715. package/bundle/typescript/src/commands/version/version.js.map +0 -1
  716. package/bundle/typescript/src/error.d.ts +0 -18
  717. package/bundle/typescript/src/error.js.map +0 -1
  718. package/bundle/typescript/src/exec.d.ts +0 -2
  719. package/bundle/typescript/src/exec.js.map +0 -1
  720. package/bundle/typescript/src/generator.d.ts +0 -48
  721. package/bundle/typescript/src/generator.js.map +0 -1
  722. package/bundle/typescript/src/generators/_index.d.ts +0 -18
  723. package/bundle/typescript/src/generators/_index.js.map +0 -1
  724. package/bundle/typescript/src/generators/api.d.ts +0 -1
  725. package/bundle/typescript/src/generators/api.js.map +0 -1
  726. package/bundle/typescript/src/generators/aws/_index.d.ts +0 -2
  727. package/bundle/typescript/src/generators/aws/_index.js.map +0 -1
  728. package/bundle/typescript/src/generators/aws/aws.d.ts +0 -3
  729. package/bundle/typescript/src/generators/aws/aws.js.map +0 -1
  730. package/bundle/typescript/src/generators/aws/cloudformation/_index.d.ts +0 -2
  731. package/bundle/typescript/src/generators/aws/cloudformation/_index.js.map +0 -1
  732. package/bundle/typescript/src/generators/aws/cloudformation/cloudformation.d.ts +0 -3
  733. package/bundle/typescript/src/generators/aws/cloudformation/cloudformation.js.map +0 -1
  734. package/bundle/typescript/src/generators/aws/cloudformation/create-ec2-instance.cf.gen.d.ts +0 -3
  735. package/bundle/typescript/src/generators/aws/cloudformation/create-ec2-instance.cf.gen.js.map +0 -1
  736. package/bundle/typescript/src/generators/collection.d.ts +0 -1
  737. package/bundle/typescript/src/generators/collection.js.map +0 -1
  738. package/bundle/typescript/src/generators/component.d.ts +0 -1
  739. package/bundle/typescript/src/generators/component.js.map +0 -1
  740. package/bundle/typescript/src/generators/config.d.ts +0 -1
  741. package/bundle/typescript/src/generators/config.js.map +0 -1
  742. package/bundle/typescript/src/generators/dbc.d.ts +0 -1
  743. package/bundle/typescript/src/generators/dbc.js.map +0 -1
  744. package/bundle/typescript/src/generators/dockerfile.d.ts +0 -1
  745. package/bundle/typescript/src/generators/dockerfile.js.map +0 -1
  746. package/bundle/typescript/src/generators/hook.d.ts +0 -1
  747. package/bundle/typescript/src/generators/hook.js.map +0 -1
  748. package/bundle/typescript/src/generators/kits/_index.d.ts +0 -5
  749. package/bundle/typescript/src/generators/kits/_index.js.map +0 -1
  750. package/bundle/typescript/src/generators/kits/auth/_index.d.ts +0 -4
  751. package/bundle/typescript/src/generators/kits/auth/_index.js.map +0 -1
  752. package/bundle/typescript/src/generators/kits/auth/auth.generator.d.ts +0 -3
  753. package/bundle/typescript/src/generators/kits/auth/auth.generator.js.map +0 -1
  754. package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.d.ts +0 -1
  755. package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js.map +0 -1
  756. package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.d.ts +0 -1
  757. package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js.map +0 -1
  758. package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.d.ts +0 -1
  759. package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.js.map +0 -1
  760. package/bundle/typescript/src/generators/kits/esri/_index.d.ts +0 -2
  761. package/bundle/typescript/src/generators/kits/esri/_index.js.map +0 -1
  762. package/bundle/typescript/src/generators/kits/esri/esri.generator.d.ts +0 -3
  763. package/bundle/typescript/src/generators/kits/esri/esri.generator.js.map +0 -1
  764. package/bundle/typescript/src/generators/kits/esri/map.esri.gen.d.ts +0 -1
  765. package/bundle/typescript/src/generators/kits/esri/map.esri.gen.js.map +0 -1
  766. package/bundle/typescript/src/generators/kits/frames/_index.d.ts +0 -1
  767. package/bundle/typescript/src/generators/kits/frames/_index.js.map +0 -1
  768. package/bundle/typescript/src/generators/kits/frames/frames.generator.d.ts +0 -3
  769. package/bundle/typescript/src/generators/kits/frames/frames.generator.js.map +0 -1
  770. package/bundle/typescript/src/generators/kits/kit.d.ts +0 -3
  771. package/bundle/typescript/src/generators/kits/kit.js.map +0 -1
  772. package/bundle/typescript/src/generators/kits/mui/_index.d.ts +0 -4
  773. package/bundle/typescript/src/generators/kits/mui/_index.js.map +0 -1
  774. package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.d.ts +0 -2
  775. package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.js.map +0 -1
  776. package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.d.ts +0 -2
  777. package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js.map +0 -1
  778. package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.d.ts +0 -1
  779. package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.js.map +0 -1
  780. package/bundle/typescript/src/generators/kits/mui/mui.generator.d.ts +0 -3
  781. package/bundle/typescript/src/generators/kits/mui/mui.generator.js.map +0 -1
  782. package/bundle/typescript/src/generators/layout.d.ts +0 -1
  783. package/bundle/typescript/src/generators/layout.js.map +0 -1
  784. package/bundle/typescript/src/generators/maka.gen.d.ts +0 -5
  785. package/bundle/typescript/src/generators/maka.gen.js.map +0 -1
  786. package/bundle/typescript/src/generators/methods.d.ts +0 -1
  787. package/bundle/typescript/src/generators/methods.js.map +0 -1
  788. package/bundle/typescript/src/generators/package.d.ts +0 -1
  789. package/bundle/typescript/src/generators/package.js.map +0 -1
  790. package/bundle/typescript/src/generators/page.d.ts +0 -1
  791. package/bundle/typescript/src/generators/page.js.map +0 -1
  792. package/bundle/typescript/src/generators/publish.d.ts +0 -1
  793. package/bundle/typescript/src/generators/publish.js.map +0 -1
  794. package/bundle/typescript/src/generators/route.d.ts +0 -1
  795. package/bundle/typescript/src/generators/route.js.map +0 -1
  796. package/bundle/typescript/src/generators/services/_index.d.ts +0 -4
  797. package/bundle/typescript/src/generators/services/_index.js.map +0 -1
  798. package/bundle/typescript/src/generators/services/logger.d.ts +0 -1
  799. package/bundle/typescript/src/generators/services/logger.js.map +0 -1
  800. package/bundle/typescript/src/generators/services/openssl.d.ts +0 -1
  801. package/bundle/typescript/src/generators/services/openssl.js.map +0 -1
  802. package/bundle/typescript/src/generators/services/service.d.ts +0 -3
  803. package/bundle/typescript/src/generators/services/service.js.map +0 -1
  804. package/bundle/typescript/src/generators/services/translation.d.ts +0 -1
  805. package/bundle/typescript/src/generators/services/translation.js.map +0 -1
  806. package/bundle/typescript/src/maka.d.ts +0 -1
  807. package/bundle/typescript/src/maka.js.map +0 -1
  808. package/bundle/typescript/src/tool.d.ts +0 -98
  809. package/bundle/typescript/src/tool.js.map +0 -1
  810. package/bundle/typescript/src/tools/actions/actions.class.d.ts +0 -29
  811. package/bundle/typescript/src/tools/actions/actions.class.js.map +0 -1
  812. package/bundle/typescript/src/tools/ai/ai.class.d.ts +0 -173
  813. package/bundle/typescript/src/tools/ai/ai.class.js.map +0 -1
  814. package/bundle/typescript/src/tools/aws/aws.class.d.ts +0 -51
  815. package/bundle/typescript/src/tools/aws/aws.class.js.map +0 -1
  816. package/bundle/typescript/src/tools/aws/aws.interfaces.d.ts +0 -364
  817. package/bundle/typescript/src/tools/aws/aws.interfaces.js.map +0 -1
  818. package/bundle/typescript/src/tools/browser/open-browser.d.ts +0 -7
  819. package/bundle/typescript/src/tools/browser/open-browser.js.map +0 -1
  820. package/bundle/typescript/src/tools/cfg/cfg.class.d.ts +0 -42
  821. package/bundle/typescript/src/tools/cfg/cfg.class.js.map +0 -1
  822. package/bundle/typescript/src/tools/docker/docker.class.d.ts +0 -10
  823. package/bundle/typescript/src/tools/docker/docker.class.js.map +0 -1
  824. package/bundle/typescript/src/tools/docker/docker.interfaces.d.ts +0 -18
  825. package/bundle/typescript/src/tools/docker/docker.interfaces.js.map +0 -1
  826. package/bundle/typescript/src/tools/dotenvx/dotenvx.class.d.ts +0 -24
  827. package/bundle/typescript/src/tools/dotenvx/dotenvx.class.js.map +0 -1
  828. package/bundle/typescript/src/tools/fsi/fsi.class.d.ts +0 -129
  829. package/bundle/typescript/src/tools/fsi/fsi.class.js.map +0 -1
  830. package/bundle/typescript/src/tools/fsi/fsi.interfaces.d.ts +0 -194
  831. package/bundle/typescript/src/tools/fsi/fsi.interfaces.js.map +0 -1
  832. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.d.ts +0 -59
  833. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js.map +0 -1
  834. package/bundle/typescript/src/tools/https/connection-error.d.ts +0 -79
  835. package/bundle/typescript/src/tools/https/connection-error.js.map +0 -1
  836. package/bundle/typescript/src/tools/https/https.class.d.ts +0 -47
  837. package/bundle/typescript/src/tools/https/https.class.js.map +0 -1
  838. package/bundle/typescript/src/tools/https/https.interface.d.ts +0 -58
  839. package/bundle/typescript/src/tools/https/https.interface.js.map +0 -1
  840. package/bundle/typescript/src/tools/https/maka-host.d.ts +0 -43
  841. package/bundle/typescript/src/tools/https/maka-host.js.map +0 -1
  842. package/bundle/typescript/src/tools/log/log.class.d.ts +0 -43
  843. package/bundle/typescript/src/tools/log/log.class.js.map +0 -1
  844. package/bundle/typescript/src/tools/log/log.interfaces.d.ts +0 -7
  845. package/bundle/typescript/src/tools/log/log.interfaces.js.map +0 -1
  846. package/bundle/typescript/src/tools/mpi/mpi.class.d.ts +0 -62
  847. package/bundle/typescript/src/tools/mpi/mpi.class.js.map +0 -1
  848. package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +0 -10
  849. package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +0 -1
  850. package/bundle/typescript/src/tools/mpi/shared-verb.d.ts +0 -20
  851. package/bundle/typescript/src/tools/mpi/shared-verb.js.map +0 -1
  852. package/bundle/typescript/src/tools/options/options.class.d.ts +0 -11
  853. package/bundle/typescript/src/tools/options/options.class.js.map +0 -1
  854. package/bundle/typescript/src/tools/pkg/pkg.class.d.ts +0 -31
  855. package/bundle/typescript/src/tools/pkg/pkg.class.js.map +0 -1
  856. package/bundle/typescript/src/tools/progress/progress.class.d.ts +0 -12
  857. package/bundle/typescript/src/tools/progress/progress.class.js.map +0 -1
  858. package/bundle/typescript/src/tools/scaffold/scaffold.class.d.ts +0 -198
  859. package/bundle/typescript/src/tools/scaffold/scaffold.class.js.map +0 -1
  860. package/bundle/typescript/src/tools/sdk-loader/relocate.d.ts +0 -45
  861. package/bundle/typescript/src/tools/sdk-loader/relocate.js.map +0 -1
  862. package/bundle/typescript/src/tools/sdk-loader/runtime-fetch.d.ts +0 -35
  863. package/bundle/typescript/src/tools/sdk-loader/runtime-fetch.js.map +0 -1
  864. package/bundle/typescript/src/tools/sdk-loader/sdk-loader.class.d.ts +0 -33
  865. package/bundle/typescript/src/tools/sdk-loader/sdk-loader.class.js.map +0 -1
  866. package/bundle/typescript/src/tools/self-spawn/self-spawn.d.ts +0 -10
  867. package/bundle/typescript/src/tools/self-spawn/self-spawn.js.map +0 -1
  868. package/bundle/typescript/src/tools/self-update/binary-install.d.ts +0 -215
  869. package/bundle/typescript/src/tools/self-update/binary-install.js.map +0 -1
  870. package/bundle/typescript/src/tools/self-update/self-update.d.ts +0 -76
  871. package/bundle/typescript/src/tools/self-update/self-update.js.map +0 -1
  872. package/bundle/typescript/src/tools/self-update/update-maka.d.ts +0 -18
  873. package/bundle/typescript/src/tools/self-update/update-maka.js.map +0 -1
  874. package/bundle/typescript/src/tools/spawn-async/spawn-async.class.d.ts +0 -4
  875. package/bundle/typescript/src/tools/spawn-async/spawn-async.class.js.map +0 -1
  876. package/bundle/typescript/src/tools/spawn-async/spawn-async.interfaces.d.ts +0 -6
  877. package/bundle/typescript/src/tools/spawn-async/spawn-async.interfaces.js.map +0 -1
  878. package/bundle/typescript/src/tools/ssh/ssh.class.d.ts +0 -11
  879. package/bundle/typescript/src/tools/ssh/ssh.class.js.map +0 -1
  880. package/bundle/typescript/src/tools/ssh/ssh.interfaces.d.ts +0 -21
  881. package/bundle/typescript/src/tools/ssh/ssh.interfaces.js.map +0 -1
  882. package/bundle/typescript/src/tools/ssl/ssl.class.d.ts +0 -25
  883. package/bundle/typescript/src/tools/ssl/ssl.class.js.map +0 -1
  884. package/bundle/typescript/src/tools/ssl/ssl.interfaces.d.ts +0 -0
  885. package/bundle/typescript/src/tools/ssl/ssl.interfaces.js.map +0 -1
  886. package/bundle/typescript/src/tools/version/cli-version.d.ts +0 -10
  887. package/bundle/typescript/src/tools/version/cli-version.js.map +0 -1
@@ -1,1883 +0,0 @@
1
- import { PlayerEquipment } from '../types/player-equipment.js';
2
- import type { WeaponSkill } from '../utilities/catalog-data.js';
3
- import type { Grid } from '../utilities/grids.js';
4
- import type { Host } from './host.js';
5
- import { type Aspect } from '../aspects.js';
6
- import { LifestyleChoices } from '../types/seed/lifestyle-seed.js';
7
- import { Logger } from '../utilities/logger.js';
8
- import { AugBonusKind, IImplantWeapon } from '../augmentations.js';
9
- import { Room } from './room.js';
10
- import { Item } from './item.js';
11
- import { Inventory } from './inventory.js';
12
- import { AbstractPlayer } from '../types/shared/abstracts.js';
13
- /**
14
- * Shadowrun-style combat attributes, deliberately trimmed to the four that
15
- * drive dice pools here: Body (soak + condition monitor size), Agility
16
- * (attack pool), Reaction (defense pool), and a single flat combat skill
17
- * (attack pool). Everything else a real character sheet would carry is out
18
- * of scope until something actually needs it.
19
- */
20
- export type FightStance = 'manual' | 'non-lethal' | 'lethal';
21
- export declare const STANCE_CYCLE: FightStance[];
22
- /** The old names, still accepted from saves and the stance command. */
23
- export declare const STANCE_ALIASES: Record<string, FightStance>;
24
- /**
25
- * THE MATRIX HAS ITS OWN STANCE (mjmcee on uMQAhaAysgaKpWFkn,
26
- * 2026-09-03): "I have a concept ... which leverages the combat stance
27
- * in the meat world (Manual / Non-Lethal / Lethal) which I'd like to
28
- * get into the matrix space. Toggling between default BF (Attack) or
29
- * HotF (Sleaze) as TAB. Normal 'deck config <asdf>' still sets up the
30
- * config."
31
- *
32
- * So Tab is PLANE-AWARE: in the meat it cycles the fight autopilot, on
33
- * the Matrix it flips which of the book's two intrusion actions your
34
- * next hack is. Two values, not three -- there is no "manual" here,
35
- * because a Matrix intrusion is never automated; the stance picks the
36
- * ACTION, it does not decide whether to act.
37
- *
38
- * BRUTE FORCE IS THE DEFAULT, per that directive. It reverses what the
39
- * engine did before (both hack and mark defaulted to Sleaze), and it
40
- * is the honest default for a stance you can see: the loud route is
41
- * the one you should have to notice you are in.
42
- *
43
- * This is the DECK'S POSTURE, not its configuration -- "deck config"
44
- * still assigns the Attack/Sleaze/DP/Firewall array (p.227), and the
45
- * stance decides which of those two attributes your intrusion leans
46
- * on. Both matter: a Sleaze stance on a deck configured for Attack is
47
- * a quiet approach with a low ceiling.
48
- */
49
- export type MatrixStance = 'attack' | 'sleaze';
50
- export declare const MATRIX_STANCE_CYCLE: MatrixStance[];
51
- /** What each stance is CALLED in the book -- printed everywhere the
52
- * engine used to say "loud"/"quiet", so the vocabulary teaches the
53
- * real action names (the whole point of uMQAhaAysgaKpWFkn). */
54
- export declare const MATRIX_STANCE_ACTION: Record<MatrixStance, string>;
55
- /** The words a player may type, including the engine's older ones. */
56
- export declare const MATRIX_STANCE_ALIASES: Record<string, MatrixStance>;
57
- export declare function normalizeMatrixStance(v: string | undefined): MatrixStance;
58
- export declare function normalizeStance(v: string | undefined): FightStance;
59
- export type Plane = 'meat' | 'matrix' | 'astral' | 'drone';
60
- /** Meat and a jumped-in drone share the physical world. */
61
- export declare function isPhysicalPlane(plane: Plane): boolean;
62
- /**
63
- * ARE THESE TWO STANDING ON THE SAME SIDE OF A HOST'S WALL?
64
- *
65
- * The companion to fileReach, and it exists for the same reason: the
66
- * boundary was being asked about in more than one place and the copies
67
- * disagreed. fileReach settled it for FILES; nothing settled it for
68
- * ICONS, so `look` honoured insideHost while every verb that picks a
69
- * target read the room's raw actor list and saw straight through the
70
- * wall. A technomancer standing inside a host was told "Empty
71
- * architecture -- turning geometry and nothing in it worth the trip" by
72
- * one surface and offered those same two IC as spike targets by the
73
- * next.
74
- *
75
- * CANON MAKES THE PANEL BINDING, not the target list. Inside a host you
76
- * see and interact with the icons inside it and not the ones outside,
77
- * and from the grid the inside is unreachable (p.246) -- and threading
78
- * adds its own half of the same rule: "You can only use complex forms
79
- * on icons you've spotted" (p.251). An icon the room refuses to name is
80
- * an icon nobody has spotted, so targeting it was never legal.
81
- *
82
- * BOTH IN THE SAME ROOM IS THE PRECONDITION, and every caller has it --
83
- * these are room-scoped target lists. Given that, comparing insideHost
84
- * directly is the whole rule: both undefined means both are out on the
85
- * open grid, both equal to the room means both are inside its
86
- * architecture. There is deliberately no third state.
87
- *
88
- * MEAT AND ASTRAL ACTORS PASS TRIVIALLY, which is correct and not an
89
- * oversight: insideHost is persona state, so a body in the room has
90
- * none. The plane filters the callers already apply are what keep those
91
- * actors out of a Matrix target list; this function answers one question
92
- * and is not a second plane check.
93
- */
94
- /**
95
- * A persona's place in the Matrix (SR5 p.239, p.246): out on a grid, or
96
- * inside a host it entered from one -- and never on a street. See
97
- * Player.matrixPosition.
98
- */
99
- export type MatrixPosition = {
100
- kind: 'grid';
101
- grid?: Grid;
102
- } | {
103
- kind: 'host';
104
- host: Host;
105
- from?: Grid;
106
- };
107
- export declare function sameHostSide(actor: Player, other: Player): boolean;
108
- export type SimMode = 'cold' | 'hot';
109
- /**
110
- * The SR5e-condensed active skill list. Every pool that used to lean on
111
- * the single generic `combatSkill` attribute now draws the SPECIFIC
112
- * skill (firearms for guns, blades for melee weapons, unarmed for fists
113
- * and subdual, hacking for cybercombat). Non-combat skills back their own
114
- * mechanics as they land -- perception drives search rolls today; the
115
- * rest are rated on the sheet and waiting for their verbs.
116
- */
117
- /**
118
- * The active-skill sheet, rounded out from the SR5e canon list (p.90-91,
119
- * p.151) at this engine's granularity. CONDENSATIONS (canon -> here):
120
- * Automatics/Longarms/Pistols/Heavy Weapons/Archery -> firearms;
121
- * Gymnastics/Running/Swimming -> athletics; the Pilot family ->
122
- * piloting; Summoning/Binding/Banishing -> conjuring; Impersonation
123
- * rides disguise (its voice half). Every skill listed HOOKS a live
124
- * system -- see the site named beside it. Canon skills acknowledged but
125
- * NOT yet carried (no system to hook): Throwing Weapons, Exotic
126
- * Weapons, Diving, Free-Fall, Survival, Tracking, Navigation, Animal
127
- * Handling, Demolitions, Forgery, Chemistry, Armorer, the Mechanic
128
- * family, Biotechnology, Cybertechnology, Arcana, Alchemy, Artificing,
129
- * Ritual Spellcasting, Disenchanting, and Knowledge/Language skills.
130
- * (The Resonance trio -- Compiling, Decompiling, Registering -- WAS on
131
- * this not-yet-carried list; all three are now real and hooked, one per
132
- * command file beside them.)
133
- */
134
- export { SKILL_NAMES } from '../skills.js';
135
- export type { SkillName } from '../skills.js';
136
- import type { SkillName } from '../skills.js';
137
- /**
138
- * Skills that fall back to the legacy `combatSkill` attribute when no
139
- * explicit rating is given -- this is what keeps every existing NPC seed
140
- * (which only carries combatSkill) rolling exactly the pools it always
141
- * has, ice included (its Matrix strikes ride `hacking`).
142
- */
143
- export declare const COMBAT_SKILL_FALLBACK: ReadonlySet<SkillName>;
144
- /**
145
- * WHICH GUN ROLLS WHICH SKILL (SR5 p.130, p.132).
146
- *
147
- * Canon splits firearms three ways by the weapon in your hands, and the
148
- * split is by CLASS, not by calibre:
149
- * Pistols -- handheld pistols: hold-out, light, heavy, tasers,
150
- * revolvers, semi-automatics (p.132)
151
- * Automatics -- larger than a handheld pistol, smaller than a rifle:
152
- * machine pistols, SMGs, assault rifles and automatic
153
- * carbines (p.130; machine pistols are Automatics
154
- * specifically, p.427)
155
- * Longarms -- extended barrels braced against the shoulder:
156
- * sporting and sniper rifles, and shotguns (p.132)
157
- * Archery -- bows and crossbows (p.130 specializations, p.424)
158
- *
159
- * READ OFF THE SAME HAYSTACK Item.accuracy already classifies by, and
160
- * deliberately so: two independent weapon classifiers would eventually
161
- * disagree about what an Ares Alpha is, and the one that disagreed
162
- * silently would be this one. The patterns are kept in the same order
163
- * and the same words.
164
- *
165
- * ORDER MATTERS. 'machine pistol' must be tested for Automatics BEFORE
166
- * the Pistols branch, or the word 'pistol' claims it -- and canon puts
167
- * it in Automatics. Likewise a 'sniper rifle' must reach Longarms
168
- * before 'rifle' reaches Automatics.
169
- *
170
- * UNRECOGNISED IRON FALLS TO PISTOLS, which is the commonest class and
171
- * the one Item.accuracy also defaults to (heavy pistols). A gun the
172
- * patterns have never seen rolls something rather than nothing.
173
- */
174
- /**
175
- * The three skills a FIREARM can exercise. Archery is not among them:
176
- * it is a Combat Active skill for string-loaded weapons (p.130), and
177
- * the things that key off "is this a gun" -- the smartlink bonus
178
- * (p.433 firearm accessory), a drone's armed mount -- do not apply to a
179
- * crossbow.
180
- */
181
- export declare const FIREARM_SKILLS: SkillName[];
182
- export declare function firearmSkillFor(weapon: {
183
- name: string;
184
- shape?: string;
185
- category?: string;
186
- weaponSkill?: WeaponSkill;
187
- }): SkillName;
188
- export interface ICombatAttributes {
189
- body?: number;
190
- agility?: number;
191
- reaction?: number;
192
- combatSkill?: number;
193
- /**
194
- * Per-skill ratings (1-8; see SkillName). Any skill omitted here
195
- * defaults: combat skills to `combatSkill`, everything else to 0
196
- * (unskilled -- rolled as the linked attribute MINUS ONE where a
197
- * mechanic supports defaulting, e.g. perception on search).
198
- */
199
- skills?: Partial<Record<SkillName, number>>;
200
- /**
201
- * Innate magical talent -- 0 (the default) is mundane, like most of the
202
- * Sixth World. An Awakened actor (magic > 0) knows every spell innately
203
- * and casts from this attribute instead of needing formulas; see the
204
- * magic section below.
205
- */
206
- magic?: number;
207
- /** Melee/unarmed damage and carrying capacity. */
208
- strength?: number;
209
- /** Stun track size and drain resistance. */
210
- willpower?: number;
211
- /** First aid effectiveness; NPC hacking. */
212
- logic?: number;
213
- /** Defense pool (half, rounded down) and future perception checks. */
214
- intuition?: number;
215
- /** Social presence -- listed on the sheet now, mechanics to come. */
216
- charisma?: number;
217
- /** Luck: per-job pool of edge points, burned to push a strike (see edge.ts). */
218
- edge?: number;
219
- /**
220
- * Technomancer talent -- 0 (the default) for everyone else. A resonance
221
- * actor is a LIVING PERSONA: they jack into the Matrix with no deck and
222
- * no commlink (their brain is the hardware), resonance boosts every
223
- * Matrix pool, and ALL Matrix damage lands on their real stun track --
224
- * there's no deck to brick, only a mind to burn.
225
- */
226
- resonance?: number;
227
- /**
228
- * Physical adept: magic channeled into the body instead of spells.
229
- * Counts as Awakened (auras read them, assensing works) but they cast
230
- * NOTHING -- not even from formulas -- and cannot astrally project.
231
- * Instead, half their magic (rounded down) is added to their meat-plane
232
- * attack and defense pools: improved reflexes, killing hands.
233
- */
234
- adept?: boolean;
235
- /**
236
- * ADEPT POWER POINTS BOUGHT WITH CREATION KARMA -- the mystic adept
237
- * (SR5 p.69-70), and the field's presence is what makes one.
238
- *
239
- * A mystic adept is NOT "a Magic rating split between spells and
240
- * powers", which is the common description and is wrong: their Magic
241
- * comes off the priority column exactly as a magician's does and is
242
- * never divided. It sets the spell count AND caps Power Points, which
243
- * are then bought SEPARATELY at 5 karma each.
244
- *
245
- * WHY 5 AND NOT 2, recorded because the book contradicts itself and
246
- * the next reader will find it. Core p.69-70 states 5; the worked
247
- * example on p.71 spends 10 karma for 2 points; and Run Faster's Point
248
- * Buy (p.64-65) independently restates "5 Karma per power point". The
249
- * Final Calculations checklist at core p.102 says 2. Three statements
250
- * across two separately typeset books against one summary line, and no
251
- * errata resolving it in the indexed sources -- so 5, and the outlier
252
- * is noted rather than hidden.
253
- *
254
- * A FULL ADEPT LEAVES THIS UNSET. Their points are free and equal to
255
- * their Magic, which is why effectivePowerPoints below reads `magic`
256
- * for them -- see the note there for why that is not a special case.
257
- */
258
- powerPoints?: number;
259
- /** Aspected magician (SR5 p.69): the one magical group kept -- 'sorcerer'
260
- * or 'conjurer' (aspects.ts). Absent = full magician, adept, or mundane. */
261
- aspect?: string;
262
- /**
263
- * The spells a magician/mystic adept CHOSE at creation (SR5 p.300, up to
264
- * Magic x 2). Keys into the catalog's spell rows. ABSENT means "knows
265
- * every spell", the pre-selection behaviour -- so an existing save with
266
- * no spellbook keeps casting anything, and only a chargen that sends a
267
- * list is narrowed to it. An empty list would mean a magician who chose
268
- * nothing; absent is the grandfather case, and the two are kept distinct.
269
- */
270
- knownSpells?: string[];
271
- /**
272
- * The adept powers CHOSEN at creation (SR5 p.308-310): key -> level, keys
273
- * into the catalog's adept-power rows, total cost within
274
- * effectivePowerPoints. ABSENT means the COMPRESSED model -- Power Points
275
- * grant floor(pp/2) on every meat-plane pool, the pre-selection behaviour
276
- * every existing adept keeps. Present means the powers themselves are the
277
- * effects and the compressed bonus does not apply.
278
- */
279
- adeptPowers?: Record<string, number>;
280
- }
281
- export interface IPlayerConstructorConfig {
282
- playerName: string;
283
- startLocation: Room;
284
- lifestyleChoices?: LifestyleChoices;
285
- combat?: ICombatAttributes;
286
- }
287
- /**
288
- * ONE PAN DEFENCE, ITEMISED (p.240 / p.238).
289
- *
290
- * This exists so the dashboard's LABEL and the dice it labels come out
291
- * of the same call. They did not, and the cost was a caught defect: the
292
- * defence was corrected to the book (Intuition/Willpower + whole
293
- * Firewall) while commands/pan.ts went on calling the result "Logic +
294
- * quality" -- the right number under the name of the code that had been
295
- * deleted. Whoever reads a breakdown off this cannot describe a pool
296
- * this engine does not roll, because there is nowhere left to say it.
297
- */
298
- export interface IPanDefence {
299
- /** 'Intuition' against a sleaze, 'Willpower' against a smash. */
300
- attributeName: 'Intuition' | 'Willpower';
301
- attribute: number;
302
- firewall: number;
303
- /** A hidden PAN must be FOUND first. */
304
- silent: number;
305
- /** Signal Scrub cleans the noise floor. */
306
- scrub: number;
307
- /** Sneak deepens a silent PAN's cover. */
308
- sneak: number;
309
- total: number;
310
- }
311
- export declare class Player extends AbstractPlayer {
312
- readonly _playerName: string;
313
- protected _currentLocation: Room;
314
- protected _inventory: Inventory;
315
- protected _equipment: PlayerEquipment;
316
- protected _maxCarryingWeight: number;
317
- protected _lifestyleChoices: LifestyleChoices;
318
- protected logger: Logger;
319
- private _currency;
320
- activeCallPartner?: Player;
321
- crewChannel?: {
322
- playerName: string;
323
- handle: string;
324
- party?: boolean;
325
- };
326
- runningSilent: boolean;
327
- combatOpponent?: Player;
328
- lastExchangeAt: number;
329
- inExchange: boolean;
330
- private _autoStance;
331
- get autoStance(): FightStance;
332
- set autoStance(v: FightStance);
333
- /** Which of the book's two intrusion actions the next hack uses
334
- * (see MatrixStance). Sheet-visible, like its meat-world twin. */
335
- private _matrixStance;
336
- get matrixStance(): MatrixStance;
337
- set matrixStance(v: MatrixStance);
338
- grappledBy?: string;
339
- grappleThreshold?: number;
340
- grappling?: string;
341
- rallyInitBonus: number;
342
- directedDice: number;
343
- inspiredGuardDice: number;
344
- surrendered: boolean;
345
- /**
346
- * WHERE you took cover -- not whether. TAKE COVER is a Simple Action
347
- * (SR5e p.166) and the +2/+4 it buys (p.190) belongs to the defender
348
- * who spent it, so the game has to remember that it was spent.
349
- *
350
- * Storing the SPOT rather than a boolean makes the state
351
- * self-invalidating: cover is live only while `coverAtSpot` still
352
- * equals where you are (see spots.ts isInCover). Step out from behind
353
- * the crates and the bonus is gone with no cleanup code anywhere to
354
- * forget -- the alternative, a flag plus a clear on every movement
355
- * path, is a second source of truth waiting to disagree with the
356
- * first.
357
- *
358
- * Mid-combat state, never saved.
359
- */
360
- coverAtSpot?: string;
361
- /**
362
- * This actor is deliberately HOLDING THEIR POSITION against passage --
363
- * a doorman, a picket, someone posted to stand there. Distinct from
364
- * merely being present: an unguarding NPC in a doorway steps aside and
365
- * the move narrates it (utilities/spots.ts yieldDoorway), while a
366
- * guarding one holds the way shut (holdsGround).
367
- *
368
- * Player ruling 2026-08-27: "NPCs can be barriers (can't move through
369
- * them)". This is what makes that true, and it is a BOOLEAN rather
370
- * than a direction on purpose -- doorwayOccupants already reads the
371
- * exit cell and its approach cell, so the geometry knows WHICH doorway
372
- * they hold. Storing the direction too would be one fact in two
373
- * places, free to disagree.
374
- *
375
- * Cleared when they stand down -- talked round (commands/bluff.ts),
376
- * or beaten, which `surrendered` already covers. Clearing it opens the
377
- * way for EVERYONE, deliberately: a doorman who has stepped aside has
378
- * stepped aside, and he is not tracking which of four runners
379
- * persuaded him while standing in the same doorway.
380
- */
381
- guarding: boolean;
382
- /**
383
- * THIS ACTOR IS OPPOSITION (JjQdy4A4tzcQdPHno: "none of the NPCs ever
384
- * seem to get hostile").
385
- *
386
- * WHAT WAS ACTUALLY MISSING, after two wrong diagnoses of mine. It is
387
- * not that nothing wakes them: go.ts's arrival calls
388
- * performAction('enters'), which fans out to NPC.see, and `enter` is
389
- * in RESPOND_WORTHY_VERB -- the AI is asked. It is not that they
390
- * cannot fight: the brief lists `attack`, `kill` and `subdue` and
391
- * explains combat at length. And the detection canon asks for is
392
- * already there -- npc.ts runs an opposed Agility + sneaking vs
393
- * Intuition + perception test per witness on a sneaking arrival, and
394
- * a winner is never registered at all.
395
- *
396
- * What was missing is a REASON. OFFERING THE VERB IS NOT THE SAME AS
397
- * GIVING THEM A REASON: an NPC briefed with no opposition to the
398
- * player answers neutrally, because neutral is in character. So this
399
- * flag exists to tell them they have one.
400
- *
401
- * WHAT IT DOES NOT DO, and these are the load-bearing absences:
402
- * - It does NOT attack on sight. It adds a line to the brief; the
403
- * AI still chooses, and challenging, raising an alarm, or calling
404
- * for backup are all better first moves than shooting.
405
- * - It adds NO tick and NO new wake-up. The occasion already
406
- * existed; this rides it.
407
- * - It is never INFERRED. Only a seed that says so, or a scene that
408
- * sets it deliberately, makes someone opposition.
409
- *
410
- * The asymmetry that decides every judgement call here: a guard who
411
- * should have gone hostile and didn't is a missed beat, and a
412
- * bartender who goes hostile is a broken scene. PREFER UNDER-FIRING.
413
- *
414
- * Cleared the same way `guarding` is -- talked round, or beaten.
415
- */
416
- hostile: boolean;
417
- /**
418
- * They have already heard one story from this runner and did not buy
419
- * it. A person remembering a failed con is good fiction (and stops
420
- * bluff being a free retry loop) -- unlike BURNING a barrier, which is
421
- * what the ruling above removed. Other approaches stay open: a mark
422
- * who saw through your patter can still be leaned on or fought.
423
- */
424
- conAttemptedBy: Set<string>;
425
- /**
426
- * POSTURE (player request 2026-08-27: sit and lie down as movement
427
- * commands). Three states, and only two of them are mechanical:
428
- *
429
- * 'standing' -- the default.
430
- * 'sitting' -- a social posture. SR5e gives kneeling and sitting no
431
- * combat modifier of their own, so neither does this:
432
- * it changes the fiction and nothing else. Inventing a
433
- * penalty to make the verb feel weightier would be
434
- * inventing rules.
435
- * 'prone' -- flat, and it is a real combat state. Dropping is a
436
- * FREE action (p.164); getting up is a SIMPLE one and
437
- * costs a Body + Willpower (2) test while wounded
438
- * (p.166). Prone melee attacker -1 (p.187), prone
439
- * defender -2 except against ranged from beyond 5m
440
- * (p.189), and +1 to anyone attacking you (p.187).
441
- *
442
- * Deliberately NOT a second notion of "on the ground": a GRAPPLED
443
- * actor counts as prone for attacks against them (p.195), and that
444
- * is derived where it is used rather than written here, so the two
445
- * can never disagree about who is down.
446
- */
447
- posture: 'standing' | 'sitting' | 'prone';
448
- archetypeName?: string;
449
- gender?: 'male' | 'female';
450
- private _weaponDrawn;
451
- get weaponDrawn(): boolean;
452
- set weaponDrawn(v: boolean);
453
- private _plane;
454
- get plane(): Plane;
455
- set plane(v: Plane);
456
- bodyRoom?: Room;
457
- /** WHERE THE BODY STANDS while jumped into a frame (planes.ts
458
- * enterDrone/leaveDrone, 2026-09-06): the frame paces the room on
459
- * atSpot/atCell like anyone on the floor (utilities/spots.ts
460
- * onTheFloor), so the body's own spot has to be kept aside and put
461
- * back on jump-out. Transient -- never saved; a resume is meat. */
462
- bodySpot?: string;
463
- bodyCell?: {
464
- x: number;
465
- y: number;
466
- z: number;
467
- };
468
- private _simMode?;
469
- get simMode(): SimMode | undefined;
470
- set simMode(v: SimMode | undefined);
471
- /**
472
- * WHO HAS YOUR CONNECTION LINK-LOCKED (p.229), by icon name.
473
- *
474
- * "Another persona or device sends keep-alive signals to your deck that
475
- * force it to cancel any attempt to leave the Matrix." While this is
476
- * non-empty you cannot walk out of the Matrix voluntarily -- only a
477
- * successful Jack Out action (p.240) frees you, and it still costs
478
- * dumpshock.
479
- *
480
- * A SET, not a flag, because canon allows several at once: "if more
481
- * than one persona has you link-locked, you need to beat each of them
482
- * individually." Black IC and Blaster IC can both be on you.
483
- *
484
- * Session state, like the rest of the Matrix layer -- leaveMatrix
485
- * clears it, since a persona that is out is not locked into anything.
486
- */
487
- linkLockedBy: Set<string>;
488
- /**
489
- * THE HOST THIS PERSONA IS INSIDE, if any (SR5 p.246).
490
- *
491
- * "The virtual space inside a host is separate from the outside grid.
492
- * When you're outside of a host, you can't interact directly with
493
- * icons inside it... Once you're inside, you can see and interact with
494
- * icons inside the host, but not outside."
495
- *
496
- * Reported three ways by the same play-tester before this existed
497
- * (hhSW, eJAN, rG8L): the engine had NO inside-vs-outside state, so a
498
- * persona standing on a room's grid patch WAS in its host as far as
499
- * every surface was concerned -- PANs and cameras that live inside the
500
- * host were listed on the open grid, and IC hunted people who had
501
- * never entered anything.
502
- *
503
- * Set by `enter` (Complex Action, one mark, no test -- p.239: "a host
504
- * allows anyone to enter if they've got a mark, and anyone inside can
505
- * exit"), cleared by `exit` and by every route out of the Matrix.
506
- * Session state like hostAlert and linkLockedBy: leaving the Matrix
507
- * ends it, so nothing here is persisted.
508
- */
509
- /**
510
- * WHERE THE PERSONA IS (increment 2 of the Matrix position model): on a
511
- * grid, or inside a host it entered from one. Session-only, like
512
- * bodyRoom. The body stays in currentLocation on every plane -- the
513
- * persona never writes it. The setter fires the live-sheet beat, which
514
- * is the beat the currentLocation setter used to fire on enter/exit.
515
- * `grid` may be unknown (fixtures, and increment 2 itself): unknown is
516
- * not "another grid", so it costs nothing.
517
- */
518
- private _matrixPosition?;
519
- get matrixPosition(): MatrixPosition | undefined;
520
- set matrixPosition(v: MatrixPosition | undefined);
521
- /** The grid the persona rides, when it is on one. */
522
- get currentGrid(): Grid | undefined;
523
- /** The host the persona is inside, when it is inside one. */
524
- get hostInside(): Host | undefined;
525
- /**
526
- * @deprecated compat through increment 4 -- read hostInside / write
527
- * matrixPosition. The room a host stands over, when inside one. The
528
- * setter still builds the position so every old writer keeps working.
529
- */
530
- private _compatInsideRoom?;
531
- get insideHost(): Room | undefined;
532
- set insideHost(room: Room | undefined);
533
- /** The grid last stood on, so an exit built through the old setter returns there. */
534
- private get lastGrid();
535
- /**
536
- * MATRIX ATTRIBUTES BURNED OFF BY IC (p.248): Acid eats Firewall,
537
- * Binder eats Data Processing, Jammer eats Attack, Marker eats Sleaze.
538
- * "The reduction is cumulative and lasts until you reboot the targeted
539
- * device", so this is session state that leaveMatrix clears -- a
540
- * jack-out reboots the deck (p.240).
541
- *
542
- * Applied in matrixAttribute() rather than at the call sites, because
543
- * that method is the ONE place all four attributes are read: the hack
544
- * limits, the PAN defence, the IC defence, and the dumpshock resist
545
- * all funnel through it. A reduction that did not bite there would be
546
- * a number in a record that changed no roll.
547
- */
548
- matrixAttrLoss: Record<'attack' | 'sleaze' | 'dataProcessing' | 'firewall', number>;
549
- astralTicks: number;
550
- activeDeck?: Item;
551
- /** The best working cyberdeck carried (bricked ones don't count). */
552
- getCyberdeck(): Item | undefined;
553
- /** Any deck at all, bricked included -- for status displays and repair. */
554
- getAnyCyberdeck(): Item | undefined;
555
- arOffline: boolean;
556
- private _arMuted;
557
- get arMuted(): boolean;
558
- set arMuted(v: boolean);
559
- panMarksBy: Map<string, number>;
560
- overwatchScore: number;
561
- overwatchLastTick: number;
562
- /**
563
- * The PAN's master device: your slaved gear defends behind its
564
- * firewall (SR slaving, simplified). Best working deck beats the
565
- * equipped commlink; no devices = no PAN (and nothing to hack).
566
- */
567
- /**
568
- * AR EYES (canon p.221/229/235, RAG-checked 2026-08-24): Matrix
569
- * icons -- host markers on the map included -- exist only through a
570
- * persona device's AR overlay or a technomancer's living persona.
571
- * No deck, no commlink, no resonance = the meat map shows no hosts.
572
- * A cracked PAN (arOffline) cuts the overlay the same way -- and so
573
- * does muting it yourself (arMuted): the map's host markers ARE AR, so
574
- * an AR toggle that left them lit would be a lie.
575
- */
576
- hasMatrixEyes(): boolean;
577
- /**
578
- * A DIRECT NEURAL INTERFACE -- what VR needs and AR does not (SR5 core
579
- * p.222-223, RAG-checked 2026-09-01, user canon check: "if you don't
580
- * have a trode or wetware, you can't use a cyberdeck"). The book's
581
- * split is exact: a commlink or deck works from its own screen and AR
582
- * needs only a display route, but hot- or cold-sim VR needs a DNI --
583
- * a datajack, a trode net, or an implanted commlink -- plus a sim
584
- * module (decks carry one). The engine let anyone with a deck jack
585
- * in; this is the gate it was missing. A technomancer's living
586
- * persona IS the interface. The implanted commlink is not modelled
587
- * here (no such aug yet), so it is not claimed.
588
- */
589
- hasDirectNeuralInterface(): boolean;
590
- /** True for the one Electronics item that is a trode net (p.439-440). */
591
- static isTrodeNet(item: Item): boolean;
592
- /**
593
- * WHAT CARRIES THE DIRECT NEURAL INTERFACE, for the equipment panel and
594
- * the jack-in gate: a living persona, an implanted datajack, a trode net
595
- * worn on the head, or one still in the bag (it works from there too --
596
- * the engine has never made the player put it on, and a net in the bag
597
- * was the only place it could live before the head slot existed).
598
- */
599
- dniSource(): {
600
- kind: 'technomancer' | 'datajack' | 'trodes';
601
- worn?: boolean;
602
- item?: Item;
603
- } | null;
604
- /**
605
- * THE PRICE OF SILENCE (canon p.235-236 "Running Silent",
606
- * RAG-checked 2026-08-27): "-2 dice pool modifier to all of your
607
- * Matrix actions" -- the processing your persona burns covering its
608
- * own tracks. Add it at every Matrix-action roll site (hack.ts,
609
- * mark.ts, overwatch.ts); it is a MATRIX-action modifier, so it
610
- * rides whether you are jacked in or reaching from AR, and it never
611
- * touches a meat-plane roll.
612
- *
613
- * This is the counterweight to silence no longer blinding your own
614
- * overlay (utilities/ar.ts arSightUp): without it, running silent
615
- * would buy a hidden icon and +2 PAN defence (getPanDefensePool) for
616
- * nothing but some dropped calls.
617
- */
618
- get matrixActionPenalty(): number;
619
- /**
620
- * THIS PERSONA'S MATRIX ATTRIBUTE (p.226 for a deck's array, p.251
621
- * for a living persona, p.222/p.234 for an ordinary device; p.46-47
622
- * for what a limit is). All RAG-checked 2026-08-28 rather than
623
- * recalled.
624
- *
625
- * ONE NUMBER, TWO ROLES, which is why it is named for the number
626
- * rather than for either job:
627
- * - THE BRACKET on a Matrix action. SR5 writes them as `Hacking +
628
- * Logic [Sleaze]` and p.244 files the whole action list by which
629
- * limit it uses; the bracket caps HITS (see utilities/dice.ts).
630
- * - THE ATTRIBUTE in its own right -- Matrix VR initiative is Data
631
- * Processing + Intuition (p.229-230), where nothing is capped.
632
- *
633
- * It was called `matrixLimit` while the bracket was its only caller.
634
- * Renamed once initiative wanted it, because a name that is accurate
635
- * for its first use and misleading afterwards is a defect: reading
636
- * `matrixLimit('dataProcessing')` in an initiative pool, you would
637
- * reasonably assume something was being capped.
638
- *
639
- * Whole, never halved, in both roles.
640
- *
641
- * A TECHNOMANCER HAS NO DECK AND IS NOT UNLIMITED. Their living
642
- * persona's Matrix attributes come from their Mental attributes
643
- * (p.251): Attack = Charisma, Sleaze = Intuition, Data Processing =
644
- * Logic, Firewall = Willpower. This engine used to give them
645
- * Resonance/2 as dice, which is neither the right attribute nor the
646
- * right kind of thing -- Resonance is their Device Rating, not their
647
- * array.
648
- *
649
- * Returns 0 when the actor has no way to take the action at all (no
650
- * deck, and a commlink has no Attack or Sleaze). Callers gate on the
651
- * gear BEFORE rolling, so a 0 reaching rollPool means a caller
652
- * skipped its gate -- which is why rollPool refuses a zero limit
653
- * loudly rather than honouring it.
654
- */
655
- matrixAttribute(kind: 'attack' | 'sleaze' | 'dataProcessing' | 'firewall'): number;
656
- /**
657
- * REFUSE AN ACTION WHOSE BRACKET HAS BEEN EATEN TO ZERO, or undefined
658
- * when it still has one. Returns the line the player reads.
659
- *
660
- * THIS IS ARITHMETIC, NOT A NEW RULE, and the derivation matters
661
- * because it is the one place someone will later mistake for an
662
- * invention. A bracket is a LIMIT ON HITS -- the rule this codebase
663
- * states more often than any other -- so a limit of 0 permits zero
664
- * hits, and a test that cannot score a hit cannot succeed. Refusing
665
- * before the roll is the honest rendering of a guaranteed failure, not
666
- * a ruling about what "Attack 0" means. Reading [0] as "no limit"
667
- * would invert the bracket rule and hand the reducers' own targets
668
- * back to the player.
669
- *
670
- * Canon is silent on acting at 0 -- RAG-checked; the nearest text is
671
- * Marker's own at-zero clause and Diffusion's cannot-reduce-below-1,
672
- * which the IC entries plainly override -- so nothing here leans on it.
673
- *
674
- * ONLY FOR A BURNED ATTRIBUTE. An attribute that is 0 because the
675
- * actor has no deck at all is the pre-existing no-gear case, and its
676
- * callers already gate on the gear with their own better message; this
677
- * returns undefined there so those refusals keep saying what they say.
678
- */
679
- burnedAttributeRefusal(kind: 'attack' | 'sleaze' | 'dataProcessing' | 'firewall'): string | undefined;
680
- /** Which IC eats which attribute (p.248), for naming the culprit. */
681
- private static readonly ATTR_EATER;
682
- private static readonly ATTR_NAME;
683
- /** The undamaged array, before any IC reduction. */
684
- /** Set on an IC actor (utilities/ic-actors.ts): "IC uses the Matrix attributes of its host" (p.247). */
685
- icHost?: Host;
686
- /** The IC kind an IC actor was launched as -- the name the host's running list carries. */
687
- icKind?: string;
688
- baseMatrixAttribute(kind: 'attack' | 'sleaze' | 'dataProcessing' | 'firewall'): number;
689
- /**
690
- * THE LIVE LINK -- what makes this runner reachable and lit (p.223,
691
- * RAG-checked 2026-09-01: "a deck can perform all of the functions of
692
- * a commlink"). The worn commlink, or failing that the working deck:
693
- * a deck-only decker IS online, receives calls, and drives AR.
694
- *
695
- * The distinction this deliberately preserves: a POCKETED commlink is
696
- * still not live (the 2026-08-24 ruling -- choosing not to wear the
697
- * wearable is choosing silence), but a deck cannot be worn at all --
698
- * it works from the kit BY the engine's own design, so its kit state
699
- * IS its equipped state. ar.ts used to render the honest display of
700
- * the old mechanics ("AR ON | Link offline"); this fixes the
701
- * MECHANICS, so the display goes back to matching canon.
702
- */
703
- liveLink(): Item | undefined;
704
- getPanMaster(): Item | undefined;
705
- /**
706
- * Defense against a PAN intrusion, itemised: the book's attribute plus
707
- * the master's whole Firewall, +2 while running silent (a hidden PAN
708
- * must be FOUND first). Loaded software helps: Signal Scrub cleans the
709
- * noise floor (+1), Sneak deepens a silent PAN's cover (+2).
710
- *
711
- * THE DEFENCE IS THE BOOK'S, and it was wrong three ways at once
712
- * (RAG-checked 2026-08-28, re-verified 2026-08-29). p.240: Hack on the
713
- * Fly is opposed by INTUITION + Firewall. p.238: Brute Force by
714
- * WILLPOWER + Firewall. Neither is Logic, and Firewall is a whole
715
- * attribute on this side -- it was being halved by the same
716
- * limits-to-pool substitution the attack side used, which is the one
717
- * place that convention was costing the DEFENDER dice rather than the
718
- * attacker.
719
- *
720
- * No limit, ever, and that is canon rather than an omission: limits
721
- * apply only to a pool built from a skill plus an attribute (p.46-47),
722
- * and there is no skill in Intuition + Firewall -- the melee example at
723
- * p.174 spells it out, "no limit because there is no skill involved".
724
- *
725
- * TWO POOLS, NOT ONE, which is the part a player has to be able to
726
- * see: since the attribute depends on what the intruder is DOING, a
727
- * character's quiet defence and their brute-force defence are
728
- * different numbers. commands/pan.ts shows both for that reason.
729
- */
730
- panDefence(against?: 'sleaze' | 'attack'): IPanDefence;
731
- /** The dice for a PAN defence. See panDefence() for what is in them. */
732
- getPanDefensePool(against?: 'sleaze' | 'attack'): number;
733
- /**
734
- * A PAN defence written out the way the dashboard says it -- built
735
- * from the breakdown, never from a remembered formula, so a change to
736
- * the pool cannot leave this describing the old one.
737
- *
738
- * Bonuses are named only when they are actually being paid, so the
739
- * line doubles as the answer to "what is silence buying me".
740
- */
741
- panDefenceLine(against?: 'sleaze' | 'attack'): string;
742
- /**
743
- * The limit on THIS actor's current attack, or undefined when the
744
- * engine models none.
745
- *
746
- * MEAT: the weapon's ACCURACY (p.46-47, p.168 -- "each weapon has an
747
- * Accuracy rating that serves as its limit for attacks made with that
748
- * weapon"), falling back to the PHYSICAL limit when there is no
749
- * weapon behind the swing. That fallback is canon, not a default:
750
- * p.168 puts unarmed attacks, and items used as part of an unarmed
751
- * attack, on the inherent Physical limit. A gear limit REPLACES the
752
- * inherent one whether it is higher or lower (p.46-47), so this is a
753
- * substitution rather than a min/max.
754
- *
755
- * THE CALLER SUPPLIES THE WEAPON, and that is load-bearing. The
756
- * exchange has already decided what is really in the attacker's hands
757
- * -- drawn or holstered, and a dry or smartlink-locked firearm has
758
- * already degraded to bare fists (combat-exchange weaponProfile). If
759
- * this method re-derived the weapon it would answer a different
760
- * question than the one the dice were rolled for, and the Accuracy
761
- * shown would belong to a gun that is not being fired.
762
- *
763
- * MATRIX: the deck array bracket, unchanged (p.238/p.240).
764
- *
765
- * ASTRAL: still undefined, and that is a KNOWN gap, not an oversight.
766
- * p.315 brackets astral attacks [Astral], and p.278 makes the Astral
767
- * limit the greater of the Mental and Social limits -- two inherent
768
- * limits this engine does not calculate. Reported rather than
769
- * invented; it is its own item.
770
- */
771
- getAttackLimit(weapon?: Item | null): number | undefined;
772
- /**
773
- * WHO OWNS THE RECEIVING END (p.433, p.444).
774
- *
775
- * A smartgun system feeds data to the shooter's SMARTLINK, and canon
776
- * names two ways to have one, which are worth different amounts:
777
- *
778
- * 'augmentation' -- a smartlink you paid ESSENCE for (cybereyes with
779
- * the Smartlink vision enhancement, or the implant)
780
- * 'gear' -- glasses, goggles or contacts carrying the
781
- * Smartlink vision enhancement (p.444)
782
- *
783
- * Undefined means no receiving end, and then a smartgun is just a gun:
784
- * the data feed has nowhere to go.
785
- *
786
- * THE GEAR TIER IS DUCK-TYPED, the same school as Item.accuracy and
787
- * rangedBase, so a generated pair of smartlink goggles works without
788
- * anyone having added it to a table first. The augmentation tier is
789
- * asked of the augmentation system, which already owns that fact.
790
- *
791
- * The gear tier must be WORN -- see the note in the body. The
792
- * augmentation tier is not, and that asymmetry is canon rather than an
793
- * oversight: an implanted smartlink is part of you (p.453), so there
794
- * is nothing to put on and nothing to leave in a bag.
795
- *
796
- * ONE RESOLVER, TWO CONSUMERS: the +2 Accuracy (smartlinkAccuracyBonus)
797
- * and the wireless +1 DICE for gear (getAttackPool) both ask this
798
- * question and must never answer it differently. That is why the worn
799
- * check lives here and not at either call site.
800
- */
801
- smartlinkTier(): 'augmentation' | 'gear' | undefined;
802
- /**
803
- * +2 Accuracy when a smartgun meets a smartlink (p.433), and 0 in
804
- * every other pairing.
805
- *
806
- * EVERY FIREARM IN THIS ENGINE IS A SMARTGUN -- that is not an
807
- * assumption made here, it is the model pan.ts already ships: a
808
- * carried firearm is listed as "(smartgun)" on your PAN and can be
809
- * cracked, which is only true of a smartgun system. So the weapon side
810
- * of the pairing is `isFirearm`, and a bow or a blade never qualifies.
811
- *
812
- * WIRELESS DOES NOT GATE THIS ONE. p.433 keeps the +2 Accuracy when
813
- * wireless is off -- a cable to your glasses still carries the feed --
814
- * and spends wireless on a DICE POOL bonus instead. Keeping those two
815
- * apart is the same discipline as the Matrix brackets: a limit is
816
- * never a die, and a die is never a limit.
817
- */
818
- smartlinkAccuracyBonus(weapon?: Item | null): number;
819
- /**
820
- * A LASER SIGHT's +1 Accuracy (p.432), built in or fitted -- and never
821
- * cumulative with a smartlink: getAttackLimit takes the larger of the two.
822
- */
823
- laserSightBonus(weapon?: Item | null): number;
824
- get matrixTaken(): number;
825
- get maxMatrixBoxes(): number;
826
- /** Routes Matrix combat damage into the jacked-in deck's hardware track. */
827
- takeMatrixDamage(boxes: number): number;
828
- get matrixCrashed(): boolean;
829
- /** The deck track, same rendering as conditionSummary(). */
830
- matrixSummary(): string;
831
- /**
832
- * Cross-plane perception, the single rule everything filters through:
833
- * same plane sees same plane; the astral perceives the meat world
834
- * (shifted, not gone -- auras and movement, dimly); meat and Matrix see
835
- * nothing beyond their own plane. Used by see/hear guards, targeting,
836
- * and room listings.
837
- */
838
- canPerceive(other: Player): boolean;
839
- /** Whether these two can trade physical blows (see attack.ts targeting). */
840
- sharesCombatPlane(other: Player): boolean;
841
- waitingForLull: boolean;
842
- deathClaimed: boolean;
843
- body: number;
844
- agility: number;
845
- reaction: number;
846
- combatSkill: number;
847
- magic: number;
848
- strength: number;
849
- willpower: number;
850
- logic: number;
851
- intuition: number;
852
- charisma: number;
853
- edge: number;
854
- resonance: number;
855
- adept: boolean;
856
- /** Bought adept powers (mystic adept). See ICombatAttributes.powerPoints. */
857
- powerPoints: number;
858
- /** Chosen spellbook (magician/mystic adept). See ICombatAttributes.knownSpells.
859
- * UNDEFINED = knows every spell (grandfathered); a list = knows only those. */
860
- knownSpells?: string[];
861
- /** Aspected magician's one group (SR5 p.69) -- see aspects.ts. */
862
- aspect?: Aspect;
863
- /** Chosen adept powers, key -> level. See ICombatAttributes.adeptPowers.
864
- * UNDEFINED = the compressed floor(pp/2) model (grandfathered). */
865
- adeptPowers?: Record<string, number>;
866
- edgeRemaining: number;
867
- edgeBoostArmed: boolean;
868
- private _damageTaken;
869
- private _stunTaken;
870
- constructor(config: IPlayerConstructorConfig);
871
- /** Everyone is born whole. */
872
- static readonly ESSENCE_MAX = 6;
873
- essence: number;
874
- baseMagic: number;
875
- baseResonance: number;
876
- /** Installed 'ware, by catalog key (kind 'augmentation'). */
877
- augmentations: Set<string>;
878
- /**
879
- * What GRADE each installed piece was cut at (see WARE_GRADES,
880
- * p.451). Purely a record: grade changes what the surgery costs in
881
- * essence and nuyen, never what the 'ware does, so augBonus never
882
- * consults this. Absent = standard, which is what every pre-grade
883
- * save and every archetype's starting chrome is.
884
- */
885
- augGrades: Map<string, string>;
886
- hasAug(key: string): boolean;
887
- /**
888
- * THE WEAPON BUILT INTO YOUR HANDS (core p.458, xHarA3TNgxZXtZwgp).
889
- * Canon routes these through Unarmed Combat and the Physical limit,
890
- * so they REPLACE the bare-fists profile rather than sitting in a
891
- * hand slot -- see getWeaponProfile and utilities/combat-exchange.ts,
892
- * the two places that compute a punch.
893
- *
894
- * A drawn weapon always wins: chrome in the palm does not stop you
895
- * shooting. Mutually exclusive by row (excludes), so at most one is
896
- * ever installed and the find is the answer rather than a contest.
897
- */
898
- implantWeapon(): IImplantWeapon | undefined;
899
- /**
900
- * Jolts left in a shock hand. Ten per hand in the book, recharging
901
- * one per ten seconds while plugged in -- there is no wall clock here
902
- * for a hand to be plugged into, so the trickle is compressed to a
903
- * refill on rest (commands/rest.ts). Session state: a fresh install
904
- * arrives charged.
905
- */
906
- implantCharges: number;
907
- /** Spends one jolt. Returns what is left. */
908
- spendImplantCharge(): number;
909
- /** Back to full -- a rest, or the moment the chrome goes in. */
910
- refillImplantCharges(): void;
911
- /** Full essence points lost, rounded up -- the toll Magic/Resonance pay. */
912
- get essenceBurn(): number;
913
- /**
914
- * Burns the essence and records the 'ware. No gating here -- the clinic
915
- * (commands/install.ts) owns the refusals (essence floor, conflicts,
916
- * payment); archetype starting chrome installs through this too.
917
- */
918
- installAug(aug: {
919
- key: string;
920
- essence: number;
921
- grade?: string;
922
- }): void;
923
- /**
924
- * Which SOURCE an effect came from. The single accessor `bonus()`
925
- * sums them all; the older per-source getters each sum their own,
926
- * which is what lets the call sites migrate one at a time instead of
927
- * in one unreviewable commit.
928
- */
929
- /** Every effect applying right now, with its source and its scale. */
930
- private applyingEffects;
931
- /**
932
- * Sums one kind of effect. `lanes` narrows to particular sources --
933
- * omitted means EVERY source, which is what the unified `bonus()`
934
- * wants; the legacy getters each pass their own single lane so that
935
- * a call site still adding two of them by hand cannot double.
936
- */
937
- /**
938
- * The spells being sustained, and what each scales by.
939
- *
940
- * READS THE STATE cast.ts ALREADY KEEPS rather than a second map:
941
- * the armor spell stores its hits, and the other two are booleans
942
- * whose rows carry a flat value, so 1 is the right multiplier for
943
- * them. Adding a parallel store would be two places to forget to
944
- * update, which is the shape this whole pass has been removing.
945
- */
946
- private sustainedMagnitudes;
947
- private sumEffects;
948
- /**
949
- * Dice the GEAR LANE adds, and nothing else.
950
- *
951
- * A LANE READER, NOT A POOL. Every pool in the game reads `bonus()`
952
- * now; this survives as the way to ask what one source contributes,
953
- * which is what the behaviour fixture interrogates and what a "where
954
- * did that die come from" answer would need. It has no production
955
- * caller of its own, and that is the correct state for it rather than
956
- * a sign it should go: deleting it would delete the fixture's ability
957
- * to see the lanes apart, which is the only thing that can catch one
958
- * lane being counted twice.
959
- */
960
- gearBonus(kind: string, opts?: {
961
- only?: string;
962
- }): number;
963
- /** What the gear adds to a LIMIT (a Shopsoft's +1 Social on a haggle). */
964
- gearLimit(kind: 'physical' | 'mental' | 'social' | 'accuracy', opts?: {
965
- only?: string;
966
- }): number;
967
- /**
968
- * EVERY die the character has for this pool or skill, from every
969
- * source -- gear, chrome, qualities, adept powers, metamagics, a
970
- * metatype trait, a sustained spell.
971
- *
972
- * `only` names a narrowing an effect may carry ('haggle', 'silent',
973
- * 'matrix-search'). `skill` lets a combat pool pick up dice that were
974
- * declared against the SKILL being rolled rather than the pool --
975
- * a smartlink says `firearms`, and the attack pool has to see it.
976
- *
977
- * The sources that have not yet moved onto the shared shape are added
978
- * explicitly below, each named, so that migrating one is a matter of
979
- * deleting its line here rather than hunting for what it fed.
980
- */
981
- bonus(kind: string, opts?: {
982
- only?: string;
983
- skill?: string;
984
- }): number;
985
- /**
986
- * What a source adds to the initiative SCORE -- the number you roll
987
- * against -- as opposed to `bonus('initiative')`, which is the DICE.
988
- *
989
- * The `initiative` effect arm has existed since the gear pass and
990
- * was read by nothing at all until the Increase Reflexes spell came
991
- * onto the lane (2026-09-04). Two different quantities sharing the
992
- * word "initiative" is exactly why the arm is separate.
993
- */
994
- initiativeBonus(of: 'score' | 'dice'): number;
995
- /** Every point on a LIMIT, from every source. */
996
- limitBonus(kind: 'physical' | 'mental' | 'social' | 'accuracy', opts?: {
997
- only?: string;
998
- }): number;
999
- /**
1000
- * How much further this character may raise one skill or attribute
1001
- * than anyone else -- Aptitude's chosen skill (p.72), Exceptional
1002
- * Attribute's chosen attribute (p.73-74).
1003
- *
1004
- * The book states absolute numbers against ITS ceilings (a skill at 7
1005
- * rather than 6 at creation, 13 rather than 12 after). This engine
1006
- * caps lower than the book does, so what carries across is the DELTA
1007
- * -- one step further than anyone else gets -- applied to whatever
1008
- * ceiling the engine is enforcing. Writing the book's 13 over a house
1009
- * cap of 7 would not be more faithful, only a bigger number in the
1010
- * wrong system.
1011
- *
1012
- * A `chosen` ceiling resolves through the holder's own pick, so a
1013
- * quality bought but never answered lifts nothing at all.
1014
- */
1015
- capBonus(of: 'skill' | 'attribute', name: string): number;
1016
- /**
1017
-
1018
-
1019
- /** A capability the character has, from any source, by key. */
1020
- can(key: string): boolean;
1021
- /**
1022
- * THE CHROME THAT ACTUALLY COUNTS: everything installed, minus the
1023
- * wired-reflex tiers a higher tier supersedes.
1024
- *
1025
- * Wired Reflexes I, II and III do not stack -- the best one wins (a
1026
- * synaptic booster is bioware and rides on top of whichever that is).
1027
- * That is a relationship BETWEEN rows, so no row can declare it and it
1028
- * has to live in code; it lives HERE, in the one place the resolver
1029
- * reads, rather than inside a getter, where only that getter would
1030
- * have been right and every other reader would have double-counted.
1031
- *
1032
- * The synaptic-vs-wired legality conflict remains the clinic's job.
1033
- */
1034
- private chromeThatCounts;
1035
- /**
1036
- * The chrome lane, by pool. A LANE READER, like gearBonus above.
1037
- *
1038
- * Every pool now reads `bonus()`, with exactly two deliberate
1039
- * exceptions, both in smartlinkTier and both commented there: that
1040
- * method asks which TIER of smartlink you have, implant or clip-on,
1041
- * and only the chrome lane can answer it.
1042
- */
1043
- augBonus(kind: AugBonusKind): number;
1044
- /** Installed qualities, by catalog key (kind 'quality'). */
1045
- qualities: Set<string>;
1046
- /**
1047
- * IS THIS SKILL OR ATTRIBUTE FORBIDDEN OUTRIGHT to this character?
1048
- *
1049
- * Reads the same lane every other rule reads, so a second quality
1050
- * (or a piece of chrome, or a metatype trait) that bars something
1051
- * needs no new reader. A `chosen` forbid resolves through the
1052
- * holder's pick, and where the pick names a skill GROUP the bar
1053
- * falls on every member -- which is what Incompetent actually is
1054
- * (p.81: "all skills in the skill group").
1055
- */
1056
- isForbidden(of: 'skill' | 'attribute', name: string): boolean;
1057
- /**
1058
- * Incompetent (p.81) names ONE skill group, and this is the only place
1059
- * that knows how to ask which. It was three separate reads of
1060
- * `hasQuality(`incompetent-${skill}`)` -- the slug convention -- and a
1061
- * fourth that counted slugs by prefix for notoriety. The quality is
1062
- * now 'incompetent' with a pick, and a legacy slug resolves to the
1063
- * same thing on load (qualities.ts LEGACY_CHOICE_KEYS), so this
1064
- * answers the same for an old save and a new one.
1065
- */
1066
- isIncompetentAt(skill: string): boolean;
1067
- hasQuality(key: string): boolean;
1068
- /**
1069
- * Records a quality and applies its one-time creation effect. Lucky is
1070
- * the only quality that edits an attribute (RAW raises the Edge ceiling;
1071
- * with no attribute point-buy here, the point lands directly).
1072
- */
1073
- /**
1074
- * WHAT THE HOLDER PICKED, per ROW that demands a pick (ICatalogChoice):
1075
- * slug -> the skill or attribute named.
1076
- *
1077
- * KEYED BY SLUG, NOT BY QUALITY (mjmcee, 2026-09-04). A Hardwire is an
1078
- * augmentation that gives +2 to a chosen skill and asks exactly the
1079
- * question Aptitude asks; a map that only qualities could reach would
1080
- * mean a second map for chrome and a third for spells. One map, one
1081
- * picker, one payload field.
1082
- */
1083
- picks: Map<string, string>;
1084
- /**
1085
- * The former name for `picks`, back when only qualities could ask.
1086
- * Kept as the SAME Map -- not a copy -- so a save written or read
1087
- * through the old name still lands in one place.
1088
- */
1089
- get qualityChoices(): Map<string, string>;
1090
- /** Rating per rated quality (qualities.ts maxRating); absent = 1. */
1091
- qualityRatings: Map<string, number>;
1092
- /** The rating held, 0 when the quality is not held; a flat quality reads 1. */
1093
- qualityRating(key: string): number;
1094
- addQuality(rawKey: string, rating?: number): void;
1095
- /**
1096
- * A quality that MOVES AN ATTRIBUTE does it once, here, at install.
1097
- *
1098
- * Unlike a dice effect -- which qualityBonus re-reads on every roll
1099
- * -- an attribute is a stored number, so it is edited rather than
1100
- * summed. Lucky (p.76) is the long-standing case: RAW it raises the
1101
- * Edge CEILING, and with no attribute point-buy here the point lands
1102
- * directly. It used to be an `if (key === 'lucky')` in addQuality;
1103
- * it is data now, which is what let Ugly and Doesn't Care (Cutting
1104
- * Aces p.152-153) arrive as data too instead of as a second `if`.
1105
- *
1106
- * The floor is 1: no quality reduces an attribute below the minimum
1107
- * a metahuman can have, and Ugly and Doesn't Care says so in as many
1108
- * words ("minimum 1").
1109
- */
1110
- private applyQualityAttributes;
1111
- /**
1112
- * The single tap every pool reads qualities through (cf. augBonus).
1113
- *
1114
- * DATA, NOT A SWITCH (2026-09-04). Every number below used to be a
1115
- * `case` here; each one now lives on its own quality in qualities.ts
1116
- * as an `effects` entry, in the same vocabulary gear and chrome
1117
- * already speak. A quality that adds dice therefore needs no edit to
1118
- * this method -- which is the property that matters, because the
1119
- * cost of the old shape was that the catalog could only ever print a
1120
- * quality's PROSE while its actual numbers lived somewhere a reader
1121
- * could not reach.
1122
- *
1123
- * `perception` and `social` mirror the augBonus kinds of the same
1124
- * names and are read at the same call sites, so a quality and a piece
1125
- * of chrome that do the same thing are added the same way.
1126
- *
1127
- * `sleaze` and `attack` are the two Matrix ACTIONS this engine names
1128
- * out loud -- hack.ts logs them as "Hack on the Fly (sleaze)" (p.240)
1129
- * and "Brute Force (attack)" (p.238), and mark.ts states that placing
1130
- * a mark IS one of those two. They exist because Codeslinger and
1131
- * Codeblock (p.72 / p.80) modify ONE chosen Matrix action rather than
1132
- * Matrix work in general, so a `hacking`-wide bonus would be a
1133
- * different quality wearing the name. In the DATA they are spelled
1134
- * `matrix-attack` / `matrix-sleaze`: EffectPool already spends the
1135
- * bare word `attack` on the COMBAT attack pool, and a quality that
1136
- * fired in a firefight because it shared a word with a Matrix action
1137
- * would be a bug nobody would look for.
1138
- */
1139
- qualityBonus(kind: 'sneak' | 'athletics' | 'matrix' | 'hacking' | 'piloting' | 'soak' | 'healing' | 'perception' | 'social' | 'sleaze' | 'attack' | 'leadership' | 'escape-artist' | 'biofeedback'): number;
1140
- /**
1141
- * Dice the QUALITIES add to one pool or skill. Deliberately its own
1142
- * summation rather than a source inside applyingEffects(): the pools
1143
- * are read as `augBonus(k) + qualityBonus(k)` at call sites that do
1144
- * NOT also add gearBonus(k), and folding qualities into the shared
1145
- * effect walk would have made every site that DOES add gearBonus
1146
- * count a quality twice, silently, in a number nobody prints.
1147
- */
1148
- /**
1149
- * How much further this character may raise one skill or attribute
1150
- * than anyone else -- Aptitude's chosen skill (p.72), Exceptional
1151
- * Attribute's chosen attribute (p.73-74).
1152
- *
1153
- * The book states absolute numbers against ITS ceilings (a skill at
1154
- * 7 rather than 6 at creation, 13 rather than 12 after). This engine
1155
- * caps lower than the book does, so what carries across is the DELTA
1156
- * -- one step further than anyone else gets -- applied to whatever
1157
- * ceiling the engine is enforcing. Writing the book's 13 over a house
1158
- * cap of 7 would not be more faithful, it would just be a bigger
1159
- * number in the wrong system.
1160
- */
1161
- qualityCap(of: 'skill' | 'attribute', name: string): number;
1162
- private sumQualityEffects;
1163
- private _firstImpressionUsed;
1164
- /** Spends the first impression: +2 for the social roll happening NOW. */
1165
- consumeFirstImpression(): number;
1166
- /** SINner tax (p.84-85): the cut every payout loses to having a file. */
1167
- get sinTaxRate(): number;
1168
- paralysisFreeze: boolean;
1169
- initiationGrade: number;
1170
- /** Metamagics (casters/adepts) and echoes (technomancers), by key. */
1171
- metamagics: Set<string>;
1172
- hasMetamagic(key: string): boolean;
1173
- /** Total karma EARNED in play -- spending it doesn't touch this. */
1174
- careerKarma: number;
1175
- private _notorietyReasons;
1176
- /** Records an incident once; false means this exact stain already stands. */
1177
- addNotoriety(reason: string): boolean;
1178
- get notorietyReasons(): readonly string[];
1179
- private _publicAwarenessReasons;
1180
- /**
1181
- * Records a Public Awareness incident once; false means this exact one
1182
- * already stands.
1183
- *
1184
- * A SEPARATE TRACK FROM NOTORIETY, BECAUSE CANON SEPARATES THEM. p.368
1185
- * lists what raises Public Awareness -- "leaving significant physical
1186
- * evidence", "being seen by many eyewitnesses", "fighting with law
1187
- * enforcement or some other High Threat Response team" -- and none of
1188
- * those are on the notoriety list, which is about how you treat the
1189
- * people you work with (betraying a Johnson, failing to honour a debt,
1190
- * excessive damage and fatalities).
1191
- *
1192
- * Routing a noisy run through addNotoriety would have been one line
1193
- * cheaper and would have stained the wrong record: notoriety is what
1194
- * the shadows think of your PROFESSIONALISM, and it eats street cred
1195
- * in socialRep. Being noticed by the public is not unprofessional.
1196
- *
1197
- * ADDITIVE TO THE DERIVED FLOOR, not a replacement. The engine already
1198
- * derived awareness from cred + notoriety, which models "a big name is
1199
- * a known face"; earned points sit on top rather than replacing it, so
1200
- * nothing that read publicAwareness before reads lower now.
1201
- */
1202
- addPublicAwareness(reason: string): boolean;
1203
- get publicAwarenessReasons(): readonly string[];
1204
- get streetCred(): number;
1205
- /** The p.368 quality list, restricted to the qualities this game ships. */
1206
- get qualityNotoriety(): number;
1207
- get notoriety(): number;
1208
- /**
1209
- * p.368: how well the media, the authorities and the public at large
1210
- * know your face. The derived floor (a big name is a known face) plus
1211
- * the incidents that actually put you on a feed -- see
1212
- * addPublicAwareness for why those are their own track.
1213
- */
1214
- get publicAwareness(): number;
1215
- /**
1216
- * The dice a NAME is worth in shadow-side social work (haggle,
1217
- * persuade): cred minus the stories that undercut it. RAW makes cred a
1218
- * social LIMIT bonus; with no limit system here, net-rep dice carry
1219
- * the same idea -- and notoriety eating cred keeps it self-balancing.
1220
- */
1221
- get socialRep(): number;
1222
- /** Explicit per-skill ratings; anything absent resolves via skillRating(). */
1223
- skills: Partial<Record<SkillName, number>>;
1224
- karma: number;
1225
- /**
1226
- * The effective rating for a skill: explicit rating if set; otherwise
1227
- * combat skills fall back to the legacy `combatSkill` attribute (which
1228
- * keeps every skill-less NPC seed rolling its historical pools), and
1229
- * everything else is 0 (unskilled).
1230
- */
1231
- skillRating(name: SkillName): number;
1232
- /**
1233
- * Which combat skill the current armament exercises: firearms for a
1234
- * drawn gun, blades for a drawn melee weapon, unarmed for empty hands
1235
- * (or anything holstered -- see weaponDrawn).
1236
- */
1237
- activeCombatSkill(): SkillName;
1238
- private initializeEquipment;
1239
- get name(): string;
1240
- /**
1241
- * Fires AFTER a room change has fully landed (spot cleared, rooms
1242
- * told, condition beat noted). Game hooks it to write the "move" save
1243
- * beat, so where you stand in the hub is what a resume restores.
1244
- * Distinct from onConditionChanged, which is the live-sheet lane and
1245
- * is gated off for anonymous/bench runners -- a save is not.
1246
- */
1247
- onRoomChanged?: (room: Room) => void;
1248
- get currentLocation(): Room;
1249
- set currentLocation(room: Room);
1250
- private _atSpot?;
1251
- get atSpot(): string | undefined;
1252
- set atSpot(v: string | undefined);
1253
- /**
1254
- * WHICH PAPER YOU CARRY (player request 2026-08-25, twice: "I should
1255
- * be able to see which sin I have active, and be able set it"). The
1256
- * name of the Fake SIN item you present at counters and checkpoints.
1257
- *
1258
- * undefined = let the house pick, which is the old behaviour and
1259
- * still the sane default: bestFakeSin() takes your highest rating.
1260
- * Setting it matters because rating is not the only axis -- a burned
1261
- * fake is gone, but a fake that has been READ at a venue is
1262
- * remembered there, so a runner may want to spend the cheap paper on
1263
- * a soft counter and keep the good one clean. See utilities/sin.ts.
1264
- */
1265
- activeSin?: string;
1266
- /**
1267
- * STEPPING (player request 2026-08-25, "move south 2"): the exact
1268
- * grid cell this actor stands in, when they have stepped somewhere
1269
- * that is not a named place. Normally undefined -- utilities/spots.ts
1270
- * derives a seat from `atSpot` instead, and that remains the rule for
1271
- * everyone who simply walked to the bar.
1272
- *
1273
- * This is the ONE place an actor owns coordinates, and it is a
1274
- * deliberate, narrow exception to the rule that `atSpot` is the whole
1275
- * of an actor's position: tactical stepping has destinations no spot
1276
- * name can express. `atSpot` still rides alongside it and still gates
1277
- * every interaction (it is set to whatever place the new cell is
1278
- * adjacent to, else the open floor), so talk/trade/melee/cover are
1279
- * unchanged. Cleared with `atSpot` on any room change, and by any
1280
- * "move to <spot>", which re-seats normally.
1281
- *
1282
- * NOT persisted: like the grid itself, it is transient geometry -- a
1283
- * reload puts you back on your spot's own seat.
1284
- *
1285
- * Accessor for the live dot map (2026-09-01) -- a cell step reports.
1286
- * Same-reference writes are the common no-op; a NEW object with equal
1287
- * coordinates still fires, which is harmless (one coalesced beat).
1288
- */
1289
- private _atCell?;
1290
- get atCell(): {
1291
- x: number;
1292
- y: number;
1293
- z: number;
1294
- } | undefined;
1295
- set atCell(v: {
1296
- x: number;
1297
- y: number;
1298
- z: number;
1299
- } | undefined);
1300
- /** The spot this actor was SEEDED at -- i.e. the fixture they work
1301
- * (a bartender's bar, a shopkeeper's counter). Seating puts them on
1302
- * the service side of it while everyone else stands in front (see
1303
- * utilities/spots.ts seatingIn). Set once by scene-factory; never
1304
- * changes when they move, because a bartender who steps away is
1305
- * still the bartender. */
1306
- homeSpot?: string;
1307
- /**
1308
- * HOW FAR UP A CLIMB THIS ACTOR HAS BANKED, and toward what.
1309
- *
1310
- * SR5 p.134 climbs a wall over SUCCESSIVE tests -- each one's hits buy
1311
- * metres and you keep them. This engine used to demand the whole
1312
- * height in a single roll, which made a one-storey climb need six
1313
- * hits at once: measured at 4% for the best climber in the game and
1314
- * 0% for every archetype without the athletics skill.
1315
- *
1316
- * So a climb that falls short now HANGS THERE with its metres kept,
1317
- * and the next attempt continues from them. Cleared on arrival, on a
1318
- * fall, and whenever the actor ends up somewhere else -- banked
1319
- * progress belongs to one wall, and carrying it to another would let
1320
- * a player bank a metre here and cash it in across the room.
1321
- */
1322
- climbProgress?: {
1323
- target: string;
1324
- meters: number;
1325
- };
1326
- get inventory(): Inventory;
1327
- get equipment(): PlayerEquipment;
1328
- set equipment(newEquipment: PlayerEquipment);
1329
- private _carryCapOverrideKg?;
1330
- get maxCarryingWeight(): number;
1331
- set maxCarryingWeight(weight: number);
1332
- get currentWeight(): number;
1333
- addInventory(item: Item): void;
1334
- /** Where papers live (p.443): the commlink, else the deck -- the PAN's master. */
1335
- paperDevice(): Item | undefined;
1336
- /** Every device that can hold papers, commlinks first. */
1337
- paperDevices(): Item[];
1338
- /** Every paper on every device. */
1339
- papers(): Item[];
1340
- /** Files a paper on a device; a license links to the presented fake SIN (utilities/sin.ts resolves "presented"). */
1341
- filePaper(device: Item, paper: Item): void;
1342
- /** Burns a fake SIN: gone from its device, and every license linked to it goes with it (p.443). Returns the licenses lost. */
1343
- burnPaper(sin: Item): Item[];
1344
- /** Every paper in the pack files onto the carried device; returns how many moved. */
1345
- sweepPapersOntoDevice(): number;
1346
- /** The commlinks on this runner: worn on the head, or in the pack. */
1347
- commlinks(): Item[];
1348
- /** Where a data soft lives (p.441-442): the deck if there is one, else a commlink. */
1349
- softDevice(): Item | undefined;
1350
- /** A soft in the storage of any device on you -- a chip in the bag is not installed. */
1351
- hasSoft(key: string): boolean;
1352
- /**
1353
- * THE SOCIAL LIMIT (SR5 p.100-101): [(Charisma x 2) + Willpower + Essence]
1354
- * / 3, rounded up, with Essence rounded up first (p.95, p.100 -- the
1355
- * rounding rule is cited; the table row itself the RAG did not return,
1356
- * see rag-table-rows-missing). A Shopsoft adds one when buying or
1357
- * selling what it covers (p.442) -- see commands/haggle.ts.
1358
- */
1359
- get socialLimit(): number;
1360
- /** Every program chip in the pack installs into the carried deck; returns how many chips were consumed. */
1361
- sweepProgramChipsIntoDeck(): number;
1362
- removeInventory(item: Item): boolean;
1363
- equip(item: Item): string;
1364
- /** The word a player would use for a slot -- never the key ("body armor", not "torso.armorVest"). */
1365
- private static readonly SLOT_WORDS;
1366
- static slotWord(group: keyof PlayerEquipment, slot: string): string;
1367
- /** True for the hand slots that hold a wielded weapon. */
1368
- static isWeaponSlot(group: keyof PlayerEquipment, slot: string): boolean;
1369
- /**
1370
- * WHERE A THING ACTUALLY IS RIGHT NOW, which for a weapon is not a
1371
- * property of the slot (user report, 2026-09-03: "when looking at
1372
- * equipment, and I have a Katana Holstered, I should not see Right
1373
- * hand Katana (weapon hand) -- it's not in hand, it's in holster").
1374
- *
1375
- * SLOT_WORDS is static, so it can only ever say where a weapon lives
1376
- * when drawn. The weapon slot is really two places -- the hand and the
1377
- * holster -- and `weaponDrawn` is which one. Everything else in the
1378
- * game already knew: the HUD prints "Holstered:", equip prints "You
1379
- * slide it into your holster", and the equipment screen's own top line
1380
- * prints HOLSTERED. Only the worn listing underneath still read the
1381
- * static word, so one screen contradicted itself.
1382
- *
1383
- * Instance method, not static, precisely because the answer depends on
1384
- * the actor rather than the slot.
1385
- */
1386
- wornSlotWord(group: keyof PlayerEquipment, slot: string): string;
1387
- unequip(input: string): string;
1388
- /**
1389
- * The slot an ITEM wears in: the category decides (determineEquipmentSlot)
1390
- * except where the name has to -- a trode net is Electronics like a
1391
- * flashlight, and the flashlight has no slot. Kit devices (a deck, a
1392
- * drone, uninstalled 'ware) answer null: they are carried, not worn.
1393
- */
1394
- slotForItem(item: Item): {
1395
- group: keyof PlayerEquipment;
1396
- slot: string;
1397
- } | null;
1398
- /** Everything in the bag that has a slot and is not in it -- armor left in the pack (a real save: Armor Clothing carried, nothing worn). */
1399
- wearablesInBag(): Item[];
1400
- determineEquipmentSlot(input: string): {
1401
- group: keyof PlayerEquipment;
1402
- slot: string;
1403
- } | null;
1404
- canEquip(item: Item): boolean;
1405
- private unequipBySlot;
1406
- hear(actor: Player, message: string, opts?: {
1407
- viaLink?: boolean;
1408
- broadcast?: boolean;
1409
- }): void | Promise<void>;
1410
- see(actor: Player, verb: string, details?: string): void | Promise<void>;
1411
- performAction(verb: string, details?: string): void;
1412
- readonly _onSeenAction: ({ actor, verb, details }: {
1413
- actor: Player;
1414
- verb: string;
1415
- details?: string;
1416
- }) => void;
1417
- readonly visitedRooms: Set<string>;
1418
- enterRoom(room: Room): void;
1419
- leaveRoom(): void;
1420
- private static readonly ARMOR_CATEGORIES;
1421
- get maxConditionBoxes(): number;
1422
- get damageTaken(): number;
1423
- get maxStunBoxes(): number;
1424
- get stunTaken(): number;
1425
- /**
1426
- * SR5 wound modifier: -1 die on every pool per 3 full boxes of damage,
1427
- * and the two tracks STACK -- being shot and drained both make you worse
1428
- * at everything, including not getting shot.
1429
- */
1430
- get woundModifier(): number;
1431
- /** Dead: the physical track is full. */
1432
- isDown(): boolean;
1433
- /** Out cold: the stun track is full (but not necessarily dead). */
1434
- isUnconscious(): boolean;
1435
- /** Out of the fight either way -- the gate every action should check. */
1436
- isIncapacitated(): boolean;
1437
- /**
1438
- * FIRST AID, once per set of wounds (SR5 p.205). Set by
1439
- * utilities/first-aid.ts; cleared below the moment fresh damage lands,
1440
- * because new damage IS a new set of wounds -- that clearing is the
1441
- * whole definition of "set of wounds" in an engine with no clock to
1442
- * measure p.205's one-hour window with.
1443
- */
1444
- firstAidGiven: boolean;
1445
- /**
1446
- * "First Aid may not be applied if the character has been magically
1447
- * healed" (p.205). Set by cast.ts's heal, cleared with the above.
1448
- */
1449
- magicallyHealed: boolean;
1450
- /** Applies damage boxes; returns the number actually taken. */
1451
- /**
1452
- * THE LIVE-SHEET HOOK (2026-09-01): Game sets this on the PRIMARY
1453
- * player only -- never NPCs, never crew shells -- and every condition
1454
- * mutator below fires it. The handler is fire-and-forget (the web
1455
- * sheet's realtime overlay); a throw in it must never sour a damage
1456
- * roll, so it is guarded where it is invoked.
1457
- */
1458
- onConditionChanged?: () => void;
1459
- /** PUBLIC so state that lives on ITEMS (a deck's program list) can
1460
- * report through the owning player -- deck.ts load/unload calls it.
1461
- * Guarded here once: reporting never wounds. */
1462
- noteConditionChanged(): void;
1463
- takeDamage(boxes: number): number;
1464
- /** A fresh injury opens a fresh set of wounds: first aid is available
1465
- * again, and whatever the mana did is now last wound's business. */
1466
- private clearWoundSet;
1467
- /**
1468
- * Clears damage boxes; returns how many were actually healed (can be
1469
- * less than asked when the track is nearly clean). Healing also restores
1470
- * wound-modifier dice, since that's derived from damageTaken.
1471
- */
1472
- healDamage(boxes: number): number;
1473
- /**
1474
- * Applies stun boxes; anything past a full stun track OVERFLOWS into the
1475
- * physical track (SR's rule -- enough drain doesn't just knock you out,
1476
- * it starts killing you). Returns what landed where.
1477
- */
1478
- takeStun(boxes: number): {
1479
- stun: number;
1480
- overflow: number;
1481
- };
1482
- /** e.g. "■■■□□□□□□□ (3/10)" */
1483
- conditionSummary(): string;
1484
- /**
1485
- * Clears stun boxes; returns how many were actually recovered. FATIGUE
1486
- * boxes (see lockedFatigue) are untouchable until their need is met --
1487
- * SR5e p.172: fatigue damage cannot be healed while the condition
1488
- * causing it still exists. Eating/sleeping unlocks them (markFed /
1489
- * markSlept), after which they heal like any stun.
1490
- */
1491
- healStun(boxes: number): number;
1492
- /** The stun track, same rendering as conditionSummary(). */
1493
- stunSummary(): string;
1494
- /**
1495
- * The weapon actually in hand (right hand first, then left), or bare
1496
- * fists. Damage value and the attack-pool bonus both come off the item's
1497
- * quality rating -- gear is the whole progression system in this game,
1498
- * so it has to be what combat power flows from.
1499
- */
1500
- getWeaponProfile(): {
1501
- name: string;
1502
- damage: number;
1503
- poolBonus: number;
1504
- armorPen?: number;
1505
- };
1506
- /** The weapon riding in a hand slot, drawn or holstered. */
1507
- getCarriedWeapon(): Item | null;
1508
- /** Draws the carried weapon; returns it, or null if nothing changed
1509
- * (unarmed, or already in hand). */
1510
- drawWeapon(): Item | null;
1511
- /** Stows the drawn weapon; returns it, or null if nothing changed. */
1512
- stowWeapon(): Item | null;
1513
- /** Total soak dice from every equipped armor-category item. */
1514
- getArmorValue(): number;
1515
- /**
1516
- * ARMOR DOES NOT STACK (SR5 p.169, RAG-checked 2026-09-02): "only the
1517
- * highest Armor rating applies; all other pieces only add bulk". A helmet
1518
- * or shield is a "+" accessory and adds to that one piece (p.438). The
1519
- * old sum let a vest under a coat out-armor either -- the same deviation
1520
- * the trim rule below already closed for boots and gloves. `ignored` is
1521
- * what the player is wearing for nothing, so the panel can say so.
1522
- */
1523
- armorBreakdown(): {
1524
- total: number;
1525
- piece: Item | null;
1526
- extras: {
1527
- item: Item;
1528
- bonus: number;
1529
- }[];
1530
- ignored: Item[];
1531
- bonusCapped: number;
1532
- encumbrance: number;
1533
- };
1534
- /** The p.169 encumbrance penalty on Agility and Reaction, as dice off those pools. */
1535
- get encumbrancePenalty(): number;
1536
- getAttackPool(): number;
1537
- /**
1538
- * The subdual pool: bare-hands work regardless of what's in the other
1539
- * fist -- Agility + unarmed (never the drawn weapon's skill or bonus).
1540
- * See subdue.ts.
1541
- */
1542
- getUnarmedAttackPool(): number;
1543
- getDefensePool(): number;
1544
- getSoakPool(): number;
1545
- /**
1546
- * THE INITIATIVE ATTRIBUTE -- what the dice are added TO (p.159,
1547
- * p.474). Per plane: Reaction + Intuition on the meat side (and in
1548
- * AR, which is the same line), Data Processing + Intuition in VR
1549
- * (p.229-230), Intuition x 2 astral (p.314).
1550
- *
1551
- * Plus the AR edge from an equipped, ONLINE commlink -- the tactical
1552
- * overlay feeding you angles. Running silent kills the overlay along
1553
- * with the broadcast, so going dark costs you speed on the draw: the
1554
- * silent tradeoff grows teeth. Wounds slow you like everything else.
1555
- *
1556
- * SPLIT FROM THE DICE COUNT (getInitiativeDice) because SR5 keeps
1557
- * them apart and the engine used to not: everything was piled into
1558
- * one number and rolled as a hit-counting pool. The old name
1559
- * `getInitiativePool` is gone rather than kept as an alias, so the
1560
- * compiler names every caller that still thinks initiative is a pool.
1561
- */
1562
- /** Meters already crossed this Combat Turn. Reset by beginExchange. */
1563
- movedMetersThisTurn: number;
1564
- /** Extra meters bought by a Sprint this turn (see sprintMeters). */
1565
- sprintMetersThisTurn: number;
1566
- /** p.161: Agility x 2. Past this you are RUNNING for the rest of the turn. */
1567
- get walkRateMeters(): number;
1568
- /** p.161: Agility x 4, before any Sprint. */
1569
- get runRateMeters(): number;
1570
- /** Everything you may still cross this Combat Turn. */
1571
- get movementLeftMeters(): number;
1572
- /**
1573
- * RUNNING IS A STATE, NOT A CHOICE (p.161-162): "as soon as a
1574
- * character exceeds their Walk Rate they are considered Running until
1575
- * the end of the Combat Turn", and running costs -2 dice on everything
1576
- * except the Sprint test itself.
1577
- *
1578
- * This is what gives the walk/run split teeth. Without it the two
1579
- * rates would be a distinction with no consequence -- a number the
1580
- * engine tracked and nothing ever read.
1581
- */
1582
- get isRunningThisTurn(): boolean;
1583
- /** -2 while running, else 0 (p.162 Running Modifiers). */
1584
- get runningPenalty(): number;
1585
- /** A fresh Combat Turn: the whole rate comes back, sprint included. */
1586
- resetMovementTurn(): void;
1587
- /**
1588
- * METERS PER SPRINT HIT.
1589
- *
1590
- * Canon splits this by metatype: +2m per hit for humans, elves and
1591
- * orks, +1m for dwarfs and trolls (p.162).
1592
- *
1593
- * THIS ENGINE HAS NO METATYPES -- checked, not assumed: there is no
1594
- * metatype field on Player, none in the player seed, none in chargen,
1595
- * and no dwarf/troll/elf/ork anywhere outside item prose. Every
1596
- * character it can currently represent is a human-baseline one, so the
1597
- * human value is not a shortcut here, it is the only row of that table
1598
- * this engine has a character for.
1599
- *
1600
- * Inventing a metatype to carry one modifier would be the tail wagging
1601
- * the dog: metatype in SR5 sets attribute maxima, racial bonuses and
1602
- * chargen priorities, and adding a half-real one so Sprint could
1603
- * consult it would put a lie in the character model to decorate a
1604
- * movement rule. When metatypes land, this constant is the one line
1605
- * that has to become a lookup.
1606
- */
1607
- static readonly SPRINT_METERS_PER_HIT = 2;
1608
- getInitiativeAttribute(): number;
1609
- /**
1610
- * HOW MANY D6 THE INITIATIVE TEST ROLLS (p.159 chart, p.474).
1611
- *
1612
- * Everyone starts at 1D6. Augmentations add dice -- wired reflexes I
1613
- * and II are literally "+1 / +2 initiative dice" in their own text,
1614
- * which the engine already said and then spent as pool dice instead.
1615
- * The other planes REPLACE the base rather than adding to it:
1616
- *
1617
- * AR / meat 1D6 + augs (p.474)
1618
- * cold-sim 3D6 (p.229-230, p.231 user modes)
1619
- * hot-sim 4D6, +1 echo (p.230; Overclocking p.258)
1620
- * rigging VR 3D6 cold / 4D6 hot (p.266)
1621
- * astral 3D6 (p.159 chart 2D6 base + 1; p.314)
1622
- *
1623
- * Chrome does not follow you out of your body: wired reflexes are
1624
- * body speed, and VR/astral initiative is not the body's. That is why
1625
- * augBonus('initiative') rides only the meat line -- the same place
1626
- * the old code had it.
1627
- *
1628
- * The 5D6 ceiling is enforced in rollInitiativeScore, not here, so
1629
- * every source obeys it without each one remembering to.
1630
- */
1631
- getInitiativeDice(): number;
1632
- /**
1633
- * If an edge boost is armed (see commands/edge.ts), consume it: returns
1634
- * the bonus dice for the strike being rolled right now and disarms.
1635
- * Called by the strike-profile builders, so the boost lands on the next
1636
- * attack/subdue/manabolt this actor initiates.
1637
- */
1638
- consumeEdgeBoost(): number;
1639
- lifestyleEdgeBonus: number;
1640
- ateThisCycle: boolean;
1641
- sleptThisCycle: boolean;
1642
- hungerStreak: number;
1643
- sleepStreak: number;
1644
- private _hungerFatigue;
1645
- private _sleepFatigue;
1646
- /** Stun boxes no recovery can touch until their need is met. */
1647
- get lockedFatigue(): number;
1648
- get hungerFatigue(): number;
1649
- get sleepFatigue(): number;
1650
- /** A real meal: hunger resets and hunger-fatigue unlocks (heals normally now). */
1651
- markFed(): void;
1652
- /** A real sleep (a bed, not a jobsite corner): sleep debt resets and unlocks. */
1653
- markSlept(): void;
1654
- /** Records freshly-taken stun as need-locked fatigue. */
1655
- addLockedFatigue(kind: 'hunger' | 'sleep', boxes: number): void;
1656
- /**
1657
- * New job bookkeeping -- the boost and the once-per-job haggle always
1658
- * reset, but the edge POOL only refills when the runner left fed and
1659
- * slept (SR5e p.56: a fulfilling meal and a good night's sleep).
1660
- */
1661
- refreshEdge(wellRested?: boolean): void;
1662
- /** Base casting dice for a mundane casting from a formula/grimoire. */
1663
- private static readonly BASE_MAGIC_POOL;
1664
- /** Awakened: innate talent, no gear required. Adepts count -- their
1665
- * aura burns like any mage's, and assensing works -- but they channel
1666
- * magic into the body, not spells (see knowsSpell/isCaster). */
1667
- /**
1668
- * HOW MANY POWER POINTS THIS CHARACTER ACTUALLY HAS.
1669
- *
1670
- * A full adept gets points equal to their Magic, free (SR5 p.69), so
1671
- * for them this IS `magic` -- which is why the engine's long-standing
1672
- * `floor(magic / 2)` adept bonus was already, unknowingly, a Power
1673
- * Point formula. A mystic adept BUYS theirs, so for them it is what
1674
- * they bought.
1675
- *
1676
- * Reading the bonus off this one number rather than off the boolean is
1677
- * what let the mystic adept exist without moving a single existing
1678
- * character: for every adept in play, `magic` and `effectivePowerPoints`
1679
- * are the same value, so `floor(pp / 2)` returns exactly what
1680
- * `floor(magic / 2)` returned.
1681
- */
1682
- get effectivePowerPoints(): number;
1683
- /**
1684
- * A MYSTIC ADEPT: full magic, bought powers, and no astral projection.
1685
- *
1686
- * Not a flag of its own, because it does not need one -- buying power
1687
- * points while not being a full adept IS the condition, and a mystic
1688
- * adept who bought none is mechanically a magician, which is also what
1689
- * canon says they would be.
1690
- */
1691
- get isMysticAdept(): boolean;
1692
- /**
1693
- * Magic-as-muscle: half the character's Power Points ride every
1694
- * meat-plane pool (SR5's adept powers, compressed to one number the
1695
- * way this engine compresses every other gear/aug bonus).
1696
- *
1697
- * `withMetamagic` is false for the defence-sense site, which never
1698
- * counted the Power Point metamagic and still should not -- that
1699
- * initiation buys a point of magic-as-muscle for striking, and
1700
- * widening it here would be a silent buff riding in on a refactor.
1701
- */
1702
- adeptPoolBonus(withMetamagic?: boolean): number;
1703
- /**
1704
- * UN-COMPRESSING THE ADEPT (SR5 p.308-310). A character who CHOSE powers
1705
- * (`adeptPowers` present) gets each power's own effect and NOT the
1706
- * compressed floor(pp/2); one who never chose (undefined -- every save
1707
- * from before selection) keeps the compressed bonus exactly. The two
1708
- * models never stack, which is the double-count this split had to avoid.
1709
- *
1710
- * Attack dice come from Improved Ability (Combat); defence dice from
1711
- * Combat Sense. The Power Point metamagic stays what it always was --
1712
- * a point of magic-as-muscle on the STRIKING side only.
1713
- */
1714
- /**
1715
- * The COMPRESSED adept's flat bonus, or zero for anyone who chose
1716
- * powers. Split out of adeptAttackBonus so the combat pools can read
1717
- * `bonus()` for every other source without counting the chosen powers
1718
- * twice -- they arrive through the adept lane, and this is the only
1719
- * part of the adept that never became data.
1720
- */
1721
- private adeptCompressedBonus;
1722
- adeptAttackBonus(): number;
1723
- adeptDefenseBonus(): number;
1724
- /** Mystic Armor (p.309): +1 Armor per level. Zero under the compressed
1725
- * model -- the flat pool bonus never granted armor, so none is owed. */
1726
- adeptArmorBonus(): number;
1727
- /** Improved Reflexes (p.309): the initiative dice it adds. Zero under
1728
- * the compressed model. */
1729
- adeptReactionBonus(): number;
1730
- /** Killing Hands (p.309): unarmed strikes deal PHYSICAL damage. */
1731
- hasKillingHands(): boolean;
1732
- isAwakened(): boolean;
1733
- /** Technomancer: living persona -- the Matrix without a deck (see ICombatAttributes.resonance). */
1734
- /**
1735
- * THE ASPECTED MAGICIAN (SR5 p.69): one magical group, astral
1736
- * perception but no projection. Adepts and mystic adepts cannot be
1737
- * aspected (the factory refuses the combination); a burned-out aspect
1738
- * is simply not Awakened.
1739
- */
1740
- get isAspected(): boolean;
1741
- /** Sorcery -- spellcasting, counterspelling, sustaining: full magicians and Sorcerers. */
1742
- canWorkSorcery(): boolean;
1743
- /** Conjuring -- summoning, binding, banishing: full magicians and Conjurers. */
1744
- canConjure(): boolean;
1745
- /** Astral projection: full magicians only (p.69: aspected "cannot astrally project"). */
1746
- canProject(): boolean;
1747
- isTechnomancer(): boolean;
1748
- private _sustainedArmor;
1749
- get sustainedArmor(): number;
1750
- setSustainedArmor(bonus: number): void;
1751
- /**
1752
- * REST BREAKS CONCENTRATION (yZSAdPAvwMpzjnTaM; SR5 p.251: "You
1753
- * can't sustain Complex Forms when you're unconscious", and a
1754
- * sustained spell asks the same of its caster). Closing your eyes to
1755
- * sleep drops EVERY working this character is personally holding --
1756
- * forms, spells, barriers, all six sustains in one sweep, because
1757
- * fixing rest for the one kind the report named would leave a mage's
1758
- * armor humming through the night the way the thread used to.
1759
- *
1760
- * A form a SPRITE sustains is untouched by design: the sprite took
1761
- * the task precisely so it holds while the technomancer does not
1762
- * (p.256, commands/sustain.ts) -- the sprite doesn't sleep.
1763
- *
1764
- * Returns how many workings dropped, so rest can say so once.
1765
- */
1766
- /**
1767
- * Everything currently HELD, by name -- the live sheet's `sustained`
1768
- * field (contract 2026-09-01). Composed at read time from the named
1769
- * sustain fields, so no sustain site needs a hook: the list rides the
1770
- * next report, which in a fight is seconds away. Empty = actively
1771
- * holding nothing.
1772
- */
1773
- sustainedNames(): string[];
1774
- releaseSustainedWorkings(): number;
1775
- private _sustainedInvisibility;
1776
- get sustainedInvisibility(): boolean;
1777
- set sustainedInvisibility(v: boolean);
1778
- private _sustainedReflexes;
1779
- get sustainedReflexes(): boolean;
1780
- set sustainedReflexes(v: boolean);
1781
- /** The sustained PHYSICAL BARRIER spell (ruling 2026-08-24): seals
1782
- * one exit of one room while held -- go.ts and move refuse passage
1783
- * for everyone (the caster included; walls don't play favorites).
1784
- * Session-only, like every sustain. */
1785
- private _sustainedBarrier?;
1786
- get sustainedBarrier(): {
1787
- roomName: string;
1788
- direction: string;
1789
- force: number;
1790
- } | undefined;
1791
- set sustainedBarrier(v: {
1792
- roomName: string;
1793
- direction: string;
1794
- force: number;
1795
- } | undefined);
1796
- /** The MANA BARRIER twin (canon p.294, RAG-checked): blocks SPIRITS
1797
- * and astral forms at the sealed exit; living mundanes and physical
1798
- * objects pass freely. Same lifecycle as sustainedBarrier. */
1799
- private _sustainedManaBarrier?;
1800
- get sustainedManaBarrier(): {
1801
- roomName: string;
1802
- direction: string;
1803
- force: number;
1804
- } | undefined;
1805
- set sustainedManaBarrier(v: {
1806
- roomName: string;
1807
- direction: string;
1808
- force: number;
1809
- } | undefined);
1810
- /** `hits` is the original threading test's hits -- the number Kill
1811
- * Complex Form (p.250) eats away at. Optional so a form woven by
1812
- * anything that predates that bookkeeping still reads sanely;
1813
- * unravel.ts falls back to the Level. */
1814
- private _sustainedForms;
1815
- /** Sustained complex forms. Writers push/splice it directly (sustain.ts,
1816
- * thread.ts, game.ts), so the array itself is observed: every element
1817
- * write fires the beat, and assigning a fresh array re-wraps it. */
1818
- get sustainedForms(): {
1819
- key: string;
1820
- level: number;
1821
- hits?: number;
1822
- }[];
1823
- set sustainedForms(v: {
1824
- key: string;
1825
- level: number;
1826
- hits?: number;
1827
- }[]);
1828
- private observedForms;
1829
- /** Diagnostics: +2 to matrix action pools while sustained. */
1830
- get formMatrixBonus(): number;
1831
- /** Static Veil: +2 to matrix defense while sustained. */
1832
- get formDefenseBonus(): number;
1833
- /** The Force each sustained spell was cast at (cast.ts records it) -- Focused Concentration reads it. */
1834
- sustainedForces: Map<"armor" | "invisibility" | "reflexes", number>;
1835
- noteSustainedForce(kind: 'armor' | 'invisibility' | 'reflexes', force: number): void;
1836
- /** GREMLINS (p.81): the 1s a glitch needs, one fewer per rating, on external equipment -- the deck. */
1837
- get deckGremlins(): number;
1838
- get sustainingPenalty(): number;
1839
- private _astralPerceiving;
1840
- /** Assensing (SR5 p.312): the live sheet shows it, so a change is a
1841
- * condition beat. Accessor pair -- every writer compiles unchanged. */
1842
- get astralPerceiving(): boolean;
1843
- set astralPerceiving(v: boolean);
1844
- sneaking: boolean;
1845
- riggedDrone?: Item;
1846
- /** Whether the ridden drone carries a weapon mount (its vehicle block, catalog v13; the name for generated frames). */
1847
- get droneArmed(): boolean;
1848
- dumpshockedUntil: number;
1849
- get dumpshocked(): boolean;
1850
- haggledThisJob: boolean;
1851
- liquidCourage: boolean;
1852
- /** Spends the drink: returns its bonus die for the roll happening NOW. */
1853
- consumeLiquidCourage(): number;
1854
- cameFrom?: {
1855
- room: string;
1856
- back: string;
1857
- };
1858
- socialMarks: Set<string>;
1859
- /** The best Focus item on this actor, if any -- by Force (catalog v13: ratingValue). */
1860
- getBestFocus(): Item | undefined;
1861
- getMagicPool(): number;
1862
- /**
1863
- * A magician/mystic adept knows the spells in their CHOSEN spellbook
1864
- * (SR5 p.300, up to Magic x 2, picked at creation). A carried grimoire or
1865
- * the spell's formula teaches beyond it, as it does a mundane.
1866
- *
1867
- * GRANDFATHERED: `knownSpells === undefined` means "knows every spell" --
1868
- * the pre-selection behaviour, so any save from before spell selection,
1869
- * and any character the web never sent a spellbook for, keeps casting
1870
- * anything. Only a chosen list narrows them to it.
1871
- */
1872
- knowsSpell(spellName: string): boolean;
1873
- /**
1874
- * The gate for attempting magic at all (ward bypass included): innate
1875
- * talent, or any magic gear.
1876
- */
1877
- isCaster(): boolean;
1878
- get lifestyleChoices(): LifestyleChoices;
1879
- set lifestyleChoices(choices: LifestyleChoices);
1880
- get currency(): number;
1881
- set currency(amount: number);
1882
- adjustCurrency(delta: number): void;
1883
- }