@rpgm-tools/neo-angband-core 0.10.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 (1183) hide show
  1. package/LICENSE.md +43 -0
  2. package/README.md +80 -0
  3. package/dist/agent/act.d.ts +22 -0
  4. package/dist/agent/act.d.ts.map +1 -0
  5. package/dist/agent/act.js +88 -0
  6. package/dist/agent/act.js.map +1 -0
  7. package/dist/agent/controller.d.ts +34 -0
  8. package/dist/agent/controller.d.ts.map +1 -0
  9. package/dist/agent/controller.js +90 -0
  10. package/dist/agent/controller.js.map +1 -0
  11. package/dist/agent/events.d.ts +27 -0
  12. package/dist/agent/events.d.ts.map +1 -0
  13. package/dist/agent/events.js +31 -0
  14. package/dist/agent/events.js.map +1 -0
  15. package/dist/agent/index.d.ts +17 -0
  16. package/dist/agent/index.d.ts.map +1 -0
  17. package/dist/agent/index.js +15 -0
  18. package/dist/agent/index.js.map +1 -0
  19. package/dist/agent/perceive.d.ts +21 -0
  20. package/dist/agent/perceive.d.ts.map +1 -0
  21. package/dist/agent/perceive.js +386 -0
  22. package/dist/agent/perceive.js.map +1 -0
  23. package/dist/agent/types.d.ts +436 -0
  24. package/dist/agent/types.d.ts.map +1 -0
  25. package/dist/agent/types.js +63 -0
  26. package/dist/agent/types.js.map +1 -0
  27. package/dist/bitflag.d.ts +199 -0
  28. package/dist/bitflag.d.ts.map +1 -0
  29. package/dist/bitflag.js +478 -0
  30. package/dist/bitflag.js.map +1 -0
  31. package/dist/cmd.d.ts +164 -0
  32. package/dist/cmd.d.ts.map +1 -0
  33. package/dist/cmd.js +350 -0
  34. package/dist/cmd.js.map +1 -0
  35. package/dist/color.d.ts +104 -0
  36. package/dist/color.d.ts.map +1 -0
  37. package/dist/color.js +240 -0
  38. package/dist/color.js.map +1 -0
  39. package/dist/combat/brand-slay.d.ts +119 -0
  40. package/dist/combat/brand-slay.d.ts.map +1 -0
  41. package/dist/combat/brand-slay.js +264 -0
  42. package/dist/combat/brand-slay.js.map +1 -0
  43. package/dist/combat/hit.d.ts +198 -0
  44. package/dist/combat/hit.d.ts.map +1 -0
  45. package/dist/combat/hit.js +310 -0
  46. package/dist/combat/hit.js.map +1 -0
  47. package/dist/combat/index.d.ts +15 -0
  48. package/dist/combat/index.d.ts.map +1 -0
  49. package/dist/combat/index.js +15 -0
  50. package/dist/combat/index.js.map +1 -0
  51. package/dist/combat/melee.d.ts +261 -0
  52. package/dist/combat/melee.d.ts.map +1 -0
  53. package/dist/combat/melee.js +402 -0
  54. package/dist/combat/melee.js.map +1 -0
  55. package/dist/combat/mon-melee.d.ts +233 -0
  56. package/dist/combat/mon-melee.d.ts.map +1 -0
  57. package/dist/combat/mon-melee.js +883 -0
  58. package/dist/combat/mon-melee.js.map +1 -0
  59. package/dist/combat/ranged.d.ts +89 -0
  60. package/dist/combat/ranged.d.ts.map +1 -0
  61. package/dist/combat/ranged.js +253 -0
  62. package/dist/combat/ranged.js.map +1 -0
  63. package/dist/constants.d.ts +134 -0
  64. package/dist/constants.d.ts.map +1 -0
  65. package/dist/constants.js +171 -0
  66. package/dist/constants.js.map +1 -0
  67. package/dist/dice.d.ts +91 -0
  68. package/dist/dice.d.ts.map +1 -0
  69. package/dist/dice.js +424 -0
  70. package/dist/dice.js.map +1 -0
  71. package/dist/effects/effect-choice.d.ts +15 -0
  72. package/dist/effects/effect-choice.d.ts.map +1 -0
  73. package/dist/effects/effect-choice.js +18 -0
  74. package/dist/effects/effect-choice.js.map +1 -0
  75. package/dist/effects/effect-info.d.ts +124 -0
  76. package/dist/effects/effect-info.d.ts.map +1 -0
  77. package/dist/effects/effect-info.js +706 -0
  78. package/dist/effects/effect-info.js.map +1 -0
  79. package/dist/effects/effect.d.ts +165 -0
  80. package/dist/effects/effect.d.ts.map +1 -0
  81. package/dist/effects/effect.js +452 -0
  82. package/dist/effects/effect.js.map +1 -0
  83. package/dist/effects/handlers.d.ts +70 -0
  84. package/dist/effects/handlers.d.ts.map +1 -0
  85. package/dist/effects/handlers.js +394 -0
  86. package/dist/effects/handlers.js.map +1 -0
  87. package/dist/effects/interpreter.d.ts +291 -0
  88. package/dist/effects/interpreter.d.ts.map +1 -0
  89. package/dist/effects/interpreter.js +325 -0
  90. package/dist/effects/interpreter.js.map +1 -0
  91. package/dist/events.d.ts +188 -0
  92. package/dist/events.d.ts.map +1 -0
  93. package/dist/events.js +138 -0
  94. package/dist/events.js.map +1 -0
  95. package/dist/expression.d.ts +83 -0
  96. package/dist/expression.d.ts.map +1 -0
  97. package/dist/expression.js +333 -0
  98. package/dist/expression.js.map +1 -0
  99. package/dist/game/cave-cmd.d.ts +195 -0
  100. package/dist/game/cave-cmd.d.ts.map +1 -0
  101. package/dist/game/cave-cmd.js +968 -0
  102. package/dist/game/cave-cmd.js.map +1 -0
  103. package/dist/game/char-sheet.d.ts +189 -0
  104. package/dist/game/char-sheet.d.ts.map +1 -0
  105. package/dist/game/char-sheet.js +381 -0
  106. package/dist/game/char-sheet.js.map +1 -0
  107. package/dist/game/chest.d.ts +94 -0
  108. package/dist/game/chest.d.ts.map +1 -0
  109. package/dist/game/chest.js +267 -0
  110. package/dist/game/chest.js.map +1 -0
  111. package/dist/game/context.d.ts +970 -0
  112. package/dist/game/context.d.ts.map +1 -0
  113. package/dist/game/context.js +353 -0
  114. package/dist/game/context.js.map +1 -0
  115. package/dist/game/curse-tick.d.ts +35 -0
  116. package/dist/game/curse-tick.d.ts.map +1 -0
  117. package/dist/game/curse-tick.js +100 -0
  118. package/dist/game/curse-tick.js.map +1 -0
  119. package/dist/game/describe.d.ts +20 -0
  120. package/dist/game/describe.d.ts.map +1 -0
  121. package/dist/game/describe.js +45 -0
  122. package/dist/game/describe.js.map +1 -0
  123. package/dist/game/display.d.ts +196 -0
  124. package/dist/game/display.d.ts.map +1 -0
  125. package/dist/game/display.js +684 -0
  126. package/dist/game/display.js.map +1 -0
  127. package/dist/game/dump-level.d.ts +37 -0
  128. package/dist/game/dump-level.d.ts.map +1 -0
  129. package/dist/game/dump-level.js +110 -0
  130. package/dist/game/dump-level.js.map +1 -0
  131. package/dist/game/effect-attack.d.ts +36 -0
  132. package/dist/game/effect-attack.d.ts.map +1 -0
  133. package/dist/game/effect-attack.js +694 -0
  134. package/dist/game/effect-attack.js.map +1 -0
  135. package/dist/game/effect-detect.d.ts +34 -0
  136. package/dist/game/effect-detect.d.ts.map +1 -0
  137. package/dist/game/effect-detect.js +456 -0
  138. package/dist/game/effect-detect.js.map +1 -0
  139. package/dist/game/effect-env.d.ts +77 -0
  140. package/dist/game/effect-env.d.ts.map +1 -0
  141. package/dist/game/effect-env.js +166 -0
  142. package/dist/game/effect-env.js.map +1 -0
  143. package/dist/game/effect-game-env.d.ts +76 -0
  144. package/dist/game/effect-game-env.d.ts.map +1 -0
  145. package/dist/game/effect-game-env.js +23 -0
  146. package/dist/game/effect-game-env.js.map +1 -0
  147. package/dist/game/effect-general.d.ts +98 -0
  148. package/dist/game/effect-general.d.ts.map +1 -0
  149. package/dist/game/effect-general.js +914 -0
  150. package/dist/game/effect-general.js.map +1 -0
  151. package/dist/game/effect-item.d.ts +124 -0
  152. package/dist/game/effect-item.d.ts.map +1 -0
  153. package/dist/game/effect-item.js +789 -0
  154. package/dist/game/effect-item.js.map +1 -0
  155. package/dist/game/effect-melee.d.ts +43 -0
  156. package/dist/game/effect-melee.d.ts.map +1 -0
  157. package/dist/game/effect-melee.js +477 -0
  158. package/dist/game/effect-melee.js.map +1 -0
  159. package/dist/game/effect-mon-origin.d.ts +67 -0
  160. package/dist/game/effect-mon-origin.d.ts.map +1 -0
  161. package/dist/game/effect-mon-origin.js +164 -0
  162. package/dist/game/effect-mon-origin.js.map +1 -0
  163. package/dist/game/effect-monster.d.ts +29 -0
  164. package/dist/game/effect-monster.d.ts.map +1 -0
  165. package/dist/game/effect-monster.js +281 -0
  166. package/dist/game/effect-monster.js.map +1 -0
  167. package/dist/game/effect-summon.d.ts +37 -0
  168. package/dist/game/effect-summon.d.ts.map +1 -0
  169. package/dist/game/effect-summon.js +113 -0
  170. package/dist/game/effect-summon.js.map +1 -0
  171. package/dist/game/effect-teleport.d.ts +130 -0
  172. package/dist/game/effect-teleport.d.ts.map +1 -0
  173. package/dist/game/effect-teleport.js +529 -0
  174. package/dist/game/effect-teleport.js.map +1 -0
  175. package/dist/game/effect-terrain.d.ts +91 -0
  176. package/dist/game/effect-terrain.d.ts.map +1 -0
  177. package/dist/game/effect-terrain.js +812 -0
  178. package/dist/game/effect-terrain.js.map +1 -0
  179. package/dist/game/energy.d.ts +45 -0
  180. package/dist/game/energy.d.ts.map +1 -0
  181. package/dist/game/energy.js +51 -0
  182. package/dist/game/energy.js.map +1 -0
  183. package/dist/game/equip-cmp.d.ts +138 -0
  184. package/dist/game/equip-cmp.d.ts.map +1 -0
  185. package/dist/game/equip-cmp.js +363 -0
  186. package/dist/game/equip-cmp.js.map +1 -0
  187. package/dist/game/floor.d.ts +182 -0
  188. package/dist/game/floor.d.ts.map +1 -0
  189. package/dist/game/floor.js +435 -0
  190. package/dist/game/floor.js.map +1 -0
  191. package/dist/game/gear.d.ts +408 -0
  192. package/dist/game/gear.d.ts.map +1 -0
  193. package/dist/game/gear.js +1037 -0
  194. package/dist/game/gear.js.map +1 -0
  195. package/dist/game/harness.d.ts +61 -0
  196. package/dist/game/harness.d.ts.map +1 -0
  197. package/dist/game/harness.js +198 -0
  198. package/dist/game/harness.js.map +1 -0
  199. package/dist/game/history.d.ts +49 -0
  200. package/dist/game/history.d.ts.map +1 -0
  201. package/dist/game/history.js +55 -0
  202. package/dist/game/history.js.map +1 -0
  203. package/dist/game/ignore-cmd.d.ts +42 -0
  204. package/dist/game/ignore-cmd.d.ts.map +1 -0
  205. package/dist/game/ignore-cmd.js +59 -0
  206. package/dist/game/ignore-cmd.js.map +1 -0
  207. package/dist/game/inscription-confirm.d.ts +80 -0
  208. package/dist/game/inscription-confirm.d.ts.map +1 -0
  209. package/dist/game/inscription-confirm.js +95 -0
  210. package/dist/game/inscription-confirm.js.map +1 -0
  211. package/dist/game/known.d.ts +297 -0
  212. package/dist/game/known.d.ts.map +1 -0
  213. package/dist/game/known.js +849 -0
  214. package/dist/game/known.js.map +1 -0
  215. package/dist/game/loop.d.ts +139 -0
  216. package/dist/game/loop.d.ts.map +1 -0
  217. package/dist/game/loop.js +631 -0
  218. package/dist/game/loop.js.map +1 -0
  219. package/dist/game/lore-color.d.ts +25 -0
  220. package/dist/game/lore-color.d.ts.map +1 -0
  221. package/dist/game/lore-color.js +95 -0
  222. package/dist/game/lore-color.js.map +1 -0
  223. package/dist/game/mon-cast.d.ts +150 -0
  224. package/dist/game/mon-cast.d.ts.map +1 -0
  225. package/dist/game/mon-cast.js +301 -0
  226. package/dist/game/mon-cast.js.map +1 -0
  227. package/dist/game/mon-cmd.d.ts +51 -0
  228. package/dist/game/mon-cmd.d.ts.map +1 -0
  229. package/dist/game/mon-cmd.js +670 -0
  230. package/dist/game/mon-cmd.js.map +1 -0
  231. package/dist/game/mon-death.d.ts +143 -0
  232. package/dist/game/mon-death.d.ts.map +1 -0
  233. package/dist/game/mon-death.js +328 -0
  234. package/dist/game/mon-death.js.map +1 -0
  235. package/dist/game/mon-group.d.ts +81 -0
  236. package/dist/game/mon-group.d.ts.map +1 -0
  237. package/dist/game/mon-group.js +323 -0
  238. package/dist/game/mon-group.js.map +1 -0
  239. package/dist/game/mon-list.d.ts +85 -0
  240. package/dist/game/mon-list.d.ts.map +1 -0
  241. package/dist/game/mon-list.js +154 -0
  242. package/dist/game/mon-list.js.map +1 -0
  243. package/dist/game/mon-message.d.ts +100 -0
  244. package/dist/game/mon-message.d.ts.map +1 -0
  245. package/dist/game/mon-message.js +336 -0
  246. package/dist/game/mon-message.js.map +1 -0
  247. package/dist/game/mon-place.d.ts +226 -0
  248. package/dist/game/mon-place.d.ts.map +1 -0
  249. package/dist/game/mon-place.js +642 -0
  250. package/dist/game/mon-place.js.map +1 -0
  251. package/dist/game/mon-ranged.d.ts +87 -0
  252. package/dist/game/mon-ranged.d.ts.map +1 -0
  253. package/dist/game/mon-ranged.js +353 -0
  254. package/dist/game/mon-ranged.js.map +1 -0
  255. package/dist/game/mon-shape.d.ts +43 -0
  256. package/dist/game/mon-shape.d.ts.map +1 -0
  257. package/dist/game/mon-shape.js +115 -0
  258. package/dist/game/mon-shape.js.map +1 -0
  259. package/dist/game/mon-side.d.ts +63 -0
  260. package/dist/game/mon-side.d.ts.map +1 -0
  261. package/dist/game/mon-side.js +403 -0
  262. package/dist/game/mon-side.js.map +1 -0
  263. package/dist/game/monster-turn.d.ts +195 -0
  264. package/dist/game/monster-turn.d.ts.map +1 -0
  265. package/dist/game/monster-turn.js +1560 -0
  266. package/dist/game/monster-turn.js.map +1 -0
  267. package/dist/game/obj-cmd.d.ts +453 -0
  268. package/dist/game/obj-cmd.d.ts.map +1 -0
  269. package/dist/game/obj-cmd.js +1530 -0
  270. package/dist/game/obj-cmd.js.map +1 -0
  271. package/dist/game/obj-list.d.ts +92 -0
  272. package/dist/game/obj-list.d.ts.map +1 -0
  273. package/dist/game/obj-list.js +251 -0
  274. package/dist/game/obj-list.js.map +1 -0
  275. package/dist/game/object-inspect.d.ts +37 -0
  276. package/dist/game/object-inspect.d.ts.map +1 -0
  277. package/dist/game/object-inspect.js +106 -0
  278. package/dist/game/object-inspect.js.map +1 -0
  279. package/dist/game/pickup.d.ts +126 -0
  280. package/dist/game/pickup.d.ts.map +1 -0
  281. package/dist/game/pickup.js +367 -0
  282. package/dist/game/pickup.js.map +1 -0
  283. package/dist/game/player-path.d.ts +133 -0
  284. package/dist/game/player-path.d.ts.map +1 -0
  285. package/dist/game/player-path.js +1268 -0
  286. package/dist/game/player-path.js.map +1 -0
  287. package/dist/game/player-side.d.ts +59 -0
  288. package/dist/game/player-side.d.ts.map +1 -0
  289. package/dist/game/player-side.js +506 -0
  290. package/dist/game/player-side.js.map +1 -0
  291. package/dist/game/player-turn.d.ts +161 -0
  292. package/dist/game/player-turn.d.ts.map +1 -0
  293. package/dist/game/player-turn.js +739 -0
  294. package/dist/game/player-turn.js.map +1 -0
  295. package/dist/game/project-cast.d.ts +268 -0
  296. package/dist/game/project-cast.d.ts.map +1 -0
  297. package/dist/game/project-cast.js +496 -0
  298. package/dist/game/project-cast.js.map +1 -0
  299. package/dist/game/project-feat.d.ts +47 -0
  300. package/dist/game/project-feat.d.ts.map +1 -0
  301. package/dist/game/project-feat.js +350 -0
  302. package/dist/game/project-feat.js.map +1 -0
  303. package/dist/game/project-monster.d.ts +106 -0
  304. package/dist/game/project-monster.d.ts.map +1 -0
  305. package/dist/game/project-monster.js +272 -0
  306. package/dist/game/project-monster.js.map +1 -0
  307. package/dist/game/project-obj.d.ts +60 -0
  308. package/dist/game/project-obj.d.ts.map +1 -0
  309. package/dist/game/project-obj.js +245 -0
  310. package/dist/game/project-obj.js.map +1 -0
  311. package/dist/game/project-player.d.ts +120 -0
  312. package/dist/game/project-player.d.ts.map +1 -0
  313. package/dist/game/project-player.js +108 -0
  314. package/dist/game/project-player.js.map +1 -0
  315. package/dist/game/quest.d.ts +101 -0
  316. package/dist/game/quest.d.ts.map +1 -0
  317. package/dist/game/quest.js +192 -0
  318. package/dist/game/quest.js.map +1 -0
  319. package/dist/game/ranged-cmd.d.ts +32 -0
  320. package/dist/game/ranged-cmd.d.ts.map +1 -0
  321. package/dist/game/ranged-cmd.js +372 -0
  322. package/dist/game/ranged-cmd.js.map +1 -0
  323. package/dist/game/scheduler.d.ts +47 -0
  324. package/dist/game/scheduler.d.ts.map +1 -0
  325. package/dist/game/scheduler.js +141 -0
  326. package/dist/game/scheduler.js.map +1 -0
  327. package/dist/game/spell-cmd.d.ts +104 -0
  328. package/dist/game/spell-cmd.d.ts.map +1 -0
  329. package/dist/game/spell-cmd.js +320 -0
  330. package/dist/game/spell-cmd.js.map +1 -0
  331. package/dist/game/spoil.d.ts +28 -0
  332. package/dist/game/spoil.d.ts.map +1 -0
  333. package/dist/game/spoil.js +435 -0
  334. package/dist/game/spoil.js.map +1 -0
  335. package/dist/game/steal.d.ts +35 -0
  336. package/dist/game/steal.d.ts.map +1 -0
  337. package/dist/game/steal.js +145 -0
  338. package/dist/game/steal.js.map +1 -0
  339. package/dist/game/take-hit-hooks.d.ts +52 -0
  340. package/dist/game/take-hit-hooks.d.ts.map +1 -0
  341. package/dist/game/take-hit-hooks.js +127 -0
  342. package/dist/game/take-hit-hooks.js.map +1 -0
  343. package/dist/game/target-loop.d.ts +119 -0
  344. package/dist/game/target-loop.d.ts.map +1 -0
  345. package/dist/game/target-loop.js +408 -0
  346. package/dist/game/target-loop.js.map +1 -0
  347. package/dist/game/target.d.ts +133 -0
  348. package/dist/game/target.d.ts.map +1 -0
  349. package/dist/game/target.js +353 -0
  350. package/dist/game/target.js.map +1 -0
  351. package/dist/game/thrust.d.ts +37 -0
  352. package/dist/game/thrust.d.ts.map +1 -0
  353. package/dist/game/thrust.js +155 -0
  354. package/dist/game/thrust.js.map +1 -0
  355. package/dist/game/trap.d.ts +218 -0
  356. package/dist/game/trap.d.ts.map +1 -0
  357. package/dist/game/trap.js +618 -0
  358. package/dist/game/trap.js.map +1 -0
  359. package/dist/game/ui-entry.d.ts +282 -0
  360. package/dist/game/ui-entry.d.ts.map +1 -0
  361. package/dist/game/ui-entry.js +1838 -0
  362. package/dist/game/ui-entry.js.map +1 -0
  363. package/dist/game/wizard.d.ts +654 -0
  364. package/dist/game/wizard.d.ts.map +1 -0
  365. package/dist/game/wizard.js +1323 -0
  366. package/dist/game/wizard.js.map +1 -0
  367. package/dist/game/world.d.ts +183 -0
  368. package/dist/game/world.d.ts.map +1 -0
  369. package/dist/game/world.js +685 -0
  370. package/dist/game/world.js.map +1 -0
  371. package/dist/gen/cave.d.ts +247 -0
  372. package/dist/gen/cave.d.ts.map +1 -0
  373. package/dist/gen/cave.js +2406 -0
  374. package/dist/gen/cave.js.map +1 -0
  375. package/dist/gen/gen-monster.d.ts +151 -0
  376. package/dist/gen/gen-monster.d.ts.map +1 -0
  377. package/dist/gen/gen-monster.js +473 -0
  378. package/dist/gen/gen-monster.js.map +1 -0
  379. package/dist/gen/generate.d.ts +240 -0
  380. package/dist/gen/generate.d.ts.map +1 -0
  381. package/dist/gen/generate.js +358 -0
  382. package/dist/gen/generate.js.map +1 -0
  383. package/dist/gen/room.d.ts +160 -0
  384. package/dist/gen/room.d.ts.map +1 -0
  385. package/dist/gen/room.js +1910 -0
  386. package/dist/gen/room.js.map +1 -0
  387. package/dist/gen/util.d.ts +466 -0
  388. package/dist/gen/util.d.ts.map +1 -0
  389. package/dist/gen/util.js +1553 -0
  390. package/dist/gen/util.js.map +1 -0
  391. package/dist/generated/dun-profiles.d.ts +44 -0
  392. package/dist/generated/dun-profiles.d.ts.map +1 -0
  393. package/dist/generated/dun-profiles.js +28 -0
  394. package/dist/generated/dun-profiles.js.map +1 -0
  395. package/dist/generated/effects.d.ts +1021 -0
  396. package/dist/generated/effects.d.ts.map +1 -0
  397. package/dist/generated/effects.js +239 -0
  398. package/dist/generated/effects.js.map +1 -0
  399. package/dist/generated/elements.d.ts +83 -0
  400. package/dist/generated/elements.d.ts.map +1 -0
  401. package/dist/generated/elements.js +60 -0
  402. package/dist/generated/elements.js.map +1 -0
  403. package/dist/generated/equip-slots.d.ts +104 -0
  404. package/dist/generated/equip-slots.d.ts.map +1 -0
  405. package/dist/generated/equip-slots.js +34 -0
  406. package/dist/generated/equip-slots.js.map +1 -0
  407. package/dist/generated/history-types.d.ts +52 -0
  408. package/dist/generated/history-types.d.ts.map +1 -0
  409. package/dist/generated/history-types.js +32 -0
  410. package/dist/generated/history-types.js.map +1 -0
  411. package/dist/generated/ignore-types.d.ts +116 -0
  412. package/dist/generated/ignore-types.d.ts.map +1 -0
  413. package/dist/generated/ignore-types.js +64 -0
  414. package/dist/generated/ignore-types.js.map +1 -0
  415. package/dist/generated/index.d.ts +32 -0
  416. package/dist/generated/index.d.ts.map +1 -0
  417. package/dist/generated/index.js +33 -0
  418. package/dist/generated/index.js.map +1 -0
  419. package/dist/generated/kind-flags.d.ts +72 -0
  420. package/dist/generated/kind-flags.d.ts.map +1 -0
  421. package/dist/generated/kind-flags.js +42 -0
  422. package/dist/generated/kind-flags.js.map +1 -0
  423. package/dist/generated/message.d.ts +624 -0
  424. package/dist/generated/message.d.ts.map +1 -0
  425. package/dist/generated/message.js +318 -0
  426. package/dist/generated/message.js.map +1 -0
  427. package/dist/generated/mon-message.d.ts +386 -0
  428. package/dist/generated/mon-message.d.ts.map +1 -0
  429. package/dist/generated/mon-message.js +136 -0
  430. package/dist/generated/mon-message.js.map +1 -0
  431. package/dist/generated/mon-race-flags.d.ts +433 -0
  432. package/dist/generated/mon-race-flags.d.ts.map +1 -0
  433. package/dist/generated/mon-race-flags.js +180 -0
  434. package/dist/generated/mon-race-flags.js.map +1 -0
  435. package/dist/generated/mon-spells.d.ts +380 -0
  436. package/dist/generated/mon-spells.d.ts.map +1 -0
  437. package/dist/generated/mon-spells.js +196 -0
  438. package/dist/generated/mon-spells.js.map +1 -0
  439. package/dist/generated/mon-temp-flags.d.ts +52 -0
  440. package/dist/generated/mon-temp-flags.d.ts.map +1 -0
  441. package/dist/generated/mon-temp-flags.js +32 -0
  442. package/dist/generated/mon-temp-flags.js.map +1 -0
  443. package/dist/generated/mon-timed.d.ts +118 -0
  444. package/dist/generated/mon-timed.d.ts.map +1 -0
  445. package/dist/generated/mon-timed.js +32 -0
  446. package/dist/generated/mon-timed.js.map +1 -0
  447. package/dist/generated/object-flags.d.ts +169 -0
  448. package/dist/generated/object-flags.d.ts.map +1 -0
  449. package/dist/generated/object-flags.js +93 -0
  450. package/dist/generated/object-flags.js.map +1 -0
  451. package/dist/generated/object-modifiers.d.ts +50 -0
  452. package/dist/generated/object-modifiers.d.ts.map +1 -0
  453. package/dist/generated/object-modifiers.js +41 -0
  454. package/dist/generated/object-modifiers.js.map +1 -0
  455. package/dist/generated/options.d.ts +284 -0
  456. package/dist/generated/options.d.ts.map +1 -0
  457. package/dist/generated/options.js +102 -0
  458. package/dist/generated/options.js.map +1 -0
  459. package/dist/generated/origins.d.ts +138 -0
  460. package/dist/generated/origins.d.ts.map +1 -0
  461. package/dist/generated/origins.js +62 -0
  462. package/dist/generated/origins.js.map +1 -0
  463. package/dist/generated/parser-errors.d.ts +264 -0
  464. package/dist/generated/parser-errors.d.ts.map +1 -0
  465. package/dist/generated/parser-errors.js +138 -0
  466. package/dist/generated/parser-errors.js.map +1 -0
  467. package/dist/generated/player-flags.d.ts +62 -0
  468. package/dist/generated/player-flags.d.ts.map +1 -0
  469. package/dist/generated/player-flags.js +46 -0
  470. package/dist/generated/player-flags.js.map +1 -0
  471. package/dist/generated/player-timed.d.ts +273 -0
  472. package/dist/generated/player-timed.d.ts.map +1 -0
  473. package/dist/generated/player-timed.js +116 -0
  474. package/dist/generated/player-timed.js.map +1 -0
  475. package/dist/generated/projections.d.ts +130 -0
  476. package/dist/generated/projections.d.ts.map +1 -0
  477. package/dist/generated/projections.js +101 -0
  478. package/dist/generated/projections.js.map +1 -0
  479. package/dist/generated/randart-properties.d.ts +388 -0
  480. package/dist/generated/randart-properties.d.ts.map +1 -0
  481. package/dist/generated/randart-properties.js +200 -0
  482. package/dist/generated/randart-properties.js.map +1 -0
  483. package/dist/generated/room-flags.d.ts +21 -0
  484. package/dist/generated/room-flags.d.ts.map +1 -0
  485. package/dist/generated/room-flags.js +19 -0
  486. package/dist/generated/room-flags.js.map +1 -0
  487. package/dist/generated/rooms.d.ts +122 -0
  488. package/dist/generated/rooms.d.ts.map +1 -0
  489. package/dist/generated/rooms.js +48 -0
  490. package/dist/generated/rooms.js.map +1 -0
  491. package/dist/generated/square-flags.d.ts +96 -0
  492. package/dist/generated/square-flags.d.ts.map +1 -0
  493. package/dist/generated/square-flags.js +54 -0
  494. package/dist/generated/square-flags.js.map +1 -0
  495. package/dist/generated/stats.d.ts +23 -0
  496. package/dist/generated/stats.d.ts.map +1 -0
  497. package/dist/generated/stats.js +20 -0
  498. package/dist/generated/stats.js.map +1 -0
  499. package/dist/generated/terrain-flags.d.ts +136 -0
  500. package/dist/generated/terrain-flags.d.ts.map +1 -0
  501. package/dist/generated/terrain-flags.js +74 -0
  502. package/dist/generated/terrain-flags.js.map +1 -0
  503. package/dist/generated/terrain.d.ts +83 -0
  504. package/dist/generated/terrain.d.ts.map +1 -0
  505. package/dist/generated/terrain.js +60 -0
  506. package/dist/generated/terrain.js.map +1 -0
  507. package/dist/generated/trap-flags.d.ts +68 -0
  508. package/dist/generated/trap-flags.d.ts.map +1 -0
  509. package/dist/generated/trap-flags.js +40 -0
  510. package/dist/generated/trap-flags.js.map +1 -0
  511. package/dist/generated/tvals.d.ts +152 -0
  512. package/dist/generated/tvals.d.ts.map +1 -0
  513. package/dist/generated/tvals.js +82 -0
  514. package/dist/generated/tvals.js.map +1 -0
  515. package/dist/generated/ui-entry-renderers.d.ts +62 -0
  516. package/dist/generated/ui-entry-renderers.d.ts.map +1 -0
  517. package/dist/generated/ui-entry-renderers.js +22 -0
  518. package/dist/generated/ui-entry-renderers.js.map +1 -0
  519. package/dist/guard.d.ts +43 -0
  520. package/dist/guard.d.ts.map +1 -0
  521. package/dist/guard.js +65 -0
  522. package/dist/guard.js.map +1 -0
  523. package/dist/host/args.d.ts +129 -0
  524. package/dist/host/args.d.ts.map +1 -0
  525. package/dist/host/args.js +251 -0
  526. package/dist/host/args.js.map +1 -0
  527. package/dist/host/bridge.d.ts +61 -0
  528. package/dist/host/bridge.d.ts.map +1 -0
  529. package/dist/host/bridge.js +176 -0
  530. package/dist/host/bridge.js.map +1 -0
  531. package/dist/host/index.d.ts +18 -0
  532. package/dist/host/index.d.ts.map +1 -0
  533. package/dist/host/index.js +18 -0
  534. package/dist/host/index.js.map +1 -0
  535. package/dist/host/io.d.ts +169 -0
  536. package/dist/host/io.d.ts.map +1 -0
  537. package/dist/host/io.js +137 -0
  538. package/dist/host/io.js.map +1 -0
  539. package/dist/host/memory.d.ts +56 -0
  540. package/dist/host/memory.d.ts.map +1 -0
  541. package/dist/host/memory.js +105 -0
  542. package/dist/host/memory.js.map +1 -0
  543. package/dist/host/raw.d.ts +114 -0
  544. package/dist/host/raw.d.ts.map +1 -0
  545. package/dist/host/raw.js +107 -0
  546. package/dist/host/raw.js.map +1 -0
  547. package/dist/index.d.ts +180 -0
  548. package/dist/index.d.ts.map +1 -0
  549. package/dist/index.js +222 -0
  550. package/dist/index.js.map +1 -0
  551. package/dist/loc.d.ts +63 -0
  552. package/dist/loc.d.ts.map +1 -0
  553. package/dist/loc.js +128 -0
  554. package/dist/loc.js.map +1 -0
  555. package/dist/mod/hooks.d.ts +204 -0
  556. package/dist/mod/hooks.d.ts.map +1 -0
  557. package/dist/mod/hooks.js +161 -0
  558. package/dist/mod/hooks.js.map +1 -0
  559. package/dist/mod/ids.d.ts +160 -0
  560. package/dist/mod/ids.d.ts.map +1 -0
  561. package/dist/mod/ids.js +343 -0
  562. package/dist/mod/ids.js.map +1 -0
  563. package/dist/mod/registry-host.d.ts +156 -0
  564. package/dist/mod/registry-host.d.ts.map +1 -0
  565. package/dist/mod/registry-host.js +142 -0
  566. package/dist/mod/registry-host.js.map +1 -0
  567. package/dist/mod/save-blocks.d.ts +201 -0
  568. package/dist/mod/save-blocks.d.ts.map +1 -0
  569. package/dist/mod/save-blocks.js +640 -0
  570. package/dist/mod/save-blocks.js.map +1 -0
  571. package/dist/mod/vocabulary.d.ts +104 -0
  572. package/dist/mod/vocabulary.d.ts.map +1 -0
  573. package/dist/mod/vocabulary.js +0 -0
  574. package/dist/mod/vocabulary.js.map +1 -0
  575. package/dist/mon/bind.d.ts +266 -0
  576. package/dist/mon/bind.d.ts.map +1 -0
  577. package/dist/mon/bind.js +610 -0
  578. package/dist/mon/bind.js.map +1 -0
  579. package/dist/mon/desc.d.ts +72 -0
  580. package/dist/mon/desc.d.ts.map +1 -0
  581. package/dist/mon/desc.js +237 -0
  582. package/dist/mon/desc.js.map +1 -0
  583. package/dist/mon/knowledge-groups.d.ts +61 -0
  584. package/dist/mon/knowledge-groups.d.ts.map +1 -0
  585. package/dist/mon/knowledge-groups.js +121 -0
  586. package/dist/mon/knowledge-groups.js.map +1 -0
  587. package/dist/mon/lore-describe.d.ts +216 -0
  588. package/dist/mon/lore-describe.d.ts.map +1 -0
  589. package/dist/mon/lore-describe.js +1105 -0
  590. package/dist/mon/lore-describe.js.map +1 -0
  591. package/dist/mon/lore.d.ts +117 -0
  592. package/dist/mon/lore.d.ts.map +1 -0
  593. package/dist/mon/lore.js +221 -0
  594. package/dist/mon/lore.js.map +1 -0
  595. package/dist/mon/make.d.ts +147 -0
  596. package/dist/mon/make.d.ts.map +1 -0
  597. package/dist/mon/make.js +353 -0
  598. package/dist/mon/make.js.map +1 -0
  599. package/dist/mon/monster.d.ts +94 -0
  600. package/dist/mon/monster.d.ts.map +1 -0
  601. package/dist/mon/monster.js +90 -0
  602. package/dist/mon/monster.js.map +1 -0
  603. package/dist/mon/predicate.d.ts +87 -0
  604. package/dist/mon/predicate.d.ts.map +1 -0
  605. package/dist/mon/predicate.js +190 -0
  606. package/dist/mon/predicate.js.map +1 -0
  607. package/dist/mon/project-mon.d.ts +129 -0
  608. package/dist/mon/project-mon.d.ts.map +1 -0
  609. package/dist/mon/project-mon.js +652 -0
  610. package/dist/mon/project-mon.js.map +1 -0
  611. package/dist/mon/spell.d.ts +155 -0
  612. package/dist/mon/spell.d.ts.map +1 -0
  613. package/dist/mon/spell.js +355 -0
  614. package/dist/mon/spell.js.map +1 -0
  615. package/dist/mon/steal.d.ts +112 -0
  616. package/dist/mon/steal.d.ts.map +1 -0
  617. package/dist/mon/steal.js +163 -0
  618. package/dist/mon/steal.js.map +1 -0
  619. package/dist/mon/summon.d.ts +62 -0
  620. package/dist/mon/summon.d.ts.map +1 -0
  621. package/dist/mon/summon.js +111 -0
  622. package/dist/mon/summon.js.map +1 -0
  623. package/dist/mon/take-hit.d.ts +75 -0
  624. package/dist/mon/take-hit.d.ts.map +1 -0
  625. package/dist/mon/take-hit.js +122 -0
  626. package/dist/mon/take-hit.js.map +1 -0
  627. package/dist/mon/timed.d.ts +74 -0
  628. package/dist/mon/timed.d.ts.map +1 -0
  629. package/dist/mon/timed.js +219 -0
  630. package/dist/mon/timed.js.map +1 -0
  631. package/dist/mon/types.d.ts +252 -0
  632. package/dist/mon/types.d.ts.map +1 -0
  633. package/dist/mon/types.js +46 -0
  634. package/dist/mon/types.js.map +1 -0
  635. package/dist/msg.d.ts +71 -0
  636. package/dist/msg.d.ts.map +1 -0
  637. package/dist/msg.js +126 -0
  638. package/dist/msg.js.map +1 -0
  639. package/dist/obj/artifact-fake.d.ts +39 -0
  640. package/dist/obj/artifact-fake.d.ts.map +1 -0
  641. package/dist/obj/artifact-fake.js +52 -0
  642. package/dist/obj/artifact-fake.js.map +1 -0
  643. package/dist/obj/artifact-known.d.ts +50 -0
  644. package/dist/obj/artifact-known.d.ts.map +1 -0
  645. package/dist/obj/artifact-known.js +55 -0
  646. package/dist/obj/artifact-known.js.map +1 -0
  647. package/dist/obj/bind.d.ts +219 -0
  648. package/dist/obj/bind.d.ts.map +1 -0
  649. package/dist/obj/bind.js +1239 -0
  650. package/dist/obj/bind.js.map +1 -0
  651. package/dist/obj/chest.d.ts +91 -0
  652. package/dist/obj/chest.d.ts.map +1 -0
  653. package/dist/obj/chest.js +220 -0
  654. package/dist/obj/chest.js.map +1 -0
  655. package/dist/obj/desc.d.ts +79 -0
  656. package/dist/obj/desc.d.ts.map +1 -0
  657. package/dist/obj/desc.js +602 -0
  658. package/dist/obj/desc.js.map +1 -0
  659. package/dist/obj/effects-info.d.ts +78 -0
  660. package/dist/obj/effects-info.d.ts.map +1 -0
  661. package/dist/obj/effects-info.js +240 -0
  662. package/dist/obj/effects-info.js.map +1 -0
  663. package/dist/obj/flavor.d.ts +68 -0
  664. package/dist/obj/flavor.d.ts.map +1 -0
  665. package/dist/obj/flavor.js +201 -0
  666. package/dist/obj/flavor.js.map +1 -0
  667. package/dist/obj/ignore.d.ts +143 -0
  668. package/dist/obj/ignore.d.ts.map +1 -0
  669. package/dist/obj/ignore.js +345 -0
  670. package/dist/obj/ignore.js.map +1 -0
  671. package/dist/obj/knowledge.d.ts +520 -0
  672. package/dist/obj/knowledge.d.ts.map +1 -0
  673. package/dist/obj/knowledge.js +1364 -0
  674. package/dist/obj/knowledge.js.map +1 -0
  675. package/dist/obj/known-object.d.ts +293 -0
  676. package/dist/obj/known-object.d.ts.map +1 -0
  677. package/dist/obj/known-object.js +532 -0
  678. package/dist/obj/known-object.js.map +1 -0
  679. package/dist/obj/make.d.ts +292 -0
  680. package/dist/obj/make.d.ts.map +1 -0
  681. package/dist/obj/make.js +1055 -0
  682. package/dist/obj/make.js.map +1 -0
  683. package/dist/obj/object-info.d.ts +188 -0
  684. package/dist/obj/object-info.d.ts.map +1 -0
  685. package/dist/obj/object-info.js +1407 -0
  686. package/dist/obj/object-info.js.map +1 -0
  687. package/dist/obj/object.d.ts +335 -0
  688. package/dist/obj/object.d.ts.map +1 -0
  689. package/dist/obj/object.js +1051 -0
  690. package/dist/obj/object.js.map +1 -0
  691. package/dist/obj/power.d.ts +65 -0
  692. package/dist/obj/power.d.ts.map +1 -0
  693. package/dist/obj/power.js +580 -0
  694. package/dist/obj/power.js.map +1 -0
  695. package/dist/obj/randart-build.d.ts +223 -0
  696. package/dist/obj/randart-build.d.ts.map +1 -0
  697. package/dist/obj/randart-build.js +1444 -0
  698. package/dist/obj/randart-build.js.map +1 -0
  699. package/dist/obj/randart-data.d.ts +179 -0
  700. package/dist/obj/randart-data.d.ts.map +1 -0
  701. package/dist/obj/randart-data.js +1153 -0
  702. package/dist/obj/randart-data.js.map +1 -0
  703. package/dist/obj/randart.d.ts +128 -0
  704. package/dist/obj/randart.d.ts.map +1 -0
  705. package/dist/obj/randart.js +458 -0
  706. package/dist/obj/randart.js.map +1 -0
  707. package/dist/obj/randname.d.ts +33 -0
  708. package/dist/obj/randname.d.ts.map +1 -0
  709. package/dist/obj/randname.js +116 -0
  710. package/dist/obj/randname.js.map +1 -0
  711. package/dist/obj/recharge.d.ts +28 -0
  712. package/dist/obj/recharge.d.ts.map +1 -0
  713. package/dist/obj/recharge.js +52 -0
  714. package/dist/obj/recharge.js.map +1 -0
  715. package/dist/obj/types.d.ts +584 -0
  716. package/dist/obj/types.d.ts.map +1 -0
  717. package/dist/obj/types.js +104 -0
  718. package/dist/obj/types.js.map +1 -0
  719. package/dist/obj/value.d.ts +64 -0
  720. package/dist/obj/value.d.ts.map +1 -0
  721. package/dist/obj/value.js +176 -0
  722. package/dist/obj/value.js.map +1 -0
  723. package/dist/player/abilities.d.ts +57 -0
  724. package/dist/player/abilities.d.ts.map +1 -0
  725. package/dist/player/abilities.js +118 -0
  726. package/dist/player/abilities.js.map +1 -0
  727. package/dist/player/best-digger.d.ts +42 -0
  728. package/dist/player/best-digger.d.ts.map +1 -0
  729. package/dist/player/best-digger.js +89 -0
  730. package/dist/player/best-digger.js.map +1 -0
  731. package/dist/player/bind.d.ts +270 -0
  732. package/dist/player/bind.d.ts.map +1 -0
  733. package/dist/player/bind.js +698 -0
  734. package/dist/player/bind.js.map +1 -0
  735. package/dist/player/birth.d.ts +258 -0
  736. package/dist/player/birth.d.ts.map +1 -0
  737. package/dist/player/birth.js +639 -0
  738. package/dist/player/birth.js.map +1 -0
  739. package/dist/player/calcs.d.ts +403 -0
  740. package/dist/player/calcs.d.ts.map +1 -0
  741. package/dist/player/calcs.js +1189 -0
  742. package/dist/player/calcs.js.map +1 -0
  743. package/dist/player/combat-regen.d.ts +14 -0
  744. package/dist/player/combat-regen.d.ts.map +1 -0
  745. package/dist/player/combat-regen.js +29 -0
  746. package/dist/player/combat-regen.js.map +1 -0
  747. package/dist/player/exp.d.ts +96 -0
  748. package/dist/player/exp.d.ts.map +1 -0
  749. package/dist/player/exp.js +229 -0
  750. package/dist/player/exp.js.map +1 -0
  751. package/dist/player/history.d.ts +91 -0
  752. package/dist/player/history.d.ts.map +1 -0
  753. package/dist/player/history.js +145 -0
  754. package/dist/player/history.js.map +1 -0
  755. package/dist/player/options.d.ts +123 -0
  756. package/dist/player/options.d.ts.map +1 -0
  757. package/dist/player/options.js +199 -0
  758. package/dist/player/options.js.map +1 -0
  759. package/dist/player/player.d.ts +242 -0
  760. package/dist/player/player.d.ts.map +1 -0
  761. package/dist/player/player.js +119 -0
  762. package/dist/player/player.js.map +1 -0
  763. package/dist/player/shape-lore.d.ts +56 -0
  764. package/dist/player/shape-lore.d.ts.map +1 -0
  765. package/dist/player/shape-lore.js +221 -0
  766. package/dist/player/shape-lore.js.map +1 -0
  767. package/dist/player/spell.d.ts +146 -0
  768. package/dist/player/spell.d.ts.map +1 -0
  769. package/dist/player/spell.js +519 -0
  770. package/dist/player/spell.js.map +1 -0
  771. package/dist/player/take-hit.d.ts +87 -0
  772. package/dist/player/take-hit.d.ts.map +1 -0
  773. package/dist/player/take-hit.js +99 -0
  774. package/dist/player/take-hit.js.map +1 -0
  775. package/dist/player/timed.d.ts +205 -0
  776. package/dist/player/timed.d.ts.map +1 -0
  777. package/dist/player/timed.js +310 -0
  778. package/dist/player/timed.js.map +1 -0
  779. package/dist/player/types.d.ts +390 -0
  780. package/dist/player/types.d.ts.map +1 -0
  781. package/dist/player/types.js +51 -0
  782. package/dist/player/types.js.map +1 -0
  783. package/dist/rational.d.ts +99 -0
  784. package/dist/rational.d.ts.map +1 -0
  785. package/dist/rational.js +345 -0
  786. package/dist/rational.js.map +1 -0
  787. package/dist/rng.d.ts +168 -0
  788. package/dist/rng.d.ts.map +1 -0
  789. package/dist/rng.js +404 -0
  790. package/dist/rng.js.map +1 -0
  791. package/dist/save/buffer.d.ts +120 -0
  792. package/dist/save/buffer.d.ts.map +1 -0
  793. package/dist/save/buffer.js +238 -0
  794. package/dist/save/buffer.js.map +1 -0
  795. package/dist/save/compress.d.ts +79 -0
  796. package/dist/save/compress.d.ts.map +1 -0
  797. package/dist/save/compress.js +97 -0
  798. package/dist/save/compress.js.map +1 -0
  799. package/dist/save/description.d.ts +61 -0
  800. package/dist/save/description.d.ts.map +1 -0
  801. package/dist/save/description.js +51 -0
  802. package/dist/save/description.js.map +1 -0
  803. package/dist/save/integrity.d.ts +59 -0
  804. package/dist/save/integrity.d.ts.map +1 -0
  805. package/dist/save/integrity.js +103 -0
  806. package/dist/save/integrity.js.map +1 -0
  807. package/dist/score/display.d.ts +40 -0
  808. package/dist/score/display.d.ts.map +1 -0
  809. package/dist/score/display.js +86 -0
  810. package/dist/score/display.js.map +1 -0
  811. package/dist/score/score.d.ts +166 -0
  812. package/dist/score/score.d.ts.map +1 -0
  813. package/dist/score/score.js +244 -0
  814. package/dist/score/score.js.map +1 -0
  815. package/dist/score/types.d.ts +98 -0
  816. package/dist/score/types.d.ts.map +1 -0
  817. package/dist/score/types.js +27 -0
  818. package/dist/score/types.js.map +1 -0
  819. package/dist/session/boot.d.ts +207 -0
  820. package/dist/session/boot.d.ts.map +1 -0
  821. package/dist/session/boot.js +151 -0
  822. package/dist/session/boot.js.map +1 -0
  823. package/dist/session/game.d.ts +257 -0
  824. package/dist/session/game.d.ts.map +1 -0
  825. package/dist/session/game.js +2880 -0
  826. package/dist/session/game.js.map +1 -0
  827. package/dist/session/save.d.ts +847 -0
  828. package/dist/session/save.d.ts.map +1 -0
  829. package/dist/session/save.js +1306 -0
  830. package/dist/session/save.js.map +1 -0
  831. package/dist/sound/engine.d.ts +146 -0
  832. package/dist/sound/engine.d.ts.map +1 -0
  833. package/dist/sound/engine.js +332 -0
  834. package/dist/sound/engine.js.map +1 -0
  835. package/dist/sound/index.d.ts +13 -0
  836. package/dist/sound/index.d.ts.map +1 -0
  837. package/dist/sound/index.js +13 -0
  838. package/dist/sound/index.js.map +1 -0
  839. package/dist/sound/sound-prefs-data.d.ts +10 -0
  840. package/dist/sound/sound-prefs-data.d.ts.map +1 -0
  841. package/dist/sound/sound-prefs-data.js +165 -0
  842. package/dist/sound/sound-prefs-data.js.map +1 -0
  843. package/dist/sound/types.d.ts +64 -0
  844. package/dist/sound/types.d.ts.map +1 -0
  845. package/dist/sound/types.js +23 -0
  846. package/dist/sound/types.js.map +1 -0
  847. package/dist/store/bind.d.ts +43 -0
  848. package/dist/store/bind.d.ts.map +1 -0
  849. package/dist/store/bind.js +130 -0
  850. package/dist/store/bind.js.map +1 -0
  851. package/dist/store/price.d.ts +27 -0
  852. package/dist/store/price.d.ts.map +1 -0
  853. package/dist/store/price.js +81 -0
  854. package/dist/store/price.js.map +1 -0
  855. package/dist/store/store-cmd.d.ts +51 -0
  856. package/dist/store/store-cmd.d.ts.map +1 -0
  857. package/dist/store/store-cmd.js +73 -0
  858. package/dist/store/store-cmd.js.map +1 -0
  859. package/dist/store/store.d.ts +156 -0
  860. package/dist/store/store.d.ts.map +1 -0
  861. package/dist/store/store.js +616 -0
  862. package/dist/store/store.js.map +1 -0
  863. package/dist/store/transact.d.ts +198 -0
  864. package/dist/store/transact.d.ts.map +1 -0
  865. package/dist/store/transact.js +383 -0
  866. package/dist/store/transact.js.map +1 -0
  867. package/dist/store/types.d.ts +101 -0
  868. package/dist/store/types.d.ts.map +1 -0
  869. package/dist/store/types.js +14 -0
  870. package/dist/store/types.js.map +1 -0
  871. package/dist/version.d.ts +25 -0
  872. package/dist/version.d.ts.map +1 -0
  873. package/dist/version.js +25 -0
  874. package/dist/version.js.map +1 -0
  875. package/dist/visuals/engine.d.ts +223 -0
  876. package/dist/visuals/engine.d.ts.map +1 -0
  877. package/dist/visuals/engine.js +357 -0
  878. package/dist/visuals/engine.js.map +1 -0
  879. package/dist/visuals/glyph-table.d.ts +112 -0
  880. package/dist/visuals/glyph-table.d.ts.map +1 -0
  881. package/dist/visuals/glyph-table.js +156 -0
  882. package/dist/visuals/glyph-table.js.map +1 -0
  883. package/dist/visuals/grafmode-data.d.ts +4 -0
  884. package/dist/visuals/grafmode-data.d.ts.map +1 -0
  885. package/dist/visuals/grafmode-data.js +88 -0
  886. package/dist/visuals/grafmode-data.js.map +1 -0
  887. package/dist/visuals/grafmode.d.ts +83 -0
  888. package/dist/visuals/grafmode.d.ts.map +1 -0
  889. package/dist/visuals/grafmode.js +82 -0
  890. package/dist/visuals/grafmode.js.map +1 -0
  891. package/dist/visuals/index.d.ts +19 -0
  892. package/dist/visuals/index.d.ts.map +1 -0
  893. package/dist/visuals/index.js +19 -0
  894. package/dist/visuals/index.js.map +1 -0
  895. package/dist/visuals/map-text.d.ts +79 -0
  896. package/dist/visuals/map-text.d.ts.map +1 -0
  897. package/dist/visuals/map-text.js +122 -0
  898. package/dist/visuals/map-text.js.map +1 -0
  899. package/dist/visuals/pref-expr.d.ts +56 -0
  900. package/dist/visuals/pref-expr.d.ts.map +1 -0
  901. package/dist/visuals/pref-expr.js +173 -0
  902. package/dist/visuals/pref-expr.js.map +1 -0
  903. package/dist/visuals/prefs.d.ts +280 -0
  904. package/dist/visuals/prefs.d.ts.map +1 -0
  905. package/dist/visuals/prefs.js +835 -0
  906. package/dist/visuals/prefs.js.map +1 -0
  907. package/dist/visuals/tile-prefs.d.ts +132 -0
  908. package/dist/visuals/tile-prefs.d.ts.map +1 -0
  909. package/dist/visuals/tile-prefs.js +105 -0
  910. package/dist/visuals/tile-prefs.js.map +1 -0
  911. package/dist/world/chunk.d.ts +195 -0
  912. package/dist/world/chunk.d.ts.map +1 -0
  913. package/dist/world/chunk.js +422 -0
  914. package/dist/world/chunk.js.map +1 -0
  915. package/dist/world/feature.d.ts +86 -0
  916. package/dist/world/feature.d.ts.map +1 -0
  917. package/dist/world/feature.js +153 -0
  918. package/dist/world/feature.js.map +1 -0
  919. package/dist/world/flow.d.ts +33 -0
  920. package/dist/world/flow.d.ts.map +1 -0
  921. package/dist/world/flow.js +115 -0
  922. package/dist/world/flow.js.map +1 -0
  923. package/dist/world/project.d.ts +176 -0
  924. package/dist/world/project.d.ts.map +1 -0
  925. package/dist/world/project.js +543 -0
  926. package/dist/world/project.js.map +1 -0
  927. package/dist/world/projection.d.ts +100 -0
  928. package/dist/world/projection.d.ts.map +1 -0
  929. package/dist/world/projection.js +152 -0
  930. package/dist/world/projection.js.map +1 -0
  931. package/dist/world/scatter.d.ts +25 -0
  932. package/dist/world/scatter.d.ts.map +1 -0
  933. package/dist/world/scatter.js +54 -0
  934. package/dist/world/scatter.js.map +1 -0
  935. package/dist/world/trap.d.ts +84 -0
  936. package/dist/world/trap.d.ts.map +1 -0
  937. package/dist/world/trap.js +106 -0
  938. package/dist/world/trap.js.map +1 -0
  939. package/dist/world/view.d.ts +60 -0
  940. package/dist/world/view.d.ts.map +1 -0
  941. package/dist/world/view.js +436 -0
  942. package/dist/world/view.js.map +1 -0
  943. package/dist/z-queue.d.ts +133 -0
  944. package/dist/z-queue.d.ts.map +1 -0
  945. package/dist/z-queue.js +283 -0
  946. package/dist/z-queue.js.map +1 -0
  947. package/package.json +75 -0
  948. package/src/agent/act.ts +114 -0
  949. package/src/agent/controller.ts +109 -0
  950. package/src/agent/events.ts +47 -0
  951. package/src/agent/index.ts +36 -0
  952. package/src/agent/perceive.ts +440 -0
  953. package/src/agent/types.ts +464 -0
  954. package/src/bitflag.ts +536 -0
  955. package/src/cmd.ts +547 -0
  956. package/src/color.ts +267 -0
  957. package/src/combat/brand-slay.ts +360 -0
  958. package/src/combat/hit.ts +471 -0
  959. package/src/combat/index.ts +15 -0
  960. package/src/combat/melee.ts +728 -0
  961. package/src/combat/mon-melee.ts +1153 -0
  962. package/src/combat/ranged.ts +397 -0
  963. package/src/constants.ts +324 -0
  964. package/src/dice.ts +467 -0
  965. package/src/effects/effect-choice.ts +32 -0
  966. package/src/effects/effect-info.ts +859 -0
  967. package/src/effects/effect.ts +560 -0
  968. package/src/effects/handlers.ts +452 -0
  969. package/src/effects/interpreter.ts +603 -0
  970. package/src/events.ts +317 -0
  971. package/src/expression.ts +360 -0
  972. package/src/game/cave-cmd.ts +1147 -0
  973. package/src/game/char-sheet.ts +557 -0
  974. package/src/game/chest.ts +348 -0
  975. package/src/game/context.ts +1218 -0
  976. package/src/game/curse-tick.ts +130 -0
  977. package/src/game/describe.ts +62 -0
  978. package/src/game/display.ts +838 -0
  979. package/src/game/dump-level.ts +114 -0
  980. package/src/game/effect-attack.ts +746 -0
  981. package/src/game/effect-detect.ts +542 -0
  982. package/src/game/effect-env.ts +252 -0
  983. package/src/game/effect-game-env.ts +86 -0
  984. package/src/game/effect-general.ts +1122 -0
  985. package/src/game/effect-item.ts +999 -0
  986. package/src/game/effect-melee.ts +557 -0
  987. package/src/game/effect-mon-origin.ts +196 -0
  988. package/src/game/effect-monster.ts +310 -0
  989. package/src/game/effect-summon.ts +161 -0
  990. package/src/game/effect-teleport.ts +645 -0
  991. package/src/game/effect-terrain.ts +881 -0
  992. package/src/game/energy.ts +61 -0
  993. package/src/game/equip-cmp.ts +476 -0
  994. package/src/game/floor.ts +524 -0
  995. package/src/game/gear.ts +1352 -0
  996. package/src/game/harness.ts +270 -0
  997. package/src/game/history.ts +78 -0
  998. package/src/game/ignore-cmd.ts +68 -0
  999. package/src/game/inscription-confirm.ts +115 -0
  1000. package/src/game/known.ts +960 -0
  1001. package/src/game/loop.ts +671 -0
  1002. package/src/game/lore-color.ts +108 -0
  1003. package/src/game/mon-cast.ts +409 -0
  1004. package/src/game/mon-cmd.ts +767 -0
  1005. package/src/game/mon-death.ts +459 -0
  1006. package/src/game/mon-group.ts +368 -0
  1007. package/src/game/mon-list.ts +213 -0
  1008. package/src/game/mon-message.ts +359 -0
  1009. package/src/game/mon-place.ts +1012 -0
  1010. package/src/game/mon-ranged.ts +405 -0
  1011. package/src/game/mon-shape.ts +161 -0
  1012. package/src/game/mon-side.ts +511 -0
  1013. package/src/game/monster-turn.ts +1750 -0
  1014. package/src/game/obj-cmd.ts +1970 -0
  1015. package/src/game/obj-list.ts +302 -0
  1016. package/src/game/object-inspect.ts +162 -0
  1017. package/src/game/pickup.ts +483 -0
  1018. package/src/game/player-path.ts +1434 -0
  1019. package/src/game/player-side.ts +555 -0
  1020. package/src/game/player-turn.ts +852 -0
  1021. package/src/game/project-cast.ts +766 -0
  1022. package/src/game/project-feat.ts +386 -0
  1023. package/src/game/project-monster.ts +407 -0
  1024. package/src/game/project-obj.ts +298 -0
  1025. package/src/game/project-player.ts +236 -0
  1026. package/src/game/quest.ts +248 -0
  1027. package/src/game/ranged-cmd.ts +417 -0
  1028. package/src/game/scheduler.ts +150 -0
  1029. package/src/game/spell-cmd.ts +404 -0
  1030. package/src/game/spoil.ts +562 -0
  1031. package/src/game/steal.ts +169 -0
  1032. package/src/game/take-hit-hooks.ts +152 -0
  1033. package/src/game/target-loop.ts +501 -0
  1034. package/src/game/target.ts +424 -0
  1035. package/src/game/thrust.ts +174 -0
  1036. package/src/game/trap.ts +791 -0
  1037. package/src/game/ui-entry.ts +2075 -0
  1038. package/src/game/wizard.ts +1760 -0
  1039. package/src/game/world.ts +786 -0
  1040. package/src/gen/cave.ts +2858 -0
  1041. package/src/gen/gen-monster.ts +592 -0
  1042. package/src/gen/generate.ts +523 -0
  1043. package/src/gen/room.ts +2213 -0
  1044. package/src/gen/util.ts +1958 -0
  1045. package/src/generated/dun-profiles.ts +30 -0
  1046. package/src/generated/effects.ts +241 -0
  1047. package/src/generated/elements.ts +62 -0
  1048. package/src/generated/equip-slots.ts +36 -0
  1049. package/src/generated/history-types.ts +34 -0
  1050. package/src/generated/ignore-types.ts +66 -0
  1051. package/src/generated/index.ts +33 -0
  1052. package/src/generated/kind-flags.ts +44 -0
  1053. package/src/generated/message.ts +320 -0
  1054. package/src/generated/mon-message.ts +138 -0
  1055. package/src/generated/mon-race-flags.ts +182 -0
  1056. package/src/generated/mon-spells.ts +198 -0
  1057. package/src/generated/mon-temp-flags.ts +34 -0
  1058. package/src/generated/mon-timed.ts +34 -0
  1059. package/src/generated/object-flags.ts +95 -0
  1060. package/src/generated/object-modifiers.ts +43 -0
  1061. package/src/generated/options.ts +104 -0
  1062. package/src/generated/origins.ts +64 -0
  1063. package/src/generated/parser-errors.ts +140 -0
  1064. package/src/generated/player-flags.ts +48 -0
  1065. package/src/generated/player-timed.ts +118 -0
  1066. package/src/generated/projections.ts +103 -0
  1067. package/src/generated/randart-properties.ts +202 -0
  1068. package/src/generated/room-flags.ts +21 -0
  1069. package/src/generated/rooms.ts +50 -0
  1070. package/src/generated/square-flags.ts +56 -0
  1071. package/src/generated/stats.ts +22 -0
  1072. package/src/generated/terrain-flags.ts +76 -0
  1073. package/src/generated/terrain.ts +62 -0
  1074. package/src/generated/trap-flags.ts +42 -0
  1075. package/src/generated/tvals.ts +84 -0
  1076. package/src/generated/ui-entry-renderers.ts +24 -0
  1077. package/src/guard.ts +70 -0
  1078. package/src/host/args.ts +334 -0
  1079. package/src/host/bridge.ts +193 -0
  1080. package/src/host/index.ts +18 -0
  1081. package/src/host/io.ts +239 -0
  1082. package/src/host/memory.ts +134 -0
  1083. package/src/host/raw.ts +190 -0
  1084. package/src/index.ts +250 -0
  1085. package/src/loc.ts +157 -0
  1086. package/src/mod/hooks.ts +278 -0
  1087. package/src/mod/ids.ts +390 -0
  1088. package/src/mod/registry-host.ts +258 -0
  1089. package/src/mod/save-blocks.ts +787 -0
  1090. package/src/mod/vocabulary.ts +0 -0
  1091. package/src/mon/bind.ts +899 -0
  1092. package/src/mon/desc.ts +212 -0
  1093. package/src/mon/knowledge-groups.ts +164 -0
  1094. package/src/mon/lore-describe.ts +1414 -0
  1095. package/src/mon/lore.ts +306 -0
  1096. package/src/mon/make.ts +422 -0
  1097. package/src/mon/monster.ts +161 -0
  1098. package/src/mon/predicate.ts +220 -0
  1099. package/src/mon/project-mon.ts +855 -0
  1100. package/src/mon/spell.ts +418 -0
  1101. package/src/mon/steal.ts +246 -0
  1102. package/src/mon/summon.ts +145 -0
  1103. package/src/mon/take-hit.ts +195 -0
  1104. package/src/mon/timed.ts +300 -0
  1105. package/src/mon/types.ts +286 -0
  1106. package/src/msg.ts +146 -0
  1107. package/src/obj/artifact-fake.ts +63 -0
  1108. package/src/obj/artifact-known.ts +69 -0
  1109. package/src/obj/bind.ts +1345 -0
  1110. package/src/obj/chest.ts +249 -0
  1111. package/src/obj/desc.ts +699 -0
  1112. package/src/obj/effects-info.ts +349 -0
  1113. package/src/obj/flavor.ts +256 -0
  1114. package/src/obj/ignore.ts +387 -0
  1115. package/src/obj/knowledge.ts +1577 -0
  1116. package/src/obj/known-object.ts +718 -0
  1117. package/src/obj/make.ts +1367 -0
  1118. package/src/obj/object-info.ts +1737 -0
  1119. package/src/obj/object.ts +1296 -0
  1120. package/src/obj/power.ts +674 -0
  1121. package/src/obj/randart-build.ts +1705 -0
  1122. package/src/obj/randart-data.ts +1344 -0
  1123. package/src/obj/randart.ts +552 -0
  1124. package/src/obj/randname.ts +128 -0
  1125. package/src/obj/recharge.ts +62 -0
  1126. package/src/obj/types.ts +559 -0
  1127. package/src/obj/value.ts +215 -0
  1128. package/src/player/abilities.ts +142 -0
  1129. package/src/player/best-digger.ts +118 -0
  1130. package/src/player/bind.ts +1021 -0
  1131. package/src/player/birth.ts +794 -0
  1132. package/src/player/calcs.ts +1522 -0
  1133. package/src/player/combat-regen.ts +33 -0
  1134. package/src/player/exp.ts +275 -0
  1135. package/src/player/history.ts +211 -0
  1136. package/src/player/options.ts +244 -0
  1137. package/src/player/player.ts +356 -0
  1138. package/src/player/shape-lore.ts +250 -0
  1139. package/src/player/spell.ts +627 -0
  1140. package/src/player/take-hit.ts +173 -0
  1141. package/src/player/timed.ts +482 -0
  1142. package/src/player/types.ts +415 -0
  1143. package/src/rational.ts +388 -0
  1144. package/src/rng.ts +476 -0
  1145. package/src/save/buffer.ts +287 -0
  1146. package/src/save/compress.ts +132 -0
  1147. package/src/save/description.ts +70 -0
  1148. package/src/save/integrity.ts +133 -0
  1149. package/src/score/display.ts +125 -0
  1150. package/src/score/score.ts +341 -0
  1151. package/src/score/types.ts +104 -0
  1152. package/src/session/boot.ts +338 -0
  1153. package/src/session/game.ts +3712 -0
  1154. package/src/session/save.ts +2074 -0
  1155. package/src/sound/engine.ts +375 -0
  1156. package/src/sound/index.ts +13 -0
  1157. package/src/sound/sound-prefs-data.ts +173 -0
  1158. package/src/sound/types.ts +68 -0
  1159. package/src/store/bind.ts +145 -0
  1160. package/src/store/price.ts +97 -0
  1161. package/src/store/store-cmd.ts +73 -0
  1162. package/src/store/store.ts +723 -0
  1163. package/src/store/transact.ts +644 -0
  1164. package/src/store/types.ts +110 -0
  1165. package/src/version.ts +26 -0
  1166. package/src/visuals/engine.ts +444 -0
  1167. package/src/visuals/glyph-table.ts +191 -0
  1168. package/src/visuals/grafmode-data.ts +90 -0
  1169. package/src/visuals/grafmode.ts +123 -0
  1170. package/src/visuals/index.ts +19 -0
  1171. package/src/visuals/map-text.ts +152 -0
  1172. package/src/visuals/pref-expr.ts +182 -0
  1173. package/src/visuals/prefs.ts +981 -0
  1174. package/src/visuals/tile-prefs.ts +183 -0
  1175. package/src/world/chunk.ts +531 -0
  1176. package/src/world/feature.ts +215 -0
  1177. package/src/world/flow.ts +128 -0
  1178. package/src/world/project.ts +687 -0
  1179. package/src/world/projection.ts +228 -0
  1180. package/src/world/scatter.ts +72 -0
  1181. package/src/world/trap.ts +155 -0
  1182. package/src/world/view.ts +513 -0
  1183. package/src/z-queue.ts +300 -0
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Store transactions, ported from reference/src/store.c (Angband 4.2.6): the
3
+ * buy/sell/retrieve/stash commands and home_carry. This is the behavioural
4
+ * other half of the store subsystem, sitting on the stocking layer (store.ts),
5
+ * the pricing layer (price.ts), and the player pack model (game/gear.ts).
6
+ *
7
+ * The upstream commands are driven by the command queue (do_cmd_buy etc. read
8
+ * cmd_get_arg_item / cmd_get_arg_number); here each is a plain function that
9
+ * takes the object (or a pack handle) and amount directly, so the headless
10
+ * core can run a transaction without the UI command layer. The economic and
11
+ * inventory effects are faithful; the EVENT_* signals remain the caller's.
12
+ *
13
+ * LIVE vs DEFERRED (ledgered in parity/ledger/store-transact.yaml):
14
+ * - LIVE: the gold debit/credit, the pack-room gate (inven_carry_num), the
15
+ * price (price_item), the buy decision (store_will_buy), the stack split /
16
+ * excise (gear_object_for_use), store_carry / store_delete / store_check_num,
17
+ * the empty-store restock (store_maint x10 with the shopkeeper-shuffle roll),
18
+ * the ORIGIN_STORE stamp, the OF_STICKY "stuck" refusal, home_carry, and the
19
+ * comment_accept / purchase_analyze ONE_OF draws on the game RNG.
20
+ * - LIVE: the rune learn-on-transaction loop (object_learn_unknown_rune) on BOTH
21
+ * sides of the counter - selling (do_cmd_sell L1947-1953) and buying
22
+ * (do_cmd_buy L1736-1742) - plus flavor awareness when a FlavorKnowledge is
23
+ * supplied. The two were wired months apart, and while only the sell half
24
+ * existed a purchase left an item's runes unknown; the header said DEFERRED for
25
+ * both, which is how the asymmetry read as intentional.
26
+ * - Still DEFERRED: the obj->known twin, total_weight upkeep, autoinscription,
27
+ * and history_find/lose_artifact.
28
+ * - Deliberately ABSENT: the HOME teaches nothing (do_cmd_retrieve L1783-1851 and
29
+ * do_cmd_stash L2009 learn nothing at all), so homeRetrieve/homeStash have no
30
+ * learn block and must not gain one.
31
+ */
32
+ import type { Constants } from "../constants.js";
33
+ import type { GameObject } from "../obj/object.js";
34
+ import type { FlavorAwareDeps, FlavorKnowledge, Rune, RuneEnv } from "../obj/knowledge.js";
35
+ import type { Gear } from "../game/gear.js";
36
+ import type { Player } from "../player/player.js";
37
+ import type { Store, StoreMaintContext } from "./store.js";
38
+ /** Knowledge learned by transacting an item; runes are DEFERRED (task #13). */
39
+ export interface TxnKnowledge {
40
+ /** When supplied, buying/selling makes the kind's flavor known. */
41
+ flavor?: FlavorKnowledge;
42
+ /**
43
+ * The ignore/notice side effects of becoming aware (object_flavor_aware
44
+ * L2276-2279, #89). Only meaningful alongside `flavor`; the in-play caller
45
+ * (session/game.ts) supplies the real ignore-settings-backed deps, tests
46
+ * and other non-interactive callers fall back to NOOP_FLAVOR_AWARE_DEPS.
47
+ */
48
+ flavorDeps?: FlavorAwareDeps;
49
+ /** object_flavor_is_aware(obj), fed to object_value in price_item. */
50
+ aware: boolean;
51
+ /** OPT(player, birth_no_selling): the shop pays 0 and keeps the item. */
52
+ noSelling: boolean;
53
+ /** object_runes_known(obj), for store_will_buy's no-selling exception. */
54
+ runesKnown?: boolean;
55
+ /**
56
+ * Selling TEACHES the object's runes (do_cmd_sell L1946-1951):
57
+ *
58
+ * object_flavor_aware(player, obj);
59
+ * obj->known->effect = obj->effect;
60
+ * while (!object_fully_known(obj)) {
61
+ * object_learn_unknown_rune(player, obj);
62
+ * player_know_object(player, obj);
63
+ * }
64
+ *
65
+ * The shopkeeper appraises the item and you learn what they learned - so an
66
+ * unidentified torch sold to the store leaves its rune in your knowledge, not
67
+ * just its name. The port had only the flavor half, which is exactly the
68
+ * reported symptom: the name appeared and the rune did not.
69
+ *
70
+ * Optional so a caller with no rune environment (a store-maintenance test)
71
+ * keeps the bare flavor learn. object_learn_unknown_rune draws from the game
72
+ * RNG to pick which rune, so a caller that supplies this changes the draw
73
+ * sequence - as upstream's does.
74
+ */
75
+ learnRunes?: {
76
+ env: RuneEnv;
77
+ runes: readonly Rune[];
78
+ };
79
+ }
80
+ /** Why a purchase could not complete. */
81
+ export type BuyFailure = "not-in-stock" | "no-room" | "cannot-afford";
82
+ /**
83
+ * purchase_analyze's verbal-reaction bucket (store.c L491-508): how the paid
84
+ * price compared to the item's real value and the store's apparent guess.
85
+ */
86
+ export type SaleReaction = "worthless" | "bad" | "good" | "great";
87
+ /** The outcome of storeBuy. */
88
+ export interface BuyResult {
89
+ ok: boolean;
90
+ failure?: BuyFailure;
91
+ /** Gold paid (present on success). */
92
+ price?: number;
93
+ /** The object added to the player's pack (present on success). */
94
+ bought?: GameObject;
95
+ /**
96
+ * comment_accept line (do_cmd_buy L1717): set when one_in_(3) fires, drawn
97
+ * from the game RNG BEFORE any empty-store shuffle/maint so the stream order
98
+ * matches C. Absent when the Home retrieves or the roll fails.
99
+ */
100
+ acceptComment?: string;
101
+ /**
102
+ * store.c:1757-1763: when the purchase empties the store, the shopkeeper
103
+ * either retires (the shuffle roll) or brings out new stock, and SAYS so.
104
+ * "retired" | "restocked", absent when the store did not empty.
105
+ */
106
+ emptied?: "retired" | "restocked";
107
+ }
108
+ /**
109
+ * do_cmd_buy (L1650): buy `amt` of the store-stock object `obj`. Copies the
110
+ * desired amount, checks pack room and affordability, pays, carries it to the
111
+ * player, and reduces the store stock (restocking an emptied store). Learns the
112
+ * flavour, and every rune, on the way out - the same identification do_cmd_sell
113
+ * grants (L1736-1742 / L1947-1953).
114
+ */
115
+ export declare function storeBuy(ctx: StoreMaintContext, store: Store, obj: GameObject, amt: number, player: Player, gear: Gear, know: TxnKnowledge): BuyResult;
116
+ /** Why a sale could not complete. */
117
+ export type SellFailure = "no-item" | "stuck" | "refused" | "no-room";
118
+ /** The outcome of storeSell. */
119
+ export interface SellResult {
120
+ ok: boolean;
121
+ failure?: SellFailure;
122
+ /** Gold received (0 under birth_no_selling; present on success). */
123
+ price?: number;
124
+ /** The object handed to the store (present on success). */
125
+ sold?: GameObject;
126
+ /** True when the whole pack stack was sold. */
127
+ noneLeft?: boolean;
128
+ /**
129
+ * Whether store_carry accepted the sold object (do_cmd_sell L1985-1998).
130
+ * false means the store discarded it as worthless / no-room; the caller uses
131
+ * this to fire history_lose_artifact for a sold artifact the store rejected.
132
+ */
133
+ carried?: boolean;
134
+ /**
135
+ * purchase_analyze bucket (do_cmd_sell L1972): set on a successful non-Home
136
+ * sale when birth_no_selling is off. undefined for the Home, no-selling, or
137
+ * when no reaction fires.
138
+ */
139
+ reaction?: SaleReaction;
140
+ /**
141
+ * ONE_OF(comment_*) line drawn from the game RNG when a reaction fires
142
+ * (purchase_analyze L491-508). The shell prints this; the draw is spent here
143
+ * so Math.random never touches the main stream.
144
+ */
145
+ reactionComment?: string;
146
+ }
147
+ /**
148
+ * purchase_analyze (store.c L491-508): classify the shopkeeper's reaction from
149
+ * the gold paid, the item's real value, and its apparent (guessed) value.
150
+ */
151
+ export declare function purchaseAnalyze(price: number, value: number, guess: number): SaleReaction | undefined;
152
+ /**
153
+ * do_cmd_sell (L1869): sell `amt` of the gear object at `handle` to the store.
154
+ * Refuses stuck equipped items and items the store will not buy, checks the
155
+ * store has room, pays the player, detaches the items, and hands them to the
156
+ * store. Flavor becomes known; rune learning is DEFERRED (task #13).
157
+ */
158
+ export declare function storeSell(ctx: StoreMaintContext, store: Store, handle: number, amt: number, player: Player, gear: Gear, know: TxnKnowledge): SellResult;
159
+ /**
160
+ * store_sell for a FLOOR object (USE_FLOOR, ui-store.c L487 get_mode): the
161
+ * player's own grid can hold a pile when a store is entered (entering does not
162
+ * move the player onto the store feature), so a floor item is a valid sell
163
+ * source. No equip/stuck guard applies (a floor object is never equipped); the
164
+ * caller supplies the floor_object_for_use detach (game.ts owns GameState, so
165
+ * transact.ts stays free of a game/floor import).
166
+ */
167
+ export declare function storeSellFloor(ctx: StoreMaintContext, store: Store, obj: GameObject, amt: number, player: Player, know: TxnKnowledge, detach: (n: number) => {
168
+ obj: GameObject;
169
+ noneLeft: boolean;
170
+ }): SellResult;
171
+ /** The outcome of homeRetrieve / homeStash. */
172
+ export interface HomeResult {
173
+ ok: boolean;
174
+ failure?: "no-item" | "no-room" | "stuck";
175
+ /** The moved object (present on success). */
176
+ obj?: GameObject;
177
+ /** True when the whole source stack was moved. */
178
+ noneLeft?: boolean;
179
+ }
180
+ /**
181
+ * do_cmd_retrieve (L1783): take `amt` of a home-stock object into the pack.
182
+ * Copies the amount, checks pack room, redistributes charges out of the home
183
+ * stack, carries it to the player, and reduces the home stock. No gold.
184
+ */
185
+ export declare function homeRetrieve(store: Store, obj: GameObject, amt: number, gear: Gear, constants: Constants): HomeResult;
186
+ /**
187
+ * home_carry (L870): add an object to the home's inventory, merging into a
188
+ * compatible stack (OSTACK_PACK - the home acts like the player) or taking a
189
+ * free slot. The object is dropped (lost) if the home is full.
190
+ */
191
+ export declare function homeCarry(store: Store, obj: GameObject, constants: Constants): void;
192
+ /**
193
+ * do_cmd_stash (L2009): drop `amt` of the gear object at `handle` into the
194
+ * home. Refuses stuck equipped items, checks the home has room, detaches the
195
+ * items, and lets the home carry them. No gold.
196
+ */
197
+ export declare function homeStash(store: Store, handle: number, amt: number, player: Player, gear: Gear, constants: Constants): HomeResult;
198
+ //# sourceMappingURL=transact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transact.d.ts","sourceRoot":"","sources":["../../src/store/transact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAahE,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,IAAI,EACJ,OAAO,EACR,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAO5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAYlD,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAoB3D,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,sEAAsE;IACtE,KAAK,EAAE,OAAO,CAAC;IACf,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;KAAE,CAAC;CACvD;AAMD,yCAAyC;AACzC,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,eAAe,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAyClE,+BAA+B;AAC/B,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,GACjB,SAAS,CAyGX;AAMD,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,gCAAgC;AAChC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAMrG;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,GACjB,UAAU,CAaZ;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC5D,UAAU,CAEZ;AA8GD,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1C,6CAA6C;IAC7C,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,GACnB,UAAU,CAwBZ;AAMD;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,SAAS,GACnB,IAAI,CAeN;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,GACnB,UAAU,CAoBZ"}
@@ -0,0 +1,383 @@
1
+ /**
2
+ * Store transactions, ported from reference/src/store.c (Angband 4.2.6): the
3
+ * buy/sell/retrieve/stash commands and home_carry. This is the behavioural
4
+ * other half of the store subsystem, sitting on the stocking layer (store.ts),
5
+ * the pricing layer (price.ts), and the player pack model (game/gear.ts).
6
+ *
7
+ * The upstream commands are driven by the command queue (do_cmd_buy etc. read
8
+ * cmd_get_arg_item / cmd_get_arg_number); here each is a plain function that
9
+ * takes the object (or a pack handle) and amount directly, so the headless
10
+ * core can run a transaction without the UI command layer. The economic and
11
+ * inventory effects are faithful; the EVENT_* signals remain the caller's.
12
+ *
13
+ * LIVE vs DEFERRED (ledgered in parity/ledger/store-transact.yaml):
14
+ * - LIVE: the gold debit/credit, the pack-room gate (inven_carry_num), the
15
+ * price (price_item), the buy decision (store_will_buy), the stack split /
16
+ * excise (gear_object_for_use), store_carry / store_delete / store_check_num,
17
+ * the empty-store restock (store_maint x10 with the shopkeeper-shuffle roll),
18
+ * the ORIGIN_STORE stamp, the OF_STICKY "stuck" refusal, home_carry, and the
19
+ * comment_accept / purchase_analyze ONE_OF draws on the game RNG.
20
+ * - LIVE: the rune learn-on-transaction loop (object_learn_unknown_rune) on BOTH
21
+ * sides of the counter - selling (do_cmd_sell L1947-1953) and buying
22
+ * (do_cmd_buy L1736-1742) - plus flavor awareness when a FlavorKnowledge is
23
+ * supplied. The two were wired months apart, and while only the sell half
24
+ * existed a purchase left an item's runes unknown; the header said DEFERRED for
25
+ * both, which is how the asymmetry read as intentional.
26
+ * - Still DEFERRED: the obj->known twin, total_weight upkeep, autoinscription,
27
+ * and history_find/lose_artifact.
28
+ * - Deliberately ABSENT: the HOME teaches nothing (do_cmd_retrieve L1783-1851 and
29
+ * do_cmd_stash L2009 learn nothing at all), so homeRetrieve/homeStash have no
30
+ * learn block and must not gain one.
31
+ */
32
+ import { FEAT, OF, ORIGIN } from "../generated/index.js";
33
+ import { distributeCharges, objectAbsorb, objectMergeable, OSTACK_PACK, tvalCanHaveCharges, } from "../obj/object.js";
34
+ import { NOOP_FLAVOR_AWARE_DEPS, objectLearnUnknownRune, objectRunesKnown, } from "../obj/knowledge.js";
35
+ import { gearObjectForUse, invenCarry, invenCarryNum, objectCopyAmt, } from "../game/gear.js";
36
+ import { objectValue, objectValueReal } from "../obj/value.js";
37
+ import { priceItem } from "./price.js";
38
+ import { storeCarry, storeCheckNum, storeDelete, storeMaint, storeSaleShouldReduceStock, storeShuffle, storeWillBuy, } from "./store.js";
39
+ /** Pack stacking limits derived from the bound constants. */
40
+ function packLimits(constants) {
41
+ return {
42
+ quiverSlotSize: constants.quiverSlotSize,
43
+ thrownQuiverMult: constants.thrownQuiverMult,
44
+ };
45
+ }
46
+ /** object_is_equipped: is the gear handle currently worn in a body slot? */
47
+ function isEquipped(player, handle) {
48
+ return player.equipment.includes(handle);
49
+ }
50
+ /** obj_can_takeoff (obj-util.c L794): only non-sticky items come off. */
51
+ function objCanTakeoff(obj) {
52
+ return !obj.flags.has(OF.STICKY);
53
+ }
54
+ /** comment_accept (store.c L453-461): ONE_OF pool for a successful buy. */
55
+ const COMMENT_ACCEPT = ["Okay.", "Fine.", "Accepted!", "Agreed!", "Done!", "Taken!"];
56
+ /** purchase_analyze reaction arrays (store.c L435-479). */
57
+ const COMMENT_WORTHLESS = [
58
+ "Arrgghh!",
59
+ "You bastard!",
60
+ "You hear someone sobbing...",
61
+ "The shopkeeper howls in agony!",
62
+ "The shopkeeper wails in anguish!",
63
+ "The shopkeeper beats his head against the counter.",
64
+ ];
65
+ const COMMENT_BAD = [
66
+ "Damn!",
67
+ "You fiend!",
68
+ "The shopkeeper curses at you.",
69
+ "The shopkeeper glares at you.",
70
+ ];
71
+ const COMMENT_GOOD = [
72
+ "Cool!",
73
+ "You've made my day!",
74
+ "The shopkeeper sniggers.",
75
+ "The shopkeeper giggles.",
76
+ "The shopkeeper laughs loudly.",
77
+ ];
78
+ const COMMENT_GREAT = [
79
+ "Yipee!",
80
+ "I think I'll retire!",
81
+ "The shopkeeper jumps for joy.",
82
+ "The shopkeeper smiles gleefully.",
83
+ "Wow. I'm going to name my new villa in your honour.",
84
+ ];
85
+ const REACTION_COMMENTS = {
86
+ worthless: COMMENT_WORTHLESS,
87
+ bad: COMMENT_BAD,
88
+ good: COMMENT_GOOD,
89
+ great: COMMENT_GREAT,
90
+ };
91
+ /**
92
+ * do_cmd_buy (L1650): buy `amt` of the store-stock object `obj`. Copies the
93
+ * desired amount, checks pack room and affordability, pays, carries it to the
94
+ * player, and reduces the store stock (restocking an emptied store). Learns the
95
+ * flavour, and every rune, on the way out - the same identification do_cmd_sell
96
+ * grants (L1736-1742 / L1947-1953).
97
+ */
98
+ export function storeBuy(ctx, store, obj, amt, player, gear, know) {
99
+ const { rng, deps } = ctx;
100
+ const { reg, constants } = deps;
101
+ if (!store.stock.includes(obj))
102
+ return { ok: false, failure: "not-in-stock" };
103
+ /* Get the desired object. */
104
+ const bought = objectCopyAmt(obj, amt);
105
+ /* Ensure we have room. */
106
+ if (bought.number > invenCarryNum(gear, bought, constants)) {
107
+ return { ok: false, failure: "no-room" };
108
+ }
109
+ /* Extract the price for the entire stack. */
110
+ const price = priceItem(reg, store, store.owner, bought, false, bought.number, know.aware, know.noSelling);
111
+ if (price > player.au)
112
+ return { ok: false, failure: "cannot-afford" };
113
+ /* Spend the money. */
114
+ player.au -= price;
115
+ /* Erase the inscription; give it a store origin. */
116
+ bought.note = null;
117
+ if (bought.origin === ORIGIN.NONE)
118
+ bought.origin = ORIGIN.STORE;
119
+ /* Reduce the number of charges in the original store stack. */
120
+ if (tvalCanHaveCharges(obj.tval))
121
+ obj.pval -= bought.pval;
122
+ /* comment_accept (do_cmd_buy L1717): one_in_(3) then ONE_OF. Upstream draws
123
+ * this BEFORE the rune learning at L1739-1741, and the rune loop draws from the
124
+ * main stream too - so this block has to stay ahead of it or a purchase that
125
+ * teaches a rune would put the port's stream out of step with the C. It was
126
+ * previously below, which was RNG-neutral only because nothing drew in between. */
127
+ let acceptComment;
128
+ if (rng.oneIn(3)) {
129
+ acceptComment = COMMENT_ACCEPT[rng.randint0(COMMENT_ACCEPT.length)];
130
+ }
131
+ /* "Learn flavor, any effect and all the runes" (do_cmd_buy L1736-1742).
132
+ *
133
+ * The rune half was missing, which is why buying an Amulet of Resist Acid left
134
+ * its rune unknown. This is byte-for-byte the block do_cmd_sell runs at
135
+ * L1947-1953 - the shopkeeper's counter teaches in BOTH directions - and the
136
+ * sell side was wired first (d2f7da13e), so only half the pair existed. The
137
+ * machinery was already being handed to this function: session/game.ts builds
138
+ * `learnRunes` for both directions and this one ignored it.
139
+ *
140
+ * Both halves must land BEFORE invenCarry below: the pack merge can absorb
141
+ * `bought` into an existing stack, and then there is no longer an object here to
142
+ * teach anything about.
143
+ *
144
+ * The home does NOT teach (do_cmd_retrieve L1783-1851 learns nothing at all),
145
+ * so homeRetrieve correctly has no equivalent of this block. */
146
+ if (know.flavor) {
147
+ know.flavor.objectFlavorAware(bought.kind, know.flavorDeps ?? NOOP_FLAVOR_AWARE_DEPS);
148
+ }
149
+ if (know.learnRunes) {
150
+ const { env, runes } = know.learnRunes;
151
+ while (!objectRunesKnown(player, env, bought, runes)) {
152
+ /* Each pass learns one rune. The bail-out is not upstream's (see the same
153
+ * loop in sellObject); a predicate disagreement would hang the game rather
154
+ * than mis-describe an item. */
155
+ if (!objectLearnUnknownRune(rng, player, env, bought, runes, know.flavor, know.flavorDeps)) {
156
+ break;
157
+ }
158
+ }
159
+ }
160
+ /* Give it to the player. */
161
+ invenCarry(gear, bought, packLimits(constants));
162
+ /* Remove the bought objects unless a readily-replaced staple. */
163
+ let emptied;
164
+ if (storeSaleShouldReduceStock(store, obj)) {
165
+ storeDelete(store, obj, amt);
166
+ /* Store is empty: maybe shuffle the shopkeeper, then restock. */
167
+ if (store.stock.length === 0) {
168
+ if (rng.oneIn(constants.storeShuffle)) {
169
+ storeShuffle(rng, store);
170
+ emptied = "retired";
171
+ }
172
+ else {
173
+ emptied = "restocked";
174
+ }
175
+ for (let i = 0; i < 10; i++)
176
+ storeMaint(ctx, store);
177
+ }
178
+ }
179
+ return {
180
+ ok: true,
181
+ price,
182
+ bought,
183
+ ...(acceptComment ? { acceptComment } : {}),
184
+ ...(emptied ? { emptied } : {}),
185
+ };
186
+ }
187
+ /**
188
+ * purchase_analyze (store.c L491-508): classify the shopkeeper's reaction from
189
+ * the gold paid, the item's real value, and its apparent (guessed) value.
190
+ */
191
+ export function purchaseAnalyze(price, value, guess) {
192
+ if (value <= 0 && price > value)
193
+ return "worthless";
194
+ if (value < guess && price > value)
195
+ return "bad";
196
+ if (value > guess && value < 4 * guess && price < value)
197
+ return "good";
198
+ if (value > guess && price < value)
199
+ return "great";
200
+ return undefined;
201
+ }
202
+ /**
203
+ * do_cmd_sell (L1869): sell `amt` of the gear object at `handle` to the store.
204
+ * Refuses stuck equipped items and items the store will not buy, checks the
205
+ * store has room, pays the player, detaches the items, and hands them to the
206
+ * store. Flavor becomes known; rune learning is DEFERRED (task #13).
207
+ */
208
+ export function storeSell(ctx, store, handle, amt, player, gear, know) {
209
+ const obj = gear.store.get(handle);
210
+ if (!obj)
211
+ return { ok: false, failure: "no-item" };
212
+ /* Cannot remove stuck (sticky-cursed) equipped objects (ui-store.c L522). */
213
+ if (isEquipped(player, handle) && !objCanTakeoff(obj)) {
214
+ return { ok: false, failure: "stuck" };
215
+ }
216
+ /* gear_object_for_use handles the pack / equipment / quiver split-or-excise. */
217
+ return sellObject(ctx, store, obj, amt, player, know, (n) => gearObjectForUse(gear, player, handle, n));
218
+ }
219
+ /**
220
+ * store_sell for a FLOOR object (USE_FLOOR, ui-store.c L487 get_mode): the
221
+ * player's own grid can hold a pile when a store is entered (entering does not
222
+ * move the player onto the store feature), so a floor item is a valid sell
223
+ * source. No equip/stuck guard applies (a floor object is never equipped); the
224
+ * caller supplies the floor_object_for_use detach (game.ts owns GameState, so
225
+ * transact.ts stays free of a game/floor import).
226
+ */
227
+ export function storeSellFloor(ctx, store, obj, amt, player, know, detach) {
228
+ return sellObject(ctx, store, obj, amt, player, know, detach);
229
+ }
230
+ /**
231
+ * The shared body of do_cmd_sell (store.c L1869), after the source-specific item
232
+ * pick and stuck guard: check the store wants it, that it has room, pay the
233
+ * player, learn flavor, detach the sold copy from its source, hand it to the
234
+ * store, and classify the shopkeeper reaction. `detach` removes `amt` from the
235
+ * chosen source (gear_object_for_use for pack/equip/quiver, floor_object_for_use
236
+ * for a floor pile).
237
+ */
238
+ function sellObject(ctx, store, obj, amt, player, know, detach) {
239
+ const { rng, deps } = ctx;
240
+ const { reg, constants } = deps;
241
+ amt = Math.min(amt, obj.number);
242
+ /* Check the store wants the items being sold. */
243
+ if (!storeWillBuy(reg, store, obj, know.aware, know.noSelling, know.runesKnown ?? false)) {
244
+ return { ok: false, failure: "refused" };
245
+ }
246
+ /* A copy representing the number being sold, to test store room. */
247
+ const dummy = objectCopyAmt(obj, amt);
248
+ if (!storeCheckNum(store, dummy))
249
+ return { ok: false, failure: "no-room" };
250
+ const price = priceItem(reg, store, store.owner, dummy, true, amt, know.aware, know.noSelling);
251
+ /* purchase_analyze's "apparent" value (do_cmd_sell L1940, object_value on the
252
+ * dummy): the guess, taken with the PRE-sale knowledge (know.aware) before the
253
+ * item becomes fully known below. The "actual" value is computed from the sold
254
+ * copy after the sale (L1959, object_value_real). */
255
+ const guess = objectValue(reg, obj, amt, know.aware);
256
+ /* Get some money. */
257
+ player.au += price;
258
+ /* Learn flavor (object_flavor_aware, including the #89 ignore fix). */
259
+ if (know.flavor) {
260
+ know.flavor.objectFlavorAware(obj.kind, know.flavorDeps ?? NOOP_FLAVOR_AWARE_DEPS);
261
+ }
262
+ /* ...then the runes (do_cmd_sell L1946-1951), BEFORE the detach below, so the
263
+ * sold copy is the fully-known object upstream describes at L1961 and values
264
+ * at L1956. object_fully_known is "all runes known AND the effect known", and
265
+ * upstream makes the effect half true unconditionally on the line above the
266
+ * loop (obj->known->effect = obj->effect); the port's known shadow derives the
267
+ * effect from awareness instead of storing it, which objectFlavorAware has just
268
+ * granted for a flavoured or non-wearable kind and for a wearable with a KIND
269
+ * effect (known-object.ts L226-239). An ego- or artifact-only activation is
270
+ * therefore not covered here - the port has no per-object effect-known bit to
271
+ * set, and adding one is a save-format change. So the loop condition below is
272
+ * the rune half alone, which is what terminates it upstream too. */
273
+ if (know.learnRunes) {
274
+ const { env, runes } = know.learnRunes;
275
+ while (!objectRunesKnown(player, env, obj, runes)) {
276
+ /* Each pass learns one rune. The bail-out is not upstream's - upstream
277
+ * cannot stall because object_find_unknown_rune and object_runes_known
278
+ * read the same predicates - but a disagreement here would hang the game
279
+ * rather than mis-describe an item. */
280
+ if (!objectLearnUnknownRune(rng, player, env, obj, runes, know.flavor, know.flavorDeps)) {
281
+ break;
282
+ }
283
+ }
284
+ }
285
+ /* Take a proper copy of the now known-about object out of its source. */
286
+ const { obj: sold, noneLeft } = detach(amt);
287
+ /* The store gets that object (or, if worthless/no room, discards it). The
288
+ * caller reads `carried` (whether store_carry accepted it) so it can fire
289
+ * history_lose_artifact for a rejected artifact (do_cmd_sell L1985-1998). */
290
+ const carried = storeCarry(rng, reg, constants, store, sold, true) !== null;
291
+ /* purchase_analyze (do_cmd_sell L1966-1972): only a real store reacts, and
292
+ * only when birth_no_selling is off (the no-selling branch just says "You had
293
+ * ..."). value = object_value_real(sold, amt). ONE_OF(comment_*) draws from
294
+ * the game RNG at this position (store.c L495-507). */
295
+ let reaction;
296
+ let reactionComment;
297
+ if (store.feat !== FEAT.HOME && !know.noSelling) {
298
+ reaction = purchaseAnalyze(price, objectValueReal(reg, sold, amt), guess);
299
+ if (reaction) {
300
+ const arr = REACTION_COMMENTS[reaction];
301
+ reactionComment = arr[rng.randint0(arr.length)];
302
+ }
303
+ }
304
+ return {
305
+ ok: true,
306
+ price,
307
+ sold,
308
+ noneLeft,
309
+ carried,
310
+ ...(reaction ? { reaction } : {}),
311
+ ...(reactionComment ? { reactionComment } : {}),
312
+ };
313
+ }
314
+ /**
315
+ * do_cmd_retrieve (L1783): take `amt` of a home-stock object into the pack.
316
+ * Copies the amount, checks pack room, redistributes charges out of the home
317
+ * stack, carries it to the player, and reduces the home stock. No gold.
318
+ */
319
+ export function homeRetrieve(store, obj, amt, gear, constants) {
320
+ if (!store.stock.includes(obj))
321
+ return { ok: false, failure: "no-item" };
322
+ /* Get the desired object. */
323
+ const picked = objectCopyAmt(obj, amt);
324
+ /* Ensure we have room. */
325
+ if (picked.number > invenCarryNum(gear, picked, constants)) {
326
+ return { ok: false, failure: "no-room" };
327
+ }
328
+ /* Whether the whole home stack is leaving (before store_delete mutates it). */
329
+ const noneLeft = amt >= obj.number;
330
+ /* Distribute charges of wands, staves, or rods. */
331
+ distributeCharges(obj, picked, amt, true);
332
+ /* Give it to the player. */
333
+ invenCarry(gear, picked, packLimits(constants));
334
+ /* Reduce or remove the item. */
335
+ storeDelete(store, obj, amt);
336
+ return { ok: true, obj: picked, noneLeft };
337
+ }
338
+ /* ------------------------------------------------------------------ */
339
+ /* do_cmd_stash / home_carry (store.c L2009 / L870) */
340
+ /* ------------------------------------------------------------------ */
341
+ /**
342
+ * home_carry (L870): add an object to the home's inventory, merging into a
343
+ * compatible stack (OSTACK_PACK - the home acts like the player) or taking a
344
+ * free slot. The object is dropped (lost) if the home is full.
345
+ */
346
+ export function homeCarry(store, obj, constants) {
347
+ const limits = packLimits(constants);
348
+ /* Try to combine with an existing home stack. */
349
+ for (const stockObj of store.stock) {
350
+ if (objectMergeable(stockObj, obj, OSTACK_PACK, limits)) {
351
+ objectAbsorb(stockObj, obj, ORIGIN.MIXED);
352
+ return;
353
+ }
354
+ }
355
+ /* No space? Then the object is lost (upstream frees it). */
356
+ if (store.stock.length >= store.stockSize)
357
+ return;
358
+ store.stock.push(obj);
359
+ }
360
+ /**
361
+ * do_cmd_stash (L2009): drop `amt` of the gear object at `handle` into the
362
+ * home. Refuses stuck equipped items, checks the home has room, detaches the
363
+ * items, and lets the home carry them. No gold.
364
+ */
365
+ export function homeStash(store, handle, amt, player, gear, constants) {
366
+ const obj = gear.store.get(handle);
367
+ if (!obj)
368
+ return { ok: false, failure: "no-item" };
369
+ /* Cannot remove stuck (sticky-cursed) equipped objects. */
370
+ if (isEquipped(player, handle) && !objCanTakeoff(obj)) {
371
+ return { ok: false, failure: "stuck" };
372
+ }
373
+ amt = Math.min(amt, obj.number);
374
+ /* A copy representing the number being stashed, to test home room. */
375
+ const dummy = objectCopyAmt(obj, amt);
376
+ if (!storeCheckNum(store, dummy))
377
+ return { ok: false, failure: "no-room" };
378
+ /* Now get the real item and let the home carry it. */
379
+ const { obj: dropped, noneLeft } = gearObjectForUse(gear, player, handle, amt);
380
+ homeCarry(store, dropped, constants);
381
+ return { ok: true, obj: dropped, noneLeft };
382
+ }
383
+ //# sourceMappingURL=transact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transact.js","sourceRoot":"","sources":["../../src/store/transact.ts"],"names":[],"mappings":"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"}