@rpgm-tools/neo-angband-core 0.17.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 (853) 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/hooks.d.ts +27 -1
  361. package/dist/mod/hooks.d.ts.map +1 -1
  362. package/dist/mod/hooks.js +23 -0
  363. package/dist/mod/hooks.js.map +1 -1
  364. package/dist/mod/ids.d.ts +10 -0
  365. package/dist/mod/ids.d.ts.map +1 -1
  366. package/dist/mod/ids.js +90 -21
  367. package/dist/mod/ids.js.map +1 -1
  368. package/dist/mod/record-keys.d.ts +43 -0
  369. package/dist/mod/record-keys.d.ts.map +1 -0
  370. package/dist/mod/record-keys.js +100 -0
  371. package/dist/mod/record-keys.js.map +1 -0
  372. package/dist/mod/registry-host.d.ts +472 -0
  373. package/dist/mod/registry-host.d.ts.map +1 -1
  374. package/dist/mod/registry-host.js +313 -0
  375. package/dist/mod/registry-host.js.map +1 -1
  376. package/dist/mod/save-blocks.d.ts +1 -1
  377. package/dist/mon/bind.d.ts.map +1 -1
  378. package/dist/mon/bind.js +6 -3
  379. package/dist/mon/bind.js.map +1 -1
  380. package/dist/mon/knowledge-groups.d.ts +0 -6
  381. package/dist/mon/knowledge-groups.d.ts.map +1 -1
  382. package/dist/mon/knowledge-groups.js +12 -8
  383. package/dist/mon/knowledge-groups.js.map +1 -1
  384. package/dist/mon/lore-describe.d.ts +46 -10
  385. package/dist/mon/lore-describe.d.ts.map +1 -1
  386. package/dist/mon/lore-describe.js +74 -22
  387. package/dist/mon/lore-describe.js.map +1 -1
  388. package/dist/mon/lore-file.d.ts +126 -0
  389. package/dist/mon/lore-file.d.ts.map +1 -0
  390. package/dist/mon/lore-file.js +291 -0
  391. package/dist/mon/lore-file.js.map +1 -0
  392. package/dist/mon/lore.d.ts +9 -3
  393. package/dist/mon/lore.d.ts.map +1 -1
  394. package/dist/mon/lore.js +9 -3
  395. package/dist/mon/lore.js.map +1 -1
  396. package/dist/mon/make.d.ts +4 -2
  397. package/dist/mon/make.d.ts.map +1 -1
  398. package/dist/mon/make.js +4 -2
  399. package/dist/mon/make.js.map +1 -1
  400. package/dist/mon/monster.d.ts +1 -1
  401. package/dist/mon/monster.js +1 -1
  402. package/dist/mon/predicate.d.ts +14 -9
  403. package/dist/mon/predicate.d.ts.map +1 -1
  404. package/dist/mon/predicate.js +14 -9
  405. package/dist/mon/predicate.js.map +1 -1
  406. package/dist/mon/project-mon.d.ts +16 -3
  407. package/dist/mon/project-mon.d.ts.map +1 -1
  408. package/dist/mon/project-mon.js +14 -5
  409. package/dist/mon/project-mon.js.map +1 -1
  410. package/dist/mon/steal.d.ts +31 -4
  411. package/dist/mon/steal.d.ts.map +1 -1
  412. package/dist/mon/steal.js +20 -7
  413. package/dist/mon/steal.js.map +1 -1
  414. package/dist/mon/take-hit.d.ts +8 -3
  415. package/dist/mon/take-hit.d.ts.map +1 -1
  416. package/dist/mon/take-hit.js +8 -3
  417. package/dist/mon/take-hit.js.map +1 -1
  418. package/dist/mon/timed.d.ts +15 -9
  419. package/dist/mon/timed.d.ts.map +1 -1
  420. package/dist/mon/timed.js +13 -8
  421. package/dist/mon/timed.js.map +1 -1
  422. package/dist/mon/types.d.ts +11 -4
  423. package/dist/mon/types.d.ts.map +1 -1
  424. package/dist/mon/types.js.map +1 -1
  425. package/dist/msg.d.ts +40 -1
  426. package/dist/msg.d.ts.map +1 -1
  427. package/dist/msg.js +42 -1
  428. package/dist/msg.js.map +1 -1
  429. package/dist/obj/artifact-fake.d.ts +46 -14
  430. package/dist/obj/artifact-fake.d.ts.map +1 -1
  431. package/dist/obj/artifact-fake.js +46 -17
  432. package/dist/obj/artifact-fake.js.map +1 -1
  433. package/dist/obj/bind.d.ts +23 -0
  434. package/dist/obj/bind.d.ts.map +1 -1
  435. package/dist/obj/bind.js +49 -9
  436. package/dist/obj/bind.js.map +1 -1
  437. package/dist/obj/desc-vectors.d.ts +68 -0
  438. package/dist/obj/desc-vectors.d.ts.map +1 -0
  439. package/dist/obj/desc-vectors.fixtures.d.ts +12 -0
  440. package/dist/obj/desc-vectors.fixtures.d.ts.map +1 -0
  441. package/dist/obj/desc-vectors.fixtures.js +95 -0
  442. package/dist/obj/desc-vectors.fixtures.js.map +1 -0
  443. package/dist/obj/desc-vectors.js +86 -0
  444. package/dist/obj/desc-vectors.js.map +1 -0
  445. package/dist/obj/desc.d.ts +17 -2
  446. package/dist/obj/desc.d.ts.map +1 -1
  447. package/dist/obj/desc.js +129 -54
  448. package/dist/obj/desc.js.map +1 -1
  449. package/dist/obj/effects-info.d.ts.map +1 -1
  450. package/dist/obj/effects-info.js +87 -58
  451. package/dist/obj/effects-info.js.map +1 -1
  452. package/dist/obj/fake-object.d.ts +70 -0
  453. package/dist/obj/fake-object.d.ts.map +1 -0
  454. package/dist/obj/fake-object.js +104 -0
  455. package/dist/obj/fake-object.js.map +1 -0
  456. package/dist/obj/ignore.d.ts +55 -12
  457. package/dist/obj/ignore.d.ts.map +1 -1
  458. package/dist/obj/ignore.js +68 -31
  459. package/dist/obj/ignore.js.map +1 -1
  460. package/dist/obj/knowledge.d.ts +46 -3
  461. package/dist/obj/knowledge.d.ts.map +1 -1
  462. package/dist/obj/knowledge.js +169 -151
  463. package/dist/obj/knowledge.js.map +1 -1
  464. package/dist/obj/known-object.d.ts +68 -8
  465. package/dist/obj/known-object.d.ts.map +1 -1
  466. package/dist/obj/known-object.js +90 -10
  467. package/dist/obj/known-object.js.map +1 -1
  468. package/dist/obj/make.d.ts +15 -4
  469. package/dist/obj/make.d.ts.map +1 -1
  470. package/dist/obj/make.js +49 -27
  471. package/dist/obj/make.js.map +1 -1
  472. package/dist/obj/object-info.d.ts +10 -0
  473. package/dist/obj/object-info.d.ts.map +1 -1
  474. package/dist/obj/object-info.js +93 -7
  475. package/dist/obj/object-info.js.map +1 -1
  476. package/dist/obj/object.d.ts +42 -4
  477. package/dist/obj/object.d.ts.map +1 -1
  478. package/dist/obj/object.js +362 -147
  479. package/dist/obj/object.js.map +1 -1
  480. package/dist/obj/power.d.ts +23 -4
  481. package/dist/obj/power.d.ts.map +1 -1
  482. package/dist/obj/power.js +231 -65
  483. package/dist/obj/power.js.map +1 -1
  484. package/dist/obj/randart-build.d.ts +27 -22
  485. package/dist/obj/randart-build.d.ts.map +1 -1
  486. package/dist/obj/randart-build.js +435 -357
  487. package/dist/obj/randart-build.js.map +1 -1
  488. package/dist/obj/randart-data.d.ts +62 -24
  489. package/dist/obj/randart-data.d.ts.map +1 -1
  490. package/dist/obj/randart-data.js +333 -189
  491. package/dist/obj/randart-data.js.map +1 -1
  492. package/dist/obj/randart-file.d.ts +21 -0
  493. package/dist/obj/randart-file.d.ts.map +1 -0
  494. package/dist/obj/randart-file.js +119 -0
  495. package/dist/obj/randart-file.js.map +1 -0
  496. package/dist/obj/randart-log.d.ts +63 -0
  497. package/dist/obj/randart-log.d.ts.map +1 -0
  498. package/dist/obj/randart-log.js +72 -0
  499. package/dist/obj/randart-log.js.map +1 -0
  500. package/dist/obj/randart-registry.d.ts +178 -0
  501. package/dist/obj/randart-registry.d.ts.map +1 -0
  502. package/dist/obj/randart-registry.js +140 -0
  503. package/dist/obj/randart-registry.js.map +1 -0
  504. package/dist/obj/randart-vectors.d.ts +97 -0
  505. package/dist/obj/randart-vectors.d.ts.map +1 -0
  506. package/dist/obj/randart-vectors.fixtures.d.ts +18 -0
  507. package/dist/obj/randart-vectors.fixtures.d.ts.map +1 -0
  508. package/dist/obj/randart-vectors.fixtures.js +50 -0
  509. package/dist/obj/randart-vectors.fixtures.js.map +1 -0
  510. package/dist/obj/randart-vectors.js +311 -0
  511. package/dist/obj/randart-vectors.js.map +1 -0
  512. package/dist/obj/randart.d.ts +53 -15
  513. package/dist/obj/randart.d.ts.map +1 -1
  514. package/dist/obj/randart.js +166 -44
  515. package/dist/obj/randart.js.map +1 -1
  516. package/dist/obj/rune-registry.d.ts +180 -0
  517. package/dist/obj/rune-registry.d.ts.map +1 -0
  518. package/dist/obj/rune-registry.js +161 -0
  519. package/dist/obj/rune-registry.js.map +1 -0
  520. package/dist/obj/rune-vectors.d.ts +99 -0
  521. package/dist/obj/rune-vectors.d.ts.map +1 -0
  522. package/dist/obj/rune-vectors.fixtures.d.ts +44 -0
  523. package/dist/obj/rune-vectors.fixtures.d.ts.map +1 -0
  524. package/dist/obj/rune-vectors.fixtures.js +125 -0
  525. package/dist/obj/rune-vectors.fixtures.js.map +1 -0
  526. package/dist/obj/rune-vectors.js +159 -0
  527. package/dist/obj/rune-vectors.js.map +1 -0
  528. package/dist/obj/tval-registry.d.ts +174 -0
  529. package/dist/obj/tval-registry.d.ts.map +1 -0
  530. package/dist/obj/tval-registry.js +151 -0
  531. package/dist/obj/tval-registry.js.map +1 -0
  532. package/dist/obj/tval-vectors.d.ts +85 -0
  533. package/dist/obj/tval-vectors.d.ts.map +1 -0
  534. package/dist/obj/tval-vectors.fixtures.d.ts +24 -0
  535. package/dist/obj/tval-vectors.fixtures.d.ts.map +1 -0
  536. package/dist/obj/tval-vectors.fixtures.js +41 -0
  537. package/dist/obj/tval-vectors.fixtures.js.map +1 -0
  538. package/dist/obj/tval-vectors.js +76 -0
  539. package/dist/obj/tval-vectors.js.map +1 -0
  540. package/dist/obj/types.d.ts +18 -7
  541. package/dist/obj/types.d.ts.map +1 -1
  542. package/dist/obj/types.js.map +1 -1
  543. package/dist/obj/value.d.ts.map +1 -1
  544. package/dist/obj/value.js +23 -20
  545. package/dist/obj/value.js.map +1 -1
  546. package/dist/parser.d.ts +116 -0
  547. package/dist/parser.d.ts.map +1 -0
  548. package/dist/parser.js +205 -0
  549. package/dist/parser.js.map +1 -0
  550. package/dist/player/bind.d.ts.map +1 -1
  551. package/dist/player/bind.js +3 -2
  552. package/dist/player/bind.js.map +1 -1
  553. package/dist/player/birth.d.ts +2 -1
  554. package/dist/player/birth.d.ts.map +1 -1
  555. package/dist/player/birth.js +2 -1
  556. package/dist/player/birth.js.map +1 -1
  557. package/dist/player/calcs.d.ts +58 -23
  558. package/dist/player/calcs.d.ts.map +1 -1
  559. package/dist/player/calcs.js +93 -36
  560. package/dist/player/calcs.js.map +1 -1
  561. package/dist/player/death.d.ts +50 -0
  562. package/dist/player/death.d.ts.map +1 -0
  563. package/dist/player/death.js +46 -0
  564. package/dist/player/death.js.map +1 -0
  565. package/dist/player/options-file.d.ts +129 -0
  566. package/dist/player/options-file.d.ts.map +1 -0
  567. package/dist/player/options-file.js +309 -0
  568. package/dist/player/options-file.js.map +1 -0
  569. package/dist/player/options.d.ts +2 -1
  570. package/dist/player/options.d.ts.map +1 -1
  571. package/dist/player/options.js +2 -1
  572. package/dist/player/options.js.map +1 -1
  573. package/dist/player/player.d.ts +50 -3
  574. package/dist/player/player.d.ts.map +1 -1
  575. package/dist/player/player.js +10 -1
  576. package/dist/player/player.js.map +1 -1
  577. package/dist/player/shape-lore.d.ts +11 -7
  578. package/dist/player/shape-lore.d.ts.map +1 -1
  579. package/dist/player/shape-lore.js +24 -11
  580. package/dist/player/shape-lore.js.map +1 -1
  581. package/dist/player/timed.d.ts +5 -3
  582. package/dist/player/timed.d.ts.map +1 -1
  583. package/dist/player/timed.js +11 -2
  584. package/dist/player/timed.js.map +1 -1
  585. package/dist/player/types.d.ts +29 -4
  586. package/dist/player/types.d.ts.map +1 -1
  587. package/dist/player/types.js +24 -1
  588. package/dist/player/types.js.map +1 -1
  589. package/dist/session/boot.d.ts +26 -2
  590. package/dist/session/boot.d.ts.map +1 -1
  591. package/dist/session/boot.js +21 -2
  592. package/dist/session/boot.js.map +1 -1
  593. package/dist/session/game.d.ts +15 -0
  594. package/dist/session/game.d.ts.map +1 -1
  595. package/dist/session/game.js +616 -140
  596. package/dist/session/game.js.map +1 -1
  597. package/dist/session/save-migrate.d.ts.map +1 -1
  598. package/dist/session/save-migrate.js +76 -1
  599. package/dist/session/save-migrate.js.map +1 -1
  600. package/dist/session/save.d.ts +75 -12
  601. package/dist/session/save.d.ts.map +1 -1
  602. package/dist/session/save.js +177 -18
  603. package/dist/session/save.js.map +1 -1
  604. package/dist/store/bind.d.ts +1 -1
  605. package/dist/store/bind.d.ts.map +1 -1
  606. package/dist/store/bind.js +4 -3
  607. package/dist/store/bind.js.map +1 -1
  608. package/dist/store/mass-produce-vectors.d.ts +40 -0
  609. package/dist/store/mass-produce-vectors.d.ts.map +1 -0
  610. package/dist/store/mass-produce-vectors.fixtures.d.ts +13 -0
  611. package/dist/store/mass-produce-vectors.fixtures.d.ts.map +1 -0
  612. package/dist/store/mass-produce-vectors.fixtures.js +52 -0
  613. package/dist/store/mass-produce-vectors.fixtures.js.map +1 -0
  614. package/dist/store/mass-produce-vectors.js +44 -0
  615. package/dist/store/mass-produce-vectors.js.map +1 -0
  616. package/dist/store/store.d.ts +104 -7
  617. package/dist/store/store.d.ts.map +1 -1
  618. package/dist/store/store.js +199 -77
  619. package/dist/store/store.js.map +1 -1
  620. package/dist/store/transact.d.ts +14 -5
  621. package/dist/store/transact.d.ts.map +1 -1
  622. package/dist/store/transact.js +17 -16
  623. package/dist/store/transact.js.map +1 -1
  624. package/dist/store/types.d.ts +3 -2
  625. package/dist/store/types.d.ts.map +1 -1
  626. package/dist/store/types.js +1 -1
  627. package/dist/version.d.ts +1 -1
  628. package/dist/version.js +1 -1
  629. package/dist/visuals/index.d.ts +1 -0
  630. package/dist/visuals/index.d.ts.map +1 -1
  631. package/dist/visuals/index.js +1 -0
  632. package/dist/visuals/index.js.map +1 -1
  633. package/dist/visuals/map-text.d.ts +8 -0
  634. package/dist/visuals/map-text.d.ts.map +1 -1
  635. package/dist/visuals/map-text.js +1 -1
  636. package/dist/visuals/map-text.js.map +1 -1
  637. package/dist/visuals/object-glyph.d.ts +56 -0
  638. package/dist/visuals/object-glyph.d.ts.map +1 -0
  639. package/dist/visuals/object-glyph.js +52 -0
  640. package/dist/visuals/object-glyph.js.map +1 -0
  641. package/dist/visuals/prefs.d.ts +14 -22
  642. package/dist/visuals/prefs.d.ts.map +1 -1
  643. package/dist/visuals/prefs.js +4 -23
  644. package/dist/visuals/prefs.js.map +1 -1
  645. package/dist/visuals/tile-prefs.d.ts +26 -0
  646. package/dist/visuals/tile-prefs.d.ts.map +1 -1
  647. package/dist/visuals/tile-prefs.js +28 -0
  648. package/dist/visuals/tile-prefs.js.map +1 -1
  649. package/dist/world/feature.d.ts +2 -1
  650. package/dist/world/feature.d.ts.map +1 -1
  651. package/dist/world/feature.js +2 -0
  652. package/dist/world/feature.js.map +1 -1
  653. package/dist/world/project.d.ts +10 -2
  654. package/dist/world/project.d.ts.map +1 -1
  655. package/dist/world/project.js +18 -6
  656. package/dist/world/project.js.map +1 -1
  657. package/dist/world/projection.d.ts +37 -3
  658. package/dist/world/projection.d.ts.map +1 -1
  659. package/dist/world/projection.js +69 -7
  660. package/dist/world/projection.js.map +1 -1
  661. package/dist/world/trap.d.ts +2 -1
  662. package/dist/world/trap.d.ts.map +1 -1
  663. package/dist/world/trap.js +2 -1
  664. package/dist/world/trap.js.map +1 -1
  665. package/dist/world/view.d.ts +1 -1
  666. package/dist/world/view.d.ts.map +1 -1
  667. package/dist/world/view.js +11 -3
  668. package/dist/world/view.js.map +1 -1
  669. package/package.json +1 -1
  670. package/src/agent/perceive.ts +2 -3
  671. package/src/combat/blow-vectors.fixtures.ts +99 -0
  672. package/src/combat/blow-vectors.json +482 -0
  673. package/src/combat/blow-vectors.ts +280 -0
  674. package/src/combat/brand-slay.ts +42 -11
  675. package/src/combat/index.ts +1 -1
  676. package/src/combat/melee.ts +37 -19
  677. package/src/combat/mon-melee.ts +611 -364
  678. package/src/combat/ranged.ts +43 -26
  679. package/src/constants.ts +15 -0
  680. package/src/datafile.ts +148 -0
  681. package/src/effects/effect-info-registry.ts +313 -0
  682. package/src/effects/effect-info-vectors.fixtures.ts +61 -0
  683. package/src/effects/effect-info-vectors.json +11532 -0
  684. package/src/effects/effect-info-vectors.ts +376 -0
  685. package/src/effects/effect-info.ts +1005 -859
  686. package/src/effects/effect.ts +96 -62
  687. package/src/effects/handlers.ts +5 -2
  688. package/src/effects/interpreter.ts +14 -0
  689. package/src/game/cave-cmd.ts +54 -11
  690. package/src/game/cave-square.ts +80 -0
  691. package/src/game/char-sheet.ts +59 -16
  692. package/src/game/chest.ts +25 -8
  693. package/src/game/context.ts +293 -27
  694. package/src/game/describe.ts +34 -4
  695. package/src/game/display.ts +215 -19
  696. package/src/game/dump-level.ts +3 -2
  697. package/src/game/effect-attack.ts +41 -28
  698. package/src/game/effect-detect.ts +45 -8
  699. package/src/game/effect-env.ts +8 -0
  700. package/src/game/effect-general.ts +110 -47
  701. package/src/game/effect-item.ts +1075 -999
  702. package/src/game/effect-melee.ts +51 -18
  703. package/src/game/effect-monster.ts +55 -9
  704. package/src/game/effect-teleport.ts +173 -38
  705. package/src/game/effect-terrain.ts +38 -22
  706. package/src/game/equip-cmp.ts +483 -480
  707. package/src/game/floor.ts +22 -4
  708. package/src/game/gear.ts +210 -21
  709. package/src/game/harness.ts +12 -1
  710. package/src/game/ignore-cmd.ts +96 -8
  711. package/src/game/known.ts +392 -73
  712. package/src/game/loop.ts +52 -27
  713. package/src/game/lore-color.ts +13 -1
  714. package/src/game/mon-cast.ts +31 -6
  715. package/src/game/mon-cmd.ts +95 -30
  716. package/src/game/mon-death.ts +14 -12
  717. package/src/game/mon-group.ts +9 -5
  718. package/src/game/mon-message.ts +363 -65
  719. package/src/game/mon-place.ts +15 -3
  720. package/src/game/mon-ranged.ts +14 -5
  721. package/src/game/mon-side.ts +16 -12
  722. package/src/game/monster-turn.ts +120 -87
  723. package/src/game/notice.ts +85 -0
  724. package/src/game/obj-cmd.ts +126 -37
  725. package/src/game/obj-list.ts +44 -26
  726. package/src/game/object-inspect.ts +13 -0
  727. package/src/game/pickup.ts +29 -5
  728. package/src/game/player-side-vectors.fixtures.ts +215 -0
  729. package/src/game/player-side-vectors.json +6914 -0
  730. package/src/game/player-side-vectors.ts +420 -0
  731. package/src/game/player-side.ts +622 -340
  732. package/src/game/player-turn.ts +228 -31
  733. package/src/game/poly.ts +107 -0
  734. package/src/game/project-cast.ts +63 -6
  735. package/src/game/project-feat-vectors.fixtures.ts +106 -0
  736. package/src/game/project-feat-vectors.json +6554 -0
  737. package/src/game/project-feat-vectors.ts +323 -0
  738. package/src/game/project-feat.ts +417 -248
  739. package/src/game/project-monster.ts +69 -30
  740. package/src/game/project-obj-vectors.json +1 -0
  741. package/src/game/project-obj.ts +115 -47
  742. package/src/game/project-player.ts +8 -0
  743. package/src/game/projection-handlers.ts +110 -0
  744. package/src/game/quest.ts +48 -0
  745. package/src/game/ranged-cmd.ts +45 -11
  746. package/src/game/repeat.ts +92 -0
  747. package/src/game/shape-inspect.ts +166 -0
  748. package/src/game/spell-cmd.ts +39 -6
  749. package/src/game/spoil.ts +92 -39
  750. package/src/game/steal.ts +9 -4
  751. package/src/game/target-loop.ts +14 -7
  752. package/src/game/target.ts +18 -7
  753. package/src/game/ui-entry.ts +172 -22
  754. package/src/game/wizard.ts +97 -10
  755. package/src/game/world.ts +6 -0
  756. package/src/gen/cave.ts +225 -26
  757. package/src/gen/generate.ts +62 -9
  758. package/src/gen/glyph-vectors.fixtures.ts +122 -0
  759. package/src/gen/glyph-vectors.json +5996 -0
  760. package/src/gen/glyph-vectors.ts +280 -0
  761. package/src/gen/glyph.ts +132 -0
  762. package/src/gen/room.ts +446 -265
  763. package/src/gen/util.ts +32 -9
  764. package/src/i18n/i18n.ts +492 -0
  765. package/src/i18n/text.ts +117 -0
  766. package/src/index.ts +307 -254
  767. package/src/mod/extension.ts +136 -0
  768. package/src/mod/hooks.ts +54 -1
  769. package/src/mod/ids.ts +92 -21
  770. package/src/mod/record-keys.ts +102 -0
  771. package/src/mod/registry-host.ts +1063 -234
  772. package/src/mon/bind.ts +14 -8
  773. package/src/mon/knowledge-groups.ts +12 -12
  774. package/src/mon/lore-describe.ts +93 -26
  775. package/src/mon/lore-file.ts +365 -0
  776. package/src/mon/lore.ts +9 -3
  777. package/src/mon/make.ts +4 -2
  778. package/src/mon/monster.ts +1 -1
  779. package/src/mon/predicate.ts +14 -9
  780. package/src/mon/project-mon.ts +23 -5
  781. package/src/mon/steal.ts +39 -7
  782. package/src/mon/take-hit.ts +8 -3
  783. package/src/mon/timed.ts +15 -9
  784. package/src/mon/types.ts +11 -4
  785. package/src/msg.ts +55 -1
  786. package/src/obj/artifact-fake.ts +47 -17
  787. package/src/obj/bind.ts +52 -9
  788. package/src/obj/desc-vectors.fixtures.ts +119 -0
  789. package/src/obj/desc-vectors.json +2360 -0
  790. package/src/obj/desc-vectors.ts +128 -0
  791. package/src/obj/desc.ts +159 -55
  792. package/src/obj/effects-info.ts +90 -59
  793. package/src/obj/fake-object.ts +135 -0
  794. package/src/obj/ignore.ts +95 -28
  795. package/src/obj/knowledge.ts +291 -139
  796. package/src/obj/known-object.ts +126 -11
  797. package/src/obj/make.ts +53 -29
  798. package/src/obj/object-info.ts +103 -6
  799. package/src/obj/object.ts +392 -151
  800. package/src/obj/power.ts +297 -59
  801. package/src/obj/randart-build.ts +1875 -1705
  802. package/src/obj/randart-data.ts +1547 -1344
  803. package/src/obj/randart-file.ts +130 -0
  804. package/src/obj/randart-log.ts +78 -0
  805. package/src/obj/randart-registry.ts +247 -0
  806. package/src/obj/randart-vectors.fixtures.ts +61 -0
  807. package/src/obj/randart-vectors.json +836 -0
  808. package/src/obj/randart-vectors.ts +369 -0
  809. package/src/obj/randart.ts +722 -552
  810. package/src/obj/rune-registry.ts +270 -0
  811. package/src/obj/rune-vectors.fixtures.ts +164 -0
  812. package/src/obj/rune-vectors.json +121 -0
  813. package/src/obj/rune-vectors.ts +229 -0
  814. package/src/obj/tval-kind-vectors.json +391 -0
  815. package/src/obj/tval-registry.ts +243 -0
  816. package/src/obj/tval-vectors.fixtures.ts +50 -0
  817. package/src/obj/tval-vectors.json +38 -0
  818. package/src/obj/tval-vectors.ts +126 -0
  819. package/src/obj/types.ts +18 -7
  820. package/src/obj/value.ts +26 -20
  821. package/src/parser.ts +214 -0
  822. package/src/player/bind.ts +5 -2
  823. package/src/player/birth.ts +2 -1
  824. package/src/player/calcs.ts +123 -42
  825. package/src/player/death.ts +78 -0
  826. package/src/player/options-file.ts +387 -0
  827. package/src/player/options.ts +2 -1
  828. package/src/player/player.ts +60 -4
  829. package/src/player/shape-lore.ts +33 -14
  830. package/src/player/timed.ts +14 -4
  831. package/src/player/types.ts +30 -4
  832. package/src/session/boot.ts +51 -1
  833. package/src/session/game.ts +720 -163
  834. package/src/session/save-migrate.ts +81 -1
  835. package/src/session/save.ts +264 -22
  836. package/src/store/bind.ts +4 -3
  837. package/src/store/mass-produce-vectors.fixtures.ts +64 -0
  838. package/src/store/mass-produce-vectors.json +1169 -0
  839. package/src/store/mass-produce-vectors.ts +67 -0
  840. package/src/store/store.ts +266 -63
  841. package/src/store/transact.ts +39 -16
  842. package/src/store/types.ts +3 -2
  843. package/src/version.ts +1 -1
  844. package/src/visuals/index.ts +1 -0
  845. package/src/visuals/map-text.ts +1 -1
  846. package/src/visuals/object-glyph.ts +76 -0
  847. package/src/visuals/prefs.ts +22 -32
  848. package/src/visuals/tile-prefs.ts +32 -0
  849. package/src/world/feature.ts +4 -1
  850. package/src/world/project.ts +19 -4
  851. package/src/world/projection.ts +79 -8
  852. package/src/world/trap.ts +25 -21
  853. package/src/world/view.ts +11 -1
