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