@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,847 @@
1
+ /**
2
+ * JSON save/load (PORT_PLAN.md decision 9): the entity serializers that
3
+ * turn a live GameState into plain JSON and back. The format is the port's
4
+ * own (the C binary blocks of save.c/load.c are replaced by design); WHAT
5
+ * is saved follows upstream savefile semantics - notably the RNG state is
6
+ * persisted (save.c wr_randomizer), which is what the no-save-scum posture
7
+ * rides on (decisions 16/22): reloading resumes the same stream.
8
+ *
9
+ * References into bound registries (races, kinds, egos, artifacts, trap
10
+ * kinds, classes) are saved as stable indices/names and re-resolved against
11
+ * the pack on load, so a save is data + pack, never code. Raw effect chains
12
+ * and kind-owned text re-point at the kind on load rather than being
13
+ * copied into the save.
14
+ *
15
+ * Integrity: serializeGame produces the JSON payload; callers stamp/verify
16
+ * bytes with save/integrity.ts (stampSavefile / verifyStampedSavefile),
17
+ * the decision-16b tamper deterrent.
18
+ *
19
+ * BLOCK MAP (save.c wr_* / load.c rd_* -> the field this file writes). There is
20
+ * deliberately no per-block function pair: the C block table is replaced by one
21
+ * JSON document, so W1's question is field coverage, not symbol presence. Each
22
+ * row is proved by save-fields.test.ts, the C-derived coverage guard.
23
+ *
24
+ * wr_description (save.c:49) -> not a FIELD: the exact string is ported in
25
+ * save/description.ts and derived from
26
+ * fullName / lev / race / class / depth,
27
+ * which this document already carries. In a
28
+ * JSON save it need not be stored at all, and
29
+ * storing it would create the second source
30
+ * of truth upstream's own readers avoid by
31
+ * scanning a directory and asking each file.
32
+ * wr_randomizer (save.c:286) -> SavedGame.rng
33
+ * wr_options (save.c:314) -> SavedGame.options (SIDEBAR_MODE is UI)
34
+ * wr_messages (save.c:339) -> SavedGame.messages
35
+ * wr_monster_memory(save.c:356) -> SavedGame.lore (whole record, not just
36
+ * pkills/thefts: the port has no lore.txt)
37
+ * wr_object_memory (save.c:377) -> flavor.aware / .tried, everseen.kinds,
38
+ * ignore.kindAware / .kindUnaware
39
+ * wr_quests (save.c:405) -> player.quests
40
+ * wr_player (save.c:418) -> SavedPlayer + SavedGame.actor / arena /
41
+ * nameSuffix / skipCmdCoercion / unignoring /
42
+ * restingTurn
43
+ * wr_ignore (save.c:514) -> SavedGame.ignore, .autoinscriptions,
44
+ * everseen.egos. GAP: the rune-note block
45
+ * (save.c:589-605) has no counterpart -
46
+ * rune_note is a ledgered deferral.
47
+ * wr_misc (save.c:610) -> randartSeed, seedFlavor, player.totalWinner,
48
+ * player.noscore, isDead, turn, player.objKnown
49
+ * wr_artifacts (save.c:674) -> artifactsCreated / Seen / Everseen
50
+ * wr_player_hp (save.c:692) -> player.playerHp
51
+ * wr_player_spells (save.c:702) -> player.spellFlags / .spellOrder
52
+ * wr_gear_aux (save.c:715) -> gear (+ player.equipment slot map)
53
+ * wr_gear (save.c:737) -> ditto; the gear_k known twin is N/A
54
+ * wr_stores (save.c:744) -> SavedGame.stores
55
+ * wr_dungeon_aux (save.c:774) -> ChunkSquaresData (+ currentJoins)
56
+ * wr_objects_aux (save.c:873) -> SavedGame.floor
57
+ * wr_monsters_aux (save.c:915) -> SavedGame.monsters / .groups
58
+ * wr_traps_aux (save.c:933) -> SavedGame.traps
59
+ * wr_dungeon (save.c:959) -> dungeonDepth, daycount, actor.grid
60
+ * wr_objects (save.c:980) -> floor (player->cave twin N/A)
61
+ * wr_monsters (save.c:986) -> monsters (player->cave twin N/A)
62
+ * wr_traps (save.c:992) -> traps (player->cave twin N/A)
63
+ * wr_chunks (save.c:1001) -> levelCache + townChunk
64
+ * wr_history (save.c:1048) -> player.hist
65
+ * wr_item (save.c:69) -> SavedObject (obj->oidx N/A)
66
+ * wr_monster (save.c:201) -> SavedMonster
67
+ * wr_trap (save.c:261) -> SavedTrap
68
+ */
69
+ import type { Loc } from "../loc.js";
70
+ import type { RngState } from "../rng.js";
71
+ import type { RandomValue } from "../rng.js";
72
+ import { Chunk } from "../world/chunk.js";
73
+ import type { ChunkSquaresData } from "../world/chunk.js";
74
+ import type { GameObject } from "../obj/object.js";
75
+ import type { ObjRegistry } from "../obj/bind.js";
76
+ import type { ElementInfo } from "../obj/types.js";
77
+ import type { AutoinscriptionRegistry } from "../obj/knowledge.js";
78
+ import type { IgnoreSettingsData } from "../obj/ignore.js";
79
+ import type { Monster, MonsterGroupInfo } from "../mon/monster.js";
80
+ import type { MonsterLore } from "../mon/lore.js";
81
+ import type { MonsterRegistry } from "../mon/bind.js";
82
+ import type { Player, PlayerQuest } from "../player/player.js";
83
+ import type { PlayerRegistry } from "../player/bind.js";
84
+ import type { TrapKind } from "../world/trap.js";
85
+ import type { GameState, MonsterGroup, StoredLevel } from "../game/context.js";
86
+ import { MessageLog } from "../msg.js";
87
+ import type { Trap } from "../game/trap.js";
88
+ import type { Gear } from "../game/gear.js";
89
+ import type { Store } from "../store/store.js";
90
+ import type { BoundStore } from "../store/types.js";
91
+ import type { KnownMap } from "../game/known.js";
92
+ import type { SaveIntegrity } from "../save/integrity.js";
93
+ import type { SaveCodec } from "../save/compress.js";
94
+ import type { ContentIdResolver } from "../mod/ids.js";
95
+ import type { ModBag, OrphanStore, SaveManifest } from "../mod/save-blocks.js";
96
+ /**
97
+ * The save format version this build writes. Version 2 replaced every numeric
98
+ * content index (kidx/eidx/aidx/ridx/tidx/feat, and the positional curse/
99
+ * brand/slay arrays) with the namespaced string ids of mod/ids.ts, the
100
+ * load-bearing rule of the mod substrate (MOD_LIFECYCLE decision 1). Version 3
101
+ * finished that job: `flavor`, `everseen` and `ignore` were the last blocks
102
+ * still keyed by raw kidx/eidx, and the rune-autoinscription block of wr_ignore
103
+ * (save.c:586-605) arrived with them. Older saves are not migrated: the game is
104
+ * pre-1.0 and the save format is still settling, so loadGame rejects them and
105
+ * the host starts a fresh game.
106
+ */
107
+ export declare const SAVE_VERSION = 3;
108
+ export interface SavedObject {
109
+ /** Namespaced kind id (mod/ids.ts), e.g. "core:sword:dagger". */
110
+ kindId: string;
111
+ /** Ego id, or null when the object has no ego. */
112
+ egoId: string | null;
113
+ /** Artifact id, or null when the object is not an artifact. */
114
+ artifactId: string | null;
115
+ grid: {
116
+ x: number;
117
+ y: number;
118
+ } | null;
119
+ tval: number;
120
+ sval: number;
121
+ pval: number;
122
+ knownPval?: number;
123
+ weight: number;
124
+ dd: number;
125
+ ds: number;
126
+ ac: number;
127
+ toA: number;
128
+ toH: number;
129
+ toD: number;
130
+ flags: number[];
131
+ modifiers: number[];
132
+ elInfo: ElementInfo[];
133
+ /** Brand ids present on the object (the sparse form of the boolean array). */
134
+ brands: string[] | null;
135
+ /** Slay ids present on the object. */
136
+ slays: string[] | null;
137
+ /** Curse ids with their rolled power/timeout (sparse form). */
138
+ curses: Array<{
139
+ id: string;
140
+ power: number;
141
+ timeout: number;
142
+ }> | null;
143
+ time: RandomValue;
144
+ timeout: number;
145
+ number: number;
146
+ notice: number;
147
+ heldMIdx: number;
148
+ mimickingMIdx: number;
149
+ origin: number;
150
+ originDepth: number;
151
+ /** Origin monster race id, or null when there is no origin race. */
152
+ originRaceId: string | null;
153
+ note: string | null;
154
+ /** C wr_item's effect-present byte (save.c:113-118). */
155
+ effectPresent?: boolean;
156
+ /** C wr_item's saved activation index (save.c:184-188). */
157
+ activationIndex?: number;
158
+ }
159
+ export declare function serializeObject(obj: GameObject, ids: ContentIdResolver): SavedObject;
160
+ export declare function deserializeObject(data: SavedObject, reg: ObjRegistry, ids: ContentIdResolver): GameObject;
161
+ export interface SavedMonster {
162
+ /** Namespaced monster race id, e.g. "core:kobold". */
163
+ raceId: string;
164
+ /** Original race id (for a polymorphed/shaped monster), or null. */
165
+ originalRaceId: string | null;
166
+ midx: number;
167
+ grid: {
168
+ x: number;
169
+ y: number;
170
+ };
171
+ hp: number;
172
+ maxhp: number;
173
+ mTimed: number[];
174
+ mspeed: number;
175
+ energy: number;
176
+ cdis: number;
177
+ mflag: number[];
178
+ mimickedObj: number;
179
+ heldObj: SavedObject[];
180
+ attr: number;
181
+ target: {
182
+ grid: {
183
+ x: number;
184
+ y: number;
185
+ };
186
+ midx: number;
187
+ };
188
+ groupInfo: MonsterGroupInfo[];
189
+ minRange: number;
190
+ bestRange: number;
191
+ /** C wr_monster's known_pstate.flags (save.c:231-232). */
192
+ knownPstateFlags?: number[];
193
+ /** C wr_monster's known_pstate.el_info[].res_level (save.c:234-235). */
194
+ knownPstateElInfo?: number[];
195
+ }
196
+ export declare function serializeMonster(mon: Monster, ids: ContentIdResolver): SavedMonster;
197
+ /** rd_monster (load.c:259), over JSON instead of the binary block. */
198
+ export declare function deserializeMonster(data: SavedMonster, monsters: MonsterRegistry, objects: ObjRegistry, ids: ContentIdResolver): Monster;
199
+ export interface SavedPlayer {
200
+ raceName: string;
201
+ clsName: string;
202
+ hitdie: number;
203
+ expFactor: number;
204
+ age: number;
205
+ ht: number;
206
+ wt: number;
207
+ au: number;
208
+ maxLev: number;
209
+ lev: number;
210
+ maxExp: number;
211
+ exp: number;
212
+ expFrac: number;
213
+ /** Recall / descent state (absent in older saves; default 0). */
214
+ maxDepth?: number;
215
+ recallDepth?: number;
216
+ wordRecall?: number;
217
+ deepDescent?: number;
218
+ mhp: number;
219
+ chp: number;
220
+ chpFrac: number;
221
+ msp: number;
222
+ csp: number;
223
+ cspFrac: number;
224
+ statMax: number[];
225
+ statCur: number[];
226
+ statMap: number[];
227
+ statBirth: number[];
228
+ timed: number[];
229
+ spellFlags: number[];
230
+ spellOrder: number[];
231
+ playerHp: number[];
232
+ auBirth: number;
233
+ htBirth: number;
234
+ wtBirth: number;
235
+ /**
236
+ * full_name (save.c:422): the character's name. Optional: absent in saves
237
+ * written before the field, which load with an empty name (buildScore falls
238
+ * back to the empty string exactly as before this field existed).
239
+ */
240
+ fullName?: string;
241
+ /**
242
+ * died_from (save.c:424): the cause-of-death string. Optional: absent saves
243
+ * load with an empty string.
244
+ */
245
+ diedFrom?: string;
246
+ /**
247
+ * noscore (save.c:623, wr_u16b): the cheater bit mask. Optional: absent saves
248
+ * load as 0 (a clean, scored character).
249
+ */
250
+ noscore?: number;
251
+ history: string;
252
+ /**
253
+ * hist (player-history.h struct player_history): the runtime auto-history
254
+ * event log - absent in saves predating this field, which load as an
255
+ * empty log (SAVEFILE_IMPORT-tolerant posture, matching load.c's
256
+ * best-effort read of older savefiles).
257
+ */
258
+ hist?: SavedHistoryInfo[];
259
+ equipment: number[];
260
+ /**
261
+ * obj_k, every rune variety (wr_player's object knowledge). Older saves
262
+ * (pre rune learn-by-use) carried only objKnownModifiers; the reader
263
+ * accepts both.
264
+ */
265
+ objKnown?: {
266
+ modifiers: number[];
267
+ toA: number;
268
+ toH: number;
269
+ toD: number;
270
+ /**
271
+ * obj_k->dd / ds / ac (the "know dice"/"know ac" runes). Optional: saves
272
+ * written before these fields existed omit them; the reader defaults each
273
+ * to 1 (obvious birth knowledge, always correct - see player_outfit).
274
+ */
275
+ dd?: number;
276
+ ds?: number;
277
+ ac?: number;
278
+ elInfo: ElementInfo[];
279
+ flags: number[];
280
+ /** Ids of the brand runes the player has learned. */
281
+ brands: string[];
282
+ /** Ids of the slay runes the player has learned. */
283
+ slays: string[];
284
+ /** Ids of the curse runes the player has learned. */
285
+ curses: string[];
286
+ };
287
+ /** Legacy (save version 1 pre-#13): modifier runes only. */
288
+ objKnownModifiers?: number[];
289
+ shapeName: string | null;
290
+ skills: number[];
291
+ upkeep: {
292
+ playing: boolean;
293
+ newSpells: number;
294
+ totalWeight: number;
295
+ };
296
+ /**
297
+ * quests (player-quest.h): the per-character quest history. Optional: absent
298
+ * in saves written before the quest system, which reload with no quests (and
299
+ * hence no win condition until re-birthed) - the SAVEFILE_IMPORT-tolerant
300
+ * posture matching the other late-added fields.
301
+ */
302
+ quests?: PlayerQuest[];
303
+ /** total_winner: the victory flag. Optional; absent saves load as false. */
304
+ totalWinner?: boolean;
305
+ }
306
+ /** Serialized history entry; C save.c:1063-1067 writes the artifact NAME. */
307
+ export interface SavedHistoryInfo {
308
+ type: number;
309
+ dlev: number;
310
+ clev: number;
311
+ artifactName: string;
312
+ turn: number;
313
+ event: string;
314
+ /** Legacy JSON saves used a numeric aIdx; never written by this version. */
315
+ aIdx?: number;
316
+ }
317
+ export declare function serializePlayer(p: Player, ids: ContentIdResolver): SavedPlayer;
318
+ export declare function deserializePlayer(data: SavedPlayer, players: PlayerRegistry, objReg: ObjRegistry, ids: ContentIdResolver): Player;
319
+ export interface SavedTrap {
320
+ /** Namespaced trap-kind id, e.g. "core:trap-door". */
321
+ trapId: string;
322
+ grid: {
323
+ x: number;
324
+ y: number;
325
+ };
326
+ power: number;
327
+ timeout: number;
328
+ flags: number[];
329
+ }
330
+ export interface SavedGame {
331
+ version: number;
332
+ player: SavedPlayer;
333
+ actor: {
334
+ grid: {
335
+ x: number;
336
+ y: number;
337
+ };
338
+ energy: number;
339
+ totalEnergy: number;
340
+ };
341
+ gear: {
342
+ next: number;
343
+ pack: number[];
344
+ store: Array<[number, SavedObject]>;
345
+ };
346
+ /** Omitted for dead saves, matching save.c:873-1045. */
347
+ chunk?: ChunkSquaresData;
348
+ /**
349
+ * Feature legend: every terrain index that appears in chunk.feats or
350
+ * known.feat, paired with its namespaced feature id. The grid stays a
351
+ * compact numeric array (one small legend, not a string per cell); on load
352
+ * the numeric feats are remapped through the legend to the current pack's
353
+ * indices, so terrain references survive pack changes exactly like every
354
+ * other content reference (MOD_LIFECYCLE decision 1). Optional only for the
355
+ * degenerate empty-level case.
356
+ */
357
+ featLegend?: Array<[number, string]>;
358
+ monsters?: Array<SavedMonster | null>;
359
+ groups?: Array<MonsterGroup | null>;
360
+ /** Floor piles in pile order (head first), keyed by grid. */
361
+ floor?: Array<{
362
+ x: number;
363
+ y: number;
364
+ objs: SavedObject[];
365
+ }>;
366
+ traps?: Array<{
367
+ x: number;
368
+ y: number;
369
+ traps: SavedTrap[];
370
+ }>;
371
+ /** The dungeon header retained by C even when the player is dead. */
372
+ dungeonDepth?: number;
373
+ rng: RngState;
374
+ turn: number;
375
+ playing: boolean;
376
+ isDead: boolean;
377
+ /**
378
+ * kind->aware / kind->tried (wr_object_memory, save.c:399-401), by namespaced
379
+ * kind id. Upstream writes these positionally by kidx and rd_object_memory
380
+ * reads them back positionally (load.c:602-620), so a data change that
381
+ * re-orders k_info silently re-targets them; the port's format keys every
382
+ * content reference by id instead (SAVE_VERSION 3).
383
+ */
384
+ flavor: {
385
+ aware: string[];
386
+ tried: string[];
387
+ };
388
+ /**
389
+ * kind->everseen / ego->everseen (save.c L397, L533): the per-game "ever
390
+ * seen" flags for object kinds and egos, by namespaced id (see `flavor`).
391
+ * Optional: absent in saves written before everseen tracking, which reload
392
+ * with an empty set (the object browser then falls back to flavour-aware
393
+ * membership only).
394
+ */
395
+ everseen?: {
396
+ kinds: string[];
397
+ egos: string[];
398
+ };
399
+ /**
400
+ * seed_flavor (game-world.c): the seed flavor_init used to assign object
401
+ * colours/titles. Optional: absent in saves written before flavour
402
+ * assignment, which reload with a stable seed-0 assignment.
403
+ */
404
+ seedFlavor?: number;
405
+ /**
406
+ * The player's map knowledge (game/known.ts). Optional: absent in
407
+ * version-1 saves written before the knowledge layer, which load with
408
+ * an all-unknown map.
409
+ */
410
+ known?: SavedKnown;
411
+ /**
412
+ * Monster memory (mon/lore.ts), keyed by monster race id. Optional: absent
413
+ * in saves written before lore, which load with no memory. Upstream splits
414
+ * this between the savefile (pkills/thefts) and the user lore file; the
415
+ * JSON save carries the whole record.
416
+ */
417
+ lore?: Array<[string, SavedLore]>;
418
+ /**
419
+ * Single combat in progress (upkeep->arena_level + player->old_grid).
420
+ * The stashed pre-arena level does not survive the save boundary:
421
+ * winning after a reload exits to a fresh level of the same depth.
422
+ */
423
+ arena?: {
424
+ oldGrid: {
425
+ x: number;
426
+ y: number;
427
+ };
428
+ };
429
+ /**
430
+ * The town stores (store.c wr_stores, save.c:744-765): every shop's current
431
+ * proprietor and full stock, in registry order - including FEAT_HOME, whose
432
+ * stock is the player's home stash (gap 12.1: the home stash must survive
433
+ * save/load). Optional: absent in saves written before store persistence and
434
+ * in saves taken before the player ever reached town, which reload and
435
+ * re-stock fresh (the pre-fix behaviour). See serializeStores.
436
+ */
437
+ stores?: SavedStore[];
438
+ /**
439
+ * daycount (game-world.c / save.c:963): store turnovers accrued while in the
440
+ * dungeon, consumed by store_update on the return to town (gap 12.3). Optional
441
+ * / 0 when no days have elapsed.
442
+ */
443
+ daycount?: number;
444
+ /**
445
+ * player->resting_turn (save.c:507; wr_player): the cumulative count of player
446
+ * turns spent resting. Gap 12.6. Optional / omitted when 0 (a character that
447
+ * has never rested), which loads back as 0. See GameState.restingTurn.
448
+ */
449
+ restingTurn?: number;
450
+ /**
451
+ * player->skip_cmd_coercion (save.c:490; wr_player): the bloodlust command
452
+ * -coercion skip state (0/1/2). Gap 12.6. Optional / omitted when 0.
453
+ */
454
+ skipCmdCoercion?: number;
455
+ /**
456
+ * player->unignoring (save.c:491; wr_player): the temporary "show ignored
457
+ * items" toggle. Gap 12.6. Optional / omitted when 0 (ignoring active).
458
+ */
459
+ unignoring?: number;
460
+ /**
461
+ * player->opts.name_suffix (save.c:432; wr_player): the numeric name suffix
462
+ * for the high-score table. Gap 12.6. Optional / omitted when 0.
463
+ */
464
+ nameSuffix?: number;
465
+ /**
466
+ * The rolling message log (wr_messages/rd_messages, save.c:339-353 /
467
+ * load.c:471-495). Gap 12.8. Each entry is text + MSG_* type, in the savefile's
468
+ * oldest-first order and capped at the 80 newest messages (save.c:345). The
469
+ * per-entry repeat count is NOT persisted - upstream wr_messages writes only
470
+ * message_str/message_type, so a reload collapses through message_add and every
471
+ * count resets to 1 (the quirk is preserved). Optional / omitted for an empty
472
+ * log and in saves written before message persistence, which load empty.
473
+ */
474
+ messages?: SavedMessage[];
475
+ /**
476
+ * The player's ignore settings (obj-ignore.c). Optional: absent in saves
477
+ * written before ignoring, which load with everything shown.
478
+ */
479
+ ignore?: SavedIgnoreSettings;
480
+ /**
481
+ * The player option store (option.c): every option value, hitpoint_warn /
482
+ * delay_factor, and the immutable birth-option snapshot. Optional: absent in
483
+ * saves written before the option store, which load with the table defaults.
484
+ */
485
+ options?: import("../player/options.js").OptionStateData;
486
+ /**
487
+ * randart_seed (obj-randart.c): the seed do_randart used when birth_randarts
488
+ * is on. Optional / 0 when the standard artifact set is in use. Persisted so
489
+ * a reload rebuilds the identical random artifact set.
490
+ */
491
+ randartSeed?: number;
492
+ /**
493
+ * aup_info[] (obj-make.c): the ids of the artifacts already created. Stored
494
+ * as an id list (not a by-aidx boolean array) so the created set survives
495
+ * pack changes. Optional / absent in saves written before artifact
496
+ * generation landed, which load with an all-false set.
497
+ */
498
+ artifactsCreated?: string[];
499
+ /** aup_info[].seen (save.c:684-685). */
500
+ artifactsSeen?: string[];
501
+ /** aup_info[].everseen (save.c:685-686). */
502
+ artifactsEverseen?: string[];
503
+ /**
504
+ * The manifest block (mod/save-blocks.ts, P7.2): the pack set + resolved load
505
+ * order + core-owned determinism mode that produced this save - its profile
506
+ * fingerprint. Optional: absent in saves written before the mod substrate,
507
+ * which load as core-only + deterministic (coreOnlyManifest).
508
+ */
509
+ manifest?: SaveManifest;
510
+ /**
511
+ * Per-mod private bags (mod:<id>), keyed by pack id: opaque JSON the engine
512
+ * never interprets, versioned by each mod's saveSchema. Absent when no mod
513
+ * persisted state. Round-tripped verbatim; migrated only by the owning mod.
514
+ */
515
+ mods?: Record<string, ModBag>;
516
+ /**
517
+ * The orphans store (orphans:<id>@<version>): entities quarantined because
518
+ * their defining pack is missing or shadowed (mod/save-blocks.ts). Frozen and
519
+ * inert, restored by rehydrateSave when the pack returns. Absent when nothing
520
+ * is quarantined.
521
+ */
522
+ orphans?: OrphanStore;
523
+ /**
524
+ * decision-8 seam: whether the one-time keep/purge orphan prompt has already
525
+ * been shown for this save. Core computes the orphan count; the UI shows the
526
+ * prompt once and sets this so it never nags again. Absent = not yet shown.
527
+ */
528
+ orphansAcknowledged?: boolean;
529
+ /**
530
+ * birth_levels_persist (#30) frozen-level cache (game/context.ts StoredLevel),
531
+ * one entry per cached depth, reusing the same chunk / monster / floor / trap /
532
+ * known serializers as the current level. Optional / absent when the option is
533
+ * off (the default) or no level has been frozen: older and default saves load
534
+ * with an empty cache (back-compat, like every other optional field here).
535
+ */
536
+ levelCache?: SavedStoredLevel[];
537
+ /**
538
+ * GameState.currentJoins: the in-play level's stair connectors (chunk->join,
539
+ * generate.c L1203-1214), so a first-visit persistent level can align stairs
540
+ * with the level just left. Absent when the option is off / no joins recorded.
541
+ */
542
+ currentJoins?: Array<{
543
+ x: number;
544
+ y: number;
545
+ feat: number;
546
+ info?: number[];
547
+ }>;
548
+ /**
549
+ * The per-kind autoinscription registry (obj-ignore.c note_aware/note_unaware,
550
+ * obj/knowledge.ts AutoinscriptionRegistry). Keyed by the namespaced kind id
551
+ * (like every other content reference, MOD_LIFECYCLE decision 1) so notes
552
+ * survive pack reordering. Optional / absent when nothing is registered:
553
+ * older saves and the default (no autoinscriptions) load with an empty
554
+ * registry, back-compat like every other optional field here.
555
+ */
556
+ autoinscriptions?: SavedAutoinscription[];
557
+ /**
558
+ * The per-RUNE autoinscriptions (rune_list[i].note; wr_ignore save.c:586-605,
559
+ * rd_ignore load.c:937-945). Keyed by runeKey (obj/knowledge.ts), the
560
+ * pack-stable form of the raw index upstream writes (`wr_s16b(k)`,
561
+ * save.c:600); the runtime registry is still index-keyed like rune_list.
562
+ * Absent when no rune carries a note.
563
+ */
564
+ runeNotes?: Array<[string, string]>;
565
+ /**
566
+ * Terrain-only Town chunk (wr_chunks always saves the Town entry even when
567
+ * birth_levels_persist is OFF; generate.c:1371-1373 / save.c:1001-1044).
568
+ * Present after leaving depth 0 without persist; consumed on town re-entry.
569
+ * Optional / absent in older saves and before the player has left town.
570
+ */
571
+ townChunk?: ChunkSquaresData;
572
+ /** Feature legend for townChunk feats (same remap contract as levelCache). */
573
+ townFeatLegend?: Array<[number, string]>;
574
+ }
575
+ /** One serialized per-kind autoinscription entry (namespaced kind id + notes). */
576
+ export interface SavedAutoinscription {
577
+ kindId: string;
578
+ aware?: string;
579
+ unaware?: string;
580
+ }
581
+ /**
582
+ * One serialized message-log entry (wr_messages, save.c:350-351): the message
583
+ * text and its MSG_* type. The repeat count is intentionally NOT stored -
584
+ * upstream persists only message_str/message_type, so counts do not survive a
585
+ * reload (see SavedGame.messages).
586
+ */
587
+ export interface SavedMessage {
588
+ str: string;
589
+ type: number;
590
+ }
591
+ /**
592
+ * Serialize the rolling message log (wr_messages, save.c:339-353): the newest
593
+ * `cap` messages (default 80, the upstream limit) written oldest-first, each as
594
+ * text + type. Returns undefined for an empty / absent log so a clean save omits
595
+ * the block. Faithful to the C: the per-entry repeat count is dropped, so a
596
+ * reload recollapses through MessageLog.add and every count resets to 1.
597
+ */
598
+ export declare function serializeMessages(log: MessageLog | undefined, cap?: number): SavedMessage[] | undefined;
599
+ /**
600
+ * Rebuild a message log from its saved form (rd_messages, load.c:471-495):
601
+ * re-add each entry oldest-first via MessageLog.add, exactly as upstream calls
602
+ * message_add in a forward loop. An absent block (older save / empty log) yields
603
+ * a fresh empty log.
604
+ */
605
+ export declare function deserializeMessages(data: SavedMessage[] | undefined): MessageLog;
606
+ /** Serialized map knowledge (remembered terrain and floor objects). */
607
+ export interface SavedKnown {
608
+ feat: number[];
609
+ objects: Array<[number, {
610
+ ch: string | null;
611
+ attr: string;
612
+ }]>;
613
+ }
614
+ /** One serialized race-lore record. */
615
+ export interface SavedLore {
616
+ sights: number;
617
+ deaths: number;
618
+ pkills: number;
619
+ thefts: number;
620
+ tkills: number;
621
+ wake: number;
622
+ ignore: number;
623
+ dropGold: number;
624
+ dropItem: number;
625
+ castInnate: number;
626
+ castSpell: number;
627
+ blowTimesSeen: number[];
628
+ blowKnown: boolean[];
629
+ flags: number[];
630
+ spellFlags: number[];
631
+ allKnown: boolean;
632
+ armourKnown: boolean;
633
+ dropKnown: boolean;
634
+ sleepKnown: boolean;
635
+ spellFreqKnown: boolean;
636
+ innateFreqKnown: boolean;
637
+ }
638
+ /** Serialize a live game (state + flavor knowledge) into plain JSON data. */
639
+ export declare function serializeGame(state: GameState, flavor: {
640
+ snapshot(): {
641
+ aware: number[];
642
+ tried: number[];
643
+ };
644
+ }, seedFlavor: number, ids: ContentIdResolver, randartSeed?: number, everseen?: {
645
+ snapshot(): {
646
+ kinds: number[];
647
+ egos: number[];
648
+ };
649
+ }): SavedGame;
650
+ /** Rebuild the monster memory (absent in older saves: none). */
651
+ export declare function deserializeLore(data: SavedGame["lore"], ids: ContentIdResolver): Map<number, MonsterLore>;
652
+ /**
653
+ * Serialize the per-kind autoinscription registry (obj/knowledge.ts): every
654
+ * kind with a registered note, keyed by its namespaced kind id (mod-stable,
655
+ * like serializeObject). Returns undefined when nothing is registered, so a
656
+ * clean game omits the block entirely. A kind whose id no longer resolves
657
+ * (unbound in this pack) is dropped.
658
+ */
659
+ export declare function serializeAutoinscriptions(registry: AutoinscriptionRegistry, ids: ContentIdResolver): SavedAutoinscription[] | undefined;
660
+ /**
661
+ * Restore serialized autoinscriptions into a registry (absent in older saves:
662
+ * nothing to restore). A kind whose id is gone (its defining pack was removed)
663
+ * is dropped, exactly like deserializeLore drops a removed race's memory.
664
+ */
665
+ export declare function deserializeAutoinscriptions(data: SavedAutoinscription[], registry: AutoinscriptionRegistry, ids: ContentIdResolver): void;
666
+ /**
667
+ * The player's ignore settings as they appear in the savefile: the wr_ignore /
668
+ * wr_object_memory choices with every content reference converted to its
669
+ * namespaced id.
670
+ *
671
+ * Upstream stores all three of these positionally - ignore_level[] by itype,
672
+ * ego_ignore_types[] by eidx (save.c:530-541 / load.c:872-892), and the per-kind
673
+ * ignore bits by kidx (save.c:399-407 / load.c:602-620) - so a data change that
674
+ * re-orders e_info or k_info silently re-targets the player's choices onto
675
+ * different items. `ignore_level` is genuinely keyed by the ITYPE_* enum, which
676
+ * is compiled-in in both trees, so it stays an array; the ego and kind keys
677
+ * become ids, matching every other content reference in the document
678
+ * (MOD_LIFECYCLE decision 1).
679
+ */
680
+ export interface SavedIgnoreSettings {
681
+ /** ignore_level[itype] (save.c:522-523), keyed by the compiled ITYPE_* enum. */
682
+ level: number[];
683
+ /** ego_ignore_types: one [namespaced ego id, itype] pair per set bit. */
684
+ ego: Array<[string, number]>;
685
+ /** kind_is_ignored_aware, by namespaced kind id. */
686
+ kindAware: string[];
687
+ /** kind_is_ignored_unaware, by namespaced kind id. */
688
+ kindUnaware: string[];
689
+ /** player->unignoring (save.c L491). Optional: absent in older saves. */
690
+ unignoring?: boolean;
691
+ }
692
+ /**
693
+ * Convert an IgnoreSettings.snapshot() (raw kidx/eidx, the runtime keying
694
+ * upstream also uses) into the id-keyed savefile form. A kind or ego the
695
+ * running pack no longer binds is dropped, like deserializeAutoinscriptions.
696
+ */
697
+ export declare function serializeIgnore(data: IgnoreSettingsData, ids: ContentIdResolver): SavedIgnoreSettings;
698
+ /** The inverse of serializeIgnore; an id the pack no longer binds is dropped. */
699
+ export declare function deserializeIgnore(data: SavedIgnoreSettings, ids: ContentIdResolver): IgnoreSettingsData;
700
+ /** Restore the id-keyed flavor block into the raw-kidx form FlavorKnowledge takes. */
701
+ export declare function deserializeFlavor(data: {
702
+ aware: string[];
703
+ tried: string[];
704
+ }, ids: ContentIdResolver): {
705
+ aware: number[];
706
+ tried: number[];
707
+ };
708
+ /** Restore the id-keyed everseen block into the raw-index form it takes. */
709
+ export declare function deserializeEverseen(data: {
710
+ kinds: string[];
711
+ egos: string[];
712
+ }, ids: ContentIdResolver): {
713
+ kinds: number[];
714
+ egos: number[];
715
+ };
716
+ /**
717
+ * Build the feature index remap from a save's legend: each saved fidx maps to
718
+ * the current pack's index for the same feature id. When the save and the
719
+ * running pack agree (the common case), every entry is the identity; the map
720
+ * is still applied so a re-ordered or extended terrain set loads correctly.
721
+ * Throws on a legend id the current pack cannot resolve (a removed terrain -
722
+ * graceful degradation is a Phase 2 quarantine concern).
723
+ */
724
+ export declare function buildFeatRemap(legend: Array<[number, string]> | undefined, ids: ContentIdResolver): Map<number, number>;
725
+ /** Rebuild the map knowledge (absent in older saves: all unknown). */
726
+ export declare function deserializeKnown(data: SavedKnown | undefined, width: number, height: number, featRemap: Map<number, number>): KnownMap;
727
+ /** Rebuild a Gear store from its saved form. */
728
+ export declare function deserializeGear(data: SavedGame["gear"], reg: ObjRegistry, ids: ContentIdResolver): Gear;
729
+ /** Rebuild the floor pile map (grid-keyed, pile order preserved). */
730
+ export declare function deserializeFloor(data: SavedGame["floor"], reg: ObjRegistry, width: number, ids: ContentIdResolver): Map<number, GameObject[]>;
731
+ /**
732
+ * Rebuild the trap map from saved instances against the bound kinds. This is
733
+ * rd_trap (load.c:359) plus its caller rd_traps_aux (L1473): the per-trap read
734
+ * is not a separate function here because the port stores traps per grid rather
735
+ * than as a linked list off the square.
736
+ */
737
+ export declare function deserializeTraps(data: SavedGame["traps"], kinds: readonly TrapKind[], width: number, ids: ContentIdResolver, onDecoy?: (grid: Loc) => void): Map<number, Trap[]>;
738
+ /** One serialized store: its proprietor index and its full stock, in order. */
739
+ export interface SavedStore {
740
+ /** store->owner->oidx (save.c:754): the current proprietor's index. */
741
+ ownerIndex: number;
742
+ /** store->stock (save.c:761), head-first; the home stash for FEAT_HOME. */
743
+ stock: SavedObject[];
744
+ }
745
+ /**
746
+ * Serialize the live town stores (wr_stores): each shop's proprietor and stock,
747
+ * in registry order. Returns undefined when the game has no stores yet (never
748
+ * reached town), so a fresh dungeon-start save omits the block entirely.
749
+ */
750
+ export declare function serializeStores(stores: readonly Store[] | undefined, ids: ContentIdResolver): SavedStore[] | undefined;
751
+ /**
752
+ * Rebuild the live town stores (rd_stores): re-bind each store's immutable
753
+ * tables from the pack (owners, stocking tables, buy list, bounds) and overlay
754
+ * the saved proprietor + stock. Matches upstream's positional keying (store i
755
+ * <-> saved i). Draws NO RNG - the caller has already restored the exact
756
+ * stream, so store restore must not perturb it (decision 22). A saved store
757
+ * beyond the current registry length is dropped; a registry store with no saved
758
+ * counterpart keeps an empty, default-owner shell (re-stocked on town entry).
759
+ */
760
+ export declare function deserializeStores(bound: readonly BoundStore[], saved: SavedStore[] | undefined, reg: ObjRegistry, ids: ContentIdResolver, storeInvenMax: number): Store[];
761
+ /** aup_info id list -> the boolean[] by aidx that ArtifactState.restore wants. */
762
+ export declare function deserializeArtifactsCreated(saved: string[] | undefined, length: number, ids: ContentIdResolver): boolean[];
763
+ /** Restore one aup_info boolean field from stable artifact ids. */
764
+ export declare function deserializeArtifactFlags(saved: string[] | undefined, length: number, ids: ContentIdResolver): boolean[];
765
+ /**
766
+ * Rebuild a chunk of the saved dimensions and restore its squares, remapping
767
+ * the terrain grid through the save's feature legend so feature references
768
+ * survive a pack change.
769
+ */
770
+ export declare function deserializeChunk(data: ChunkSquaresData, features: Chunk["features"], featRemap: Map<number, number>): Chunk;
771
+ /** One serialized frozen level: the same field-set as the current level. */
772
+ export interface SavedStoredLevel {
773
+ depth: number;
774
+ /** Game turn the level was frozen at (restore_monsters recovery baseline). */
775
+ turn: number;
776
+ chunk: ChunkSquaresData;
777
+ featLegend?: Array<[number, string]>;
778
+ monsters: Array<SavedMonster | null>;
779
+ groups: Array<MonsterGroup | null>;
780
+ floor: Array<{
781
+ x: number;
782
+ y: number;
783
+ objs: SavedObject[];
784
+ }>;
785
+ traps: Array<{
786
+ x: number;
787
+ y: number;
788
+ traps: SavedTrap[];
789
+ }>;
790
+ known: SavedKnown;
791
+ decoy?: {
792
+ x: number;
793
+ y: number;
794
+ } | null;
795
+ /** chunk->join stair connectors (generate.c L1203-1214); absent in old saves. */
796
+ join?: Array<{
797
+ x: number;
798
+ y: number;
799
+ feat: number;
800
+ info?: number[];
801
+ }>;
802
+ }
803
+ /** Serialize the whole frozen-level cache (empty / absent => omitted). */
804
+ export declare function serializeLevelCache(cache: Map<number, StoredLevel> | undefined, ids: ContentIdResolver): SavedStoredLevel[] | undefined;
805
+ /**
806
+ * Rebuild the frozen-level cache (absent in older / default saves: empty).
807
+ * Reuses the current-level deserializers so a cached level round-trips exactly
808
+ * like the live one, including per-level feature-legend remapping.
809
+ */
810
+ export declare function deserializeLevelCache(data: SavedStoredLevel[] | undefined, features: Chunk["features"], monsters: MonsterRegistry, objects: ObjRegistry, traps: readonly TrapKind[] | null | undefined, ids: ContentIdResolver): Map<number, StoredLevel>;
811
+ /**
812
+ * JSON-encode a save, optionally compress it, and stamp it with the integrity
813
+ * trailer (16b).
814
+ *
815
+ * ORDER: JSON -> codec -> stamp. The digest therefore covers the bytes that are
816
+ * actually stored, and the trailer stays findable without running a decompressor
817
+ * first - which matters because an unknown codec must still be diagnosable.
818
+ * Passing no codec writes the bare JSON every earlier build wrote.
819
+ */
820
+ export declare function encodeSavedGame(save: SavedGame, provider?: SaveIntegrity, codec?: SaveCodec): Uint8Array;
821
+ /** The decoded form of a stamped save. */
822
+ export interface DecodedSave {
823
+ save: SavedGame | null;
824
+ /** The integrity digest matched. */
825
+ verified: boolean;
826
+ /** No trailer was present at all. */
827
+ unstamped: boolean;
828
+ /** The codec that wrote it, or null for an uncompressed save. */
829
+ codecId?: string | null;
830
+ /**
831
+ * Set when the save names a codec this build does not have - a save from a
832
+ * NEWER build, which is a different thing from a corrupt one and must be
833
+ * reported differently: nothing is wrong with the file, and telling the player
834
+ * it is damaged would invite them to delete a perfectly good character.
835
+ */
836
+ unknownCodec?: string;
837
+ }
838
+ /**
839
+ * Verify and parse stamped save bytes. A failed digest still parses (the
840
+ * warn-and-label posture of decision 16b - the deterrent is honest, not a
841
+ * lock), with verified=false for the caller to surface.
842
+ *
843
+ * `codecs` are the compressors this build can run. An uncompressed save needs
844
+ * none, so a caller that never compresses can keep ignoring this argument.
845
+ */
846
+ export declare function decodeSavedGame(bytes: Uint8Array, provider?: SaveIntegrity, codecs?: readonly SaveCodec[]): DecodedSave;
847
+ //# sourceMappingURL=save.d.ts.map