@rpgm-tools/neo-angband-core 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1183) hide show
  1. package/LICENSE.md +43 -0
  2. package/README.md +80 -0
  3. package/dist/agent/act.d.ts +22 -0
  4. package/dist/agent/act.d.ts.map +1 -0
  5. package/dist/agent/act.js +88 -0
  6. package/dist/agent/act.js.map +1 -0
  7. package/dist/agent/controller.d.ts +34 -0
  8. package/dist/agent/controller.d.ts.map +1 -0
  9. package/dist/agent/controller.js +90 -0
  10. package/dist/agent/controller.js.map +1 -0
  11. package/dist/agent/events.d.ts +27 -0
  12. package/dist/agent/events.d.ts.map +1 -0
  13. package/dist/agent/events.js +31 -0
  14. package/dist/agent/events.js.map +1 -0
  15. package/dist/agent/index.d.ts +17 -0
  16. package/dist/agent/index.d.ts.map +1 -0
  17. package/dist/agent/index.js +15 -0
  18. package/dist/agent/index.js.map +1 -0
  19. package/dist/agent/perceive.d.ts +21 -0
  20. package/dist/agent/perceive.d.ts.map +1 -0
  21. package/dist/agent/perceive.js +386 -0
  22. package/dist/agent/perceive.js.map +1 -0
  23. package/dist/agent/types.d.ts +436 -0
  24. package/dist/agent/types.d.ts.map +1 -0
  25. package/dist/agent/types.js +63 -0
  26. package/dist/agent/types.js.map +1 -0
  27. package/dist/bitflag.d.ts +199 -0
  28. package/dist/bitflag.d.ts.map +1 -0
  29. package/dist/bitflag.js +478 -0
  30. package/dist/bitflag.js.map +1 -0
  31. package/dist/cmd.d.ts +164 -0
  32. package/dist/cmd.d.ts.map +1 -0
  33. package/dist/cmd.js +350 -0
  34. package/dist/cmd.js.map +1 -0
  35. package/dist/color.d.ts +104 -0
  36. package/dist/color.d.ts.map +1 -0
  37. package/dist/color.js +240 -0
  38. package/dist/color.js.map +1 -0
  39. package/dist/combat/brand-slay.d.ts +119 -0
  40. package/dist/combat/brand-slay.d.ts.map +1 -0
  41. package/dist/combat/brand-slay.js +264 -0
  42. package/dist/combat/brand-slay.js.map +1 -0
  43. package/dist/combat/hit.d.ts +198 -0
  44. package/dist/combat/hit.d.ts.map +1 -0
  45. package/dist/combat/hit.js +310 -0
  46. package/dist/combat/hit.js.map +1 -0
  47. package/dist/combat/index.d.ts +15 -0
  48. package/dist/combat/index.d.ts.map +1 -0
  49. package/dist/combat/index.js +15 -0
  50. package/dist/combat/index.js.map +1 -0
  51. package/dist/combat/melee.d.ts +261 -0
  52. package/dist/combat/melee.d.ts.map +1 -0
  53. package/dist/combat/melee.js +402 -0
  54. package/dist/combat/melee.js.map +1 -0
  55. package/dist/combat/mon-melee.d.ts +233 -0
  56. package/dist/combat/mon-melee.d.ts.map +1 -0
  57. package/dist/combat/mon-melee.js +883 -0
  58. package/dist/combat/mon-melee.js.map +1 -0
  59. package/dist/combat/ranged.d.ts +89 -0
  60. package/dist/combat/ranged.d.ts.map +1 -0
  61. package/dist/combat/ranged.js +253 -0
  62. package/dist/combat/ranged.js.map +1 -0
  63. package/dist/constants.d.ts +134 -0
  64. package/dist/constants.d.ts.map +1 -0
  65. package/dist/constants.js +171 -0
  66. package/dist/constants.js.map +1 -0
  67. package/dist/dice.d.ts +91 -0
  68. package/dist/dice.d.ts.map +1 -0
  69. package/dist/dice.js +424 -0
  70. package/dist/dice.js.map +1 -0
  71. package/dist/effects/effect-choice.d.ts +15 -0
  72. package/dist/effects/effect-choice.d.ts.map +1 -0
  73. package/dist/effects/effect-choice.js +18 -0
  74. package/dist/effects/effect-choice.js.map +1 -0
  75. package/dist/effects/effect-info.d.ts +124 -0
  76. package/dist/effects/effect-info.d.ts.map +1 -0
  77. package/dist/effects/effect-info.js +706 -0
  78. package/dist/effects/effect-info.js.map +1 -0
  79. package/dist/effects/effect.d.ts +165 -0
  80. package/dist/effects/effect.d.ts.map +1 -0
  81. package/dist/effects/effect.js +452 -0
  82. package/dist/effects/effect.js.map +1 -0
  83. package/dist/effects/handlers.d.ts +70 -0
  84. package/dist/effects/handlers.d.ts.map +1 -0
  85. package/dist/effects/handlers.js +394 -0
  86. package/dist/effects/handlers.js.map +1 -0
  87. package/dist/effects/interpreter.d.ts +291 -0
  88. package/dist/effects/interpreter.d.ts.map +1 -0
  89. package/dist/effects/interpreter.js +325 -0
  90. package/dist/effects/interpreter.js.map +1 -0
  91. package/dist/events.d.ts +188 -0
  92. package/dist/events.d.ts.map +1 -0
  93. package/dist/events.js +138 -0
  94. package/dist/events.js.map +1 -0
  95. package/dist/expression.d.ts +83 -0
  96. package/dist/expression.d.ts.map +1 -0
  97. package/dist/expression.js +333 -0
  98. package/dist/expression.js.map +1 -0
  99. package/dist/game/cave-cmd.d.ts +195 -0
  100. package/dist/game/cave-cmd.d.ts.map +1 -0
  101. package/dist/game/cave-cmd.js +968 -0
  102. package/dist/game/cave-cmd.js.map +1 -0
  103. package/dist/game/char-sheet.d.ts +189 -0
  104. package/dist/game/char-sheet.d.ts.map +1 -0
  105. package/dist/game/char-sheet.js +381 -0
  106. package/dist/game/char-sheet.js.map +1 -0
  107. package/dist/game/chest.d.ts +94 -0
  108. package/dist/game/chest.d.ts.map +1 -0
  109. package/dist/game/chest.js +267 -0
  110. package/dist/game/chest.js.map +1 -0
  111. package/dist/game/context.d.ts +970 -0
  112. package/dist/game/context.d.ts.map +1 -0
  113. package/dist/game/context.js +353 -0
  114. package/dist/game/context.js.map +1 -0
  115. package/dist/game/curse-tick.d.ts +35 -0
  116. package/dist/game/curse-tick.d.ts.map +1 -0
  117. package/dist/game/curse-tick.js +100 -0
  118. package/dist/game/curse-tick.js.map +1 -0
  119. package/dist/game/describe.d.ts +20 -0
  120. package/dist/game/describe.d.ts.map +1 -0
  121. package/dist/game/describe.js +45 -0
  122. package/dist/game/describe.js.map +1 -0
  123. package/dist/game/display.d.ts +196 -0
  124. package/dist/game/display.d.ts.map +1 -0
  125. package/dist/game/display.js +684 -0
  126. package/dist/game/display.js.map +1 -0
  127. package/dist/game/dump-level.d.ts +37 -0
  128. package/dist/game/dump-level.d.ts.map +1 -0
  129. package/dist/game/dump-level.js +110 -0
  130. package/dist/game/dump-level.js.map +1 -0
  131. package/dist/game/effect-attack.d.ts +36 -0
  132. package/dist/game/effect-attack.d.ts.map +1 -0
  133. package/dist/game/effect-attack.js +694 -0
  134. package/dist/game/effect-attack.js.map +1 -0
  135. package/dist/game/effect-detect.d.ts +34 -0
  136. package/dist/game/effect-detect.d.ts.map +1 -0
  137. package/dist/game/effect-detect.js +456 -0
  138. package/dist/game/effect-detect.js.map +1 -0
  139. package/dist/game/effect-env.d.ts +77 -0
  140. package/dist/game/effect-env.d.ts.map +1 -0
  141. package/dist/game/effect-env.js +166 -0
  142. package/dist/game/effect-env.js.map +1 -0
  143. package/dist/game/effect-game-env.d.ts +76 -0
  144. package/dist/game/effect-game-env.d.ts.map +1 -0
  145. package/dist/game/effect-game-env.js +23 -0
  146. package/dist/game/effect-game-env.js.map +1 -0
  147. package/dist/game/effect-general.d.ts +98 -0
  148. package/dist/game/effect-general.d.ts.map +1 -0
  149. package/dist/game/effect-general.js +914 -0
  150. package/dist/game/effect-general.js.map +1 -0
  151. package/dist/game/effect-item.d.ts +124 -0
  152. package/dist/game/effect-item.d.ts.map +1 -0
  153. package/dist/game/effect-item.js +789 -0
  154. package/dist/game/effect-item.js.map +1 -0
  155. package/dist/game/effect-melee.d.ts +43 -0
  156. package/dist/game/effect-melee.d.ts.map +1 -0
  157. package/dist/game/effect-melee.js +477 -0
  158. package/dist/game/effect-melee.js.map +1 -0
  159. package/dist/game/effect-mon-origin.d.ts +67 -0
  160. package/dist/game/effect-mon-origin.d.ts.map +1 -0
  161. package/dist/game/effect-mon-origin.js +164 -0
  162. package/dist/game/effect-mon-origin.js.map +1 -0
  163. package/dist/game/effect-monster.d.ts +29 -0
  164. package/dist/game/effect-monster.d.ts.map +1 -0
  165. package/dist/game/effect-monster.js +281 -0
  166. package/dist/game/effect-monster.js.map +1 -0
  167. package/dist/game/effect-summon.d.ts +37 -0
  168. package/dist/game/effect-summon.d.ts.map +1 -0
  169. package/dist/game/effect-summon.js +113 -0
  170. package/dist/game/effect-summon.js.map +1 -0
  171. package/dist/game/effect-teleport.d.ts +130 -0
  172. package/dist/game/effect-teleport.d.ts.map +1 -0
  173. package/dist/game/effect-teleport.js +529 -0
  174. package/dist/game/effect-teleport.js.map +1 -0
  175. package/dist/game/effect-terrain.d.ts +91 -0
  176. package/dist/game/effect-terrain.d.ts.map +1 -0
  177. package/dist/game/effect-terrain.js +812 -0
  178. package/dist/game/effect-terrain.js.map +1 -0
  179. package/dist/game/energy.d.ts +45 -0
  180. package/dist/game/energy.d.ts.map +1 -0
  181. package/dist/game/energy.js +51 -0
  182. package/dist/game/energy.js.map +1 -0
  183. package/dist/game/equip-cmp.d.ts +138 -0
  184. package/dist/game/equip-cmp.d.ts.map +1 -0
  185. package/dist/game/equip-cmp.js +363 -0
  186. package/dist/game/equip-cmp.js.map +1 -0
  187. package/dist/game/floor.d.ts +182 -0
  188. package/dist/game/floor.d.ts.map +1 -0
  189. package/dist/game/floor.js +435 -0
  190. package/dist/game/floor.js.map +1 -0
  191. package/dist/game/gear.d.ts +408 -0
  192. package/dist/game/gear.d.ts.map +1 -0
  193. package/dist/game/gear.js +1037 -0
  194. package/dist/game/gear.js.map +1 -0
  195. package/dist/game/harness.d.ts +61 -0
  196. package/dist/game/harness.d.ts.map +1 -0
  197. package/dist/game/harness.js +198 -0
  198. package/dist/game/harness.js.map +1 -0
  199. package/dist/game/history.d.ts +49 -0
  200. package/dist/game/history.d.ts.map +1 -0
  201. package/dist/game/history.js +55 -0
  202. package/dist/game/history.js.map +1 -0
  203. package/dist/game/ignore-cmd.d.ts +42 -0
  204. package/dist/game/ignore-cmd.d.ts.map +1 -0
  205. package/dist/game/ignore-cmd.js +59 -0
  206. package/dist/game/ignore-cmd.js.map +1 -0
  207. package/dist/game/inscription-confirm.d.ts +80 -0
  208. package/dist/game/inscription-confirm.d.ts.map +1 -0
  209. package/dist/game/inscription-confirm.js +95 -0
  210. package/dist/game/inscription-confirm.js.map +1 -0
  211. package/dist/game/known.d.ts +297 -0
  212. package/dist/game/known.d.ts.map +1 -0
  213. package/dist/game/known.js +849 -0
  214. package/dist/game/known.js.map +1 -0
  215. package/dist/game/loop.d.ts +139 -0
  216. package/dist/game/loop.d.ts.map +1 -0
  217. package/dist/game/loop.js +631 -0
  218. package/dist/game/loop.js.map +1 -0
  219. package/dist/game/lore-color.d.ts +25 -0
  220. package/dist/game/lore-color.d.ts.map +1 -0
  221. package/dist/game/lore-color.js +95 -0
  222. package/dist/game/lore-color.js.map +1 -0
  223. package/dist/game/mon-cast.d.ts +150 -0
  224. package/dist/game/mon-cast.d.ts.map +1 -0
  225. package/dist/game/mon-cast.js +301 -0
  226. package/dist/game/mon-cast.js.map +1 -0
  227. package/dist/game/mon-cmd.d.ts +51 -0
  228. package/dist/game/mon-cmd.d.ts.map +1 -0
  229. package/dist/game/mon-cmd.js +670 -0
  230. package/dist/game/mon-cmd.js.map +1 -0
  231. package/dist/game/mon-death.d.ts +143 -0
  232. package/dist/game/mon-death.d.ts.map +1 -0
  233. package/dist/game/mon-death.js +328 -0
  234. package/dist/game/mon-death.js.map +1 -0
  235. package/dist/game/mon-group.d.ts +81 -0
  236. package/dist/game/mon-group.d.ts.map +1 -0
  237. package/dist/game/mon-group.js +323 -0
  238. package/dist/game/mon-group.js.map +1 -0
  239. package/dist/game/mon-list.d.ts +85 -0
  240. package/dist/game/mon-list.d.ts.map +1 -0
  241. package/dist/game/mon-list.js +154 -0
  242. package/dist/game/mon-list.js.map +1 -0
  243. package/dist/game/mon-message.d.ts +100 -0
  244. package/dist/game/mon-message.d.ts.map +1 -0
  245. package/dist/game/mon-message.js +336 -0
  246. package/dist/game/mon-message.js.map +1 -0
  247. package/dist/game/mon-place.d.ts +226 -0
  248. package/dist/game/mon-place.d.ts.map +1 -0
  249. package/dist/game/mon-place.js +642 -0
  250. package/dist/game/mon-place.js.map +1 -0
  251. package/dist/game/mon-ranged.d.ts +87 -0
  252. package/dist/game/mon-ranged.d.ts.map +1 -0
  253. package/dist/game/mon-ranged.js +353 -0
  254. package/dist/game/mon-ranged.js.map +1 -0
  255. package/dist/game/mon-shape.d.ts +43 -0
  256. package/dist/game/mon-shape.d.ts.map +1 -0
  257. package/dist/game/mon-shape.js +115 -0
  258. package/dist/game/mon-shape.js.map +1 -0
  259. package/dist/game/mon-side.d.ts +63 -0
  260. package/dist/game/mon-side.d.ts.map +1 -0
  261. package/dist/game/mon-side.js +403 -0
  262. package/dist/game/mon-side.js.map +1 -0
  263. package/dist/game/monster-turn.d.ts +195 -0
  264. package/dist/game/monster-turn.d.ts.map +1 -0
  265. package/dist/game/monster-turn.js +1560 -0
  266. package/dist/game/monster-turn.js.map +1 -0
  267. package/dist/game/obj-cmd.d.ts +453 -0
  268. package/dist/game/obj-cmd.d.ts.map +1 -0
  269. package/dist/game/obj-cmd.js +1530 -0
  270. package/dist/game/obj-cmd.js.map +1 -0
  271. package/dist/game/obj-list.d.ts +92 -0
  272. package/dist/game/obj-list.d.ts.map +1 -0
  273. package/dist/game/obj-list.js +251 -0
  274. package/dist/game/obj-list.js.map +1 -0
  275. package/dist/game/object-inspect.d.ts +37 -0
  276. package/dist/game/object-inspect.d.ts.map +1 -0
  277. package/dist/game/object-inspect.js +106 -0
  278. package/dist/game/object-inspect.js.map +1 -0
  279. package/dist/game/pickup.d.ts +126 -0
  280. package/dist/game/pickup.d.ts.map +1 -0
  281. package/dist/game/pickup.js +367 -0
  282. package/dist/game/pickup.js.map +1 -0
  283. package/dist/game/player-path.d.ts +133 -0
  284. package/dist/game/player-path.d.ts.map +1 -0
  285. package/dist/game/player-path.js +1268 -0
  286. package/dist/game/player-path.js.map +1 -0
  287. package/dist/game/player-side.d.ts +59 -0
  288. package/dist/game/player-side.d.ts.map +1 -0
  289. package/dist/game/player-side.js +506 -0
  290. package/dist/game/player-side.js.map +1 -0
  291. package/dist/game/player-turn.d.ts +161 -0
  292. package/dist/game/player-turn.d.ts.map +1 -0
  293. package/dist/game/player-turn.js +739 -0
  294. package/dist/game/player-turn.js.map +1 -0
  295. package/dist/game/project-cast.d.ts +268 -0
  296. package/dist/game/project-cast.d.ts.map +1 -0
  297. package/dist/game/project-cast.js +496 -0
  298. package/dist/game/project-cast.js.map +1 -0
  299. package/dist/game/project-feat.d.ts +47 -0
  300. package/dist/game/project-feat.d.ts.map +1 -0
  301. package/dist/game/project-feat.js +350 -0
  302. package/dist/game/project-feat.js.map +1 -0
  303. package/dist/game/project-monster.d.ts +106 -0
  304. package/dist/game/project-monster.d.ts.map +1 -0
  305. package/dist/game/project-monster.js +272 -0
  306. package/dist/game/project-monster.js.map +1 -0
  307. package/dist/game/project-obj.d.ts +60 -0
  308. package/dist/game/project-obj.d.ts.map +1 -0
  309. package/dist/game/project-obj.js +245 -0
  310. package/dist/game/project-obj.js.map +1 -0
  311. package/dist/game/project-player.d.ts +120 -0
  312. package/dist/game/project-player.d.ts.map +1 -0
  313. package/dist/game/project-player.js +108 -0
  314. package/dist/game/project-player.js.map +1 -0
  315. package/dist/game/quest.d.ts +101 -0
  316. package/dist/game/quest.d.ts.map +1 -0
  317. package/dist/game/quest.js +192 -0
  318. package/dist/game/quest.js.map +1 -0
  319. package/dist/game/ranged-cmd.d.ts +32 -0
  320. package/dist/game/ranged-cmd.d.ts.map +1 -0
  321. package/dist/game/ranged-cmd.js +372 -0
  322. package/dist/game/ranged-cmd.js.map +1 -0
  323. package/dist/game/scheduler.d.ts +47 -0
  324. package/dist/game/scheduler.d.ts.map +1 -0
  325. package/dist/game/scheduler.js +141 -0
  326. package/dist/game/scheduler.js.map +1 -0
  327. package/dist/game/spell-cmd.d.ts +104 -0
  328. package/dist/game/spell-cmd.d.ts.map +1 -0
  329. package/dist/game/spell-cmd.js +320 -0
  330. package/dist/game/spell-cmd.js.map +1 -0
  331. package/dist/game/spoil.d.ts +28 -0
  332. package/dist/game/spoil.d.ts.map +1 -0
  333. package/dist/game/spoil.js +435 -0
  334. package/dist/game/spoil.js.map +1 -0
  335. package/dist/game/steal.d.ts +35 -0
  336. package/dist/game/steal.d.ts.map +1 -0
  337. package/dist/game/steal.js +145 -0
  338. package/dist/game/steal.js.map +1 -0
  339. package/dist/game/take-hit-hooks.d.ts +52 -0
  340. package/dist/game/take-hit-hooks.d.ts.map +1 -0
  341. package/dist/game/take-hit-hooks.js +127 -0
  342. package/dist/game/take-hit-hooks.js.map +1 -0
  343. package/dist/game/target-loop.d.ts +119 -0
  344. package/dist/game/target-loop.d.ts.map +1 -0
  345. package/dist/game/target-loop.js +408 -0
  346. package/dist/game/target-loop.js.map +1 -0
  347. package/dist/game/target.d.ts +133 -0
  348. package/dist/game/target.d.ts.map +1 -0
  349. package/dist/game/target.js +353 -0
  350. package/dist/game/target.js.map +1 -0
  351. package/dist/game/thrust.d.ts +37 -0
  352. package/dist/game/thrust.d.ts.map +1 -0
  353. package/dist/game/thrust.js +155 -0
  354. package/dist/game/thrust.js.map +1 -0
  355. package/dist/game/trap.d.ts +218 -0
  356. package/dist/game/trap.d.ts.map +1 -0
  357. package/dist/game/trap.js +618 -0
  358. package/dist/game/trap.js.map +1 -0
  359. package/dist/game/ui-entry.d.ts +282 -0
  360. package/dist/game/ui-entry.d.ts.map +1 -0
  361. package/dist/game/ui-entry.js +1838 -0
  362. package/dist/game/ui-entry.js.map +1 -0
  363. package/dist/game/wizard.d.ts +654 -0
  364. package/dist/game/wizard.d.ts.map +1 -0
  365. package/dist/game/wizard.js +1323 -0
  366. package/dist/game/wizard.js.map +1 -0
  367. package/dist/game/world.d.ts +183 -0
  368. package/dist/game/world.d.ts.map +1 -0
  369. package/dist/game/world.js +685 -0
  370. package/dist/game/world.js.map +1 -0
  371. package/dist/gen/cave.d.ts +247 -0
  372. package/dist/gen/cave.d.ts.map +1 -0
  373. package/dist/gen/cave.js +2406 -0
  374. package/dist/gen/cave.js.map +1 -0
  375. package/dist/gen/gen-monster.d.ts +151 -0
  376. package/dist/gen/gen-monster.d.ts.map +1 -0
  377. package/dist/gen/gen-monster.js +473 -0
  378. package/dist/gen/gen-monster.js.map +1 -0
  379. package/dist/gen/generate.d.ts +240 -0
  380. package/dist/gen/generate.d.ts.map +1 -0
  381. package/dist/gen/generate.js +358 -0
  382. package/dist/gen/generate.js.map +1 -0
  383. package/dist/gen/room.d.ts +160 -0
  384. package/dist/gen/room.d.ts.map +1 -0
  385. package/dist/gen/room.js +1910 -0
  386. package/dist/gen/room.js.map +1 -0
  387. package/dist/gen/util.d.ts +466 -0
  388. package/dist/gen/util.d.ts.map +1 -0
  389. package/dist/gen/util.js +1553 -0
  390. package/dist/gen/util.js.map +1 -0
  391. package/dist/generated/dun-profiles.d.ts +44 -0
  392. package/dist/generated/dun-profiles.d.ts.map +1 -0
  393. package/dist/generated/dun-profiles.js +28 -0
  394. package/dist/generated/dun-profiles.js.map +1 -0
  395. package/dist/generated/effects.d.ts +1021 -0
  396. package/dist/generated/effects.d.ts.map +1 -0
  397. package/dist/generated/effects.js +239 -0
  398. package/dist/generated/effects.js.map +1 -0
  399. package/dist/generated/elements.d.ts +83 -0
  400. package/dist/generated/elements.d.ts.map +1 -0
  401. package/dist/generated/elements.js +60 -0
  402. package/dist/generated/elements.js.map +1 -0
  403. package/dist/generated/equip-slots.d.ts +104 -0
  404. package/dist/generated/equip-slots.d.ts.map +1 -0
  405. package/dist/generated/equip-slots.js +34 -0
  406. package/dist/generated/equip-slots.js.map +1 -0
  407. package/dist/generated/history-types.d.ts +52 -0
  408. package/dist/generated/history-types.d.ts.map +1 -0
  409. package/dist/generated/history-types.js +32 -0
  410. package/dist/generated/history-types.js.map +1 -0
  411. package/dist/generated/ignore-types.d.ts +116 -0
  412. package/dist/generated/ignore-types.d.ts.map +1 -0
  413. package/dist/generated/ignore-types.js +64 -0
  414. package/dist/generated/ignore-types.js.map +1 -0
  415. package/dist/generated/index.d.ts +32 -0
  416. package/dist/generated/index.d.ts.map +1 -0
  417. package/dist/generated/index.js +33 -0
  418. package/dist/generated/index.js.map +1 -0
  419. package/dist/generated/kind-flags.d.ts +72 -0
  420. package/dist/generated/kind-flags.d.ts.map +1 -0
  421. package/dist/generated/kind-flags.js +42 -0
  422. package/dist/generated/kind-flags.js.map +1 -0
  423. package/dist/generated/message.d.ts +624 -0
  424. package/dist/generated/message.d.ts.map +1 -0
  425. package/dist/generated/message.js +318 -0
  426. package/dist/generated/message.js.map +1 -0
  427. package/dist/generated/mon-message.d.ts +386 -0
  428. package/dist/generated/mon-message.d.ts.map +1 -0
  429. package/dist/generated/mon-message.js +136 -0
  430. package/dist/generated/mon-message.js.map +1 -0
  431. package/dist/generated/mon-race-flags.d.ts +433 -0
  432. package/dist/generated/mon-race-flags.d.ts.map +1 -0
  433. package/dist/generated/mon-race-flags.js +180 -0
  434. package/dist/generated/mon-race-flags.js.map +1 -0
  435. package/dist/generated/mon-spells.d.ts +380 -0
  436. package/dist/generated/mon-spells.d.ts.map +1 -0
  437. package/dist/generated/mon-spells.js +196 -0
  438. package/dist/generated/mon-spells.js.map +1 -0
  439. package/dist/generated/mon-temp-flags.d.ts +52 -0
  440. package/dist/generated/mon-temp-flags.d.ts.map +1 -0
  441. package/dist/generated/mon-temp-flags.js +32 -0
  442. package/dist/generated/mon-temp-flags.js.map +1 -0
  443. package/dist/generated/mon-timed.d.ts +118 -0
  444. package/dist/generated/mon-timed.d.ts.map +1 -0
  445. package/dist/generated/mon-timed.js +32 -0
  446. package/dist/generated/mon-timed.js.map +1 -0
  447. package/dist/generated/object-flags.d.ts +169 -0
  448. package/dist/generated/object-flags.d.ts.map +1 -0
  449. package/dist/generated/object-flags.js +93 -0
  450. package/dist/generated/object-flags.js.map +1 -0
  451. package/dist/generated/object-modifiers.d.ts +50 -0
  452. package/dist/generated/object-modifiers.d.ts.map +1 -0
  453. package/dist/generated/object-modifiers.js +41 -0
  454. package/dist/generated/object-modifiers.js.map +1 -0
  455. package/dist/generated/options.d.ts +284 -0
  456. package/dist/generated/options.d.ts.map +1 -0
  457. package/dist/generated/options.js +102 -0
  458. package/dist/generated/options.js.map +1 -0
  459. package/dist/generated/origins.d.ts +138 -0
  460. package/dist/generated/origins.d.ts.map +1 -0
  461. package/dist/generated/origins.js +62 -0
  462. package/dist/generated/origins.js.map +1 -0
  463. package/dist/generated/parser-errors.d.ts +264 -0
  464. package/dist/generated/parser-errors.d.ts.map +1 -0
  465. package/dist/generated/parser-errors.js +138 -0
  466. package/dist/generated/parser-errors.js.map +1 -0
  467. package/dist/generated/player-flags.d.ts +62 -0
  468. package/dist/generated/player-flags.d.ts.map +1 -0
  469. package/dist/generated/player-flags.js +46 -0
  470. package/dist/generated/player-flags.js.map +1 -0
  471. package/dist/generated/player-timed.d.ts +273 -0
  472. package/dist/generated/player-timed.d.ts.map +1 -0
  473. package/dist/generated/player-timed.js +116 -0
  474. package/dist/generated/player-timed.js.map +1 -0
  475. package/dist/generated/projections.d.ts +130 -0
  476. package/dist/generated/projections.d.ts.map +1 -0
  477. package/dist/generated/projections.js +101 -0
  478. package/dist/generated/projections.js.map +1 -0
  479. package/dist/generated/randart-properties.d.ts +388 -0
  480. package/dist/generated/randart-properties.d.ts.map +1 -0
  481. package/dist/generated/randart-properties.js +200 -0
  482. package/dist/generated/randart-properties.js.map +1 -0
  483. package/dist/generated/room-flags.d.ts +21 -0
  484. package/dist/generated/room-flags.d.ts.map +1 -0
  485. package/dist/generated/room-flags.js +19 -0
  486. package/dist/generated/room-flags.js.map +1 -0
  487. package/dist/generated/rooms.d.ts +122 -0
  488. package/dist/generated/rooms.d.ts.map +1 -0
  489. package/dist/generated/rooms.js +48 -0
  490. package/dist/generated/rooms.js.map +1 -0
  491. package/dist/generated/square-flags.d.ts +96 -0
  492. package/dist/generated/square-flags.d.ts.map +1 -0
  493. package/dist/generated/square-flags.js +54 -0
  494. package/dist/generated/square-flags.js.map +1 -0
  495. package/dist/generated/stats.d.ts +23 -0
  496. package/dist/generated/stats.d.ts.map +1 -0
  497. package/dist/generated/stats.js +20 -0
  498. package/dist/generated/stats.js.map +1 -0
  499. package/dist/generated/terrain-flags.d.ts +136 -0
  500. package/dist/generated/terrain-flags.d.ts.map +1 -0
  501. package/dist/generated/terrain-flags.js +74 -0
  502. package/dist/generated/terrain-flags.js.map +1 -0
  503. package/dist/generated/terrain.d.ts +83 -0
  504. package/dist/generated/terrain.d.ts.map +1 -0
  505. package/dist/generated/terrain.js +60 -0
  506. package/dist/generated/terrain.js.map +1 -0
  507. package/dist/generated/trap-flags.d.ts +68 -0
  508. package/dist/generated/trap-flags.d.ts.map +1 -0
  509. package/dist/generated/trap-flags.js +40 -0
  510. package/dist/generated/trap-flags.js.map +1 -0
  511. package/dist/generated/tvals.d.ts +152 -0
  512. package/dist/generated/tvals.d.ts.map +1 -0
  513. package/dist/generated/tvals.js +82 -0
  514. package/dist/generated/tvals.js.map +1 -0
  515. package/dist/generated/ui-entry-renderers.d.ts +62 -0
  516. package/dist/generated/ui-entry-renderers.d.ts.map +1 -0
  517. package/dist/generated/ui-entry-renderers.js +22 -0
  518. package/dist/generated/ui-entry-renderers.js.map +1 -0
  519. package/dist/guard.d.ts +43 -0
  520. package/dist/guard.d.ts.map +1 -0
  521. package/dist/guard.js +65 -0
  522. package/dist/guard.js.map +1 -0
  523. package/dist/host/args.d.ts +129 -0
  524. package/dist/host/args.d.ts.map +1 -0
  525. package/dist/host/args.js +251 -0
  526. package/dist/host/args.js.map +1 -0
  527. package/dist/host/bridge.d.ts +61 -0
  528. package/dist/host/bridge.d.ts.map +1 -0
  529. package/dist/host/bridge.js +176 -0
  530. package/dist/host/bridge.js.map +1 -0
  531. package/dist/host/index.d.ts +18 -0
  532. package/dist/host/index.d.ts.map +1 -0
  533. package/dist/host/index.js +18 -0
  534. package/dist/host/index.js.map +1 -0
  535. package/dist/host/io.d.ts +169 -0
  536. package/dist/host/io.d.ts.map +1 -0
  537. package/dist/host/io.js +137 -0
  538. package/dist/host/io.js.map +1 -0
  539. package/dist/host/memory.d.ts +56 -0
  540. package/dist/host/memory.d.ts.map +1 -0
  541. package/dist/host/memory.js +105 -0
  542. package/dist/host/memory.js.map +1 -0
  543. package/dist/host/raw.d.ts +114 -0
  544. package/dist/host/raw.d.ts.map +1 -0
  545. package/dist/host/raw.js +107 -0
  546. package/dist/host/raw.js.map +1 -0
  547. package/dist/index.d.ts +180 -0
  548. package/dist/index.d.ts.map +1 -0
  549. package/dist/index.js +222 -0
  550. package/dist/index.js.map +1 -0
  551. package/dist/loc.d.ts +63 -0
  552. package/dist/loc.d.ts.map +1 -0
  553. package/dist/loc.js +128 -0
  554. package/dist/loc.js.map +1 -0
  555. package/dist/mod/hooks.d.ts +204 -0
  556. package/dist/mod/hooks.d.ts.map +1 -0
  557. package/dist/mod/hooks.js +161 -0
  558. package/dist/mod/hooks.js.map +1 -0
  559. package/dist/mod/ids.d.ts +160 -0
  560. package/dist/mod/ids.d.ts.map +1 -0
  561. package/dist/mod/ids.js +343 -0
  562. package/dist/mod/ids.js.map +1 -0
  563. package/dist/mod/registry-host.d.ts +156 -0
  564. package/dist/mod/registry-host.d.ts.map +1 -0
  565. package/dist/mod/registry-host.js +142 -0
  566. package/dist/mod/registry-host.js.map +1 -0
  567. package/dist/mod/save-blocks.d.ts +201 -0
  568. package/dist/mod/save-blocks.d.ts.map +1 -0
  569. package/dist/mod/save-blocks.js +640 -0
  570. package/dist/mod/save-blocks.js.map +1 -0
  571. package/dist/mod/vocabulary.d.ts +104 -0
  572. package/dist/mod/vocabulary.d.ts.map +1 -0
  573. package/dist/mod/vocabulary.js +0 -0
  574. package/dist/mod/vocabulary.js.map +1 -0
  575. package/dist/mon/bind.d.ts +266 -0
  576. package/dist/mon/bind.d.ts.map +1 -0
  577. package/dist/mon/bind.js +610 -0
  578. package/dist/mon/bind.js.map +1 -0
  579. package/dist/mon/desc.d.ts +72 -0
  580. package/dist/mon/desc.d.ts.map +1 -0
  581. package/dist/mon/desc.js +237 -0
  582. package/dist/mon/desc.js.map +1 -0
  583. package/dist/mon/knowledge-groups.d.ts +61 -0
  584. package/dist/mon/knowledge-groups.d.ts.map +1 -0
  585. package/dist/mon/knowledge-groups.js +121 -0
  586. package/dist/mon/knowledge-groups.js.map +1 -0
  587. package/dist/mon/lore-describe.d.ts +216 -0
  588. package/dist/mon/lore-describe.d.ts.map +1 -0
  589. package/dist/mon/lore-describe.js +1105 -0
  590. package/dist/mon/lore-describe.js.map +1 -0
  591. package/dist/mon/lore.d.ts +117 -0
  592. package/dist/mon/lore.d.ts.map +1 -0
  593. package/dist/mon/lore.js +221 -0
  594. package/dist/mon/lore.js.map +1 -0
  595. package/dist/mon/make.d.ts +147 -0
  596. package/dist/mon/make.d.ts.map +1 -0
  597. package/dist/mon/make.js +353 -0
  598. package/dist/mon/make.js.map +1 -0
  599. package/dist/mon/monster.d.ts +94 -0
  600. package/dist/mon/monster.d.ts.map +1 -0
  601. package/dist/mon/monster.js +90 -0
  602. package/dist/mon/monster.js.map +1 -0
  603. package/dist/mon/predicate.d.ts +87 -0
  604. package/dist/mon/predicate.d.ts.map +1 -0
  605. package/dist/mon/predicate.js +190 -0
  606. package/dist/mon/predicate.js.map +1 -0
  607. package/dist/mon/project-mon.d.ts +129 -0
  608. package/dist/mon/project-mon.d.ts.map +1 -0
  609. package/dist/mon/project-mon.js +652 -0
  610. package/dist/mon/project-mon.js.map +1 -0
  611. package/dist/mon/spell.d.ts +155 -0
  612. package/dist/mon/spell.d.ts.map +1 -0
  613. package/dist/mon/spell.js +355 -0
  614. package/dist/mon/spell.js.map +1 -0
  615. package/dist/mon/steal.d.ts +112 -0
  616. package/dist/mon/steal.d.ts.map +1 -0
  617. package/dist/mon/steal.js +163 -0
  618. package/dist/mon/steal.js.map +1 -0
  619. package/dist/mon/summon.d.ts +62 -0
  620. package/dist/mon/summon.d.ts.map +1 -0
  621. package/dist/mon/summon.js +111 -0
  622. package/dist/mon/summon.js.map +1 -0
  623. package/dist/mon/take-hit.d.ts +75 -0
  624. package/dist/mon/take-hit.d.ts.map +1 -0
  625. package/dist/mon/take-hit.js +122 -0
  626. package/dist/mon/take-hit.js.map +1 -0
  627. package/dist/mon/timed.d.ts +74 -0
  628. package/dist/mon/timed.d.ts.map +1 -0
  629. package/dist/mon/timed.js +219 -0
  630. package/dist/mon/timed.js.map +1 -0
  631. package/dist/mon/types.d.ts +252 -0
  632. package/dist/mon/types.d.ts.map +1 -0
  633. package/dist/mon/types.js +46 -0
  634. package/dist/mon/types.js.map +1 -0
  635. package/dist/msg.d.ts +71 -0
  636. package/dist/msg.d.ts.map +1 -0
  637. package/dist/msg.js +126 -0
  638. package/dist/msg.js.map +1 -0
  639. package/dist/obj/artifact-fake.d.ts +39 -0
  640. package/dist/obj/artifact-fake.d.ts.map +1 -0
  641. package/dist/obj/artifact-fake.js +52 -0
  642. package/dist/obj/artifact-fake.js.map +1 -0
  643. package/dist/obj/artifact-known.d.ts +50 -0
  644. package/dist/obj/artifact-known.d.ts.map +1 -0
  645. package/dist/obj/artifact-known.js +55 -0
  646. package/dist/obj/artifact-known.js.map +1 -0
  647. package/dist/obj/bind.d.ts +219 -0
  648. package/dist/obj/bind.d.ts.map +1 -0
  649. package/dist/obj/bind.js +1239 -0
  650. package/dist/obj/bind.js.map +1 -0
  651. package/dist/obj/chest.d.ts +91 -0
  652. package/dist/obj/chest.d.ts.map +1 -0
  653. package/dist/obj/chest.js +220 -0
  654. package/dist/obj/chest.js.map +1 -0
  655. package/dist/obj/desc.d.ts +79 -0
  656. package/dist/obj/desc.d.ts.map +1 -0
  657. package/dist/obj/desc.js +602 -0
  658. package/dist/obj/desc.js.map +1 -0
  659. package/dist/obj/effects-info.d.ts +78 -0
  660. package/dist/obj/effects-info.d.ts.map +1 -0
  661. package/dist/obj/effects-info.js +240 -0
  662. package/dist/obj/effects-info.js.map +1 -0
  663. package/dist/obj/flavor.d.ts +68 -0
  664. package/dist/obj/flavor.d.ts.map +1 -0
  665. package/dist/obj/flavor.js +201 -0
  666. package/dist/obj/flavor.js.map +1 -0
  667. package/dist/obj/ignore.d.ts +143 -0
  668. package/dist/obj/ignore.d.ts.map +1 -0
  669. package/dist/obj/ignore.js +345 -0
  670. package/dist/obj/ignore.js.map +1 -0
  671. package/dist/obj/knowledge.d.ts +520 -0
  672. package/dist/obj/knowledge.d.ts.map +1 -0
  673. package/dist/obj/knowledge.js +1364 -0
  674. package/dist/obj/knowledge.js.map +1 -0
  675. package/dist/obj/known-object.d.ts +293 -0
  676. package/dist/obj/known-object.d.ts.map +1 -0
  677. package/dist/obj/known-object.js +532 -0
  678. package/dist/obj/known-object.js.map +1 -0
  679. package/dist/obj/make.d.ts +292 -0
  680. package/dist/obj/make.d.ts.map +1 -0
  681. package/dist/obj/make.js +1055 -0
  682. package/dist/obj/make.js.map +1 -0
  683. package/dist/obj/object-info.d.ts +188 -0
  684. package/dist/obj/object-info.d.ts.map +1 -0
  685. package/dist/obj/object-info.js +1407 -0
  686. package/dist/obj/object-info.js.map +1 -0
  687. package/dist/obj/object.d.ts +335 -0
  688. package/dist/obj/object.d.ts.map +1 -0
  689. package/dist/obj/object.js +1051 -0
  690. package/dist/obj/object.js.map +1 -0
  691. package/dist/obj/power.d.ts +65 -0
  692. package/dist/obj/power.d.ts.map +1 -0
  693. package/dist/obj/power.js +580 -0
  694. package/dist/obj/power.js.map +1 -0
  695. package/dist/obj/randart-build.d.ts +223 -0
  696. package/dist/obj/randart-build.d.ts.map +1 -0
  697. package/dist/obj/randart-build.js +1444 -0
  698. package/dist/obj/randart-build.js.map +1 -0
  699. package/dist/obj/randart-data.d.ts +179 -0
  700. package/dist/obj/randart-data.d.ts.map +1 -0
  701. package/dist/obj/randart-data.js +1153 -0
  702. package/dist/obj/randart-data.js.map +1 -0
  703. package/dist/obj/randart.d.ts +128 -0
  704. package/dist/obj/randart.d.ts.map +1 -0
  705. package/dist/obj/randart.js +458 -0
  706. package/dist/obj/randart.js.map +1 -0
  707. package/dist/obj/randname.d.ts +33 -0
  708. package/dist/obj/randname.d.ts.map +1 -0
  709. package/dist/obj/randname.js +116 -0
  710. package/dist/obj/randname.js.map +1 -0
  711. package/dist/obj/recharge.d.ts +28 -0
  712. package/dist/obj/recharge.d.ts.map +1 -0
  713. package/dist/obj/recharge.js +52 -0
  714. package/dist/obj/recharge.js.map +1 -0
  715. package/dist/obj/types.d.ts +584 -0
  716. package/dist/obj/types.d.ts.map +1 -0
  717. package/dist/obj/types.js +104 -0
  718. package/dist/obj/types.js.map +1 -0
  719. package/dist/obj/value.d.ts +64 -0
  720. package/dist/obj/value.d.ts.map +1 -0
  721. package/dist/obj/value.js +176 -0
  722. package/dist/obj/value.js.map +1 -0
  723. package/dist/player/abilities.d.ts +57 -0
  724. package/dist/player/abilities.d.ts.map +1 -0
  725. package/dist/player/abilities.js +118 -0
  726. package/dist/player/abilities.js.map +1 -0
  727. package/dist/player/best-digger.d.ts +42 -0
  728. package/dist/player/best-digger.d.ts.map +1 -0
  729. package/dist/player/best-digger.js +89 -0
  730. package/dist/player/best-digger.js.map +1 -0
  731. package/dist/player/bind.d.ts +270 -0
  732. package/dist/player/bind.d.ts.map +1 -0
  733. package/dist/player/bind.js +698 -0
  734. package/dist/player/bind.js.map +1 -0
  735. package/dist/player/birth.d.ts +258 -0
  736. package/dist/player/birth.d.ts.map +1 -0
  737. package/dist/player/birth.js +639 -0
  738. package/dist/player/birth.js.map +1 -0
  739. package/dist/player/calcs.d.ts +403 -0
  740. package/dist/player/calcs.d.ts.map +1 -0
  741. package/dist/player/calcs.js +1189 -0
  742. package/dist/player/calcs.js.map +1 -0
  743. package/dist/player/combat-regen.d.ts +14 -0
  744. package/dist/player/combat-regen.d.ts.map +1 -0
  745. package/dist/player/combat-regen.js +29 -0
  746. package/dist/player/combat-regen.js.map +1 -0
  747. package/dist/player/exp.d.ts +96 -0
  748. package/dist/player/exp.d.ts.map +1 -0
  749. package/dist/player/exp.js +229 -0
  750. package/dist/player/exp.js.map +1 -0
  751. package/dist/player/history.d.ts +91 -0
  752. package/dist/player/history.d.ts.map +1 -0
  753. package/dist/player/history.js +145 -0
  754. package/dist/player/history.js.map +1 -0
  755. package/dist/player/options.d.ts +123 -0
  756. package/dist/player/options.d.ts.map +1 -0
  757. package/dist/player/options.js +199 -0
  758. package/dist/player/options.js.map +1 -0
  759. package/dist/player/player.d.ts +242 -0
  760. package/dist/player/player.d.ts.map +1 -0
  761. package/dist/player/player.js +119 -0
  762. package/dist/player/player.js.map +1 -0
  763. package/dist/player/shape-lore.d.ts +56 -0
  764. package/dist/player/shape-lore.d.ts.map +1 -0
  765. package/dist/player/shape-lore.js +221 -0
  766. package/dist/player/shape-lore.js.map +1 -0
  767. package/dist/player/spell.d.ts +146 -0
  768. package/dist/player/spell.d.ts.map +1 -0
  769. package/dist/player/spell.js +519 -0
  770. package/dist/player/spell.js.map +1 -0
  771. package/dist/player/take-hit.d.ts +87 -0
  772. package/dist/player/take-hit.d.ts.map +1 -0
  773. package/dist/player/take-hit.js +99 -0
  774. package/dist/player/take-hit.js.map +1 -0
  775. package/dist/player/timed.d.ts +205 -0
  776. package/dist/player/timed.d.ts.map +1 -0
  777. package/dist/player/timed.js +310 -0
  778. package/dist/player/timed.js.map +1 -0
  779. package/dist/player/types.d.ts +390 -0
  780. package/dist/player/types.d.ts.map +1 -0
  781. package/dist/player/types.js +51 -0
  782. package/dist/player/types.js.map +1 -0
  783. package/dist/rational.d.ts +99 -0
  784. package/dist/rational.d.ts.map +1 -0
  785. package/dist/rational.js +345 -0
  786. package/dist/rational.js.map +1 -0
  787. package/dist/rng.d.ts +168 -0
  788. package/dist/rng.d.ts.map +1 -0
  789. package/dist/rng.js +404 -0
  790. package/dist/rng.js.map +1 -0
  791. package/dist/save/buffer.d.ts +120 -0
  792. package/dist/save/buffer.d.ts.map +1 -0
  793. package/dist/save/buffer.js +238 -0
  794. package/dist/save/buffer.js.map +1 -0
  795. package/dist/save/compress.d.ts +79 -0
  796. package/dist/save/compress.d.ts.map +1 -0
  797. package/dist/save/compress.js +97 -0
  798. package/dist/save/compress.js.map +1 -0
  799. package/dist/save/description.d.ts +61 -0
  800. package/dist/save/description.d.ts.map +1 -0
  801. package/dist/save/description.js +51 -0
  802. package/dist/save/description.js.map +1 -0
  803. package/dist/save/integrity.d.ts +59 -0
  804. package/dist/save/integrity.d.ts.map +1 -0
  805. package/dist/save/integrity.js +103 -0
  806. package/dist/save/integrity.js.map +1 -0
  807. package/dist/score/display.d.ts +40 -0
  808. package/dist/score/display.d.ts.map +1 -0
  809. package/dist/score/display.js +86 -0
  810. package/dist/score/display.js.map +1 -0
  811. package/dist/score/score.d.ts +166 -0
  812. package/dist/score/score.d.ts.map +1 -0
  813. package/dist/score/score.js +244 -0
  814. package/dist/score/score.js.map +1 -0
  815. package/dist/score/types.d.ts +98 -0
  816. package/dist/score/types.d.ts.map +1 -0
  817. package/dist/score/types.js +27 -0
  818. package/dist/score/types.js.map +1 -0
  819. package/dist/session/boot.d.ts +207 -0
  820. package/dist/session/boot.d.ts.map +1 -0
  821. package/dist/session/boot.js +151 -0
  822. package/dist/session/boot.js.map +1 -0
  823. package/dist/session/game.d.ts +257 -0
  824. package/dist/session/game.d.ts.map +1 -0
  825. package/dist/session/game.js +2880 -0
  826. package/dist/session/game.js.map +1 -0
  827. package/dist/session/save.d.ts +847 -0
  828. package/dist/session/save.d.ts.map +1 -0
  829. package/dist/session/save.js +1306 -0
  830. package/dist/session/save.js.map +1 -0
  831. package/dist/sound/engine.d.ts +146 -0
  832. package/dist/sound/engine.d.ts.map +1 -0
  833. package/dist/sound/engine.js +332 -0
  834. package/dist/sound/engine.js.map +1 -0
  835. package/dist/sound/index.d.ts +13 -0
  836. package/dist/sound/index.d.ts.map +1 -0
  837. package/dist/sound/index.js +13 -0
  838. package/dist/sound/index.js.map +1 -0
  839. package/dist/sound/sound-prefs-data.d.ts +10 -0
  840. package/dist/sound/sound-prefs-data.d.ts.map +1 -0
  841. package/dist/sound/sound-prefs-data.js +165 -0
  842. package/dist/sound/sound-prefs-data.js.map +1 -0
  843. package/dist/sound/types.d.ts +64 -0
  844. package/dist/sound/types.d.ts.map +1 -0
  845. package/dist/sound/types.js +23 -0
  846. package/dist/sound/types.js.map +1 -0
  847. package/dist/store/bind.d.ts +43 -0
  848. package/dist/store/bind.d.ts.map +1 -0
  849. package/dist/store/bind.js +130 -0
  850. package/dist/store/bind.js.map +1 -0
  851. package/dist/store/price.d.ts +27 -0
  852. package/dist/store/price.d.ts.map +1 -0
  853. package/dist/store/price.js +81 -0
  854. package/dist/store/price.js.map +1 -0
  855. package/dist/store/store-cmd.d.ts +51 -0
  856. package/dist/store/store-cmd.d.ts.map +1 -0
  857. package/dist/store/store-cmd.js +73 -0
  858. package/dist/store/store-cmd.js.map +1 -0
  859. package/dist/store/store.d.ts +156 -0
  860. package/dist/store/store.d.ts.map +1 -0
  861. package/dist/store/store.js +616 -0
  862. package/dist/store/store.js.map +1 -0
  863. package/dist/store/transact.d.ts +198 -0
  864. package/dist/store/transact.d.ts.map +1 -0
  865. package/dist/store/transact.js +383 -0
  866. package/dist/store/transact.js.map +1 -0
  867. package/dist/store/types.d.ts +101 -0
  868. package/dist/store/types.d.ts.map +1 -0
  869. package/dist/store/types.js +14 -0
  870. package/dist/store/types.js.map +1 -0
  871. package/dist/version.d.ts +25 -0
  872. package/dist/version.d.ts.map +1 -0
  873. package/dist/version.js +25 -0
  874. package/dist/version.js.map +1 -0
  875. package/dist/visuals/engine.d.ts +223 -0
  876. package/dist/visuals/engine.d.ts.map +1 -0
  877. package/dist/visuals/engine.js +357 -0
  878. package/dist/visuals/engine.js.map +1 -0
  879. package/dist/visuals/glyph-table.d.ts +112 -0
  880. package/dist/visuals/glyph-table.d.ts.map +1 -0
  881. package/dist/visuals/glyph-table.js +156 -0
  882. package/dist/visuals/glyph-table.js.map +1 -0
  883. package/dist/visuals/grafmode-data.d.ts +4 -0
  884. package/dist/visuals/grafmode-data.d.ts.map +1 -0
  885. package/dist/visuals/grafmode-data.js +88 -0
  886. package/dist/visuals/grafmode-data.js.map +1 -0
  887. package/dist/visuals/grafmode.d.ts +83 -0
  888. package/dist/visuals/grafmode.d.ts.map +1 -0
  889. package/dist/visuals/grafmode.js +82 -0
  890. package/dist/visuals/grafmode.js.map +1 -0
  891. package/dist/visuals/index.d.ts +19 -0
  892. package/dist/visuals/index.d.ts.map +1 -0
  893. package/dist/visuals/index.js +19 -0
  894. package/dist/visuals/index.js.map +1 -0
  895. package/dist/visuals/map-text.d.ts +79 -0
  896. package/dist/visuals/map-text.d.ts.map +1 -0
  897. package/dist/visuals/map-text.js +122 -0
  898. package/dist/visuals/map-text.js.map +1 -0
  899. package/dist/visuals/pref-expr.d.ts +56 -0
  900. package/dist/visuals/pref-expr.d.ts.map +1 -0
  901. package/dist/visuals/pref-expr.js +173 -0
  902. package/dist/visuals/pref-expr.js.map +1 -0
  903. package/dist/visuals/prefs.d.ts +280 -0
  904. package/dist/visuals/prefs.d.ts.map +1 -0
  905. package/dist/visuals/prefs.js +835 -0
  906. package/dist/visuals/prefs.js.map +1 -0
  907. package/dist/visuals/tile-prefs.d.ts +132 -0
  908. package/dist/visuals/tile-prefs.d.ts.map +1 -0
  909. package/dist/visuals/tile-prefs.js +105 -0
  910. package/dist/visuals/tile-prefs.js.map +1 -0
  911. package/dist/world/chunk.d.ts +195 -0
  912. package/dist/world/chunk.d.ts.map +1 -0
  913. package/dist/world/chunk.js +422 -0
  914. package/dist/world/chunk.js.map +1 -0
  915. package/dist/world/feature.d.ts +86 -0
  916. package/dist/world/feature.d.ts.map +1 -0
  917. package/dist/world/feature.js +153 -0
  918. package/dist/world/feature.js.map +1 -0
  919. package/dist/world/flow.d.ts +33 -0
  920. package/dist/world/flow.d.ts.map +1 -0
  921. package/dist/world/flow.js +115 -0
  922. package/dist/world/flow.js.map +1 -0
  923. package/dist/world/project.d.ts +176 -0
  924. package/dist/world/project.d.ts.map +1 -0
  925. package/dist/world/project.js +543 -0
  926. package/dist/world/project.js.map +1 -0
  927. package/dist/world/projection.d.ts +100 -0
  928. package/dist/world/projection.d.ts.map +1 -0
  929. package/dist/world/projection.js +152 -0
  930. package/dist/world/projection.js.map +1 -0
  931. package/dist/world/scatter.d.ts +25 -0
  932. package/dist/world/scatter.d.ts.map +1 -0
  933. package/dist/world/scatter.js +54 -0
  934. package/dist/world/scatter.js.map +1 -0
  935. package/dist/world/trap.d.ts +84 -0
  936. package/dist/world/trap.d.ts.map +1 -0
  937. package/dist/world/trap.js +106 -0
  938. package/dist/world/trap.js.map +1 -0
  939. package/dist/world/view.d.ts +60 -0
  940. package/dist/world/view.d.ts.map +1 -0
  941. package/dist/world/view.js +436 -0
  942. package/dist/world/view.js.map +1 -0
  943. package/dist/z-queue.d.ts +133 -0
  944. package/dist/z-queue.d.ts.map +1 -0
  945. package/dist/z-queue.js +283 -0
  946. package/dist/z-queue.js.map +1 -0
  947. package/package.json +75 -0
  948. package/src/agent/act.ts +114 -0
  949. package/src/agent/controller.ts +109 -0
  950. package/src/agent/events.ts +47 -0
  951. package/src/agent/index.ts +36 -0
  952. package/src/agent/perceive.ts +440 -0
  953. package/src/agent/types.ts +464 -0
  954. package/src/bitflag.ts +536 -0
  955. package/src/cmd.ts +547 -0
  956. package/src/color.ts +267 -0
  957. package/src/combat/brand-slay.ts +360 -0
  958. package/src/combat/hit.ts +471 -0
  959. package/src/combat/index.ts +15 -0
  960. package/src/combat/melee.ts +728 -0
  961. package/src/combat/mon-melee.ts +1153 -0
  962. package/src/combat/ranged.ts +397 -0
  963. package/src/constants.ts +324 -0
  964. package/src/dice.ts +467 -0
  965. package/src/effects/effect-choice.ts +32 -0
  966. package/src/effects/effect-info.ts +859 -0
  967. package/src/effects/effect.ts +560 -0
  968. package/src/effects/handlers.ts +452 -0
  969. package/src/effects/interpreter.ts +603 -0
  970. package/src/events.ts +317 -0
  971. package/src/expression.ts +360 -0
  972. package/src/game/cave-cmd.ts +1147 -0
  973. package/src/game/char-sheet.ts +557 -0
  974. package/src/game/chest.ts +348 -0
  975. package/src/game/context.ts +1218 -0
  976. package/src/game/curse-tick.ts +130 -0
  977. package/src/game/describe.ts +62 -0
  978. package/src/game/display.ts +838 -0
  979. package/src/game/dump-level.ts +114 -0
  980. package/src/game/effect-attack.ts +746 -0
  981. package/src/game/effect-detect.ts +542 -0
  982. package/src/game/effect-env.ts +252 -0
  983. package/src/game/effect-game-env.ts +86 -0
  984. package/src/game/effect-general.ts +1122 -0
  985. package/src/game/effect-item.ts +999 -0
  986. package/src/game/effect-melee.ts +557 -0
  987. package/src/game/effect-mon-origin.ts +196 -0
  988. package/src/game/effect-monster.ts +310 -0
  989. package/src/game/effect-summon.ts +161 -0
  990. package/src/game/effect-teleport.ts +645 -0
  991. package/src/game/effect-terrain.ts +881 -0
  992. package/src/game/energy.ts +61 -0
  993. package/src/game/equip-cmp.ts +476 -0
  994. package/src/game/floor.ts +524 -0
  995. package/src/game/gear.ts +1352 -0
  996. package/src/game/harness.ts +270 -0
  997. package/src/game/history.ts +78 -0
  998. package/src/game/ignore-cmd.ts +68 -0
  999. package/src/game/inscription-confirm.ts +115 -0
  1000. package/src/game/known.ts +960 -0
  1001. package/src/game/loop.ts +671 -0
  1002. package/src/game/lore-color.ts +108 -0
  1003. package/src/game/mon-cast.ts +409 -0
  1004. package/src/game/mon-cmd.ts +767 -0
  1005. package/src/game/mon-death.ts +459 -0
  1006. package/src/game/mon-group.ts +368 -0
  1007. package/src/game/mon-list.ts +213 -0
  1008. package/src/game/mon-message.ts +359 -0
  1009. package/src/game/mon-place.ts +1012 -0
  1010. package/src/game/mon-ranged.ts +405 -0
  1011. package/src/game/mon-shape.ts +161 -0
  1012. package/src/game/mon-side.ts +511 -0
  1013. package/src/game/monster-turn.ts +1750 -0
  1014. package/src/game/obj-cmd.ts +1970 -0
  1015. package/src/game/obj-list.ts +302 -0
  1016. package/src/game/object-inspect.ts +162 -0
  1017. package/src/game/pickup.ts +483 -0
  1018. package/src/game/player-path.ts +1434 -0
  1019. package/src/game/player-side.ts +555 -0
  1020. package/src/game/player-turn.ts +852 -0
  1021. package/src/game/project-cast.ts +766 -0
  1022. package/src/game/project-feat.ts +386 -0
  1023. package/src/game/project-monster.ts +407 -0
  1024. package/src/game/project-obj.ts +298 -0
  1025. package/src/game/project-player.ts +236 -0
  1026. package/src/game/quest.ts +248 -0
  1027. package/src/game/ranged-cmd.ts +417 -0
  1028. package/src/game/scheduler.ts +150 -0
  1029. package/src/game/spell-cmd.ts +404 -0
  1030. package/src/game/spoil.ts +562 -0
  1031. package/src/game/steal.ts +169 -0
  1032. package/src/game/take-hit-hooks.ts +152 -0
  1033. package/src/game/target-loop.ts +501 -0
  1034. package/src/game/target.ts +424 -0
  1035. package/src/game/thrust.ts +174 -0
  1036. package/src/game/trap.ts +791 -0
  1037. package/src/game/ui-entry.ts +2075 -0
  1038. package/src/game/wizard.ts +1760 -0
  1039. package/src/game/world.ts +786 -0
  1040. package/src/gen/cave.ts +2858 -0
  1041. package/src/gen/gen-monster.ts +592 -0
  1042. package/src/gen/generate.ts +523 -0
  1043. package/src/gen/room.ts +2213 -0
  1044. package/src/gen/util.ts +1958 -0
  1045. package/src/generated/dun-profiles.ts +30 -0
  1046. package/src/generated/effects.ts +241 -0
  1047. package/src/generated/elements.ts +62 -0
  1048. package/src/generated/equip-slots.ts +36 -0
  1049. package/src/generated/history-types.ts +34 -0
  1050. package/src/generated/ignore-types.ts +66 -0
  1051. package/src/generated/index.ts +33 -0
  1052. package/src/generated/kind-flags.ts +44 -0
  1053. package/src/generated/message.ts +320 -0
  1054. package/src/generated/mon-message.ts +138 -0
  1055. package/src/generated/mon-race-flags.ts +182 -0
  1056. package/src/generated/mon-spells.ts +198 -0
  1057. package/src/generated/mon-temp-flags.ts +34 -0
  1058. package/src/generated/mon-timed.ts +34 -0
  1059. package/src/generated/object-flags.ts +95 -0
  1060. package/src/generated/object-modifiers.ts +43 -0
  1061. package/src/generated/options.ts +104 -0
  1062. package/src/generated/origins.ts +64 -0
  1063. package/src/generated/parser-errors.ts +140 -0
  1064. package/src/generated/player-flags.ts +48 -0
  1065. package/src/generated/player-timed.ts +118 -0
  1066. package/src/generated/projections.ts +103 -0
  1067. package/src/generated/randart-properties.ts +202 -0
  1068. package/src/generated/room-flags.ts +21 -0
  1069. package/src/generated/rooms.ts +50 -0
  1070. package/src/generated/square-flags.ts +56 -0
  1071. package/src/generated/stats.ts +22 -0
  1072. package/src/generated/terrain-flags.ts +76 -0
  1073. package/src/generated/terrain.ts +62 -0
  1074. package/src/generated/trap-flags.ts +42 -0
  1075. package/src/generated/tvals.ts +84 -0
  1076. package/src/generated/ui-entry-renderers.ts +24 -0
  1077. package/src/guard.ts +70 -0
  1078. package/src/host/args.ts +334 -0
  1079. package/src/host/bridge.ts +193 -0
  1080. package/src/host/index.ts +18 -0
  1081. package/src/host/io.ts +239 -0
  1082. package/src/host/memory.ts +134 -0
  1083. package/src/host/raw.ts +190 -0
  1084. package/src/index.ts +250 -0
  1085. package/src/loc.ts +157 -0
  1086. package/src/mod/hooks.ts +278 -0
  1087. package/src/mod/ids.ts +390 -0
  1088. package/src/mod/registry-host.ts +258 -0
  1089. package/src/mod/save-blocks.ts +787 -0
  1090. package/src/mod/vocabulary.ts +0 -0
  1091. package/src/mon/bind.ts +899 -0
  1092. package/src/mon/desc.ts +212 -0
  1093. package/src/mon/knowledge-groups.ts +164 -0
  1094. package/src/mon/lore-describe.ts +1414 -0
  1095. package/src/mon/lore.ts +306 -0
  1096. package/src/mon/make.ts +422 -0
  1097. package/src/mon/monster.ts +161 -0
  1098. package/src/mon/predicate.ts +220 -0
  1099. package/src/mon/project-mon.ts +855 -0
  1100. package/src/mon/spell.ts +418 -0
  1101. package/src/mon/steal.ts +246 -0
  1102. package/src/mon/summon.ts +145 -0
  1103. package/src/mon/take-hit.ts +195 -0
  1104. package/src/mon/timed.ts +300 -0
  1105. package/src/mon/types.ts +286 -0
  1106. package/src/msg.ts +146 -0
  1107. package/src/obj/artifact-fake.ts +63 -0
  1108. package/src/obj/artifact-known.ts +69 -0
  1109. package/src/obj/bind.ts +1345 -0
  1110. package/src/obj/chest.ts +249 -0
  1111. package/src/obj/desc.ts +699 -0
  1112. package/src/obj/effects-info.ts +349 -0
  1113. package/src/obj/flavor.ts +256 -0
  1114. package/src/obj/ignore.ts +387 -0
  1115. package/src/obj/knowledge.ts +1577 -0
  1116. package/src/obj/known-object.ts +718 -0
  1117. package/src/obj/make.ts +1367 -0
  1118. package/src/obj/object-info.ts +1737 -0
  1119. package/src/obj/object.ts +1296 -0
  1120. package/src/obj/power.ts +674 -0
  1121. package/src/obj/randart-build.ts +1705 -0
  1122. package/src/obj/randart-data.ts +1344 -0
  1123. package/src/obj/randart.ts +552 -0
  1124. package/src/obj/randname.ts +128 -0
  1125. package/src/obj/recharge.ts +62 -0
  1126. package/src/obj/types.ts +559 -0
  1127. package/src/obj/value.ts +215 -0
  1128. package/src/player/abilities.ts +142 -0
  1129. package/src/player/best-digger.ts +118 -0
  1130. package/src/player/bind.ts +1021 -0
  1131. package/src/player/birth.ts +794 -0
  1132. package/src/player/calcs.ts +1522 -0
  1133. package/src/player/combat-regen.ts +33 -0
  1134. package/src/player/exp.ts +275 -0
  1135. package/src/player/history.ts +211 -0
  1136. package/src/player/options.ts +244 -0
  1137. package/src/player/player.ts +356 -0
  1138. package/src/player/shape-lore.ts +250 -0
  1139. package/src/player/spell.ts +627 -0
  1140. package/src/player/take-hit.ts +173 -0
  1141. package/src/player/timed.ts +482 -0
  1142. package/src/player/types.ts +415 -0
  1143. package/src/rational.ts +388 -0
  1144. package/src/rng.ts +476 -0
  1145. package/src/save/buffer.ts +287 -0
  1146. package/src/save/compress.ts +132 -0
  1147. package/src/save/description.ts +70 -0
  1148. package/src/save/integrity.ts +133 -0
  1149. package/src/score/display.ts +125 -0
  1150. package/src/score/score.ts +341 -0
  1151. package/src/score/types.ts +104 -0
  1152. package/src/session/boot.ts +338 -0
  1153. package/src/session/game.ts +3712 -0
  1154. package/src/session/save.ts +2074 -0
  1155. package/src/sound/engine.ts +375 -0
  1156. package/src/sound/index.ts +13 -0
  1157. package/src/sound/sound-prefs-data.ts +173 -0
  1158. package/src/sound/types.ts +68 -0
  1159. package/src/store/bind.ts +145 -0
  1160. package/src/store/price.ts +97 -0
  1161. package/src/store/store-cmd.ts +73 -0
  1162. package/src/store/store.ts +723 -0
  1163. package/src/store/transact.ts +644 -0
  1164. package/src/store/types.ts +110 -0
  1165. package/src/version.ts +26 -0
  1166. package/src/visuals/engine.ts +444 -0
  1167. package/src/visuals/glyph-table.ts +191 -0
  1168. package/src/visuals/grafmode-data.ts +90 -0
  1169. package/src/visuals/grafmode.ts +123 -0
  1170. package/src/visuals/index.ts +19 -0
  1171. package/src/visuals/map-text.ts +152 -0
  1172. package/src/visuals/pref-expr.ts +182 -0
  1173. package/src/visuals/prefs.ts +981 -0
  1174. package/src/visuals/tile-prefs.ts +183 -0
  1175. package/src/world/chunk.ts +531 -0
  1176. package/src/world/feature.ts +215 -0
  1177. package/src/world/flow.ts +128 -0
  1178. package/src/world/project.ts +687 -0
  1179. package/src/world/projection.ts +228 -0
  1180. package/src/world/scatter.ts +72 -0
  1181. package/src/world/trap.ts +155 -0
  1182. package/src/world/view.ts +513 -0
  1183. package/src/z-queue.ts +300 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mon-cmd.js","sourceRoot":"","sources":["../../src/game/mon-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Monster death and its loot, ported from reference/src/mon-make.c:mon_create_drop
