@maka/maka-cli 5.6.0 → 5.8.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 (243) hide show
  1. package/bundle/typescript/package.json +2 -2
  2. package/bundle/typescript/src/commands/_index.d.ts +4 -0
  3. package/bundle/typescript/src/commands/_index.js +4 -0
  4. package/bundle/typescript/src/commands/_index.js.map +1 -1
  5. package/bundle/typescript/src/commands/debug.js +1 -7
  6. package/bundle/typescript/src/commands/debug.js.map +1 -1
  7. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js +33 -32
  8. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js.map +1 -1
  9. package/bundle/typescript/src/commands/env/_index.d.ts +3 -0
  10. package/bundle/typescript/src/commands/env/_index.js +4 -0
  11. package/bundle/typescript/src/commands/env/_index.js.map +1 -0
  12. package/bundle/typescript/src/commands/env/env.command.d.ts +3 -0
  13. package/bundle/typescript/src/commands/env/env.command.js +22 -0
  14. package/bundle/typescript/src/commands/env/env.command.js.map +1 -0
  15. package/bundle/typescript/src/commands/env/get.sub.cmd.d.ts +1 -0
  16. package/bundle/typescript/src/commands/env/get.sub.cmd.js +46 -0
  17. package/bundle/typescript/src/commands/env/get.sub.cmd.js.map +1 -0
  18. package/bundle/typescript/src/commands/env/prompt-for-env.d.ts +10 -0
  19. package/bundle/typescript/src/commands/env/prompt-for-env.js +27 -0
  20. package/bundle/typescript/src/commands/env/prompt-for-env.js.map +1 -0
  21. package/bundle/typescript/src/commands/env/set.sub.cmd.d.ts +1 -0
  22. package/bundle/typescript/src/commands/env/set.sub.cmd.js +59 -0
  23. package/bundle/typescript/src/commands/env/set.sub.cmd.js.map +1 -0
  24. package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +16 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +81 -2
  26. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  27. package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +31 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +125 -0
  29. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.d.ts +17 -7
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +113 -15
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.d.ts +37 -0
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +197 -0
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -0
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js +3 -0
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +21 -11
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +3 -2
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +13 -5
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/brandish.js +7 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/brandish.js.map +1 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.d.ts +16 -0
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +97 -0
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -0
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +21 -10
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +41 -27
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/call.d.ts +6 -7
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +54 -20
  53. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  54. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +35 -1
  55. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +306 -55
  56. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  57. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.d.ts +33 -0
  58. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +137 -0
  59. package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -0
  60. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.d.ts +13 -0
  61. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +37 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -0
  63. package/bundle/typescript/src/commands/game/sideQuest/commands/drink.d.ts +14 -0
  64. package/bundle/typescript/src/commands/game/sideQuest/commands/drink.js +15 -0
  65. package/bundle/typescript/src/commands/game/sideQuest/commands/drink.js.map +1 -0
  66. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js +1 -1
  67. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +1 -1
  68. package/bundle/typescript/src/commands/game/sideQuest/commands/drop.js +7 -0
  69. package/bundle/typescript/src/commands/game/sideQuest/commands/drop.js.map +1 -1
  70. package/bundle/typescript/src/commands/game/sideQuest/commands/eat.d.ts +14 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/commands/eat.js +15 -0
  72. package/bundle/typescript/src/commands/game/sideQuest/commands/eat.js.map +1 -0
  73. package/bundle/typescript/src/commands/game/sideQuest/commands/edge.js +10 -0
  74. package/bundle/typescript/src/commands/game/sideQuest/commands/edge.js.map +1 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +3 -0
  76. package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +101 -1
  78. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
  79. package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +6 -1
  80. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +67 -22
  81. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +15 -7
  83. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  84. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +58 -2
  85. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
  86. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +26 -0
  87. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +125 -0
  88. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -0
  89. package/bundle/typescript/src/commands/game/sideQuest/commands/install.d.ts +21 -0
  90. package/bundle/typescript/src/commands/game/sideQuest/commands/install.js +125 -0
  91. package/bundle/typescript/src/commands/game/sideQuest/commands/install.js.map +1 -0
  92. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.d.ts +16 -0
  93. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js +83 -0
  94. package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js.map +1 -0
  95. package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.d.ts +16 -0
  96. package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js +76 -0
  97. package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js.map +1 -0
  98. package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js +4 -0
  99. package/bundle/typescript/src/commands/game/sideQuest/commands/lock.js.map +1 -1
  100. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +7 -6
  101. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  102. package/bundle/typescript/src/commands/game/sideQuest/commands/order.d.ts +19 -0
  103. package/bundle/typescript/src/commands/game/sideQuest/commands/order.js +151 -0
  104. package/bundle/typescript/src/commands/game/sideQuest/commands/order.js.map +1 -0
  105. package/bundle/typescript/src/commands/game/sideQuest/commands/pay.d.ts +13 -0
  106. package/bundle/typescript/src/commands/game/sideQuest/commands/pay.js +39 -0
  107. package/bundle/typescript/src/commands/game/sideQuest/commands/pay.js.map +1 -0
  108. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +5 -1
  109. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
  110. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +6 -3
  111. package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -1
  112. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.d.ts +21 -0
  113. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +121 -0
  114. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +1 -0
  115. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +60 -12
  116. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  117. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +27 -10
  118. package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
  119. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +15 -4
  120. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  121. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.d.ts +17 -0
  122. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js +125 -0
  123. package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js.map +1 -0
  124. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +36 -3
  125. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  126. package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js +9 -1
  127. package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js.map +1 -1
  128. package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js +27 -4
  129. package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js.map +1 -1
  130. package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js +1 -1
  131. package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js.map +1 -1
  132. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.d.ts +19 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js +112 -0
  134. package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js.map +1 -0
  135. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +8 -0
  136. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  137. package/bundle/typescript/src/commands/game/sideQuest/commands/treat.d.ts +14 -0
  138. package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js +67 -0
  139. package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js.map +1 -0
  140. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +7 -0
  141. package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
  142. package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +29 -0
  143. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +118 -11
  144. package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
  145. package/bundle/typescript/src/commands/game/sideQuest/commands/work.d.ts +15 -0
  146. package/bundle/typescript/src/commands/game/sideQuest/commands/work.js +68 -0
  147. package/bundle/typescript/src/commands/game/sideQuest/commands/work.js.map +1 -0
  148. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +2 -1
  149. package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
  150. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +1 -1
  151. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +132 -5
  152. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  153. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +6 -2
  154. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +10 -6
  155. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
  156. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +196 -0
  157. package/bundle/typescript/src/commands/game/sideQuest/game.js +828 -31
  158. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  159. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +28 -0
  160. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +111 -0
  161. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  162. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +33 -1
  163. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +232 -10
  164. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  165. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +111 -5
  166. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +432 -41
  167. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  168. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +6 -6
  169. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +38 -14
  170. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
  171. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +1 -0
  172. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +6 -0
  173. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  174. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +9 -0
  175. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +48 -8
  176. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  177. package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +44 -0
  178. package/bundle/typescript/src/commands/game/sideQuest/qualities.js +155 -0
  179. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -0
  180. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +274 -5
  181. package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +1 -0
  182. package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +17 -0
  183. package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.d.ts +2 -0
  184. package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.js +4 -0
  185. package/bundle/typescript/src/commands/game/sideQuest/types/shared/item-enum.js.map +1 -1
  186. package/bundle/typescript/src/commands/game/sideQuest/ui.js +82 -8
  187. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  188. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.d.ts +13 -6
  189. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +28 -15
  190. package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
  191. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +15 -3
  192. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +207 -34
  193. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  194. package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.d.ts +56 -0
  195. package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.js +144 -0
  196. package/bundle/typescript/src/commands/game/sideQuest/utilities/commerce.js.map +1 -0
  197. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +7 -4
  198. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +8 -5
  199. package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
  200. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.d.ts +14 -0
  201. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js +15 -0
  202. package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js.map +1 -0
  203. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.d.ts +16 -0
  204. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js +49 -4
  205. package/bundle/typescript/src/commands/game/sideQuest/utilities/logger.js.map +1 -1
  206. package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.d.ts +10 -0
  207. package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.js +16 -0
  208. package/bundle/typescript/src/commands/game/sideQuest/utilities/outdoors.js.map +1 -0
  209. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +21 -0
  210. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +107 -0
  211. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  212. package/bundle/typescript/src/commands/game/sideQuest/utilities/terminal-reset.d.ts +17 -0
  213. package/bundle/typescript/src/commands/game/sideQuest/utilities/terminal-reset.js +23 -0
  214. package/bundle/typescript/src/commands/game/sideQuest/utilities/terminal-reset.js.map +1 -0
  215. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +51 -15
  216. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  217. package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +27 -1
  218. package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js.map +1 -1
  219. package/bundle/typescript/src/commands/run/run.command.js +1 -7
  220. package/bundle/typescript/src/commands/run/run.command.js.map +1 -1
  221. package/bundle/typescript/src/commands/ssl.js +10 -15
  222. package/bundle/typescript/src/commands/ssl.js.map +1 -1
  223. package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.js +1 -6
  224. package/bundle/typescript/src/commands/testCmd/mocha.sub.cmd.js.map +1 -1
  225. package/bundle/typescript/src/generators/config.js +11 -10
  226. package/bundle/typescript/src/generators/config.js.map +1 -1
  227. package/bundle/typescript/src/templates/meteor/config/pm2.config.js +3 -3
  228. package/bundle/typescript/src/templates/meteor/project/gitignore +2 -1
  229. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +3 -4
  230. package/bundle/typescript/src/tool.d.ts +2 -0
  231. package/bundle/typescript/src/tool.js +3 -0
  232. package/bundle/typescript/src/tool.js.map +1 -1
  233. package/bundle/typescript/src/tools/aws/aws.class.js +6 -4
  234. package/bundle/typescript/src/tools/aws/aws.class.js.map +1 -1
  235. package/bundle/typescript/src/tools/dotenvx/dotenvx.class.d.ts +24 -0
  236. package/bundle/typescript/src/tools/dotenvx/dotenvx.class.js +66 -0
  237. package/bundle/typescript/src/tools/dotenvx/dotenvx.class.js.map +1 -0
  238. package/bundle/typescript/src/tools/ssh/ssh.class.js +1 -1
  239. package/bundle/typescript/src/tools/ssh/ssh.class.js.map +1 -1
  240. package/bundle/typescript/src/tools/ssl/ssl.class.d.ts +8 -0
  241. package/bundle/typescript/src/tools/ssl/ssl.class.js +53 -0
  242. package/bundle/typescript/src/tools/ssl/ssl.class.js.map +1 -1
  243. package/package.json +2 -2
