@rpgm-tools/neo-angband-core 0.18.0 → 0.19.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 (848) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/perceive.d.ts.map +1 -1
  3. package/dist/agent/perceive.js +2 -2
  4. package/dist/agent/perceive.js.map +1 -1
  5. package/dist/combat/blow-vectors.d.ts +78 -0
  6. package/dist/combat/blow-vectors.d.ts.map +1 -0
  7. package/dist/combat/blow-vectors.fixtures.d.ts +19 -0
  8. package/dist/combat/blow-vectors.fixtures.d.ts.map +1 -0
  9. package/dist/combat/blow-vectors.fixtures.js +81 -0
  10. package/dist/combat/blow-vectors.fixtures.js.map +1 -0
  11. package/dist/combat/blow-vectors.js +195 -0
  12. package/dist/combat/blow-vectors.js.map +1 -0
  13. package/dist/combat/brand-slay.d.ts +22 -9
  14. package/dist/combat/brand-slay.d.ts.map +1 -1
  15. package/dist/combat/brand-slay.js +37 -10
  16. package/dist/combat/brand-slay.js.map +1 -1
  17. package/dist/combat/index.d.ts +1 -1
  18. package/dist/combat/index.js +1 -1
  19. package/dist/combat/melee.d.ts +25 -13
  20. package/dist/combat/melee.d.ts.map +1 -1
  21. package/dist/combat/melee.js +23 -19
  22. package/dist/combat/melee.js.map +1 -1
  23. package/dist/combat/mon-melee.d.ts +166 -7
  24. package/dist/combat/mon-melee.d.ts.map +1 -1
  25. package/dist/combat/mon-melee.js +469 -338
  26. package/dist/combat/mon-melee.js.map +1 -1
  27. package/dist/combat/ranged.d.ts +15 -13
  28. package/dist/combat/ranged.d.ts.map +1 -1
  29. package/dist/combat/ranged.js +31 -29
  30. package/dist/combat/ranged.js.map +1 -1
  31. package/dist/constants.d.ts +14 -0
  32. package/dist/constants.d.ts.map +1 -1
  33. package/dist/constants.js +14 -0
  34. package/dist/constants.js.map +1 -1
  35. package/dist/datafile.d.ts +48 -0
  36. package/dist/datafile.d.ts.map +1 -0
  37. package/dist/datafile.js +102 -0
  38. package/dist/datafile.js.map +1 -0
  39. package/dist/effects/effect-info-registry.d.ts +237 -0
  40. package/dist/effects/effect-info-registry.d.ts.map +1 -0
  41. package/dist/effects/effect-info-registry.js +138 -0
  42. package/dist/effects/effect-info-registry.js.map +1 -0
  43. package/dist/effects/effect-info-vectors.d.ts +92 -0
  44. package/dist/effects/effect-info-vectors.d.ts.map +1 -0
  45. package/dist/effects/effect-info-vectors.fixtures.d.ts +18 -0
  46. package/dist/effects/effect-info-vectors.fixtures.d.ts.map +1 -0
  47. package/dist/effects/effect-info-vectors.fixtures.js +51 -0
  48. package/dist/effects/effect-info-vectors.fixtures.js.map +1 -0
  49. package/dist/effects/effect-info-vectors.js +315 -0
  50. package/dist/effects/effect-info-vectors.js.map +1 -0
  51. package/dist/effects/effect-info.d.ts +5 -1
  52. package/dist/effects/effect-info.d.ts.map +1 -1
  53. package/dist/effects/effect-info.js +245 -143
  54. package/dist/effects/effect-info.js.map +1 -1
  55. package/dist/effects/effect.d.ts +4 -3
  56. package/dist/effects/effect.d.ts.map +1 -1
  57. package/dist/effects/effect.js +88 -70
  58. package/dist/effects/effect.js.map +1 -1
  59. package/dist/effects/handlers.d.ts +1 -1
  60. package/dist/effects/handlers.d.ts.map +1 -1
  61. package/dist/effects/handlers.js +5 -2
  62. package/dist/effects/handlers.js.map +1 -1
  63. package/dist/effects/interpreter.d.ts +11 -0
  64. package/dist/effects/interpreter.d.ts.map +1 -1
  65. package/dist/effects/interpreter.js +13 -0
  66. package/dist/effects/interpreter.js.map +1 -1
  67. package/dist/game/cave-cmd.d.ts +9 -5
  68. package/dist/game/cave-cmd.d.ts.map +1 -1
  69. package/dist/game/cave-cmd.js +56 -11
  70. package/dist/game/cave-cmd.js.map +1 -1
  71. package/dist/game/cave-square.d.ts +42 -0
  72. package/dist/game/cave-square.d.ts.map +1 -0
  73. package/dist/game/cave-square.js +73 -0
  74. package/dist/game/cave-square.js.map +1 -0
  75. package/dist/game/char-sheet.d.ts +12 -8
  76. package/dist/game/char-sheet.d.ts.map +1 -1
  77. package/dist/game/char-sheet.js +41 -8
  78. package/dist/game/char-sheet.js.map +1 -1
  79. package/dist/game/chest.d.ts +2 -3
  80. package/dist/game/chest.d.ts.map +1 -1
  81. package/dist/game/chest.js +17 -6
  82. package/dist/game/chest.js.map +1 -1
  83. package/dist/game/context.d.ts +213 -22
  84. package/dist/game/context.d.ts.map +1 -1
  85. package/dist/game/context.js +109 -17
  86. package/dist/game/context.js.map +1 -1
  87. package/dist/game/describe.d.ts +13 -0
  88. package/dist/game/describe.d.ts.map +1 -1
  89. package/dist/game/describe.js +32 -4
  90. package/dist/game/describe.js.map +1 -1
  91. package/dist/game/display.d.ts +97 -8
  92. package/dist/game/display.d.ts.map +1 -1
  93. package/dist/game/display.js +157 -13
  94. package/dist/game/display.js.map +1 -1
  95. package/dist/game/dump-level.d.ts.map +1 -1
  96. package/dist/game/dump-level.js +3 -2
  97. package/dist/game/dump-level.js.map +1 -1
  98. package/dist/game/effect-attack.d.ts.map +1 -1
  99. package/dist/game/effect-attack.js +36 -27
  100. package/dist/game/effect-attack.js.map +1 -1
  101. package/dist/game/effect-detect.d.ts +4 -4
  102. package/dist/game/effect-detect.d.ts.map +1 -1
  103. package/dist/game/effect-detect.js +42 -9
  104. package/dist/game/effect-detect.js.map +1 -1
  105. package/dist/game/effect-env.d.ts +7 -1
  106. package/dist/game/effect-env.d.ts.map +1 -1
  107. package/dist/game/effect-env.js +1 -0
  108. package/dist/game/effect-env.js.map +1 -1
  109. package/dist/game/effect-general.d.ts +5 -3
  110. package/dist/game/effect-general.d.ts.map +1 -1
  111. package/dist/game/effect-general.js +94 -43
  112. package/dist/game/effect-general.js.map +1 -1
  113. package/dist/game/effect-item.d.ts +2 -1
  114. package/dist/game/effect-item.d.ts.map +1 -1
  115. package/dist/game/effect-item.js +136 -82
  116. package/dist/game/effect-item.js.map +1 -1
  117. package/dist/game/effect-melee.d.ts +10 -4
  118. package/dist/game/effect-melee.d.ts.map +1 -1
  119. package/dist/game/effect-melee.js +44 -19
  120. package/dist/game/effect-melee.js.map +1 -1
  121. package/dist/game/effect-monster.d.ts +26 -4
  122. package/dist/game/effect-monster.d.ts.map +1 -1
  123. package/dist/game/effect-monster.js +52 -9
  124. package/dist/game/effect-monster.js.map +1 -1
  125. package/dist/game/effect-teleport.d.ts +58 -19
  126. package/dist/game/effect-teleport.d.ts.map +1 -1
  127. package/dist/game/effect-teleport.js +143 -27
  128. package/dist/game/effect-teleport.js.map +1 -1
  129. package/dist/game/effect-terrain.d.ts +1 -3
  130. package/dist/game/effect-terrain.d.ts.map +1 -1
  131. package/dist/game/effect-terrain.js +38 -22
  132. package/dist/game/effect-terrain.js.map +1 -1
  133. package/dist/game/equip-cmp.d.ts.map +1 -1
  134. package/dist/game/equip-cmp.js +10 -7
  135. package/dist/game/equip-cmp.js.map +1 -1
  136. package/dist/game/floor.d.ts +16 -4
  137. package/dist/game/floor.d.ts.map +1 -1
  138. package/dist/game/floor.js +22 -4
  139. package/dist/game/floor.js.map +1 -1
  140. package/dist/game/gear.d.ts +101 -13
  141. package/dist/game/gear.d.ts.map +1 -1
  142. package/dist/game/gear.js +183 -24
  143. package/dist/game/gear.js.map +1 -1
  144. package/dist/game/harness.d.ts +2 -1
  145. package/dist/game/harness.d.ts.map +1 -1
  146. package/dist/game/harness.js +12 -1
  147. package/dist/game/harness.js.map +1 -1
  148. package/dist/game/ignore-cmd.d.ts +47 -8
  149. package/dist/game/ignore-cmd.d.ts.map +1 -1
  150. package/dist/game/ignore-cmd.js +76 -8
  151. package/dist/game/ignore-cmd.js.map +1 -1
  152. package/dist/game/known.d.ts +223 -34
  153. package/dist/game/known.d.ts.map +1 -1
  154. package/dist/game/known.js +301 -67
  155. package/dist/game/known.js.map +1 -1
  156. package/dist/game/loop.d.ts +4 -3
  157. package/dist/game/loop.d.ts.map +1 -1
  158. package/dist/game/loop.js +49 -29
  159. package/dist/game/loop.js.map +1 -1
  160. package/dist/game/lore-color.d.ts.map +1 -1
  161. package/dist/game/lore-color.js +13 -1
  162. package/dist/game/lore-color.js.map +1 -1
  163. package/dist/game/mon-cast.d.ts +3 -4
  164. package/dist/game/mon-cast.d.ts.map +1 -1
  165. package/dist/game/mon-cast.js +30 -2
  166. package/dist/game/mon-cast.js.map +1 -1
  167. package/dist/game/mon-cmd.d.ts +4 -5
  168. package/dist/game/mon-cmd.d.ts.map +1 -1
  169. package/dist/game/mon-cmd.js +80 -27
  170. package/dist/game/mon-cmd.js.map +1 -1
  171. package/dist/game/mon-death.d.ts +8 -4
  172. package/dist/game/mon-death.d.ts.map +1 -1
  173. package/dist/game/mon-death.js +6 -9
  174. package/dist/game/mon-death.js.map +1 -1
  175. package/dist/game/mon-group.d.ts +9 -5
  176. package/dist/game/mon-group.d.ts.map +1 -1
  177. package/dist/game/mon-group.js +9 -5
  178. package/dist/game/mon-group.js.map +1 -1
  179. package/dist/game/mon-message.d.ts +90 -40
  180. package/dist/game/mon-message.d.ts.map +1 -1
  181. package/dist/game/mon-message.js +267 -59
  182. package/dist/game/mon-message.js.map +1 -1
  183. package/dist/game/mon-place.d.ts +11 -1
  184. package/dist/game/mon-place.d.ts.map +1 -1
  185. package/dist/game/mon-place.js +15 -3
  186. package/dist/game/mon-place.js.map +1 -1
  187. package/dist/game/mon-ranged.d.ts +2 -1
  188. package/dist/game/mon-ranged.d.ts.map +1 -1
  189. package/dist/game/mon-ranged.js +11 -5
  190. package/dist/game/mon-ranged.js.map +1 -1
  191. package/dist/game/mon-side.d.ts +3 -2
  192. package/dist/game/mon-side.d.ts.map +1 -1
  193. package/dist/game/mon-side.js +15 -14
  194. package/dist/game/mon-side.js.map +1 -1
  195. package/dist/game/monster-turn.d.ts +20 -10
  196. package/dist/game/monster-turn.d.ts.map +1 -1
  197. package/dist/game/monster-turn.js +110 -83
  198. package/dist/game/monster-turn.js.map +1 -1
  199. package/dist/game/notice.d.ts +36 -0
  200. package/dist/game/notice.d.ts.map +1 -0
  201. package/dist/game/notice.js +79 -0
  202. package/dist/game/notice.js.map +1 -0
  203. package/dist/game/obj-cmd.d.ts +14 -3
  204. package/dist/game/obj-cmd.d.ts.map +1 -1
  205. package/dist/game/obj-cmd.js +109 -35
  206. package/dist/game/obj-cmd.js.map +1 -1
  207. package/dist/game/obj-list.d.ts +13 -2
  208. package/dist/game/obj-list.d.ts.map +1 -1
  209. package/dist/game/obj-list.js +42 -27
  210. package/dist/game/obj-list.js.map +1 -1
  211. package/dist/game/object-inspect.d.ts +9 -0
  212. package/dist/game/object-inspect.d.ts.map +1 -1
  213. package/dist/game/object-inspect.js +4 -0
  214. package/dist/game/object-inspect.js.map +1 -1
  215. package/dist/game/pickup.d.ts +0 -2
  216. package/dist/game/pickup.d.ts.map +1 -1
  217. package/dist/game/pickup.js +18 -3
  218. package/dist/game/pickup.js.map +1 -1
  219. package/dist/game/player-side-vectors.d.ts +174 -0
  220. package/dist/game/player-side-vectors.d.ts.map +1 -0
  221. package/dist/game/player-side-vectors.fixtures.d.ts +33 -0
  222. package/dist/game/player-side-vectors.fixtures.d.ts.map +1 -0
  223. package/dist/game/player-side-vectors.fixtures.js +191 -0
  224. package/dist/game/player-side-vectors.fixtures.js.map +1 -0
  225. package/dist/game/player-side-vectors.js +292 -0
  226. package/dist/game/player-side-vectors.js.map +1 -0
  227. package/dist/game/player-side.d.ts +129 -1
  228. package/dist/game/player-side.d.ts.map +1 -1
  229. package/dist/game/player-side.js +520 -338
  230. package/dist/game/player-side.js.map +1 -1
  231. package/dist/game/player-turn.d.ts +26 -7
  232. package/dist/game/player-turn.d.ts.map +1 -1
  233. package/dist/game/player-turn.js +180 -33
  234. package/dist/game/player-turn.js.map +1 -1
  235. package/dist/game/poly.d.ts +38 -0
  236. package/dist/game/poly.d.ts.map +1 -0
  237. package/dist/game/poly.js +82 -0
  238. package/dist/game/poly.js.map +1 -0
  239. package/dist/game/project-cast.d.ts +20 -3
  240. package/dist/game/project-cast.d.ts.map +1 -1
  241. package/dist/game/project-cast.js +49 -6
  242. package/dist/game/project-cast.js.map +1 -1
  243. package/dist/game/project-feat-vectors.d.ts +124 -0
  244. package/dist/game/project-feat-vectors.d.ts.map +1 -0
  245. package/dist/game/project-feat-vectors.fixtures.d.ts +13 -0
  246. package/dist/game/project-feat-vectors.fixtures.d.ts.map +1 -0
  247. package/dist/game/project-feat-vectors.fixtures.js +94 -0
  248. package/dist/game/project-feat-vectors.fixtures.js.map +1 -0
  249. package/dist/game/project-feat-vectors.js +229 -0
  250. package/dist/game/project-feat-vectors.js.map +1 -0
  251. package/dist/game/project-feat.d.ts +53 -1
  252. package/dist/game/project-feat.d.ts.map +1 -1
  253. package/dist/game/project-feat.js +374 -247
  254. package/dist/game/project-feat.js.map +1 -1
  255. package/dist/game/project-monster.d.ts +21 -8
  256. package/dist/game/project-monster.d.ts.map +1 -1
  257. package/dist/game/project-monster.js +45 -21
  258. package/dist/game/project-monster.js.map +1 -1
  259. package/dist/game/project-obj.d.ts +62 -0
  260. package/dist/game/project-obj.d.ts.map +1 -1
  261. package/dist/game/project-obj.js +72 -41
  262. package/dist/game/project-obj.js.map +1 -1
  263. package/dist/game/project-player.d.ts +8 -0
  264. package/dist/game/project-player.d.ts.map +1 -1
  265. package/dist/game/project-player.js.map +1 -1
  266. package/dist/game/projection-handlers.d.ts +81 -0
  267. package/dist/game/projection-handlers.d.ts.map +1 -0
  268. package/dist/game/projection-handlers.js +93 -0
  269. package/dist/game/projection-handlers.js.map +1 -0
  270. package/dist/game/quest.d.ts +23 -0
  271. package/dist/game/quest.d.ts.map +1 -1
  272. package/dist/game/quest.js +42 -0
  273. package/dist/game/quest.js.map +1 -1
  274. package/dist/game/ranged-cmd.d.ts +13 -2
  275. package/dist/game/ranged-cmd.d.ts.map +1 -1
  276. package/dist/game/ranged-cmd.js +32 -15
  277. package/dist/game/ranged-cmd.js.map +1 -1
  278. package/dist/game/repeat.d.ts +78 -0
  279. package/dist/game/repeat.d.ts.map +1 -0
  280. package/dist/game/repeat.js +88 -0
  281. package/dist/game/repeat.js.map +1 -0
  282. package/dist/game/shape-inspect.d.ts +74 -0
  283. package/dist/game/shape-inspect.d.ts.map +1 -0
  284. package/dist/game/shape-inspect.js +114 -0
  285. package/dist/game/shape-inspect.js.map +1 -0
  286. package/dist/game/spell-cmd.d.ts +15 -4
  287. package/dist/game/spell-cmd.d.ts.map +1 -1
  288. package/dist/game/spell-cmd.js +35 -6
  289. package/dist/game/spell-cmd.js.map +1 -1
  290. package/dist/game/spoil.d.ts.map +1 -1
  291. package/dist/game/spoil.js +89 -40
  292. package/dist/game/spoil.js.map +1 -1
  293. package/dist/game/steal.d.ts +3 -3
  294. package/dist/game/steal.d.ts.map +1 -1
  295. package/dist/game/steal.js +9 -4
  296. package/dist/game/steal.js.map +1 -1
  297. package/dist/game/target-loop.d.ts +10 -4
  298. package/dist/game/target-loop.d.ts.map +1 -1
  299. package/dist/game/target-loop.js +14 -8
  300. package/dist/game/target-loop.js.map +1 -1
  301. package/dist/game/target.d.ts +4 -4
  302. package/dist/game/target.d.ts.map +1 -1
  303. package/dist/game/target.js +19 -8
  304. package/dist/game/target.js.map +1 -1
  305. package/dist/game/ui-entry.d.ts +63 -4
  306. package/dist/game/ui-entry.d.ts.map +1 -1
  307. package/dist/game/ui-entry.js +151 -23
  308. package/dist/game/ui-entry.js.map +1 -1
  309. package/dist/game/wizard.d.ts +23 -5
  310. package/dist/game/wizard.d.ts.map +1 -1
  311. package/dist/game/wizard.js +93 -11
  312. package/dist/game/wizard.js.map +1 -1
  313. package/dist/game/world.d.ts.map +1 -1
  314. package/dist/game/world.js +6 -0
  315. package/dist/game/world.js.map +1 -1
  316. package/dist/gen/cave.d.ts +49 -8
  317. package/dist/gen/cave.d.ts.map +1 -1
  318. package/dist/gen/cave.js +200 -28
  319. package/dist/gen/cave.js.map +1 -1
  320. package/dist/gen/generate.d.ts +54 -9
  321. package/dist/gen/generate.d.ts.map +1 -1
  322. package/dist/gen/generate.js +55 -8
  323. package/dist/gen/generate.js.map +1 -1
  324. package/dist/gen/glyph-vectors.d.ts +109 -0
  325. package/dist/gen/glyph-vectors.d.ts.map +1 -0
  326. package/dist/gen/glyph-vectors.fixtures.d.ts +18 -0
  327. package/dist/gen/glyph-vectors.fixtures.d.ts.map +1 -0
  328. package/dist/gen/glyph-vectors.fixtures.js +94 -0
  329. package/dist/gen/glyph-vectors.fixtures.js.map +1 -0
  330. package/dist/gen/glyph-vectors.js +218 -0
  331. package/dist/gen/glyph-vectors.js.map +1 -0
  332. package/dist/gen/glyph.d.ts +104 -0
  333. package/dist/gen/glyph.d.ts.map +1 -0
  334. package/dist/gen/glyph.js +72 -0
  335. package/dist/gen/glyph.js.map +1 -0
  336. package/dist/gen/room.d.ts +26 -2
  337. package/dist/gen/room.d.ts.map +1 -1
  338. package/dist/gen/room.js +414 -264
  339. package/dist/gen/room.js.map +1 -1
  340. package/dist/gen/util.d.ts +11 -2
  341. package/dist/gen/util.d.ts.map +1 -1
  342. package/dist/gen/util.js +31 -9
  343. package/dist/gen/util.js.map +1 -1
  344. package/dist/i18n/i18n.d.ts +207 -0
  345. package/dist/i18n/i18n.d.ts.map +1 -0
  346. package/dist/i18n/i18n.js +405 -0
  347. package/dist/i18n/i18n.js.map +1 -0
  348. package/dist/i18n/text.d.ts +62 -0
  349. package/dist/i18n/text.d.ts.map +1 -0
  350. package/dist/i18n/text.js +120 -0
  351. package/dist/i18n/text.js.map +1 -0
  352. package/dist/index.d.ts +25 -0
  353. package/dist/index.d.ts.map +1 -1
  354. package/dist/index.js +38 -0
  355. package/dist/index.js.map +1 -1
  356. package/dist/mod/extension.d.ts +115 -0
  357. package/dist/mod/extension.d.ts.map +1 -0
  358. package/dist/mod/extension.js +85 -0
  359. package/dist/mod/extension.js.map +1 -0
  360. package/dist/mod/ids.d.ts +10 -0
  361. package/dist/mod/ids.d.ts.map +1 -1
  362. package/dist/mod/ids.js +90 -21
  363. package/dist/mod/ids.js.map +1 -1
  364. package/dist/mod/record-keys.d.ts +43 -0
  365. package/dist/mod/record-keys.d.ts.map +1 -0
  366. package/dist/mod/record-keys.js +100 -0
  367. package/dist/mod/record-keys.js.map +1 -0
  368. package/dist/mod/registry-host.d.ts +472 -0
  369. package/dist/mod/registry-host.d.ts.map +1 -1
  370. package/dist/mod/registry-host.js +313 -0
  371. package/dist/mod/registry-host.js.map +1 -1
  372. package/dist/mod/save-blocks.d.ts +1 -1
  373. package/dist/mon/bind.d.ts.map +1 -1
  374. package/dist/mon/bind.js +6 -3
  375. package/dist/mon/bind.js.map +1 -1
  376. package/dist/mon/knowledge-groups.d.ts +0 -6
  377. package/dist/mon/knowledge-groups.d.ts.map +1 -1
  378. package/dist/mon/knowledge-groups.js +12 -8
  379. package/dist/mon/knowledge-groups.js.map +1 -1
  380. package/dist/mon/lore-describe.d.ts +46 -10
  381. package/dist/mon/lore-describe.d.ts.map +1 -1
  382. package/dist/mon/lore-describe.js +74 -22
  383. package/dist/mon/lore-describe.js.map +1 -1
  384. package/dist/mon/lore-file.d.ts +126 -0
  385. package/dist/mon/lore-file.d.ts.map +1 -0
  386. package/dist/mon/lore-file.js +291 -0
  387. package/dist/mon/lore-file.js.map +1 -0
  388. package/dist/mon/lore.d.ts +9 -3
  389. package/dist/mon/lore.d.ts.map +1 -1
  390. package/dist/mon/lore.js +9 -3
  391. package/dist/mon/lore.js.map +1 -1
  392. package/dist/mon/make.d.ts +4 -2
  393. package/dist/mon/make.d.ts.map +1 -1
  394. package/dist/mon/make.js +4 -2
  395. package/dist/mon/make.js.map +1 -1
  396. package/dist/mon/monster.d.ts +1 -1
  397. package/dist/mon/monster.js +1 -1
  398. package/dist/mon/predicate.d.ts +14 -9
  399. package/dist/mon/predicate.d.ts.map +1 -1
  400. package/dist/mon/predicate.js +14 -9
  401. package/dist/mon/predicate.js.map +1 -1
  402. package/dist/mon/project-mon.d.ts +16 -3
  403. package/dist/mon/project-mon.d.ts.map +1 -1
  404. package/dist/mon/project-mon.js +14 -5
  405. package/dist/mon/project-mon.js.map +1 -1
  406. package/dist/mon/steal.d.ts +31 -4
  407. package/dist/mon/steal.d.ts.map +1 -1
  408. package/dist/mon/steal.js +20 -7
  409. package/dist/mon/steal.js.map +1 -1
  410. package/dist/mon/take-hit.d.ts +8 -3
  411. package/dist/mon/take-hit.d.ts.map +1 -1
  412. package/dist/mon/take-hit.js +8 -3
  413. package/dist/mon/take-hit.js.map +1 -1
  414. package/dist/mon/timed.d.ts +15 -9
  415. package/dist/mon/timed.d.ts.map +1 -1
  416. package/dist/mon/timed.js +13 -8
  417. package/dist/mon/timed.js.map +1 -1
  418. package/dist/mon/types.d.ts +11 -4
  419. package/dist/mon/types.d.ts.map +1 -1
  420. package/dist/mon/types.js.map +1 -1
  421. package/dist/msg.d.ts +40 -1
  422. package/dist/msg.d.ts.map +1 -1
  423. package/dist/msg.js +42 -1
  424. package/dist/msg.js.map +1 -1
  425. package/dist/obj/artifact-fake.d.ts +46 -14
  426. package/dist/obj/artifact-fake.d.ts.map +1 -1
  427. package/dist/obj/artifact-fake.js +46 -17
  428. package/dist/obj/artifact-fake.js.map +1 -1
  429. package/dist/obj/bind.d.ts +23 -0
  430. package/dist/obj/bind.d.ts.map +1 -1
  431. package/dist/obj/bind.js +49 -9
  432. package/dist/obj/bind.js.map +1 -1
  433. package/dist/obj/desc-vectors.d.ts +68 -0
  434. package/dist/obj/desc-vectors.d.ts.map +1 -0
  435. package/dist/obj/desc-vectors.fixtures.d.ts +12 -0
  436. package/dist/obj/desc-vectors.fixtures.d.ts.map +1 -0
  437. package/dist/obj/desc-vectors.fixtures.js +95 -0
  438. package/dist/obj/desc-vectors.fixtures.js.map +1 -0
  439. package/dist/obj/desc-vectors.js +86 -0
  440. package/dist/obj/desc-vectors.js.map +1 -0
  441. package/dist/obj/desc.d.ts +17 -2
  442. package/dist/obj/desc.d.ts.map +1 -1
  443. package/dist/obj/desc.js +129 -54
  444. package/dist/obj/desc.js.map +1 -1
  445. package/dist/obj/effects-info.d.ts.map +1 -1
  446. package/dist/obj/effects-info.js +87 -58
  447. package/dist/obj/effects-info.js.map +1 -1
  448. package/dist/obj/fake-object.d.ts +70 -0
  449. package/dist/obj/fake-object.d.ts.map +1 -0
  450. package/dist/obj/fake-object.js +104 -0
  451. package/dist/obj/fake-object.js.map +1 -0
  452. package/dist/obj/ignore.d.ts +55 -12
  453. package/dist/obj/ignore.d.ts.map +1 -1
  454. package/dist/obj/ignore.js +68 -31
  455. package/dist/obj/ignore.js.map +1 -1
  456. package/dist/obj/knowledge.d.ts +46 -3
  457. package/dist/obj/knowledge.d.ts.map +1 -1
  458. package/dist/obj/knowledge.js +169 -151
  459. package/dist/obj/knowledge.js.map +1 -1
  460. package/dist/obj/known-object.d.ts +68 -8
  461. package/dist/obj/known-object.d.ts.map +1 -1
  462. package/dist/obj/known-object.js +90 -10
  463. package/dist/obj/known-object.js.map +1 -1
  464. package/dist/obj/make.d.ts +15 -4
  465. package/dist/obj/make.d.ts.map +1 -1
  466. package/dist/obj/make.js +49 -27
  467. package/dist/obj/make.js.map +1 -1
  468. package/dist/obj/object-info.d.ts +10 -0
  469. package/dist/obj/object-info.d.ts.map +1 -1
  470. package/dist/obj/object-info.js +93 -7
  471. package/dist/obj/object-info.js.map +1 -1
  472. package/dist/obj/object.d.ts +42 -4
  473. package/dist/obj/object.d.ts.map +1 -1
  474. package/dist/obj/object.js +362 -147
  475. package/dist/obj/object.js.map +1 -1
  476. package/dist/obj/power.d.ts +23 -4
  477. package/dist/obj/power.d.ts.map +1 -1
  478. package/dist/obj/power.js +231 -65
  479. package/dist/obj/power.js.map +1 -1
  480. package/dist/obj/randart-build.d.ts +27 -22
  481. package/dist/obj/randart-build.d.ts.map +1 -1
  482. package/dist/obj/randart-build.js +435 -357
  483. package/dist/obj/randart-build.js.map +1 -1
  484. package/dist/obj/randart-data.d.ts +62 -24
  485. package/dist/obj/randart-data.d.ts.map +1 -1
  486. package/dist/obj/randart-data.js +333 -189
  487. package/dist/obj/randart-data.js.map +1 -1
  488. package/dist/obj/randart-file.d.ts +21 -0
  489. package/dist/obj/randart-file.d.ts.map +1 -0
  490. package/dist/obj/randart-file.js +119 -0
  491. package/dist/obj/randart-file.js.map +1 -0
  492. package/dist/obj/randart-log.d.ts +63 -0
  493. package/dist/obj/randart-log.d.ts.map +1 -0
  494. package/dist/obj/randart-log.js +72 -0
  495. package/dist/obj/randart-log.js.map +1 -0
  496. package/dist/obj/randart-registry.d.ts +178 -0
  497. package/dist/obj/randart-registry.d.ts.map +1 -0
  498. package/dist/obj/randart-registry.js +140 -0
  499. package/dist/obj/randart-registry.js.map +1 -0
  500. package/dist/obj/randart-vectors.d.ts +97 -0
  501. package/dist/obj/randart-vectors.d.ts.map +1 -0
  502. package/dist/obj/randart-vectors.fixtures.d.ts +18 -0
  503. package/dist/obj/randart-vectors.fixtures.d.ts.map +1 -0
  504. package/dist/obj/randart-vectors.fixtures.js +50 -0
  505. package/dist/obj/randart-vectors.fixtures.js.map +1 -0
  506. package/dist/obj/randart-vectors.js +311 -0
  507. package/dist/obj/randart-vectors.js.map +1 -0
  508. package/dist/obj/randart.d.ts +53 -15
  509. package/dist/obj/randart.d.ts.map +1 -1
  510. package/dist/obj/randart.js +166 -44
  511. package/dist/obj/randart.js.map +1 -1
  512. package/dist/obj/rune-registry.d.ts +180 -0
  513. package/dist/obj/rune-registry.d.ts.map +1 -0
  514. package/dist/obj/rune-registry.js +161 -0
  515. package/dist/obj/rune-registry.js.map +1 -0
  516. package/dist/obj/rune-vectors.d.ts +99 -0
  517. package/dist/obj/rune-vectors.d.ts.map +1 -0
  518. package/dist/obj/rune-vectors.fixtures.d.ts +44 -0
  519. package/dist/obj/rune-vectors.fixtures.d.ts.map +1 -0
  520. package/dist/obj/rune-vectors.fixtures.js +125 -0
  521. package/dist/obj/rune-vectors.fixtures.js.map +1 -0
  522. package/dist/obj/rune-vectors.js +159 -0
  523. package/dist/obj/rune-vectors.js.map +1 -0
  524. package/dist/obj/tval-registry.d.ts +174 -0
  525. package/dist/obj/tval-registry.d.ts.map +1 -0
  526. package/dist/obj/tval-registry.js +151 -0
  527. package/dist/obj/tval-registry.js.map +1 -0
  528. package/dist/obj/tval-vectors.d.ts +85 -0
  529. package/dist/obj/tval-vectors.d.ts.map +1 -0
  530. package/dist/obj/tval-vectors.fixtures.d.ts +24 -0
  531. package/dist/obj/tval-vectors.fixtures.d.ts.map +1 -0
  532. package/dist/obj/tval-vectors.fixtures.js +41 -0
  533. package/dist/obj/tval-vectors.fixtures.js.map +1 -0
  534. package/dist/obj/tval-vectors.js +76 -0
  535. package/dist/obj/tval-vectors.js.map +1 -0
  536. package/dist/obj/types.d.ts +18 -7
  537. package/dist/obj/types.d.ts.map +1 -1
  538. package/dist/obj/types.js.map +1 -1
  539. package/dist/obj/value.d.ts.map +1 -1
  540. package/dist/obj/value.js +23 -20
  541. package/dist/obj/value.js.map +1 -1
  542. package/dist/parser.d.ts +116 -0
  543. package/dist/parser.d.ts.map +1 -0
  544. package/dist/parser.js +205 -0
  545. package/dist/parser.js.map +1 -0
  546. package/dist/player/bind.d.ts.map +1 -1
  547. package/dist/player/bind.js +3 -2
  548. package/dist/player/bind.js.map +1 -1
  549. package/dist/player/birth.d.ts +2 -1
  550. package/dist/player/birth.d.ts.map +1 -1
  551. package/dist/player/birth.js +2 -1
  552. package/dist/player/birth.js.map +1 -1
  553. package/dist/player/calcs.d.ts +58 -23
  554. package/dist/player/calcs.d.ts.map +1 -1
  555. package/dist/player/calcs.js +93 -36
  556. package/dist/player/calcs.js.map +1 -1
  557. package/dist/player/death.d.ts +50 -0
  558. package/dist/player/death.d.ts.map +1 -0
  559. package/dist/player/death.js +46 -0
  560. package/dist/player/death.js.map +1 -0
  561. package/dist/player/options-file.d.ts +129 -0
  562. package/dist/player/options-file.d.ts.map +1 -0
  563. package/dist/player/options-file.js +309 -0
  564. package/dist/player/options-file.js.map +1 -0
  565. package/dist/player/options.d.ts +2 -1
  566. package/dist/player/options.d.ts.map +1 -1
  567. package/dist/player/options.js +2 -1
  568. package/dist/player/options.js.map +1 -1
  569. package/dist/player/player.d.ts +50 -3
  570. package/dist/player/player.d.ts.map +1 -1
  571. package/dist/player/player.js +10 -1
  572. package/dist/player/player.js.map +1 -1
  573. package/dist/player/shape-lore.d.ts +11 -7
  574. package/dist/player/shape-lore.d.ts.map +1 -1
  575. package/dist/player/shape-lore.js +24 -11
  576. package/dist/player/shape-lore.js.map +1 -1
  577. package/dist/player/timed.d.ts +5 -3
  578. package/dist/player/timed.d.ts.map +1 -1
  579. package/dist/player/timed.js +11 -2
  580. package/dist/player/timed.js.map +1 -1
  581. package/dist/player/types.d.ts +29 -4
  582. package/dist/player/types.d.ts.map +1 -1
  583. package/dist/player/types.js +24 -1
  584. package/dist/player/types.js.map +1 -1
  585. package/dist/session/boot.d.ts +26 -2
  586. package/dist/session/boot.d.ts.map +1 -1
  587. package/dist/session/boot.js +21 -2
  588. package/dist/session/boot.js.map +1 -1
  589. package/dist/session/game.d.ts +15 -0
  590. package/dist/session/game.d.ts.map +1 -1
  591. package/dist/session/game.js +616 -140
  592. package/dist/session/game.js.map +1 -1
  593. package/dist/session/save-migrate.d.ts.map +1 -1
  594. package/dist/session/save-migrate.js +76 -1
  595. package/dist/session/save-migrate.js.map +1 -1
  596. package/dist/session/save.d.ts +75 -12
  597. package/dist/session/save.d.ts.map +1 -1
  598. package/dist/session/save.js +177 -18
  599. package/dist/session/save.js.map +1 -1
  600. package/dist/store/bind.d.ts +1 -1
  601. package/dist/store/bind.d.ts.map +1 -1
  602. package/dist/store/bind.js +4 -3
  603. package/dist/store/bind.js.map +1 -1
  604. package/dist/store/mass-produce-vectors.d.ts +40 -0
  605. package/dist/store/mass-produce-vectors.d.ts.map +1 -0
  606. package/dist/store/mass-produce-vectors.fixtures.d.ts +13 -0
  607. package/dist/store/mass-produce-vectors.fixtures.d.ts.map +1 -0
  608. package/dist/store/mass-produce-vectors.fixtures.js +52 -0
  609. package/dist/store/mass-produce-vectors.fixtures.js.map +1 -0
  610. package/dist/store/mass-produce-vectors.js +44 -0
  611. package/dist/store/mass-produce-vectors.js.map +1 -0
  612. package/dist/store/store.d.ts +104 -7
  613. package/dist/store/store.d.ts.map +1 -1
  614. package/dist/store/store.js +199 -77
  615. package/dist/store/store.js.map +1 -1
  616. package/dist/store/transact.d.ts +14 -5
  617. package/dist/store/transact.d.ts.map +1 -1
  618. package/dist/store/transact.js +17 -16
  619. package/dist/store/transact.js.map +1 -1
  620. package/dist/store/types.d.ts +3 -2
  621. package/dist/store/types.d.ts.map +1 -1
  622. package/dist/store/types.js +1 -1
  623. package/dist/version.d.ts +1 -1
  624. package/dist/version.js +1 -1
  625. package/dist/visuals/index.d.ts +1 -0
  626. package/dist/visuals/index.d.ts.map +1 -1
  627. package/dist/visuals/index.js +1 -0
  628. package/dist/visuals/index.js.map +1 -1
  629. package/dist/visuals/map-text.d.ts +8 -0
  630. package/dist/visuals/map-text.d.ts.map +1 -1
  631. package/dist/visuals/map-text.js +1 -1
  632. package/dist/visuals/map-text.js.map +1 -1
  633. package/dist/visuals/object-glyph.d.ts +56 -0
  634. package/dist/visuals/object-glyph.d.ts.map +1 -0
  635. package/dist/visuals/object-glyph.js +52 -0
  636. package/dist/visuals/object-glyph.js.map +1 -0
  637. package/dist/visuals/prefs.d.ts +14 -22
  638. package/dist/visuals/prefs.d.ts.map +1 -1
  639. package/dist/visuals/prefs.js +4 -23
  640. package/dist/visuals/prefs.js.map +1 -1
  641. package/dist/visuals/tile-prefs.d.ts +26 -0
  642. package/dist/visuals/tile-prefs.d.ts.map +1 -1
  643. package/dist/visuals/tile-prefs.js +28 -0
  644. package/dist/visuals/tile-prefs.js.map +1 -1
  645. package/dist/world/feature.d.ts +2 -1
  646. package/dist/world/feature.d.ts.map +1 -1
  647. package/dist/world/feature.js +2 -0
  648. package/dist/world/feature.js.map +1 -1
  649. package/dist/world/project.d.ts +10 -2
  650. package/dist/world/project.d.ts.map +1 -1
  651. package/dist/world/project.js +18 -6
  652. package/dist/world/project.js.map +1 -1
  653. package/dist/world/projection.d.ts +37 -3
  654. package/dist/world/projection.d.ts.map +1 -1
  655. package/dist/world/projection.js +69 -7
  656. package/dist/world/projection.js.map +1 -1
  657. package/dist/world/trap.d.ts +2 -1
  658. package/dist/world/trap.d.ts.map +1 -1
  659. package/dist/world/trap.js +2 -1
  660. package/dist/world/trap.js.map +1 -1
  661. package/dist/world/view.d.ts +1 -1
  662. package/dist/world/view.d.ts.map +1 -1
  663. package/dist/world/view.js +11 -3
  664. package/dist/world/view.js.map +1 -1
  665. package/package.json +1 -1
  666. package/src/agent/perceive.ts +2 -3
  667. package/src/combat/blow-vectors.fixtures.ts +99 -0
  668. package/src/combat/blow-vectors.json +482 -0
  669. package/src/combat/blow-vectors.ts +280 -0
  670. package/src/combat/brand-slay.ts +42 -11
  671. package/src/combat/index.ts +1 -1
  672. package/src/combat/melee.ts +37 -19
  673. package/src/combat/mon-melee.ts +611 -364
  674. package/src/combat/ranged.ts +43 -26
  675. package/src/constants.ts +15 -0
  676. package/src/datafile.ts +148 -0
  677. package/src/effects/effect-info-registry.ts +313 -0
  678. package/src/effects/effect-info-vectors.fixtures.ts +61 -0
  679. package/src/effects/effect-info-vectors.json +11532 -0
  680. package/src/effects/effect-info-vectors.ts +376 -0
  681. package/src/effects/effect-info.ts +1005 -859
  682. package/src/effects/effect.ts +96 -62
  683. package/src/effects/handlers.ts +5 -2
  684. package/src/effects/interpreter.ts +14 -0
  685. package/src/game/cave-cmd.ts +54 -11
  686. package/src/game/cave-square.ts +80 -0
  687. package/src/game/char-sheet.ts +59 -16
  688. package/src/game/chest.ts +25 -8
  689. package/src/game/context.ts +293 -27
  690. package/src/game/describe.ts +34 -4
  691. package/src/game/display.ts +215 -19
  692. package/src/game/dump-level.ts +3 -2
  693. package/src/game/effect-attack.ts +41 -28
  694. package/src/game/effect-detect.ts +45 -8
  695. package/src/game/effect-env.ts +8 -0
  696. package/src/game/effect-general.ts +110 -47
  697. package/src/game/effect-item.ts +1075 -999
  698. package/src/game/effect-melee.ts +51 -18
  699. package/src/game/effect-monster.ts +55 -9
  700. package/src/game/effect-teleport.ts +173 -38
  701. package/src/game/effect-terrain.ts +38 -22
  702. package/src/game/equip-cmp.ts +483 -480
  703. package/src/game/floor.ts +22 -4
  704. package/src/game/gear.ts +210 -21
  705. package/src/game/harness.ts +12 -1
  706. package/src/game/ignore-cmd.ts +96 -8
  707. package/src/game/known.ts +392 -73
  708. package/src/game/loop.ts +52 -27
  709. package/src/game/lore-color.ts +13 -1
  710. package/src/game/mon-cast.ts +31 -6
  711. package/src/game/mon-cmd.ts +95 -30
  712. package/src/game/mon-death.ts +14 -12
  713. package/src/game/mon-group.ts +9 -5
  714. package/src/game/mon-message.ts +363 -65
  715. package/src/game/mon-place.ts +15 -3
  716. package/src/game/mon-ranged.ts +14 -5
  717. package/src/game/mon-side.ts +16 -12
  718. package/src/game/monster-turn.ts +120 -87
  719. package/src/game/notice.ts +85 -0
  720. package/src/game/obj-cmd.ts +126 -37
  721. package/src/game/obj-list.ts +44 -26
  722. package/src/game/object-inspect.ts +13 -0
  723. package/src/game/pickup.ts +29 -5
  724. package/src/game/player-side-vectors.fixtures.ts +215 -0
  725. package/src/game/player-side-vectors.json +6914 -0
  726. package/src/game/player-side-vectors.ts +420 -0
  727. package/src/game/player-side.ts +622 -340
  728. package/src/game/player-turn.ts +228 -31
  729. package/src/game/poly.ts +107 -0
  730. package/src/game/project-cast.ts +63 -6
  731. package/src/game/project-feat-vectors.fixtures.ts +106 -0
  732. package/src/game/project-feat-vectors.json +6554 -0
  733. package/src/game/project-feat-vectors.ts +323 -0
  734. package/src/game/project-feat.ts +417 -248
  735. package/src/game/project-monster.ts +69 -30
  736. package/src/game/project-obj-vectors.json +1 -0
  737. package/src/game/project-obj.ts +115 -47
  738. package/src/game/project-player.ts +8 -0
  739. package/src/game/projection-handlers.ts +110 -0
  740. package/src/game/quest.ts +48 -0
  741. package/src/game/ranged-cmd.ts +45 -11
  742. package/src/game/repeat.ts +92 -0
  743. package/src/game/shape-inspect.ts +166 -0
  744. package/src/game/spell-cmd.ts +39 -6
  745. package/src/game/spoil.ts +92 -39
  746. package/src/game/steal.ts +9 -4
  747. package/src/game/target-loop.ts +14 -7
  748. package/src/game/target.ts +18 -7
  749. package/src/game/ui-entry.ts +172 -22
  750. package/src/game/wizard.ts +97 -10
  751. package/src/game/world.ts +6 -0
  752. package/src/gen/cave.ts +225 -26
  753. package/src/gen/generate.ts +62 -9
  754. package/src/gen/glyph-vectors.fixtures.ts +122 -0
  755. package/src/gen/glyph-vectors.json +5996 -0
  756. package/src/gen/glyph-vectors.ts +280 -0
  757. package/src/gen/glyph.ts +132 -0
  758. package/src/gen/room.ts +446 -265
  759. package/src/gen/util.ts +32 -9
  760. package/src/i18n/i18n.ts +492 -0
  761. package/src/i18n/text.ts +117 -0
  762. package/src/index.ts +307 -254
  763. package/src/mod/extension.ts +136 -0
  764. package/src/mod/ids.ts +92 -21
  765. package/src/mod/record-keys.ts +102 -0
  766. package/src/mod/registry-host.ts +1063 -234
  767. package/src/mon/bind.ts +14 -8
  768. package/src/mon/knowledge-groups.ts +12 -12
  769. package/src/mon/lore-describe.ts +93 -26
  770. package/src/mon/lore-file.ts +365 -0
  771. package/src/mon/lore.ts +9 -3
  772. package/src/mon/make.ts +4 -2
  773. package/src/mon/monster.ts +1 -1
  774. package/src/mon/predicate.ts +14 -9
  775. package/src/mon/project-mon.ts +23 -5
  776. package/src/mon/steal.ts +39 -7
  777. package/src/mon/take-hit.ts +8 -3
  778. package/src/mon/timed.ts +15 -9
  779. package/src/mon/types.ts +11 -4
  780. package/src/msg.ts +55 -1
  781. package/src/obj/artifact-fake.ts +47 -17
  782. package/src/obj/bind.ts +52 -9
  783. package/src/obj/desc-vectors.fixtures.ts +119 -0
  784. package/src/obj/desc-vectors.json +2360 -0
  785. package/src/obj/desc-vectors.ts +128 -0
  786. package/src/obj/desc.ts +159 -55
  787. package/src/obj/effects-info.ts +90 -59
  788. package/src/obj/fake-object.ts +135 -0
  789. package/src/obj/ignore.ts +95 -28
  790. package/src/obj/knowledge.ts +291 -139
  791. package/src/obj/known-object.ts +126 -11
  792. package/src/obj/make.ts +53 -29
  793. package/src/obj/object-info.ts +103 -6
  794. package/src/obj/object.ts +392 -151
  795. package/src/obj/power.ts +297 -59
  796. package/src/obj/randart-build.ts +1875 -1705
  797. package/src/obj/randart-data.ts +1547 -1344
  798. package/src/obj/randart-file.ts +130 -0
  799. package/src/obj/randart-log.ts +78 -0
  800. package/src/obj/randart-registry.ts +247 -0
  801. package/src/obj/randart-vectors.fixtures.ts +61 -0
  802. package/src/obj/randart-vectors.json +836 -0
  803. package/src/obj/randart-vectors.ts +369 -0
  804. package/src/obj/randart.ts +722 -552
  805. package/src/obj/rune-registry.ts +270 -0
  806. package/src/obj/rune-vectors.fixtures.ts +164 -0
  807. package/src/obj/rune-vectors.json +121 -0
  808. package/src/obj/rune-vectors.ts +229 -0
  809. package/src/obj/tval-kind-vectors.json +391 -0
  810. package/src/obj/tval-registry.ts +243 -0
  811. package/src/obj/tval-vectors.fixtures.ts +50 -0
  812. package/src/obj/tval-vectors.json +38 -0
  813. package/src/obj/tval-vectors.ts +126 -0
  814. package/src/obj/types.ts +18 -7
  815. package/src/obj/value.ts +26 -20
  816. package/src/parser.ts +214 -0
  817. package/src/player/bind.ts +5 -2
  818. package/src/player/birth.ts +2 -1
  819. package/src/player/calcs.ts +123 -42
  820. package/src/player/death.ts +78 -0
  821. package/src/player/options-file.ts +387 -0
  822. package/src/player/options.ts +2 -1
  823. package/src/player/player.ts +60 -4
  824. package/src/player/shape-lore.ts +33 -14
  825. package/src/player/timed.ts +14 -4
  826. package/src/player/types.ts +30 -4
  827. package/src/session/boot.ts +51 -1
  828. package/src/session/game.ts +720 -163
  829. package/src/session/save-migrate.ts +81 -1
  830. package/src/session/save.ts +264 -22
  831. package/src/store/bind.ts +4 -3
  832. package/src/store/mass-produce-vectors.fixtures.ts +64 -0
  833. package/src/store/mass-produce-vectors.json +1169 -0
  834. package/src/store/mass-produce-vectors.ts +67 -0
  835. package/src/store/store.ts +266 -63
  836. package/src/store/transact.ts +39 -16
  837. package/src/store/types.ts +3 -2
  838. package/src/version.ts +1 -1
  839. package/src/visuals/index.ts +1 -0
  840. package/src/visuals/map-text.ts +1 -1
  841. package/src/visuals/object-glyph.ts +76 -0
  842. package/src/visuals/prefs.ts +22 -32
  843. package/src/visuals/tile-prefs.ts +32 -0
  844. package/src/world/feature.ts +4 -1
  845. package/src/world/project.ts +19 -4
  846. package/src/world/projection.ts +79 -8
  847. package/src/world/trap.ts +25 -21
  848. package/src/world/view.ts +11 -1