3
+ * (L751), reference/src/mon-util.c:monster_death (L949) and
4
+ * mon_take_nonplayer_hit / monster_take_terrain_damage (L1193, L1327), Angband
5
+ * 4.2.6.
6
+ *
7
+ * DROP TIMING (faithful): drops are generated at PLACEMENT and carried onto the
8
+ * monster's held pile via monster_carry, stamped with the placement origin
9
+ * (ORIGIN.DROP for live spawns; DROP_PIT / DROP_VAULT / DROP_SPECIAL / DROP for
10
+ * the matching generation contexts, DROP_SUMMON / DROP_BREED / DROP_WIZARD for
11
+ * live summons / breeders / wizard). place_monster calls mon_create_drop when
12
+ * origin != 0 (mon-make.c L1044-1046); the port mirrors that in BOTH placement
13
+ * paths: the GameState-free `createDrop` core here is invoked from
14
+ * game/mon-place.ts placeMonsterLive (live spawns) and gen/util.ts
15
+ * placeNewMonsterOne (level generation). monster_death merely drops that pile to
16
+ * the floor. This matches the upstream RNG-stream position (drops draw during
17
+ * level generation, not at death) and preserves the true drop origins - the
18
+ * earlier "generate at death" deviation is RESCINDED.
19
+ *
20
+ * mon_take_nonplayer_hit is the shared "a non-player source hurt this monster"
21
+ * primitive (terrain, monster-vs-monster) that funnels through monster_death and
22
+ * delete_monster_idx on a kill, mirroring mon_take_hit for player kills.
23
+ */
24
+ import type { Rng } from "../rng.js";
25
+ import type { MakeDeps } from "../obj/make.js";
26
+ import type { ObjRegistry } from "../obj/bind.js";
27
+ import type { Monster } from "../mon/monster.js";
28
+ import type { LoreStore } from "../mon/lore.js";
29
+ import type { GameState } from "./context.js";
30
+ import type { FloorEnv } from "./floor.js";
31
+ /** Everything monsterDeath needs beyond the GameState (all built in wireGame). */
32
+ export interface MonsterDeathDeps {
33
+ /** MakeDeps for makeObject / makeGold / applyMagic / objectPrep. */
34
+ makeDeps: MakeDeps;
35
+ /** The object registry, for the specified-drop tval/kind/sval lookups. */
36
+ reg: ObjRegistry;
37
+ /** The floor drop environment (isIgnored / isTrap) for dropNear. */
38
+ floorEnv: FloorEnv;
39
+ /** The lore store, for the unique theft reduction and loreTreasure. */
40
+ lore: LoreStore;
41
+ }
42
+ /**
43
+ * The minimal, GameState-free surface mon_create_drop needs so BOTH the live
44
+ * cave (game/mon-place.ts placeMonsterLive) and level generation (gen/util.ts
45
+ * placeNewMonsterOne) build a monster's drops off the same code, matching
46
+ * upstream where place_monster (mon-make.c L1044) is the single call site both
47
+ * generation and live placement funnel through. The two paths differ only in
48
+ * which stream they draw from (live state.rng vs generation g.rng) and which
49
+ * depth they read; the held-pile carry (monster_carry) never draws RNG, so the
50
+ * object's draws land at the same stream position on either path.
51
+ */
52
+ export interface DropTarget {
53
+ /** c->depth: origin_depth and the make_object / make_gold creation level. */
54
+ depth: number;
55
+ /** The stream to draw from (live state.rng or generation g.rng). */
56
+ rng: Rng;
57
+ /** make_object / make_gold / apply_magic / object_prep dependencies. */
58
+ makeDeps: MakeDeps;
59
+ /**
60
+ * The lore store, for the unique theft reduction (mon-make.c L778-780).
61
+ * Absent / null => thefts treated as 0, which is faithful for a freshly
62
+ * generated monster that has not been stolen from (and every standalone /
63
+ * unit-test harness with no lore).
64
+ */
65
+ lore?: LoreStore | null;
66
+ }
67
+ /**
68
+ * mon_create_drop (mon-make.c L751): generate a monster's gold/items at
69
+ * PLACEMENT and carry them onto its held pile (monster_carry), stamped with the
70
+ * placement `origin` (ORIGIN.DROP for live spawns, DROP_PIT / DROP_VAULT /
71
+ * DROP_SPECIAL for the corresponding generation contexts). Returns whether
72
+ * anything was carried. monster_death (below) later drops this pile.
73
+ *
74
+ * RNG DRAW ORDER (all via target.rng), faithful to mon_create_drop:
75
+ * 1. mon_create_drop_count non-maximize (mon-make.c L775 / L721-734): the DROP_*
76
+ * rolls and the specified-drop loop (which draws even though its count is
77
+ * discarded here) - see mon/make.ts monCreateDropCount.
78
+ * 2. QUESTOR/Morgoth QUEST_ART force-drop (L794): a level-100 QUESTOR force-drops
79
+ * every QUEST_ART artifact - object_prep(RANDOMISE) at lev 100 plus
80
+ * copy_artifact_data curse timeouts per artifact - BEFORE the specified-drop
81
+ * loop, matching upstream's stream position.
82
+ * 3. specified-drops loop (L830): per entry randint0(100) gate FIRST, then object
83
+ * creation (objectPrep+applyMagic by-kind, or makeObject by-tval), then
84
+ * randint0(max-min) for the stack count.
85
+ * 4. generic-drops loop (L867), `number` times: the gold/item decision draws
86
+ * randint0(100) ONLY when goldOk && itemOk are both true (C short-circuit),
87
+ * then makeGold/makeObject internals.
88
+ * monster_carry never fails here (the port's held pile is unbounded), so
89
+ * upstream's mark-uncreated / object_wipe rollback path is unreachable.
90
+ */
91
+ export declare function createDrop(target: DropTarget, mon: Monster, origin: number): boolean;
92
+ /**
93
+ * Live-cave mon_create_drop: a thin wrapper binding the running GameState to the
94
+ * shared, GameState-free createDrop core (state.rng, state.chunk.depth,
95
+ * deps.makeDeps, deps.lore). RNG- and byte-identical to the pre-refactor
96
+ * function for every live-placed monster; the generation path calls createDrop
97
+ * directly off the Gen context (gen/util.ts).
98
+ */
99
+ export declare function monCreateDrop(state: GameState, mon: Monster, origin: number, deps: MonsterDeathDeps): boolean;
100
+ /**
101
+ * monster_death (mon-util.c L949): delete the monster's mimicked object, then
102
+ * drop its held pile (the placement-time mon_create_drop items plus anything
103
+ * stolen during play) to the floor at mon.grid, counting the drop for lore.
104
+ * Silent on drops, as upstream. quest_check (L1005) rides the player-kill seam
105
+ * (session/game.ts onPlayerKill), which is the only reachable quest-completing
106
+ * path (only the player kills uniques / quest monsters).
107
+ *
108
+ * The old placement-vs-death drop deviation is RESCINDED: generation now runs at
109
+ * placement (monCreateDrop, called from game/mon-place.ts), so drops land at the
110
+ * upstream RNG-stream position and keep their true DROP_PIT / DROP_VAULT /
111
+ * DROP_SUMMON origins. This function no longer draws generation RNG - only the
112
+ * dropNear grid tie-breaks and loreTreasure.
113
+ */
114
+ export declare function monsterDeath(state: GameState, mon: Monster, deps: MonsterDeathDeps): void;
115
+ /** The hooks mon_take_nonplayer_hit needs beyond the death deps. */
116
+ export interface NonplayerHitDeps extends MonsterDeathDeps {
117
+ /** add_monster_message text sink (routes formatted lines to state.msg). */
118
+ message?: (text: string) => void;
119
+ }
120
+ /** Install the mon_take_nonplayer_hit deps for a state (session wiring). */
121
+ export declare function installNonplayerHitDeps(state: GameState, deps: NonplayerHitDeps): void;
122
+ /** The installed mon_take_nonplayer_hit deps for a state, or null. */
123
+ export declare function getNonplayerHitDeps(state: GameState): NonplayerHitDeps | null;
124
+ /**
125
+ * mon_take_nonplayer_hit (mon-util.c L1193): inflict `dam` on `tMon` from a
126
+ * non-player source (terrain, another monster). Uniques/arena monsters cannot
127
+ * be killed this way (damage is capped to leave them alive). Wakes the monster
128
+ * without making it player-aware, applies damage, and on death reverts a
129
+ * shapechange, shows the die message, generates loot (monster_death) and deletes
130
+ * the monster; otherwise shows the hurt / pain message and rolls fear. Returns
131
+ * whether the monster died. `hurtMsgCode` / `dieMsgCode` are MON_MSG_* indices
132
+ * (MON_MSG_NONE for hurtMsg falls through to message_pain).
133
+ */
134
+ export declare function monTakeNonplayerHit(state: GameState, tMon: Monster, dam: number, hurtMsgCode: number, dieMsgCode: number, deps: NonplayerHitDeps): boolean;
135
+ /**
136
+ * monster_take_terrain_damage (mon-util.c L1327): a monster standing on fiery
137
+ * terrain it does not resist takes 100 + 1d100 fire damage via
138
+ * mon_take_nonplayer_hit (MON_MSG_CATCH_FIRE / MON_MSG_DISINTEGRATES). Upstream
139
+ * quirk preserved: the local `fear` flag is never set, so the FLEE_IN_TERROR
140
+ * message never fires. square_isdamaging is feat_is_fiery in 4.2.6 (lava only).
141
+ */
142
+ export declare function monsterTakeTerrainDamage(state: GameState, mon: Monster, deps: NonplayerHitDeps): void;
143
+ //# sourceMappingURL=mon-death.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mon-death.d.ts","sourceRoot":"","sources":["../../src/game/mon-death.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AASjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,QAAQ,CAAC;IACnB,0EAA0E;IAC1E,GAAG,EAAE,WAAW,CAAC;IACjB,oEAAoE;IACpE,QAAQ,EAAE,QAAQ,CAAC;IACnB,uEAAuE;IACvE,IAAI,EAAE,SAAS,CAAC;CACjB;AAqBD;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,GAAG,EAAE,GAAG,CAAC;IACT,wEAAwE;IACxE,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CA+GT;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAWT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,gBAAgB,GACrB,IAAI,CA6CN;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,2EAA2E;IAC3E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAUD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,gBAAgB,GACrB,IAAI,CAEN;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAE7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CA6CT;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,gBAAgB,GACrB,IAAI,CAWN"}
@@ -0,0 +1,328 @@
1
+ /**
2
+ * Monster death and its loot, ported from reference/src/mon-make.c:mon_create_drop
3
+ * (L751), reference/src/mon-util.c:monster_death (L949) and
4
+ * mon_take_nonplayer_hit / monster_take_terrain_damage (L1193, L1327), Angband
5
+ * 4.2.6.
6
+ *
7
+ * DROP TIMING (faithful): drops are generated at PLACEMENT and carried onto the
8
+ * monster's held pile via monster_carry, stamped with the placement origin
9
+ * (ORIGIN.DROP for live spawns; DROP_PIT / DROP_VAULT / DROP_SPECIAL / DROP for
10
+ * the matching generation contexts, DROP_SUMMON / DROP_BREED / DROP_WIZARD for
11
+ * live summons / breeders / wizard). place_monster calls mon_create_drop when
12
+ * origin != 0 (mon-make.c L1044-1046); the port mirrors that in BOTH placement
13
+ * paths: the GameState-free `createDrop` core here is invoked from
14
+ * game/mon-place.ts placeMonsterLive (live spawns) and gen/util.ts
15
+ * placeNewMonsterOne (level generation). monster_death merely drops that pile to
16
+ * the floor. This matches the upstream RNG-stream position (drops draw during
17
+ * level generation, not at death) and preserves the true drop origins - the
18
+ * earlier "generate at death" deviation is RESCINDED.
19
+ *
20
+ * mon_take_nonplayer_hit is the shared "a non-player source hurt this monster"
21
+ * primitive (terrain, monster-vs-monster) that funnels through monster_death and
22
+ * delete_monster_idx on a kill, mirroring mon_take_hit for player kills.
23
+ */
24
+ import { KF, MON_MSG, ORIGIN, RF } from "../generated/index.js";
25
+ import { tvalIsMoney } from "../obj/object.js";
26
+ import { applyMagic, copyArtifactData, makeGold, makeObject, objectPrep, } from "../obj/make.js";
27
+ import { tvalFindIdx } from "../obj/bind.js";
28
+ import { monCreateDropCount, monsterCarry } from "../mon/make.js";
29
+ import { monsterIsCamouflaged, monsterIsUnique, monsterIsVisible, } from "../mon/predicate.js";
30
+ import { monsterScaredByDamage, monsterWake } from "../mon/take-hit.js";
31
+ import { MON_TMD } from "../generated/index.js";
32
+ import { getLore, loreTreasure } from "../mon/lore.js";
33
+ import { deleteMonster } from "./context.js";
34
+ import { monsterPrimaryGroupSize } from "./mon-group.js";
35
+ import { monsterRevertShape } from "./mon-shape.js";
36
+ import { formatMonsterMessage, formatPainMessage } from "./mon-message.js";
37
+ import { dropNear, floorExcise, floorPile } from "./floor.js";
38
+ /**
39
+ * The subset of ORIGIN_* values that monster_death (mon-util.c L975-982) counts
40
+ * as a dropped item for lore. Generated drops carry their placement origin
41
+ * (DROP / DROP_PIT / DROP_VAULT / DROP_SUMMON / ...); a stolen item keeps
42
+ * ORIGIN.STOLEN and so is NOT counted.
43
+ */
44
+ function isDropOrigin(origin) {
45
+ return (origin === ORIGIN.DROP ||
46
+ origin === ORIGIN.DROP_PIT ||
47
+ origin === ORIGIN.DROP_VAULT ||
48
+ origin === ORIGIN.DROP_SUMMON ||
49
+ origin === ORIGIN.DROP_SPECIAL ||
50
+ origin === ORIGIN.DROP_BREED ||
51
+ origin === ORIGIN.DROP_POLY ||
52
+ origin === ORIGIN.DROP_WIZARD);
53
+ }
54
+ /**
55
+ * mon_create_drop (mon-make.c L751): generate a monster's gold/items at
56
+ * PLACEMENT and carry them onto its held pile (monster_carry), stamped with the
57
+ * placement `origin` (ORIGIN.DROP for live spawns, DROP_PIT / DROP_VAULT /
58
+ * DROP_SPECIAL for the corresponding generation contexts). Returns whether
59
+ * anything was carried. monster_death (below) later drops this pile.
60
+ *
61
+ * RNG DRAW ORDER (all via target.rng), faithful to mon_create_drop:
62
+ * 1. mon_create_drop_count non-maximize (mon-make.c L775 / L721-734): the DROP_*
63
+ * rolls and the specified-drop loop (which draws even though its count is
64
+ * discarded here) - see mon/make.ts monCreateDropCount.
65
+ * 2. QUESTOR/Morgoth QUEST_ART force-drop (L794): a level-100 QUESTOR force-drops
66
+ * every QUEST_ART artifact - object_prep(RANDOMISE) at lev 100 plus
67
+ * copy_artifact_data curse timeouts per artifact - BEFORE the specified-drop
68
+ * loop, matching upstream's stream position.
69
+ * 3. specified-drops loop (L830): per entry randint0(100) gate FIRST, then object
70
+ * creation (objectPrep+applyMagic by-kind, or makeObject by-tval), then
71
+ * randint0(max-min) for the stack count.
72
+ * 4. generic-drops loop (L867), `number` times: the gold/item decision draws
73
+ * randint0(100) ONLY when goldOk && itemOk are both true (C short-circuit),
74
+ * then makeGold/makeObject internals.
75
+ * monster_carry never fails here (the port's held pile is unbounded), so
76
+ * upstream's mark-uncreated / object_wipe rollback path is unreachable.
77
+ */
78
+ export function createDrop(target, mon, origin) {
79
+ const rng = target.rng;
80
+ const { makeDeps, depth } = target;
81
+ const reg = makeDeps.reg;
82
+ /* effective_race (mon-make.c L767): the pre-shapechange race, if any. */
83
+ const effectiveRace = mon.originalRace ?? mon.race;
84
+ /* thefts (mon-make.c L779): only uniques that have been stolen from care;
85
+ * absent lore (fresh generation) => 0, as a never-stolen-from monster. */
86
+ const thefts = target.lore ? getLore(target.lore, mon.race).thefts : 0;
87
+ const great = effectiveRace.flags.has(RF.DROP_GREAT);
88
+ const good = great || effectiveRace.flags.has(RF.DROP_GOOD);
89
+ const goldOk = !effectiveRace.flags.has(RF.ONLY_ITEM);
90
+ const itemOk = !effectiveRace.flags.has(RF.ONLY_GOLD);
91
+ /* How many generic drops (mon-make.c L775). */
92
+ let number = monCreateDropCount(rng, effectiveRace, false, false).number;
93
+ /* Uniques that have been stolen from get their quantity reduced (L778). */
94
+ if (monsterIsUnique(mon)) {
95
+ number = Math.max(0, number - thefts);
96
+ }
97
+ /* Unique bonus to the effective monster level (L783-787). */
98
+ let monlevel = effectiveRace.level;
99
+ let extraRoll = false;
100
+ if (monsterIsUnique(mon)) {
101
+ monlevel = Math.min(monlevel + 15, monlevel * 2);
102
+ extraRoll = true;
103
+ }
104
+ /* Reward fighting OOD monsters (L791-792, integer division). */
105
+ let level = Math.max(Math.trunc((monlevel + depth) / 2), monlevel);
106
+ level = Math.min(level, 100);
107
+ let any = false;
108
+ /* Morgoth's QUEST_ART force-drop (mon-make.c L794-827). */
109
+ if (effectiveRace.flags.has(RF.QUESTOR) && effectiveRace.level === 100) {
110
+ for (let j = 1; j < reg.artifacts.length; j++) {
111
+ const art = reg.artifacts[j];
112
+ if (!art)
113
+ continue;
114
+ const kind = reg.lookupKind(art.tval, art.sval);
115
+ if (!kind || !kind.kindFlags.has(KF.QUEST_ART))
116
+ continue;
117
+ const obj = objectPrep(rng, reg, makeDeps.constants, kind, 100, "randomise");
118
+ obj.artifact = art;
119
+ copyArtifactData(rng, reg, obj, art);
120
+ makeDeps.artifacts.markCreated(art.aidx, true);
121
+ obj.origin = origin;
122
+ obj.originDepth = depth;
123
+ obj.originRace = effectiveRace.ridx;
124
+ obj.number = 1;
125
+ monsterCarry(mon.heldObj, obj, mon.midx);
126
+ any = true;
127
+ }
128
+ }
129
+ /* Specified drops (mon-make.c L830). */
130
+ for (const drop of effectiveRace.drops) {
131
+ if (rng.randint0(100) >= drop.percentChance)
132
+ continue;
133
+ const tvalNum = tvalFindIdx(drop.tval);
134
+ let obj;
135
+ if (drop.sval !== null) {
136
+ /* Specified by kind (drop->kind). */
137
+ const sval = reg.lookupSval(tvalNum, drop.sval);
138
+ const kind = reg.lookupKind(tvalNum, sval);
139
+ if (!kind)
140
+ continue;
141
+ obj = objectPrep(rng, reg, makeDeps.constants, kind, level, "randomise");
142
+ applyMagic(rng, makeDeps, obj, level, true, good, great, extraRoll, depth);
143
+ }
144
+ else {
145
+ /* Specified by tval (drop->tval). */
146
+ obj = makeObject(rng, makeDeps, level, good, great, extraRoll, tvalNum, depth);
147
+ }
148
+ if (!obj)
149
+ continue;
150
+ obj.origin = origin;
151
+ obj.originDepth = depth;
152
+ obj.originRace = effectiveRace.ridx;
153
+ obj.number = obj.artifact
154
+ ? 1
155
+ : rng.randint0(drop.max - drop.min) + drop.min;
156
+ monsterCarry(mon.heldObj, obj, mon.midx);
157
+ any = true;
158
+ }
159
+ /* Generic drops (mon-make.c L867). */
160
+ for (let j = 0; j < number; j++) {
161
+ let obj;
162
+ if (goldOk && (!itemOk || rng.randint0(100) < 50)) {
163
+ obj = makeGold(rng, makeDeps, level, "any");
164
+ }
165
+ else {
166
+ obj = makeObject(rng, makeDeps, level, good, great, extraRoll, 0, depth);
167
+ if (!obj)
168
+ continue;
169
+ }
170
+ obj.origin = origin;
171
+ obj.originDepth = depth;
172
+ obj.originRace = effectiveRace.ridx;
173
+ monsterCarry(mon.heldObj, obj, mon.midx);
174
+ any = true;
175
+ }
176
+ return any;
177
+ }
178
+ /**
179
+ * Live-cave mon_create_drop: a thin wrapper binding the running GameState to the
180
+ * shared, GameState-free createDrop core (state.rng, state.chunk.depth,
181
+ * deps.makeDeps, deps.lore). RNG- and byte-identical to the pre-refactor
182
+ * function for every live-placed monster; the generation path calls createDrop
183
+ * directly off the Gen context (gen/util.ts).
184
+ */
185
+ export function monCreateDrop(state, mon, origin, deps) {
186
+ return createDrop({
187
+ rng: state.rng,
188
+ depth: state.chunk.depth,
189
+ makeDeps: deps.makeDeps,
190
+ lore: deps.lore,
191
+ }, mon, origin);
192
+ }
193
+ /**
194
+ * monster_death (mon-util.c L949): delete the monster's mimicked object, then
195
+ * drop its held pile (the placement-time mon_create_drop items plus anything
196
+ * stolen during play) to the floor at mon.grid, counting the drop for lore.
197
+ * Silent on drops, as upstream. quest_check (L1005) rides the player-kill seam
198
+ * (session/game.ts onPlayerKill), which is the only reachable quest-completing
199
+ * path (only the player kills uniques / quest monsters).
200
+ *
201
+ * The old placement-vs-death drop deviation is RESCINDED: generation now runs at
202
+ * placement (monCreateDrop, called from game/mon-place.ts), so drops land at the
203
+ * upstream RNG-stream position and keep their true DROP_PIT / DROP_VAULT /
204
+ * DROP_SUMMON origins. This function no longer draws generation RNG - only the
205
+ * dropNear grid tie-breaks and loreTreasure.
206
+ */
207
+ export function monsterDeath(state, mon, deps) {
208
+ const rng = state.rng;
209
+ const lore = getLore(deps.lore, mon.race);
210
+ const visible = monsterIsVisible(mon) || monsterIsUnique(mon);
211
+ /* Delete any mimicked object (mon-util.c L957-961): square_delete_object of
212
+ * the fake floor item this monster was imitating, before dropping loot. */
213
+ if (mon.mimickedObj) {
214
+ const pile = floorPile(state, mon.grid);
215
+ const fake = pile.find((o) => o.mimickingMIdx === mon.midx);
216
+ if (fake)
217
+ floorExcise(state, mon.grid, fake);
218
+ mon.mimickedObj = 0;
219
+ }
220
+ /* Drop objects being carried (monster_death L963-992). */
221
+ const held = mon.heldObj;
222
+ mon.heldObj = [];
223
+ let dumpItem = 0;
224
+ let dumpGold = 0;
225
+ for (const obj of held) {
226
+ obj.heldMIdx = 0;
227
+ /* Count it for lore BEFORE any origin change (L972-984). */
228
+ if (tvalIsMoney(obj.tval) && obj.origin !== ORIGIN.STOLEN) {
229
+ dumpGold++;
230
+ }
231
+ else if (!tvalIsMoney(obj.tval) && isDropOrigin(obj.origin)) {
232
+ dumpItem++;
233
+ }
234
+ /* Change origin if the monster is invisible (L987-988). */
235
+ if (!visible)
236
+ obj.origin = ORIGIN.DROP_UNKNOWN;
237
+ /* drop_near(cave, &obj, 0, mon->grid, true, false): chance 0, prefer_pile
238
+ * FALSE (mon-util.c L990; the port's boolean slot is preferPile). */
239
+ dropNear(state, obj, 0, mon.grid, true, false, deps.floorEnv);
240
+ }
241
+ /* Take note of any dropped treasure (monster_death L998-999). */
242
+ if (visible && (dumpItem || dumpGold)) {
243
+ loreTreasure(rng, lore, dumpItem, dumpGold);
244
+ }
245
+ /* DEFERRED: the PR_MONLIST redraw (L1002, UI). quest_check (L1005) is wired at
246
+ * the player-kill seam (session/game.ts). */
247
+ }
248
+ /**
249
+ * The per-state registry the scheduler reads for terrain damage
250
+ * (monster_take_terrain_damage runs inside process_monsters, which has no deps
251
+ * of its own). The session installs the deps once after building the death
252
+ * deps; absent, terrain damage is inert (the pre-port behaviour).
253
+ */
254
+ const NONPLAYER_HIT_DEPS = new WeakMap();
255
+ /** Install the mon_take_nonplayer_hit deps for a state (session wiring). */
256
+ export function installNonplayerHitDeps(state, deps) {
257
+ NONPLAYER_HIT_DEPS.set(state, deps);
258
+ }
259
+ /** The installed mon_take_nonplayer_hit deps for a state, or null. */
260
+ export function getNonplayerHitDeps(state) {
261
+ return NONPLAYER_HIT_DEPS.get(state) ?? null;
262
+ }
263
+ /**
264
+ * mon_take_nonplayer_hit (mon-util.c L1193): inflict `dam` on `tMon` from a
265
+ * non-player source (terrain, another monster). Uniques/arena monsters cannot
266
+ * be killed this way (damage is capped to leave them alive). Wakes the monster
267
+ * without making it player-aware, applies damage, and on death reverts a
268
+ * shapechange, shows the die message, generates loot (monster_death) and deletes
269
+ * the monster; otherwise shows the hurt / pain message and rolls fear. Returns
270
+ * whether the monster died. `hurtMsgCode` / `dieMsgCode` are MON_MSG_* indices
271
+ * (MON_MSG_NONE for hurtMsg falls through to message_pain).
272
+ */
273
+ export function monTakeNonplayerHit(state, tMon, dam, hurtMsgCode, dieMsgCode, deps) {
274
+ const rng = state.rng;
275
+ const emit = (text) => {
276
+ if (text)
277
+ (deps.message ?? state.msg ?? (() => { }))(text);
278
+ };
279
+ /* "Unique" or arena monsters can only be "killed" by the player. */
280
+ if (monsterIsUnique(tMon) || state.arenaLevel) {
281
+ if (dam > tMon.hp)
282
+ dam = tMon.hp;
283
+ }
284
+ /* Wake the monster up, but it does not become aware of the player. */
285
+ monsterWake(rng, tMon, false, 0);
286
+ /* Hurt the monster. */
287
+ tMon.hp -= dam;
288
+ if (tMon.hp < 0) {
289
+ /* Shapechanged monsters revert on death. */
290
+ if (tMon.originalRace)
291
+ monsterRevertShape(state, tMon);
292
+ /* Death message. */
293
+ emit(formatMonsterMessage(tMon, dieMsgCode));
294
+ /* Generate treasure and delete the monster. */
295
+ monsterDeath(state, tMon, deps);
296
+ deleteMonster(state, tMon.midx);
297
+ return true;
298
+ }
299
+ /* Give detailed messages if visible and not camouflaged. */
300
+ if (!monsterIsCamouflaged(tMon)) {
301
+ if (hurtMsgCode !== MON_MSG.NONE) {
302
+ emit(formatMonsterMessage(tMon, hurtMsgCode));
303
+ }
304
+ else if (dam > 0) {
305
+ emit(formatPainMessage(tMon, dam));
306
+ }
307
+ }
308
+ /* Sometimes a monster gets scared by damage (group fear-save per member). */
309
+ if (!tMon.mTimed[MON_TMD.FEAR] && dam > 0) {
310
+ monsterScaredByDamage(rng, tMon, dam, monsterPrimaryGroupSize(state, tMon));
311
+ }
312
+ return false;
313
+ }
314
+ /**
315
+ * monster_take_terrain_damage (mon-util.c L1327): a monster standing on fiery
316
+ * terrain it does not resist takes 100 + 1d100 fire damage via
317
+ * mon_take_nonplayer_hit (MON_MSG_CATCH_FIRE / MON_MSG_DISINTEGRATES). Upstream
318
+ * quirk preserved: the local `fear` flag is never set, so the FLEE_IN_TERROR
319
+ * message never fires. square_isdamaging is feat_is_fiery in 4.2.6 (lava only).
320
+ */
321
+ export function monsterTakeTerrainDamage(state, mon, deps) {
322
+ if (!state.chunk.isFiery(mon.grid))
323
+ return;
324
+ if (mon.race.flags.has(state.chunk.feature(mon.grid).resistFlag))
325
+ return;
326
+ monTakeNonplayerHit(state, mon, 100 + state.rng.randint1(100), MON_MSG.CATCH_FIRE, MON_MSG.DISINTEGRATES, deps);
327
+ }
328
+ //# sourceMappingURL=mon-death.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mon-death.js","sourceRoot":"","sources":["../../src/game/mon-death.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Monster group behaviours, ported from reference/src/mon-group.c (Angband
3
+ * 4.2.6): the pack bookkeeping that lets monsters share a leader, split when the
4
+ * leader dies, rouse each other and track the player as a group. Groups live on
5
+ * the GameState (state.groups, parallel to state.monsters), so this is a game-
6
+ * layer module.
7
+ *
8
+ * The upstream member list is a linked list whose head is the most recently
9
+ * added member; here it is an array with the same head-first order (add
10
+ * prepends), so the leader-succession scan and the split behaviour match. The
11
+ * group model (Monster.group_info primary/summon slots and the MON_GROUP roles)
12
+ * is already on the monster (mon/monster.ts).
13
+ *
14
+ * monster_group_free (mon-group.c:39) has no counterpart: it only mem_frees the
15
+ * member-list entries and the group struct. Its observable half - clearing the
16
+ * chunk's group slot - is `state.groups[index] = null` at both upstream call
17
+ * sites (monster_group_remove_leader L128 and monster_remove_from_groups L169);
18
+ * the third caller, wipe_mon_list (mon-make.c:613), is level teardown that the
19
+ * port does by dropping the whole state.groups array.
20
+ *
21
+ * Divergences: state.groups grows on demand rather than being capped at
22
+ * z_info->level_monster_max (monster_group_index_new never "fails" here); the
23
+ * rouse visibility test uses line of sight (monster_can_see, which also weighs
24
+ * range and light, is not ported). Placement assignment and delete removal are
25
+ * wired by their callers (monster generation / deleteMonster); the AI consumers
26
+ * (rouse in the monster turn, group tracking in get_move) are wired separately.
27
+ */
28
+ import type { Monster, MonsterGroupInfo } from "../mon/monster.js";
29
+ import type { GameState, MonsterGroup } from "./context.js";
30
+ /** Allocate a new (empty) monster group with the given index. */
31
+ export declare function monsterGroupNew(index: number): MonsterGroup;
32
+ /** monster_group_by_index. */
33
+ export declare function monsterGroupByIndex(state: GameState, index: number): MonsterGroup | null;
34
+ /** monster_group_index. */
35
+ export declare function monsterGroupIndex(group: MonsterGroup): number;
36
+ /** monster_group_leader_idx. */
37
+ export declare function monsterGroupLeaderIdx(group: MonsterGroup): number;
38
+ /** monster_group_leader: the leader monster of a monster's primary group. */
39
+ export declare function monsterGroupLeader(state: GameState, mon: Monster): Monster | null;
40
+ /** monster_group_index_new: the next free group slot (grows the array). */
41
+ export declare function monsterGroupIndexNew(state: GameState): number;
42
+ /** monster_add_to_group: prepend the monster to a group's member list. */
43
+ export declare function monsterAddToGroup(state: GameState, mon: Monster, group: MonsterGroup): void;
44
+ /** monster_group_start: make a one-monster group led by `mon` in slot `which`. */
45
+ export declare function monsterGroupStart(state: GameState, mon: Monster, which: number): void;
46
+ /**
47
+ * monster_remove_from_groups: drop a monster from its groups, removing an empty
48
+ * group and handling the loss of a leader.
49
+ */
50
+ export declare function monsterRemoveFromGroups(state: GameState, mon: Monster): void;
51
+ /**
52
+ * monster_group_assign: place a monster into its group(s). For a freshly
53
+ * created monster (loading=false) start or join the primary group; when loading
54
+ * a savefile build both slots by hand from the saved info.
55
+ */
56
+ export declare function monsterGroupAssign(state: GameState, mon: Monster, info: MonsterGroupInfo[], loading: boolean): void;
57
+ /**
58
+ * monster_group_change_index: rewrite a monster's midx in its group(s) (used
59
+ * when the monster list is compacted). Returns whether the old midx was found.
60
+ */
61
+ export declare function monsterGroupChangeIndex(state: GameState, newMidx: number, oldMidx: number): boolean;
62
+ /** summon_group: the group summoned creatures join for a given summoner. */
63
+ export declare function summonGroup(state: GameState, midx: number): MonsterGroup | null;
64
+ /**
65
+ * monster_group_rouse: an aware monster tries to wake sleeping group-mates it
66
+ * can see, more likely the closer they are. Visibility uses line of sight.
67
+ */
68
+ export declare function monsterGroupRouse(state: GameState, mon: Monster): void;
69
+ /** monster_primary_group_size: the member count of a monster's primary group. */
70
+ export declare function monsterPrimaryGroupSize(state: GameState, mon: Monster): number;
71
+ /**
72
+ * group_monster_tracking: a group-mate that is actively tracking the player
73
+ * (so a monster with no direct trail can follow the pack), or null.
74
+ */
75
+ export declare function groupMonsterTracking(state: GameState, mon: Monster): Monster | null;
76
+ /**
77
+ * monster_groups_verify: assert every group member's group_info points back at
78
+ * the group it is listed in (throws on an inconsistency, as upstream quits).
79
+ */
80
+ export declare function monsterGroupsVerify(state: GameState): void;
81
+ //# sourceMappingURL=mon-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mon-group.d.ts","sourceRoot":"","sources":["../../src/game/mon-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAQH,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5D,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAE3D;AAED,8BAA8B;AAC9B,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,GACZ,YAAY,GAAG,IAAI,CAErB;AAED,2BAA2B;AAC3B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAE7D;AAED,gCAAgC;AAChC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,GACX,OAAO,GAAG,IAAI,CAIhB;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAK7D;AAED,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,GAClB,IAAI,CAEN;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CAON;AAoED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAqB5E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,gBAAgB,EAAE,EACxB,OAAO,EAAE,OAAO,GACf,IAAI,CAyBN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAyBT;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,GACX,YAAY,GAAG,IAAI,CAgBrB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAatE;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,GACX,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,OAAO,GACX,OAAO,GAAG,IAAI,CAehB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAsB1D"}