@@ -1 +1 @@
1
- {"version":3,"file":"player-side.js","sourceRoot":"","sources":["../../src/game/player-side.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"player-side.js","sourceRoot":"","sources":["../../src/game/player-side.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,11 @@
10
10
  * (0 = a free, non-turn-consuming command). Mods add or replace codes without
11
11
  * touching the core. The built-in actions cover walk (move / melee an
12
12
  * adjacent monster), hold/rest (spend a turn in place) and the stair commands
13
- * (signal a level change). Every other command code is registered as a stub
14
- * that spends no energy and is ledgered as deferred.
13
+ * (signal a level change). Every other command code gets a base-registry stub
14
+ * that spends no energy, and the installers replace all of them before play
15
+ * (obj-cmd, cave-cmd, ranged-cmd, spell-cmd, pickup, player-path). Only "look"
16
+ * and "search" stay stubs, correctly: upstream's look is a UI function with
17
+ * CMD_NULL (ui-knowledge.c:4169) and 4.2.6 has no search command at all.
15
18
  *
16
19
  * process_player() reads queued commands through the injected provider
17
20
  * (state.nextCommand) so the loop never blocks on real input, and drains free
@@ -121,7 +124,21 @@ export declare function jumpAction(state: GameState, cmd: PlayerCommand): number
121
124
  * randint1(7) on success, once per discovered door in y/x scan order.
122
125
  */
123
126
  export declare function search(state: GameState): void;
124
- /** hold / rest: stay put and spend a full turn. */
127
+ /**
128
+ * hold / rest: stay put and spend a full turn.
129
+ *
130
+ * do_cmd_hold (cmd-cave.c:1580) is energy, search, do_autopickup, then "enter a
131
+ * store if we are on one". do_cmd_rest (cmd-cave.c:1615) is a DIFFERENT upstream
132
+ * function that does NEITHER; the two share this implementation only because both
133
+ * spend a turn standing still.
134
+ *
135
+ * The discriminator is `state.resting`, NOT `cmd.code`. The obvious gate -
136
+ * `cmd.code === "hold"` - is wrong here, because the host's rest loop drives every
137
+ * one of its turns by pushing `{ code: "hold" }` (web/src/main.ts): a rest would
138
+ * have picked items up off the floor and cancelled itself on a shop tile. A code
139
+ * the caller chooses is not evidence about which upstream function this is
140
+ * standing in for; a rest in progress is.
141
+ */
125
142
  export declare function holdAction(state: GameState, _cmd: PlayerCommand): number;
126
143
  /**
127
144
  * sleep (do_cmd_sleep, cmd-cave.c:1675): spend a full turn doing nothing.
@@ -131,18 +148,20 @@ export declare function holdAction(state: GameState, _cmd: PlayerCommand): numbe
131
148
  export declare function sleepAction(state: GameState, _cmd: PlayerCommand): number;
132
149
  /**
133
150
  * descend / ascend: signal a level change (player->upkeep->generate_level).
134
- * The actual level generation and depth change are DEFERRED to the world
135
- * integration; the loop observes the signal and clears it.
151
+ * The generation and depth change belong to the world integration, which does
152
+ * them (session/game.ts changeLevel); the loop observes the signal and clears it.
136
153
  */
137
154
  export declare function descendAction(state: GameState, _cmd: PlayerCommand): number;
138
155
  export declare function ascendAction(state: GameState, _cmd: PlayerCommand): number;
139
- /** A deferred command: consumes no turn (ledgered as not yet ported). */
156
+ /** The base-registry placeholder: consumes no turn. Every code that uses it is
157
+ * re-registered by an installer before play; see STUBBED_COMMANDS. */
140
158
  export declare function stubAction(_state: GameState, _cmd: PlayerCommand): number;
141
159
  /** Command codes registered as stubs (deferred; see game-loop.yaml).
142
160
  * "pickup"/"autopickup" stubs are replaced by installPickup (game/pickup.ts);
143
161
  * "run" is replaced by installRunning (game/player-path.ts). */
144
162
  export declare const STUBBED_COMMANDS: readonly string[];
145
- /** Build the default registry: the ported actions plus the deferred stubs. */
163
+ /** Build the default registry: the actions defined here plus the placeholders
164
+ * the installers replace. */
146
165
  export declare function createDefaultRegistry(): ActionRegistry;
147
166
  /** The result of pumping the player's command queue. */
148
167
  export interface PlayerTurnResult {
@@ -1 +1 @@
1
- {"version":3,"file":"player-turn.d.ts","sourceRoot":"","sources":["../../src/game/player-turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"player-turn.d.ts","sourceRoot":"","sources":["../../src/game/player-turn.ts"],"names":[],"mappings":"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"}
@@ -10,15 +10,18 @@
10
10
  * (0 = a free, non-turn-consuming command). Mods add or replace codes without
11
11
  * touching the core. The built-in actions cover walk (move / melee an
12
12
  * adjacent monster), hold/rest (spend a turn in place) and the stair commands
13
- * (signal a level change). Every other command code is registered as a stub
14
- * that spends no energy and is ledgered as deferred.
13
+ * (signal a level change). Every other command code gets a base-registry stub
14
+ * that spends no energy, and the installers replace all of them before play
15
+ * (obj-cmd, cave-cmd, ranged-cmd, spell-cmd, pickup, player-path). Only "look"
16
+ * and "search" stay stubs, correctly: upstream's look is a UI function with
17
+ * CMD_NULL (ui-knowledge.c:4169) and 4.2.6 has no search command at all.
15
18
  *
16
19
  * process_player() reads queued commands through the injected provider
17
20
  * (state.nextCommand) so the loop never blocks on real input, and drains free
18
21
  * commands until one uses energy or the queue empties, exactly as the
19
22
  * upstream do-while around cmdq_pop.
20
23
  */
21
- import { FEAT, MON_MSG, MON_TMD, MSG, OF, PF, STAT, TF, TMD, TRF } from "../generated/index.js";
24
+ import { FEAT, MON_MSG, MON_TMD, MSG, OF, PF, SQUARE, STAT, TF, TMD, TRF, } from "../generated/index.js";
22
25
  import { DDGRID, DDGRID_DDD, locSum } from "../loc.js";
23
26
  import { pyAttack } from "../combat/melee.js";
24
27
  import { learnBrandSlayFromMelee } from "../combat/brand-slay.js";
@@ -29,18 +32,20 @@ import { monsterWake } from "../mon/take-hit.js";
29
32
  import { MON_TMD_FLG_NOTIFY, monIncTimed } from "../mon/timed.js";
30
33
  import { equipLearnFlag, equipLearnOnMeleeAttack } from "../obj/knowledge.js";
31
34
  import { playerClearTimed, playerTimedGradeEq } from "../player/timed.js";
32
- import { arenaInterceptDeath, deleteMonster, movePlayer, squareMonster } from "./context.js";
35
+ import { arenaInterceptDeath, deleteMonster, gameTakeHitHooks, movePlayer, squareMonster, } from "./context.js";
33
36
  import { gearGet } from "./gear.js";
37
+ import { noticeStuff } from "./notice.js";
38
+ import { repeatBeginCommand } from "./repeat.js";
34
39
  import { floorPile } from "./floor.js";
35
40
  import { isTrappedChest } from "../obj/chest.js";
36
- import { knownIsClosedDoor, knownIsEnterable, knownIsRubble, knownObject, squareForget, squareIsKnown, squareMemorize, } from "./known.js";
41
+ import { clearMonsterShow, knownIsClosedDoor, knownIsEnterable, knownIsRubble, knownFloorObject, squareForget, squareIsKnown, squareMemorize, tickMonsterNiceAndMark, } from "./known.js";
37
42
  import { squareIsSeen } from "../world/view.js";
38
43
  import { playerConfuseDir } from "./obj-cmd.js";
39
44
  import { disturb } from "./player-path.js";
40
45
  import { playerAdjustManaPrecise } from "./loop.js";
41
- import { formatMonsterMessage } from "./mon-message.js";
42
- import { squareIsWebbed, squareRemoveAllTraps, squareTrap } from "./trap.js";
43
- import { PY_EXERT, playerCheckTerrainDamage, playerOverExert } from "./world.js";
46
+ import { addMonsterMessage } from "./mon-message.js";
47
+ import { playerIsTrapsafe, squareIsDisarmableTrap, squareIsWebbed, squareRemoveAllTraps, squareTrap, } from "./trap.js";
48
+ import { PY_EXERT, playerCheckTerrainDamage, playerOverExert, playerTakeTerrainDamage, } from "./world.js";
44
49
  /**
45
50
  * The action registry (moddable command table). Built-ins can be replaced and
46
51
  * new codes added; unknown codes fall back to a no-energy stub.
@@ -92,6 +97,7 @@ export function buildMeleeHooks(state, mon) {
92
97
  const grid = mon.grid;
93
98
  const hooks = {
94
99
  takeHit: {
100
+ ...gameTakeHitHooks(state, mon),
95
101
  ...(state.becomeAware ? { becomeAware: state.becomeAware } : {}),
96
102
  },
97
103
  /* Confusion attack (blow_side_effects, player-attack.c:672-677). */
@@ -200,6 +206,11 @@ export function attackMonster(state, target) {
200
206
  /* Learning from the attack (player-attack.c L822 equip_learn_on_melee_
201
207
  * attack; obj-slays.c learn_brand_slay_from_melee). */
202
208
  const deps = state.meleeSideDeps ?? {};
209
+ /* py_attack's first statement (player-attack.c:995-996). Attacking is a
210
+ * deliberate act, so the run/rest it cancels is a queued one - and it also
211
+ * flushes the command queue, which is what stops an auto-repeated command from
212
+ * carrying on after a monster steps into reach. */
213
+ disturb(state);
203
214
  const monVisible = monsterIsVisible(target);
204
215
  /* health_track (player-attack.c:745-749): hitting something visible makes it
205
216
  * the tracked monster, which is what puts it on the sidebar's health bar. This
@@ -229,6 +240,9 @@ export function attackMonster(state, target) {
229
240
  * with energy >= move_energy, so the full-turn default is upstream's
230
241
  * value at every real call site. */
231
242
  moveEnergy: state.z.moveEnergy,
243
+ /* object_to_hit / object_to_dam / object_weight_one read the curse
244
+ * templates of the weapon active curses (obj-util.c:296-330). */
245
+ curses: state.curses,
232
246
  hooks: buildMeleeHooks(state, target),
233
247
  });
234
248
  equipLearnOnMeleeAttack(state.actor.player, state.runeEnv);
@@ -236,11 +250,10 @@ export function attackMonster(state, target) {
236
250
  * faithful "You hit/miss/slay the X" text (combat returns HitType keys
237
251
  * only). Before deletion so the monster name is still resolvable. */
238
252
  state.onMelee?.(target, result);
239
- /* Hack - delay fear messages (player-attack.c:1023). */
253
+ /* "Hack - delay fear messages" (player-attack.c:1023): add_monster_message
254
+ * with delay = true, so the flee line comes out in the second pass. */
240
255
  if (result.monsterFled) {
241
- const flee = formatMonsterMessage(target, MON_MSG.FLEE_IN_TERROR);
242
- if (flee)
243
- state.msg?.(flee);
256
+ addMonsterMessage(state, target, MON_MSG.FLEE_IN_TERROR, true);
244
257
  }
245
258
  if (result.monsterDied && !arenaInterceptDeath(state, target)) {
246
259
  state.onPlayerKill?.(target);
@@ -405,6 +418,23 @@ export function walkAction(state, cmd) {
405
418
  * be less than a full turn, exactly as upstream. */
406
419
  return attackMonster(state, target);
407
420
  }
421
+ /*
422
+ * move_player (cmd-cave.c:1084-1088): a RUN stops in front of a known
423
+ * disarmable trap instead of walking into it, and the step is refunded.
424
+ *
425
+ * Ordered after the monster branch and before the impassable one, exactly as
426
+ * upstream, and it does not need to exclude the auto-disarm branch above it:
427
+ * run_step passes `dir && disarm` (player-path.c:2042), which is false on every
428
+ * continuing step, so a run never takes the alter/disarm path for a trap.
429
+ *
430
+ * Absent, a run walked the player onto their own detected traps.
431
+ */
432
+ if ((state.run?.running ?? 0) > 0 &&
433
+ squareIsDisarmableTrap(state, next) &&
434
+ !playerIsTrapsafe(state)) {
435
+ disturb(state);
436
+ return 0;
437
+ }
408
438
  /* Bump into a wall: no step, no energy.
409
439
  * A mod may take the walk over through the walkBlockedByDiggable hook
410
440
  * (mod/hooks.ts) - the QoL mod digs here. autoDigStep returns null having drawn
@@ -501,10 +531,36 @@ export function walkAction(state, cmd) {
501
531
  * L1300-1302); a deliberate bump refunds all energy. */
502
532
  return confused ? state.z.moveEnergy : 0;
503
533
  }
534
+ /*
535
+ * move_player (cmd-cave.c:1141-1152): a run stops at the edge of the detected
536
+ * -traps zone rather than carrying the player out of it, and refunds the step.
537
+ * running_firststep is excluded so a run STARTED on the edge can leave.
538
+ *
539
+ * This is the DTrap indicator's whole point on the move side, and it was
540
+ * missing: a run out of a detected area kept going into undetected ground.
541
+ */
542
+ const leavingDtrap = (state.run?.running ?? 0) > 0 &&
543
+ !state.run?.firstStep &&
544
+ state.chunk.sqinfoHas(state.actor.grid, SQUARE.DTRAP) &&
545
+ !state.chunk.sqinfoHas(next, SQUARE.DTRAP);
546
+ if (leavingDtrap) {
547
+ disturb(state);
548
+ return 0;
549
+ }
504
550
  movePlayer(state, next);
505
551
  if (state.updateFov)
506
552
  state.updateFov(state);
507
553
  search(state); /* player_handle_post_move (player-util.c:1633-1634). */
554
+ /*
555
+ * player_handle_post_move's store-door branch (player-util.c:1601-1609): the
556
+ * disturb half. Stepping onto a shop cancels a run or a rest whether or not the
557
+ * host has a store screen to open, so it belongs here rather than beside the
558
+ * host's enterStoreModal - and the shapechanged refusal above it returns before
559
+ * the disturb, so a shapechanged player is not disturbed by a door that will
560
+ * not open for them.
561
+ */
562
+ if (state.chunk.isShop(next) && !state.actor.player.shape)
563
+ disturb(state);
508
564
  /* Autopickup on the new grid (upstream queues CMD_AUTOPICKUP; its energy
509
565
  * cost is folded into this step, see game/pickup.ts). */
510
566
  const pickupCost = state.autoPickup ? state.autoPickup(state) : 0;
@@ -551,22 +607,18 @@ export function search(state) {
551
607
  disturb(state);
552
608
  }
553
609
  /*
554
- * The C tests knowledge PER OBJECT (`if (!obj->known || ...) continue;`),
555
- * which has no exact analogue here: this port's object memory is per GRID
556
- * (KnownObjectMemory holds the remembered pile head's glyph, not a shadow
557
- * per object), so the closest check is "is this grid's pile remembered".
558
- *
559
- * For floor piles the two agree, because square_know_pile shadows the
560
- * WHOLE pile at once -- either every object on the grid has a shadow or
561
- * none does. They diverge only for an object added to an
562
- * already-remembered grid since the last know_pile, e.g. a chest dropped
563
- * onto a mapped floor: upstream will not discover its trap until the pile
564
- * is known again, this will. Narrow, and recorded as a finding rather than
565
- * faked, since a per-object shadow is a larger design change.
610
+ * `if (!obj->known || ignore_item_ok(p, obj) || !is_trapped_chest(obj))`
611
+ * (player-util.c:1701-1705) - a PER-OBJECT knowledge test. This used to be
612
+ * approximated with "is this grid's pile remembered", because the port's
613
+ * object memory was one entry per grid; PORT_TODO 2.9 replaced that with a
614
+ * remembered pile holding the object references themselves, so the exact
615
+ * test is available and the recorded divergence (a chest dropped onto an
616
+ * already-mapped floor had its trap discovered here but not upstream) is
617
+ * gone.
566
618
  */
567
- if (!knownObject(state, grid))
568
- continue;
569
619
  for (const obj of floorPile(state, grid)) {
620
+ if (!knownFloorObject(state, grid, obj))
621
+ continue;
570
622
  if ((state.isIgnored?.(obj) ?? false) || !isTrappedChest(obj))
571
623
  continue;
572
624
  if (obj.knownPval !== obj.pval) {
@@ -578,9 +630,37 @@ export function search(state) {
578
630
  }
579
631
  }
580
632
  }
581
- /** hold / rest: stay put and spend a full turn. */
633
+ /**
634
+ * hold / rest: stay put and spend a full turn.
635
+ *
636
+ * do_cmd_hold (cmd-cave.c:1580) is energy, search, do_autopickup, then "enter a
637
+ * store if we are on one". do_cmd_rest (cmd-cave.c:1615) is a DIFFERENT upstream
638
+ * function that does NEITHER; the two share this implementation only because both
639
+ * spend a turn standing still.
640
+ *
641
+ * The discriminator is `state.resting`, NOT `cmd.code`. The obvious gate -
642
+ * `cmd.code === "hold"` - is wrong here, because the host's rest loop drives every
643
+ * one of its turns by pushing `{ code: "hold" }` (web/src/main.ts): a rest would
644
+ * have picked items up off the floor and cancelled itself on a shop tile. A code
645
+ * the caller chooses is not evidence about which upstream function this is
646
+ * standing in for; a rest in progress is.
647
+ */
582
648
  export function holdAction(state, _cmd) {
583
649
  search(state);
650
+ if (!state.resting) {
651
+ /* do_autopickup(player), cmd-cave.c:1590. Upstream's comment says "not using
652
+ * extra energy", so the energy the pickup reports is deliberately discarded -
653
+ * standing still costs one move, whatever is underfoot. Without this call the
654
+ * pickup_always option did nothing at all for a player who stood still on a
655
+ * pile: only walkAction (:597) ran the hook. */
656
+ state.autoPickup?.(state);
657
+ /* disturb(player) on entering a store (cmd-cave.c:1599). Opening the shop
658
+ * screen is the host's (enterStoreModal, web/src/main.ts), but cancelling a
659
+ * run or a rest is the engine's, and it has to happen whether or not a host
660
+ * has a store UI at all. */
661
+ if (state.chunk.isShop(state.actor.grid))
662
+ disturb(state);
663
+ }
584
664
  return state.z.moveEnergy;
585
665
  }
586
666
  /**
@@ -593,8 +673,8 @@ export function sleepAction(state, _cmd) {
593
673
  }
594
674
  /**
595
675
  * descend / ascend: signal a level change (player->upkeep->generate_level).
596
- * The actual level generation and depth change are DEFERRED to the world
597
- * integration; the loop observes the signal and clears it.
676
+ * The generation and depth change belong to the world integration, which does
677
+ * them (session/game.ts changeLevel); the loop observes the signal and clears it.
598
678
  */
599
679
  export function descendAction(state, _cmd) {
600
680
  state.generateLevel = true;
@@ -604,7 +684,8 @@ export function ascendAction(state, _cmd) {
604
684
  state.generateLevel = true;
605
685
  return state.z.moveEnergy;
606
686
  }
607
- /** A deferred command: consumes no turn (ledgered as not yet ported). */
687
+ /** The base-registry placeholder: consumes no turn. Every code that uses it is
688
+ * re-registered by an installer before play; see STUBBED_COMMANDS. */
608
689
  export function stubAction(_state, _cmd) {
609
690
  return 0;
610
691
  }
@@ -633,7 +714,8 @@ export const STUBBED_COMMANDS = [
633
714
  "open",
634
715
  "close",
635
716
  ];
636
- /** Build the default registry: the ported actions plus the deferred stubs. */
717
+ /** Build the default registry: the actions defined here plus the placeholders
718
+ * the installers replace. */
637
719
  export function createDefaultRegistry() {
638
720
  const reg = new ActionRegistry();
639
721
  reg.register("walk", walkAction);
@@ -664,6 +746,41 @@ const NON_COERCION_COMMANDS = new Set([
664
746
  "help",
665
747
  "repeat",
666
748
  ]);
749
+ /**
750
+ * process_player_cleanup (game-world.c:839), everything but the energy
751
+ * accounting - which the port applies at the call site below, because `use` is
752
+ * only in scope there.
753
+ *
754
+ * Called at the END of every do-loop iteration in processPlayer, including the
755
+ * bloodlust-coercion path, exactly as the C calls it at L989. Two guards matter
756
+ * and neither is decoration:
757
+ *
758
+ * - The terrain damage and the NICE/MARK loop are inside `if (energy_use)`
759
+ * (L844): a free command costs no lava burn and fades no detection.
760
+ * - The NICE/MARK loop is additionally skipped while `upkeep->dropping` (L867),
761
+ * so an ignore_drop auto-drop does not spend the player's one turn of
762
+ * detection on itself. The SHOW clear and the `dropping` reset are OUTSIDE
763
+ * both guards (L903-909).
764
+ *
765
+ * `skip_cmd_coercion` (L859-861, L897-903) is not modelled - save gap 12.6.
766
+ */
767
+ function processPlayerCleanup(state, energyUsed) {
768
+ const up = state.actor.player.upkeep;
769
+ if (energyUsed) {
770
+ /* Player can be damaged by terrain (L864): fiery terrain burns after each
771
+ * acted turn. This used to live in game/loop.ts, one level out, which was
772
+ * equivalent only because the do-loop exits immediately after the
773
+ * energy-spending command - but it left no correct home for the block
774
+ * below. */
775
+ playerTakeTerrainDamage(state);
776
+ /* L867-892, minus the hallucination redraw and the multi-hued shimmer,
777
+ * which are PR_MAP / square_light_spot - the ratified redraw divergence. */
778
+ if (!up.dropping)
779
+ tickMonsterNiceAndMark(state);
780
+ }
781
+ clearMonsterShow(state);
782
+ up.dropping = false;
783
+ }
667
784
  /**
668
785
  * process_player: drain queued commands until one spends energy, the queue
669
786
  * empties (needsInput), or the player dies / a level change is requested.
@@ -675,6 +792,10 @@ export function processPlayer(state, registry) {
675
792
  do {
676
793
  if (state.isDead || state.generateLevel)
677
794
  break;
795
+ /* notice_stuff(player) (game-world.c:942), the first line of the refresh
796
+ * block: the ignore and combine passes owed by whatever ran last, drained
797
+ * BEFORE pack_overflow so the overflow sees a combined pack. */
798
+ noticeStuff(state);
678
799
  /* game-world.c:941-947: after the refresh equivalent and before command
679
800
  * preparation, recover an overfull/corrupt pack using calc_inventory's
680
801
  * sorted inven[] view. */
@@ -712,8 +833,21 @@ export function processPlayer(state, registry) {
712
833
  * coercion roll is drawn (unconditionally, even at zero bloodlust,
713
834
  * matching upstream's randint0(200) < timed[TMD_BLOODLUST]); on success
714
835
  * the command is dropped and a random adjacent monster is attacked.
715
- * skip_cmd_coercion is not modelled (save gap 12.6, WP-10). */
716
- if (!commanding && !NON_COERCION_COMMANDS.has(cmd.code)) {
836
+ * skip_cmd_coercion is not modelled (save gap 12.6, WP-10).
837
+ *
838
+ * background_command > 1 is exempt (cmd-core.c:360): ignore_drop
839
+ * queues its auto-drops that way, and drawing the roll for them would move
840
+ * every later draw in the turn. */
841
+ /* process_command's repeat reset (cmd-core.c:353): every command starts
842
+ * repeatable and the handler clears it if it must not be repeated. BEFORE the
843
+ * coercion block, because the C sets it at L353 and the coercion test is at
844
+ * L360 inside the same function - so a coerced attack replaces the command
845
+ * but not this. Also records whether this command addressed a floor object,
846
+ * which is what cmd_disable_repeat_floor_item reads. */
847
+ repeatBeginCommand(state.actor.player, cmd);
848
+ if (!commanding &&
849
+ !NON_COERCION_COMMANDS.has(cmd.code) &&
850
+ (cmd.background ?? 0) <= 1) {
717
851
  if (state.rng.randint0(200) <
718
852
  (state.actor.player.timed[TMD.BLOODLUST] ?? 0)) {
719
853
  const spent = playerAttackRandomMonster(state);
@@ -723,6 +857,10 @@ export function processPlayer(state, registry) {
723
857
  state.actor.totalEnergy += spent;
724
858
  energyUsed = spent;
725
859
  }
860
+ /* The coerced attack IS the command for this iteration, so the C
861
+ * reaches process_player_cleanup through it too (process_command
862
+ * returns and L989 runs). */
863
+ processPlayerCleanup(state, spent > 0 ? spent : 0);
726
864
  continue;
727
865
  }
728
866
  }
@@ -733,7 +871,16 @@ export function processPlayer(state, registry) {
733
871
  state.actor.totalEnergy += use;
734
872
  energyUsed = use;
735
873
  }
874
+ /* process_player_cleanup (game-world.c:989), the last statement of the loop
875
+ * body. Runs after a FREE command too - that is where the SHOW clear lives,
876
+ * and without it a detected monster's MARK would never reach the
877
+ * MARK && !SHOW state its fade needs. */
878
+ processPlayerCleanup(state, use > 0 ? use : 0);
736
879
  } while (energyUsed === 0 && !state.isDead && !state.generateLevel);
880
+ /* "Notice stuff (if needed)" (game-world.c:995-996), after the do-loop: the
881
+ * command that just spent energy may have raised a bit, and this is where
882
+ * upstream drains it rather than leaving it for the next turn. */
883
+ noticeStuff(state);
737
884
  return { needsInput: false, energyUsed };
738
885
  }
739
886
  //# sourceMappingURL=player-turn.js.map