@@ -35,14 +35,20 @@
35
35
  * (game.ts:2511-2514) - so the in-game randart names draw faithfully too.
36
36
  * randNameFallback (a local syllable table) is retained only as a defensive
37
37
  * guard for callers that pass no corpus (it never runs on the wired paths).
38
- * - Spoiler file (DEFERRED): upstream do_randart optionally writes randart.txt
39
- * (create_file / write_randart_entry, obj-randart.c L3057-L3215) and always
40
- * writes randart.log. Both are spoiler/log dumps that never affect any
41
- * artifact field or RNG draw; they are dropped. do_randart therefore takes
42
- * no create_file argument and returns the artifact array directly. Noted as
43
- * a deferral. The second measurement pass upstream runs after generation
44
- * (store_base_power/parse_frequencies on the finished set, L3184-L3187) exists
45
- * only to populate the log and consumes no RNG, so it is dropped too.
38
+ * - randart.log (PORT_TODO 5.5): PORTED bar one line. do_randart opens and
39
+ * closes it through the host; the maintainer's disposition on 2026-08-04 was
40
+ * pursue parity, so the "it never affects an artifact field" argument the old
41
+ * note made here was never a reason to omit it. What is and is not written is
42
+ * MEASURED by obj/randart-log.census.test.ts rather than claimed in prose,
43
+ * including the one site the census's span filter cannot see. See
44
+ * randart-log.ts for the sink and the reason it is a module-level static.
45
+ * - randart.txt: PORTED. obj/randart-file.ts, gated by do_randart's create_file
46
+ * (obj-randart.c L3195-L3215), which is a required parameter here.
47
+ * - The second measurement pass upstream runs after generation
48
+ * (store_base_power/parse_frequencies on the finished set, L3181-L3186):
49
+ * PORTED. It exists only to populate the log's closing statistics, and the
50
+ * set it measures is a parameter here because this port does not overwrite
51
+ * the a_info global the way upstream does.
46
52
  * - copy_artifact activation/alt_msg quirk (FAITHFUL): upstream copy_artifact