@@ -1,6 +1,9 @@
1
1
  import blessed from 'blessed';
2
2
  import { ISceneSeedJson } from './types/seed/scene-seed.js';
3
+ import { Item } from './models/item.js';
3
4
  import { Player, Inventory, Room, Scene } from './models/_index.js';
5
+ import { ILifestyleTier } from './utilities/commerce.js';
6
+ import { NPC } from './models/npc.js';
4
7
  import { AutoFight } from './utilities/auto-fight.js';
5
8
  import { IMainGameConfig } from './ui.js';
6
9
  import { PlayerEquipment } from './types/player-equipment.js';
@@ -13,6 +16,7 @@ export default class Game {
13
16
  autoFight: AutoFight;
14
17
  private _screen;
15
18
  private _logBox;
19
+ private _metaBox;
16
20
  private _statusBox;
17
21
  private _inputBox;
18
22
  private _useAi;
@@ -22,6 +26,165 @@ export default class Game {
22
26
  private _hubScene?;
23
27
  private _hubName;
24
28
  get hasHub(): boolean;
29
+ /** The active job's name (seed name) -- notoriety incidents cite it. */
30
+ get currentJobName(): string | undefined;
31
+ contacts: Map<string, {
32
+ connection: number;
33
+ loyalty: number;
34
+ spent: number;
35
+ gigs: number;
36
+ asked: boolean;
37
+ }>;
38
+ /** How much juice the name carries, read off the role. */
39
+ static connectionFor(npc: {
40
+ name: string;
41
+ description?: string;
42
+ }): number;
43
+ /**
44
+ * HOME TURF: the hub is where the runner LIVES -- everyone in the
45
+ * district already knows them (player request: "all NPCs there should
46
+ * already know them"). Called at hub capture: the whole meat-plane
47
+ * cast opens at Loyalty 1 ("knows your name"), so legwork works from
48
+ * day one and only run-scene faces are ever strangers. Depth is still
49
+ * earned -- trade, gigs, patronage -- exactly as before. Ice and
50
+ * spirits don't do noodles: non-meat actors stay off the roster.
51
+ */
52
+ private seedHomeTurfContacts;
53
+ companions: {
54
+ npc: NPC;
55
+ kind: 'spirit' | 'agent' | 'drone' | 'ally';
56
+ services?: number;
57
+ force: number;
58
+ boundDevice?: Item;
59
+ }[];
60
+ private _pendingRedeploys;
61
+ /**
62
+ * The one correct runtime NPC spawn (mirrors scene-factory's seed
63
+ * path): construct with a scene-bound registry, add to the scene
64
+ * (names must be unique -- addActor throws), place via
65
+ * setCharacterLocation (the ONLY path that binds room observers), and
66
+ * hand it the scene for its AI context.
67
+ */
68
+ spawnCompanionShell(opts: {
69
+ name: string;
70
+ description: string;
71
+ kind: 'spirit' | 'agent' | 'drone' | 'ally';
72
+ combat: Partial<import('./models/player.js').ICombatAttributes>;
73
+ room: Room;
74
+ plane: 'meat' | 'matrix' | 'astral';
75
+ force: number;
76
+ services?: number;
77
+ boundDevice?: Item;
78
+ }): NPC | null;
79
+ /**
80
+ * The autonomous-drone shell, shared by the deploy command and
81
+ * arrival re-shelling: the frame's dog-brain (Pilot = 2 + quality)
82
+ * stands in for every attribute it lacks (RAW p.269-271).
83
+ */
84
+ private static readonly DRONE_CARGO_KG;
85
+ deployDroneShell(item: Item, room: Room): NPC | null;
86
+ /** Drops a companion's shell and its roster entry. */
87
+ dismissCompanion(entry: (typeof this.companions)[number], reason: string): void;
88
+ /**
89
+ * An actor left the world (Scene.removeActor). For a companion shell
90
+ * that DIED (not a deliberate dismissal -- those set deathClaimed
91
+ * first and prune themselves), settle the wreckage: a drone's frame is
92
+ * wrecked where it fell, an agent derezzes (the deck already ate the
93
+ * damage), a spirit is banished outright.
94
+ */
95
+ onActorRemoved(name: string): void;
96
+ /**
97
+ * Spirits with no services left depart once no exchange holds them
98
+ * (called from CombatExchange.finishExchange): the bargain is spent.
99
+ */
100
+ settleSpiritServices(): void;
101
+ private _pursuitTimer?;
102
+ private readonly _pursuitInFlight;
103
+ private static readonly PURSUIT_TICK_MS;
104
+ private startPursuitHeartbeat;
105
+ stopPursuitHeartbeat(): void;
106
+ spurCompanionPursuits(): void;
107
+ /** Pre-travel: every shell folds, each with its own goodbye. */
108
+ foldCompanionsForTravel(): string[];
109
+ /** Post-arrival: re-shell what was deployed when you left (drones). */
110
+ unfoldCompanionsOnArrival(): string[];
111
+ /**
112
+ * Records a real transaction with a hub NPC: first contact opens the
113
+ * relationship at Loyalty 1 (a safeguard -- the hub cast is pre-seeded
114
+ * by seedHomeTurfContacts); gigs raise it a point each (cap 6);
115
+ * cumulative spend raises it at each full 1,000 nuyen (cap 3).
116
+ * Returns a player-facing line when something changed, else null.
117
+ */
118
+ touchContact(name: string, kind: 'trade' | 'gig', spent?: number): string | null;
119
+ pendingSale?: {
120
+ itemName: string;
121
+ price: number;
122
+ fence: string;
123
+ haggled: boolean;
124
+ };
125
+ lifestyleTier: string;
126
+ rentDebt: number;
127
+ /** The active lifestyle tier's row (falls back to Squatter). */
128
+ get lifestyle(): ILifestyleTier;
129
+ /**
130
+ * Makes the hideout LOOK like what the rent buys: the room's description
131
+ * follows the active tier (player request -- an upgraded lifestyle read
132
+ * as the same windowless squat). Called wherever the tier moves: the
133
+ * lifestyle command, and the shortfall slide in returnToHub.
134
+ */
135
+ syncHomeToLifestyle(): void;
136
+ private static readonly RESTOCK_CATEGORIES;
137
+ private _restockSnapshot;
138
+ /** Captures every restockable shelf item's blueprint (hub capture time). */
139
+ private snapshotVendorStock;
140
+ /** Refills empty shelves from the snapshot; returns how many came back. */
141
+ private restockVendorShelves;
142
+ /** The fence moves merchandise: anything sold to a fence is sold ON. */
143
+ private fenceSellsOn;
144
+ gigAvailable?: {
145
+ from: string;
146
+ to: string;
147
+ itemName: string;
148
+ itemDescription: string;
149
+ pay: number;
150
+ brief: string;
151
+ };
152
+ activeGig?: {
153
+ from: string;
154
+ to: string;
155
+ itemName: string;
156
+ pay: number;
157
+ };
158
+ private _gigPool;
159
+ private _gigIndex;
160
+ /** Rotates the gig on offer (skipped while one is already in hand). */
161
+ private advanceGig;
162
+ /**
163
+ * WORK FROM A RELATIONSHIP (see commands/ask.ts): a contact puts THEIR
164
+ * errand on the table. Their seeded gigs get first claim -- spliced
165
+ * out of the rotating pool, so work handed to you personally never
166
+ * reappears on the ambient board -- and when the pool holds nothing of
167
+ * theirs, the relationship synthesizes one: a sealed parcel to another
168
+ * hub local, priced off Connection (their reach IS the stakes) with a
169
+ * Loyalty kicker. Loyalty 5+ pays the family rate (+25%). The offer
170
+ * lands as gigAvailable: the existing "work" pickup and "give"
171
+ * delivery handle the rest unchanged.
172
+ */
173
+ offerGigFrom(contactName: string): {
174
+ from: string;
175
+ to: string;
176
+ itemName: string;
177
+ itemDescription: string;
178
+ pay: number;
179
+ brief: string;
180
+ familyRate: boolean;
181
+ } | null;
182
+ fencedCategories: Set<string>;
183
+ private _rumorPool;
184
+ private _rumorIndex;
185
+ activeRumor?: string;
186
+ /** Rotates to the next rumor and plants it where NPCs will hear it. */
187
+ private advanceRumor;
25
188
  /** The persistent hideout room -- go.ts's walk-home trigger checks it. */
26
189
  get homeRoom(): Room | undefined;
27
190
  private _pendingRunSeed?;
@@ -62,6 +225,7 @@ export default class Game {
62
225
  */
63
226
  private connectHomeRoom;
64
227
  get logBox(): blessed.Widgets.BoxElement;
228
+ get metaBox(): blessed.Widgets.BoxElement;
65
229
  get inputBox(): blessed.Widgets.TextboxElement;
66
230
  init(options: IMainGameConfig, screen: blessed.Widgets.Screen): Promise<string>;
67
231
  /**
@@ -114,6 +278,19 @@ export default class Game {
114
278
  * start -- you rode there, you arrive AT the job).
115
279
  */
116
280
  private activateRunScene;
281
+ /**
282
+ * The needs check at every job departure (SR5e p.56 / p.172, scaled to
283
+ * job-cycle "days"). Fed AND slept since the last departure: edge
284
+ * refills and you head out sharp. Skip either: edge stays at whatever's
285
+ * left. Keep skipping: escalating fatigue (1S, 2S, 3S... per cycle),
286
+ * resisted Body + Willpower, landing as LOCKED stun no recovery touches
287
+ * until the need is met (Player.healStun / markFed / markSlept). A
288
+ * Sleep Regulator (augmentations.ts) halves the effective sleep debt.
289
+ * Fatigue is capped one box short of a knockout -- RAW would drop you,
290
+ * but collapsing INSIDE the departure transition would strand the
291
+ * session between scenes; "running on fumes" carries the spirit.
292
+ */
293
+ private applyDepartureNeeds;
117
294
  /**
118
295
  * "travel": takes the arranged transport to the pending job (see
119
296
  * commands/travel.ts). The player arrives AT the run's start room --
@@ -126,6 +303,25 @@ export default class Game {
126
303
  close(): Promise<void>;
127
304
  private initInputBox;
128
305
  private initLogBox;
306
+ /**
307
+ * Scroll the log to its tail -- unless the player has paged up to read
308
+ * history (followBottom off), in which case their place is left alone.
309
+ * Every "new line arrived" site goes through here.
310
+ */
311
+ followLog(): void;
312
+ /**
313
+ * The MECHANICS column (readability pass, player request: the log was
314
+ * a "wall of text"): dice anatomy and resource arithmetic land here
315
+ * (via Logger.meta) instead of the world log, so the narrative stays
316
+ * prose. A full-height COLUMN beside the world log, not a bottom
317
+ * strip -- the first playtest's 3-row ticker scrolled combat rolls
318
+ * away faster than they could be read. De-emphasis is the BLUE border
319
+ * -- gray is banned (ANSI bright-black, illegible on stock dark
320
+ * palettes). Follow-only (no keys); the full interleaved record lives
321
+ * in session.log. Roll lines wrap at the column width -- fine in a
322
+ * tall column. NO mouse (see initInputBox): never arm mouse tracking.
323
+ */
324
+ private initMetaBox;
129
325
  /**
130
326
  * The HUD: a fixed strip between the log and the input box for the
131
327
  * important real-time state -- condition tracks, armed/link status,