47
53
  * memcpy's the whole struct and then explicitly nulls a_dst->activation and
48
54
  * a_dst->alt_msg (obj-randart.c L2689-L2690). copyArtifact reproduces this:
@@ -56,6 +62,9 @@
56
62
  * artifact. In the standard set the quest artifacts are last and contiguous,
57
63
  * so this is unobservable, but it is reproduced exactly. Noted.
58
64
  */
65
+ import { FileMode, FileType, HostDir, host } from "../host/io.js";
66
+ import { RANDART_TXT, writeRandartFile } from "./randart-file.js";
67
+ import { randartLog, randartLogf, setRandartLog } from "./randart-log.js";
59
68
  import { KF, TV } from "../generated/index.js";
60
69
  import { Rng } from "../rng.js";
61
70
  import { tvalFindName } from "./bind.js";
@@ -124,8 +133,12 @@ export function copyArtifact(src, dst) {
124
133
  * do_randart never mutates ObjRegistry.artifacts. This is NOT copy_artifact
125
134
  * (which deliberately drops activation/alt_msg); it is the honest clone the
126
135
  * working array needs.
136
+ *
137
+ * EXPORTED so a test harness can start from the same object shape production
138
+ * mutates - a hand-built Artifact would be the harness asserting what the
139
+ * struct looks like rather than measuring it.
127
140
  */
128
- function cloneArtifact(src) {
141
+ export function cloneArtifact(src) {
129
142
  return {
130
143
  name: src.name,
131
144
  text: src.text,
@@ -239,7 +252,7 @@ function describeArtifact(art, power) {
239
252
  * (or, for a cursed artifact, curses) added until its power lands between 19/20
240
253
  * and 23/20 of the target.
241
254
  */
242
- export function designArtifact(reg, arts, data, tv, aidx, rng, nameProbs) {
255
+ export function designArtifact(reg, constants, arts, data, tv, aidx, rng, nameProbs) {
243
256
  /* Defensive guard (upstream relies on aidx staying in range). */
244
257
  if (aidx < 1 || aidx >= arts.length)
245
258
  return aidx;
@@ -265,6 +278,8 @@ export function designArtifact(reg, arts, data, tv, aidx, rng, nameProbs) {
265
278
  }
266
279
  /* Apply the new name. */
267
280
  art.name = newName;
281
+ randartLog(">>>>>>>>>>>>>>>>>>>>>>>>>> CREATING NEW ARTIFACT\n");
282
+ randartLogf(() => `Artifact ${String(aidx)}: power = ${String(power)}\n`);
268
283
  /* Flip the sign on power if it's negative (unlikely) and damage. */
269
284
  let hurtMe = false;
270
285
  if (power < 0) {
@@ -283,24 +298,31 @@ export function designArtifact(reg, arts, data, tv, aidx, rng, nameProbs) {
283
298
  artifactPrep(reg, art, kind, data, rng);
284
299
  /* Get the kind again in case it's changed. */
285
300
  kind = reg.lookupKind(art.tval, art.sval);
286
- const basePower = artifactPower(reg, art);
301
+ const basePower = artifactPower(reg, constants, art, "for base item power", rng);
302
+ randartLogf(() => `Base item power ${String(basePower)}\n`);
287
303
  /* New base item power too close to target artifact power. */
288
304
  if (basePower > Math.trunc((power * 6) / 10) + 1 && power - basePower < 20) {
305
+ randartLog("Power too high!\n");
289
306
  continue;
290
307
  }
291
308
  /* Acceptable. */
292
309
  break;
293
310
  }
311
+ /* Failed to get a good base item. */
312
+ if (tries >= MAX_TRIES) {
313
+ randartLog("Warning! Couldn't get appropriate power level on base item.\n");
314
+ }
294
315
  /* Generate the cumulative frequency table for this base item type. */
295
316
  const artFreq = buildFreqTable(art, data);
296
317
  /* Copy artifact info temporarily. */
297
318
  copyArtifact(art, aOld);
298
319
  /* Give this artifact a shot at being supercharged. */
299
320
  trySupercharge(reg, art, power, data, rng);
300
- ap = artifactPower(reg, art);
321
+ ap = artifactPower(reg, constants, art, "result of supercharge", rng);
301
322
  if (ap > Math.trunc((power * 23) / 20) + 1) {
302
323
  /* Too powerful -- put it back. */
303
324
  copyArtifact(aOld, art);
325
+ randartLog("--- Supercharge is too powerful! Rolling back.\n");
304
326
  }
305
327
  /* Give this artifact a chance to be cursed - note it retains its power. */
306
328
  if (rng.oneIn(Math.trunc(arts.length / Math.max(2, data.negPowerTotal)))) {
@@ -314,7 +336,7 @@ export function designArtifact(reg, arts, data, tv, aidx, rng, nameProbs) {
314
336
  addAbility(reg, art, power, artFreq, data, rng);
315
337
  removeContradictory(reg, art, data.timedFoil, data.activationSummarize);
316
338
  /* Check the power, handle negative power. */
317
- ap = artifactPower(reg, art);
339
+ ap = artifactPower(reg, constants, art, "artifact attempt", rng);
318
340
  if (ap < 0) {
319
341
  ap = -ap;
320
342
  break;
@@ -330,6 +352,7 @@ export function designArtifact(reg, arts, data, tv, aidx, rng, nameProbs) {
330
352
  if (ap > Math.trunc((power * 23) / 20) + 1) {
331
353
  /* Too powerful -- put it back. */
332
354
  copyArtifact(aOld, art);
355
+ randartLog("--- Too powerful! Rolling back.\n");
333
356
  continue;
334
357
  }
335
358
  else if (ap >= Math.trunc((power * 19) / 20)) {
@@ -337,6 +360,10 @@ export function designArtifact(reg, arts, data, tv, aidx, rng, nameProbs) {
337
360
  break;
338
361
  }
339
362
  }
363
+ /* Couldn't generate an artifact with the number of permitted iterations. */
364
+ if (tries >= MAX_TRIES) {
365
+ randartLog("Warning! Couldn't get appropriate power level on artifact.\n");
366
+ }
340
367
  /* Set rarity based on power. kind is the final base item kind. */
341
368
  const baseKind = kind;
342
369
  let allocNew = Math.trunc(4000000 / (ap * ap));
@@ -369,6 +396,11 @@ export function designArtifact(reg, arts, data, tv, aidx, rng, nameProbs) {
369
396
  if (!art.activation && !baseKind.activation && !baseKind.effect) {
370
397
  art.level = art.allocMin;
371
398
  }
399
+ randartLogf(() => `New depths are min ${String(art.allocMin)}, max ${String(art.allocMax)}\n`);
400
+ randartLogf(() => `Power-based alloc_prob is ${String(art.allocProb)}\n`);
401
+ /* Success. */
402
+ randartLog("<<<<<<<<<<<<<<<<<<<<<<<<<< ARTIFACT COMPLETED\n");
403
+ randartLogf(() => `Number of tries for artifact ${String(aidx)} was: ${String(tries)}\n`);
372
404
  /* Describe it. */
373
405
  describeArtifact(art, ap);
374
406
  return aidx;
@@ -384,7 +416,7 @@ export function designArtifact(reg, arts, data, tv, aidx, rng, nameProbs) {
384
416
  * artifacts. The final slot (index arts.length - 1) is left as the original,
385
417
  * matching the upstream `aidx < z_info->a_max - 1` bound.
386
418
  */
387
- export function createArtifactSet(reg, arts, data, rng, nameProbs) {
419
+ export function createArtifactSet(reg, constants, arts, data, rng, nameProbs) {
388
420
  let aidx = 1;
389
421
  const tvalTotal = new Array(TV_MAX).fill(0);
390
422
  let notDone = true;
@@ -398,7 +430,7 @@ export function createArtifactSet(reg, arts, data, rng, nameProbs) {
398
430
  /* Multiple passes through tvals until all have enough artifacts. */
399
431
  for (let i = 0; i < TV_MAX; i++) {
400
432
  if (tvalTotal[i] > 0) {
401
- aidx = designArtifact(reg, arts, data, i, aidx, rng, nameProbs);
433
+ aidx = designArtifact(reg, constants, arts, data, i, aidx, rng, nameProbs);
402
434
  tvalTotal[i]--;
403
435
  aidx++;
404
436
  notDone = true;
@@ -407,7 +439,7 @@ export function createArtifactSet(reg, arts, data, rng, nameProbs) {
407
439
  }
408
440
  /* Allocate remaining artifacts at random. */
409
441
  while (aidx < arts.length - 1) {
410
- aidx = designArtifact(reg, arts, data, TV.NULL, aidx, rng, nameProbs);
442
+ aidx = designArtifact(reg, constants, arts, data, TV.NULL, aidx, rng, nameProbs);
411
443
  aidx++;
412
444
  }
413
445
  }
@@ -422,37 +454,127 @@ export function createArtifactSet(reg, arts, data, rng, nameProbs) {
422
454
  * Upstream seeds the "quick" LCRNG (Rand_value = seed, Rand_quick = true), so
423
455
  * this port creates its Rng in quick mode and draws in upstream order:
424
456
  * measure the standard set (store_base_power + parse_frequencies via
425
- * collectArtifactData), then design every artifact (create_artifact_set). The
426
- * upstream log file, the post-generation measurement pass, and the optional
427
- * spoiler file (create_file / write_randart_entry) are all dropped as they
428
- * never affect an artifact field or an RNG draw (see module note).
457
+ * collectArtifactData), design every artifact (create_artifact_set), then
458
+ * measure the finished set the same way. The log file (randart.log), the
459
+ * post-generation measurement pass and the optional spoiler file (create_file /
460
+ * write_randart_entry) are all ported (PORT_TODO 5.5); none of them affects an
461
+ * artifact field or an RNG draw.
429
462
  */
430
- export function doRandart(reg, randartSeed, tolkienWords, extras) {
431
- /* Prepare to use the Angband "simple" (quick LCRNG) RNG. */
432
- const rng = new Rng(randartSeed, { quick: true });
463
+ /** path_build(ANGBAND_DIR_USER, "randart.log") (obj-randart.c L3165). */
464
+ export const RANDART_LOG = "randart.log";
465
+ export function doRandart(reg,
466
+ /**
467
+ * z_info / the player constants object_prep reads. Upstream reaches them as
468
+ * globals; the port passes them, and they arrive here because artifact_power
469
+ * builds a real fake object through make_fake_artifact.
470
+ */
471
+ constants, randartSeed,
472
+ /**
473
+ * do_randart's `create_file` (obj-randart.c:3154). True writes randart.txt
474
+ * beside randart.log; upstream passes true from birth, from loading a save
475
+ * and from the spoiler generator, and false from the statistics harnesses.
476
+ *
477
+ * REQUIRED, with no default: the two callers that want it differ from the
478
+ * many that do not, and a default would silently pick one of them.
479
+ */
480
+ createFile, tolkienWords, extras, io = host(), onLogError) {
433
481
  /*
434
- * Build the RANDNAME_TOLKIEN transition table once (build_prob is cached
435
- * per-type upstream, randname.c L94-L103; here we build it once per run).
436
- * When no corpus is supplied (the current game-path seam), fall back to the
437
- * non-faithful syllable generator (see module SEAM note). An empty word list
438
- * is treated as "no corpus" because build_prob/randname_make would otherwise
439
- * loop forever on an empty table.
482
+ * OPEN randart.log (obj-randart.c L3164-L3171).
483
+ *
484
+ * Upstream file_opens ANGBAND_DIR_USER/randart.log for writing before it
485
+ * touches an artifact, and `exit(1)`s if it cannot. That exit is the one
486
+ * thing the port cannot copy: a browser tab has no process to kill, and a
487
+ * desktop player did not ask to lose a character over a log file. So the
488
+ * failure goes through the host instead - the open is probed by truncating
489
+ * the file to empty (which is what MODE_WRITE does), and if that fails the
490
+ * sink stays closed, `onLogError` gets upstream's own message, and every
491
+ * emitter downstream is the no-op it already is with no log running.
492
+ * Generation continues, which is the deliberate divergence.
493
+ *
494
+ * BUFFERED, not appended line by line: HostIo.write is one whole-file call
495
+ * (that is what a localStorage-backed adapter can express), and a run of the
496
+ * standard set emits tens of thousands of lines.
440
497
  */
441
- const nameProbs = tolkienWords && tolkienWords.length > 0 ? buildProb(tolkienWords) : null;
442
- /* Store the original power ratings and determine generation probabilities.
443
- * `extras` threads the curse TIMED_INC foil tables (gap 3.3) and the
444
- * activation redundancy summarizer (gap 3.8); absent, both checks are
445
- * skipped as before. */
446
- const data = collectArtifactData(reg, rng);
447
- if (extras?.timedFoil)
448
- data.timedFoil = extras.timedFoil;
449
- if (extras?.activationSummarize) {
450
- data.activationSummarize = extras.activationSummarize;
498
+ /* Prepare to use the Angband "simple" (quick LCRNG) RNG. */
499
+ const rng = new Rng(randartSeed, { quick: true });
500
+ const lines = [];
501
+ let generated = [];
502
+ let logging = false;
503
+ if (io.write(HostDir.USER, RANDART_LOG, "", FileMode.WRITE, FileType.TEXT) === "ok") {
504
+ logging = true;
505
+ setRandartLog((text) => lines.push(text));
506
+ }
507
+ else {
508
+ onLogError?.("Error - can't open randart.log for writing.");
509
+ }
510
+ try {
511
+ /*
512
+ * Build the RANDNAME_TOLKIEN transition table once (build_prob is cached
513
+ * per-type upstream, randname.c L94-L103; here we build it once per run).
514
+ * When no corpus is supplied (the current game-path seam), fall back to the
515
+ * non-faithful syllable generator (see module SEAM note). An empty word list
516
+ * is treated as "no corpus" because build_prob/randname_make would otherwise
517
+ * loop forever on an empty table.
518
+ */
519
+ const nameProbs = tolkienWords && tolkienWords.length > 0 ? buildProb(tolkienWords) : null;
520
+ /* Store the original power ratings and determine generation probabilities
521
+ * for the STANDARD set (L3175-L3178). `extras` threads the curse TIMED_INC
522
+ * foil tables (gap 3.3) and the activation redundancy summarizer (gap 3.8);
523
+ * absent, both checks are skipped as before. */
524
+ const data = collectArtifactData(reg, constants, reg.artifacts, rng);
525
+ if (extras?.timedFoil)
526
+ data.timedFoil = extras.timedFoil;
527
+ if (extras?.activationSummarize) {
528
+ data.activationSummarize = extras.activationSummarize;
529
+ }
530
+ /* Work on a fresh copy so the registry's standard artifacts are preserved. */
531
+ const arts = reg.artifacts.map((a) => a ? cloneArtifact(a) : null);
532
+ /* Generate the random artifacts. */
533
+ createArtifactSet(reg, constants, arts, data, rng, nameProbs);
534
+ generated = arts;
535
+ /*
536
+ * LOOK AT THE FREQUENCIES ON THE FINISHED ITEMS (L3181-L3186).
537
+ *
538
+ * A whole second measurement pass over the set just generated, into a
539
+ * throwaway ArtifactSetData that upstream frees on the next line. Nothing
540
+ * reads it: its ONLY product is the text both passes write to the log, so
541
+ * a reader can compare the set the game just made against the standard one
542
+ * it was derived from. That is why it was invisible while the log was full
543
+ * of holes, and why it can be added now without changing an artifact - it
544
+ * runs after generation and draws no RNG (see collectArtifactData).
545
+ *
546
+ * `extras` is deliberately NOT applied here: upstream measures the finished
547
+ * set with a plain artifact_set_data_new, and both extras are generation-
548
+ * time checks that this pass never reaches.
549
+ */
550
+ collectArtifactData(reg, constants, arts, rng);
551
+ return arts;
552
+ }
553
+ finally {
554
+ /* CLOSE (L3189-L3193). In a `finally` so a throw mid-generation cannot
555
+ * leave the sink installed for the next caller - upstream's log_file is a
556
+ * static, and a stale one would narrate the following run into this one. */
557
+ setRandartLog(null);
558
+ if (logging) {
559
+ const outcome = io.write(HostDir.USER, RANDART_LOG, lines.join(""), FileMode.WRITE, FileType.TEXT);
560
+ if (outcome !== "ok")
561
+ onLogError?.("Error - can't close randart.log file.");
562
+ }
563
+ /*
564
+ * WRITE A DATA FILE IF REQUIRED (L3195-L3215), after the log is closed,
565
+ * which is upstream's order - it reuses the same handle variable for both.
566
+ *
567
+ * Upstream `quit_fmt`s if this file cannot be closed. The port cannot: the
568
+ * same reasoning as the randart.log open above applies, so the failure goes
569
+ * to onLogError and the artifact set is returned regardless. Writing the
570
+ * file is a courtesy; losing the character over it is not.
571
+ */
572
+ if (createFile) {
573
+ const outcome = io.write(HostDir.USER, RANDART_TXT, writeRandartFile(reg, generated, randartSeed), FileMode.WRITE, FileType.TEXT);
574
+ if (outcome !== "ok") {
575
+ onLogError?.(`Error - can't close ${RANDART_TXT}.`);
576
+ }
577
+ }
451
578
  }
452
- /* Work on a fresh copy so the registry's standard artifacts are preserved. */
453
- const arts = reg.artifacts.map((a) => a ? cloneArtifact(a) : null);
454
- /* Generate the random artifacts. */
455
- createArtifactSet(reg, arts, data, rng, nameProbs);
456
- return arts;
457
579
  }
458
580
  //# sourceMappingURL=randart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"randart.js","sourceRoot":"","sources":["../../src/obj/randart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"randart.js","sourceRoot":"","sources":["../../src/obj/randart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * The RUNE registry: every question core asks about a rune, plus the "You feel
3
+ * stronger!" line a modifier prints on wield.
4
+ *
5
+ * WHY THIS IS A REGISTRY, and why it is a harder closure than the four before
6
+ * it. A rune is the unit of object knowledge - what the player learns, what an
7
+ * item is found to carry, what the recall screen names and describes. Six
8
+ * places in `knowledge.ts` decided all of it, and five of them dispatched on
9
+ * `rune.variety`, which was a CLOSED TYPESCRIPT UNION of seven string literals.
10
+ *
11
+ * A union is closed in a way a switch is not. A switch has a `default` arm that
12
+ * a mod's key reaches and fails at, which is at least a place to stand; a union
13
+ * refuses the key at the type level, so a mod could not coin a variety at all
14
+ * and no arm was ever reached to fail. `tools/switch-census.json` saw none of
15
+ * this - it counts `switch` statements, all five of these are under its 8-case
16
+ * threshold, and it counts neither a union type's existence nor its size. The
17
+ * census recorded ONE row for this file, `modMessage`. That is the same lesson
18
+ * gap 28 charged for in a new shape: the census measures SYNTAX, a gap is about
19
+ * REACH.
20
+ *
21
+ * The six closed decisions, and what each cost a mod-coined rune:
22
+ *
23
+ * - `runeDesc` - the recall line. No arm meant no description at all.
24
+ * - `runeName` - the display decoration ("<x> brand", "slay <x>"). Upstream's
25
+ * own `default` returns the bare name, so this one had a real fallback and
26
+ * still does; it is the only one of the six that did.
27
+ * - `playerKnowsRune` / `playerLearnRune` - the knowledge pair. A mod's rune
28
+ * was unknowable AND unlearnable, which is worse than either alone: it
29
+ * could never appear as learned, and `objectRunesKnown` therefore treated
30
+ * any object carrying one as permanently un-assessed.
31
+ * - `objectHasRune` - whether an item carries it. Always no.
32
+ * - `modMessage` - the flavour line on noticing a modifier. The only OBJ_MOD
33
+ * switch in the tree, out of 114 `OBJ_MOD.*` references. A mod-coined
34
+ * modifier was learned in silence.
35
+ *
36
+ * WHERE A MOD'S RUNE KNOWLEDGE LIVES, which is the question that made this
37
+ * conversion different from the four before it. `playerKnowsRune` reads typed
38
+ * stores on `p.objKnown` - `modifiers[]`, `elInfo[]`, `flags` - all sized from
39
+ * core's fixed-arity enums, so there is no slot for a mod's rune and growing
40
+ * that arity is exactly what `mod/vocabulary.ts` was built to avoid (see its
41
+ * header for the W2.3 architecture decision). The answer is that this registry
42
+ * needs NO new store: `knows` and `learn` are handed the player, and a mod
43
+ * keeps its own per-entity values in its own `VocabularyRegistry`, which
44
+ * already persists into that mod's opaque save bag. So the seam stays a pure
45
+ * dispatch table and there is one mechanism for mod-owned per-entity state, not
46
+ * two.
47
+ *
48
+ * THE PRODUCER IS PART OF THE SEAM, not an extra. `buildRuneList` is what every
49
+ * consumer enumerates - the knowledge screens, `objectRunesKnown`, and
50
+ * EF_IDENTIFY's random unknown rune - so six handler tables with no way to get
51
+ * a rune INTO that list would be a seam its own callers walk past, which is the
52
+ * failure three of the five previous conversions each turned up in a different
53
+ * place. `contribute` is the door: core builds its list, then every contributor
54
+ * appends.
55
+ *
56
+ * RNG: `objectFindUnknownRune` draws `randint0(poss.length)` over the list, so
57
+ * a contributor that adds runes DOES move that draw - by design, since the mod
58
+ * is adding content and its rune is now genuinely a candidate. With no mod
59
+ * loaded the list is byte-identical to before, which is what the parity claim
60
+ * needs; `rune-vectors.json` holds all 99 rows.
61
+ *
62
+ * WHY MODULE-LEVEL. The same 2026-08-09 ruling behind `EffectInfoRegistry`,
63
+ * `RandartRegistry` and `TvalRegistry`: disabling a mod always takes effect on
64
+ * the next RELOAD, so a module-level table cannot violate the mod default
65
+ * policy. `resetRuneRegistry()` restores core's arms without a fresh realm and
66
+ * has no production caller by design.
67
+ */
68
+ import type { GameObject } from "./object.js";
69
+ import type { Player } from "../player/player.js";
70
+ import type { Rune, RuneEnv } from "./knowledge.js";
71
+ /**
72
+ * The seven varieties core defines (`enum rune_variety`, obj-knowledge.h).
73
+ * Named separately so core's own code keeps exhaustive checking against the
74
+ * real set, and so this file can say which seven it seeds.
75
+ */
76
+ export type CoreRuneVariety = "combat" | "mod" | "resist" | "brand" | "slay" | "curse" | "flag";
77
+ /**
78
+ * A rune variety. Core's seven, or any string a mod coins.
79
+ *
80
+ * `(string & {})` rather than a bare `string`: it keeps the seven core names as
81
+ * editor completions and as the thing a typo is checked against in core's own
82
+ * code, while admitting a mod's `"demo:attunement"`. A bare `string` would have
83
+ * silently accepted `"resiste"` everywhere in this package.
84
+ */
85
+ export type RuneVariety = CoreRuneVariety | (string & {});
86
+ /**
87
+ * `rune_desc` (obj-knowledge.c L344-403): the recall description. Unregistered
88
+ * returns `""`, which is upstream's own fall-through for a rune it cannot
89
+ * describe (the C default reaches NULL).
90
+ */
91
+ export type RuneDescHandler = (env: RuneEnv, rune: Rune) => string;
92
+ /**
93
+ * `player_knows_rune`. Unregistered returns false - honest, and the reason a
94
+ * mod that adds a variety must register this one: without it the rune can never
95
+ * read as learned, and `objectRunesKnown` will hold every object carrying it
96
+ * permanently un-assessed.
97
+ */
98
+ export type RuneKnowsHandler = (p: Player, rune: Rune) => boolean;
99
+ /** `object_has_rune`: whether this item carries it. Unregistered returns false. */
100
+ export type RuneObjectHasHandler = (env: RuneEnv, obj: GameObject, rune: Rune) => boolean;
101
+ /**
102
+ * `player_learn_rune`: learn it, optionally printing. Returns whether anything
103
+ * was newly learned - a second learn of the same rune must return false, which
104
+ * is what the vectors' `learnedAgain` column holds core to. Unregistered
105
+ * returns false.
106
+ */
107
+ export type RuneLearnHandler = (p: Player, env: RuneEnv, rune: Rune, message: boolean) => boolean;
108
+ /**
109
+ * `rune_name` (obj-knowledge.c:325): the variety's display decoration.
110
+ * Unregistered returns the bare `rune.name`, which is upstream's own `default`
111
+ * arm rather than a hole - only four of the seven varieties decorate at all.
112
+ */
113
+ export type RuneNameHandler = (rune: Rune) => string;
114
+ /**
115
+ * `mod_message` (obj-knowledge.c L1492): the line printed on noticing a
116
+ * modifier, given its signed value. Returns null for "say nothing", which is
117
+ * both upstream's `default` and what a zero value produces on an arm that has
118
+ * one. Keyed on the OBJ_MOD index.
119
+ */
120
+ export type ModMessageHandler = (value: number) => string | null;
121
+ /**
122
+ * A source of extra runes for `buildRuneList` (`init_rune`). Runs after core
123
+ * has built its own list, in registration order, and appends.
124
+ *
125
+ * Contributing is what makes the six tables above reachable: nothing in core
126
+ * ever asks about a rune that is not in this list.
127
+ */
128
+ export type RuneContributor = (env: RuneEnv) => readonly Rune[];
129
+ /**
130
+ * One keyed table. The same shape as `TvalTable` and for the same reason: six
131
+ * hand-copied blocks would be six places for a capability check to go missing.
132
+ */
133
+ export declare class RuneTable<K, H> {
134
+ private readonly table;
135
+ /** Install (or replace) the handler for one key. */
136
+ set(key: K, handler: H): void;
137
+ /**
138
+ * The handler installed right now, or null. This is what a mod calls to WRAP
139
+ * core rather than shadow it - keep what is returned, install its own, call
140
+ * through.
141
+ */
142
+ handlerFor(key: K): H | null;
143
+ /** Whether anything handles this key. */
144
+ has(key: K): boolean;
145
+ /** Every key handled, in registration order (core's first). */
146
+ keys(): readonly K[];
147
+ }
148
+ /** Everything core asks about a rune, in six tables plus one producer. */
149
+ export declare class RuneRegistry {
150
+ /** `rune_desc`, keyed on variety. */
151
+ readonly desc: RuneTable<RuneVariety, RuneDescHandler>;
152
+ /** `player_knows_rune`, keyed on variety. */
153
+ readonly knows: RuneTable<RuneVariety, RuneKnowsHandler>;
154
+ /** `object_has_rune`, keyed on variety. */
155
+ readonly objectHas: RuneTable<RuneVariety, RuneObjectHasHandler>;
156
+ /** `player_learn_rune`, keyed on variety. */
157
+ readonly learn: RuneTable<RuneVariety, RuneLearnHandler>;
158
+ /** `rune_name`'s decoration, keyed on variety. Absent means the bare name. */
159
+ readonly name: RuneTable<RuneVariety, RuneNameHandler>;
160
+ /** `mod_message`, keyed on the OBJ_MOD index. */
161
+ readonly modMessage: RuneTable<number, ModMessageHandler>;
162
+ /** Extra runes for `buildRuneList`, in registration order. */
163
+ private readonly contributors;
164
+ /** Add a source of runes to the list every consumer enumerates. */
165
+ contribute(source: RuneContributor): void;
166
+ /** Every contributed rune, in registration order. Core's list comes first. */
167
+ contributed(env: RuneEnv): Rune[];
168
+ /** How many contributors are installed (for tests and the conflict report). */
169
+ contributorCount(): number;
170
+ }
171
+ /** Install a set of core arms, now and on every reset. A MOD never calls this. */
172
+ export declare function seedRune(seed: (reg: RuneRegistry) => void): void;
173
+ /** The live registry. Module-level; see this file's header for why that is safe. */
174
+ export declare function runeRegistry(): RuneRegistry;
175
+ /**
176
+ * Back to core's arms alone, dropping every mod registration - the same state a
177
+ * reload produces, without a fresh realm. No production caller by design.
178
+ */
179
+ export declare function resetRuneRegistry(): void;
180
+ //# sourceMappingURL=rune-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rune-registry.d.ts","sourceRoot":"","sources":["../../src/obj/rune-registry.ts"],"names":[],"mappings":"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"}