@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
package/src/color.ts ADDED
@@ -0,0 +1,267 @@
1
+ /**
2
+ * The Angband color palette, ported from reference/src/z-color.h and
3
+ * z-color.c (Angband 4.2.6): 28 named colors plus four zero-initialized
4
+ * color_table rows, their pref-file attr characters, the classic RGB values
5
+ * front ends render with, and the color_table[].color_translate[] matrix
6
+ * (z-color.c L66-155) used by get_color() to remap colors for mono/16-color
7
+ * terms, torchlight/darkness, mouse highlight, and metallic shimmer.
8
+ */
9
+
10
+ export const COLOUR_DARK = 0;
11
+ export const COLOUR_WHITE = 1;
12
+ export const COLOUR_SLATE = 2;
13
+ export const COLOUR_ORANGE = 3;
14
+ export const COLOUR_RED = 4;
15
+ export const COLOUR_GREEN = 5;
16
+ export const COLOUR_BLUE = 6;
17
+ export const COLOUR_UMBER = 7;
18
+ export const COLOUR_L_DARK = 8;
19
+ export const COLOUR_L_WHITE = 9;
20
+ export const COLOUR_L_PURPLE = 10;
21
+ export const COLOUR_YELLOW = 11;
22
+ export const COLOUR_L_RED = 12;
23
+ export const COLOUR_L_GREEN = 13;
24
+ export const COLOUR_L_BLUE = 14;
25
+ export const COLOUR_L_UMBER = 15;
26
+ export const COLOUR_PURPLE = 16;
27
+ export const COLOUR_VIOLET = 17;
28
+ export const COLOUR_TEAL = 18;
29
+ export const COLOUR_MUD = 19;
30
+ export const COLOUR_L_YELLOW = 20;
31
+ export const COLOUR_MAGENTA = 21;
32
+ export const COLOUR_L_TEAL = 22;
33
+ export const COLOUR_L_VIOLET = 23;
34
+ export const COLOUR_L_PINK = 24;
35
+ export const COLOUR_MUSTARD = 25;
36
+ export const COLOUR_BLUE_SLATE = 26;
37
+ export const COLOUR_DEEP_L_BLUE = 27;
38
+ export const COLOUR_SHADE = 28;
39
+
40
+ /** z-color.h:77-78: the table has 32 rows, 29 of them basic colours. */
41
+ export const MAX_COLORS = 32;
42
+ export const BASIC_COLORS = 29;
43
+
44
+ /**
45
+ * Column indices into ColorInfo.translate, matching z-color.h's
46
+ * ATTR_* defines (MAX_ATTR = 9). The column order mirrors the
47
+ * "full mono vga blind lighter darker highlight metallic misc"
48
+ * comment above color_table[] in z-color.c.
49
+ */
50
+ export const ATTR_FULL = 0;
51
+ export const ATTR_MONO = 1;
52
+ export const ATTR_VGA = 2;
53
+ export const ATTR_BLIND = 3;
54
+ export const ATTR_LIGHT = 4;
55
+ export const ATTR_DARK = 5;
56
+ export const ATTR_HIGH = 6;
57
+ export const ATTR_METAL = 7;
58
+ export const ATTR_MISC = 8;
59
+ export const MAX_ATTR = 9;
60
+
61
+ export interface ColorInfo {
62
+ /** The pref-file attr character (color_table[].index_char). */
63
+ char: string;
64
+ /** The human-readable name (color_table[].name). */
65
+ name: string;
66
+ /** Default RGB for named rows; shade RGB exists only in angbandColorTable. */
67
+ rgb: readonly [number, number, number];
68
+ /**
69
+ * color_table[].color_translate[]: one COLOUR_* index per ATTR_*
70
+ * column (full/mono/vga/blind/lighter/darker/highlight/metallic/misc).
71
+ * Index 28 (Shade) has no explicit row in z-color.c -- the C array
72
+ * relies on static zero-initialization, so it translates to
73
+ * COLOUR_DARK (0) in every column here as well.
74
+ */
75
+ translate: readonly number[];
76
+ }
77
+
78
+ /** Indexed by COLOUR_* value. */
79
+ export const COLOR_TABLE: readonly ColorInfo[] = [
80
+ // full mono vga blind lighter darker highlight metallic misc
81
+ { char: "d", name: "Dark", rgb: [0x00, 0x00, 0x00],
82
+ translate: [0, 0, 0, 0, 8, 0, 8, 8, 0] },
83
+ { char: "w", name: "White", rgb: [0xff, 0xff, 0xff],
84
+ translate: [1, 1, 1, 1, 11, 9, 14, 11, 1] },
85
+ { char: "s", name: "Slate", rgb: [0x80, 0x80, 0x80],
86
+ translate: [2, 1, 2, 2, 9, 8, 9, 9, 2] },
87
+ { char: "o", name: "Orange", rgb: [0xff, 0x80, 0x00],
88
+ translate: [3, 1, 3, 9, 11, 2, 11, 11, 3] },
89
+ { char: "r", name: "Red", rgb: [0xc0, 0x00, 0x00],
90
+ translate: [4, 1, 4, 2, 12, 2, 12, 12, 4] },
91
+ { char: "g", name: "Green", rgb: [0x00, 0x80, 0x40],
92
+ translate: [5, 1, 5, 2, 13, 2, 13, 13, 5] },
93
+ { char: "b", name: "Blue", rgb: [0x00, 0x40, 0xff],
94
+ translate: [6, 1, 6, 2, 14, 2, 14, 14, 6] },
95
+ { char: "u", name: "Umber", rgb: [0x80, 0x40, 0x00],
96
+ translate: [7, 1, 7, 8, 15, 8, 15, 15, 7] },
97
+ { char: "D", name: "Light Dark", rgb: [0x60, 0x60, 0x60],
98
+ translate: [8, 1, 8, 8, 2, 8, 2, 2, 8] },
99
+ { char: "W", name: "Light Slate", rgb: [0xc0, 0xc0, 0xc0],
100
+ translate: [9, 1, 9, 9, 1, 2, 1, 1, 2] },
101
+ { char: "P", name: "Light Purple", rgb: [0xff, 0x00, 0xff],
102
+ translate: [10, 1, 10, 2, 11, 2, 11, 11, 10] },
103
+ { char: "y", name: "Yellow", rgb: [0xff, 0xff, 0x00],
104
+ translate: [11, 1, 11, 9, 20, 9, 1, 1, 11] },
105
+ { char: "R", name: "Light Red", rgb: [0xff, 0x40, 0x40],
106
+ translate: [12, 1, 12, 9, 11, 4, 11, 11, 12] },
107
+ { char: "G", name: "Light Green", rgb: [0x00, 0xff, 0x00],
108
+ translate: [13, 1, 13, 9, 11, 5, 11, 11, 13] },
109
+ { char: "B", name: "Light Blue", rgb: [0x00, 0xff, 0xff],
110
+ translate: [14, 1, 14, 9, 11, 6, 11, 11, 14] },
111
+ { char: "U", name: "Light Umber", rgb: [0xc0, 0x80, 0x40],
112
+ translate: [15, 1, 15, 9, 11, 7, 11, 11, 15] },
113
+ { char: "p", name: "Purple", rgb: [0x90, 0x00, 0x90],
114
+ translate: [16, 1, 10, 2, 10, 2, 10, 10, 10] },
115
+ { char: "v", name: "Violet", rgb: [0x90, 0x20, 0xff],
116
+ translate: [17, 1, 10, 2, 10, 2, 10, 10, 10] },
117
+ { char: "t", name: "Teal", rgb: [0x00, 0xa0, 0xa0],
118
+ translate: [18, 1, 6, 2, 22, 2, 22, 22, 14] },
119
+ { char: "m", name: "Mud", rgb: [0x6c, 0x6c, 0x30],
120
+ translate: [19, 1, 5, 2, 25, 2, 25, 25, 7] },
121
+ { char: "Y", name: "Light Yellow", rgb: [0xff, 0xff, 0x90],
122
+ translate: [20, 1, 11, 1, 1, 11, 1, 1, 20] },
123
+ { char: "i", name: "Magenta-Pink", rgb: [0xff, 0x00, 0xa0],
124
+ translate: [21, 1, 12, 2, 24, 4, 24, 24, 10] },
125
+ { char: "T", name: "Light Teal", rgb: [0x20, 0xff, 0xdc],
126
+ translate: [22, 1, 14, 9, 11, 18, 11, 11, 14] },
127
+ { char: "V", name: "Light Violet", rgb: [0xb8, 0xa8, 0xff],
128
+ translate: [23, 1, 10, 9, 11, 17, 11, 11, 10] },
129
+ { char: "I", name: "Light Pink", rgb: [0xff, 0x80, 0x80],
130
+ translate: [24, 1, 12, 9, 11, 21, 11, 11, 10] },
131
+ { char: "M", name: "Mustard", rgb: [0xb4, 0xb4, 0x00],
132
+ translate: [25, 1, 11, 2, 11, 2, 11, 11, 11] },
133
+ { char: "z", name: "Blue Slate", rgb: [0xa0, 0xc0, 0xd0],
134
+ translate: [26, 1, 9, 2, 27, 2, 27, 27, 9] },
135
+ { char: "Z", name: "Deep Light Blue", rgb: [0x00, 0xb0, 0xff],
136
+ translate: [27, 1, 14, 9, 14, 26, 14, 14, 14] },
137
+ // z-color.c:154-155: rows 28-31 are zero-initialised; shade has no
138
+ // index_char or name in color_table (its RGB is below, in angbandColorTable).
139
+ { char: "", name: "", rgb: [0, 0, 0],
140
+ translate: [0, 0, 0, 0, 0, 0, 0, 0, 0] },
141
+ { char: "", name: "", rgb: [0, 0, 0],
142
+ translate: [0, 0, 0, 0, 0, 0, 0, 0, 0] },
143
+ { char: "", name: "", rgb: [0, 0, 0],
144
+ translate: [0, 0, 0, 0, 0, 0, 0, 0, 0] },
145
+ { char: "", name: "", rgb: [0, 0, 0],
146
+ translate: [0, 0, 0, 0, 0, 0, 0, 0, 0] },
147
+ ];
148
+
149
+ /** color_char_to_attr (z-color.c:165-184): NUL/space are dark; unknown is white. */
150
+ export function colorCharToAttr(ch: string): number {
151
+ if (ch === "" || ch === "\0" || ch === " ") return COLOUR_DARK;
152
+ for (let i = 0; i < BASIC_COLORS; i++) {
153
+ const info = COLOR_TABLE[i];
154
+ if (info && info.char === ch) return i;
155
+ }
156
+ return COLOUR_WHITE;
157
+ }
158
+
159
+ /** color_text_to_attr (z-color.c:191-201): unknown names default to white. */
160
+ export function colorTextToAttr(name: string): number {
161
+ const lower = name.toLowerCase();
162
+ for (let i = 0; i < MAX_COLORS; i++) {
163
+ const info = COLOR_TABLE[i];
164
+ if (info && info.name.toLowerCase() === lower) return i;
165
+ }
166
+ return COLOUR_WHITE;
167
+ }
168
+
169
+ /**
170
+ * angband_color_table (z-color.c): the LIVE colour values, mutable exactly like
171
+ * the C global, one [K, R, G, B] row per COLOUR_* index. Initialised from
172
+ * COLOR_TABLE with K = 0 (upstream's leading 0x00 byte). do_cmd_colors
173
+ * (colors_modify) edits these bytes and colorToCss reads R,G,B from here, so an
174
+ * edit takes effect immediately (Term_xtra REACT + redraw). K is the extra
175
+ * "kv" channel upstream keeps for palette backends; the web renderer ignores it
176
+ * but the editor still shows and edits it for faithfulness. Persisted by the
177
+ * front end as a user pref (like graphics/font), not in the character save.
178
+ */
179
+ const angbandColorTable: [number, number, number, number][] = COLOR_TABLE.map(
180
+ (c, i) => i === COLOUR_SHADE
181
+ ? [0, 0x28, 0x28, 0x28]
182
+ : [0, c.rgb[0], c.rgb[1], c.rgb[2]],
183
+ );
184
+
185
+ /** Clamp to a uint8 with C wraparound (colors_modify's (uint8_t)(x +/- 1)). */
186
+ function u8(n: number): number {
187
+ return ((n % 256) + 256) % 256;
188
+ }
189
+
190
+ /** angband_color_table[attr][channel] (0=K, 1=R, 2=G, 3=B). */
191
+ export function colorChannel(attr: number, channel: 0 | 1 | 2 | 3): number {
192
+ return angbandColorTable[attr]?.[channel] ?? 0;
193
+ }
194
+
195
+ /** Set one live colour channel (wraps uint8), like colors_modify's k/K/r/R/... */
196
+ export function setColorChannel(attr: number, channel: 0 | 1 | 2 | 3, value: number): void {
197
+ const row = angbandColorTable[attr];
198
+ if (row) row[channel] = u8(value);
199
+ }
200
+
201
+ /** The live [K,R,G,B] rows, copied - for persisting the user's colour edits. */
202
+ export function colorTableSnapshot(): [number, number, number, number][] {
203
+ return angbandColorTable.map((r) => [r[0], r[1], r[2], r[3]]);
204
+ }
205
+
206
+ /** Restore live colours from a snapshot (front-end pref load); ignores extras. */
207
+ export function restoreColorTable(rows: readonly (readonly number[])[]): void {
208
+ for (let i = 0; i < angbandColorTable.length && i < rows.length; i++) {
209
+ const src = rows[i];
210
+ const dst = angbandColorTable[i];
211
+ if (src && dst) {
212
+ dst[0] = u8(src[0] ?? 0);
213
+ dst[1] = u8(src[1] ?? dst[1]);
214
+ dst[2] = u8(src[2] ?? dst[2]);
215
+ dst[3] = u8(src[3] ?? dst[3]);
216
+ }
217
+ }
218
+ }
219
+
220
+ /** Reset every live colour to z-color.c:30-61 defaults (K = 0). */
221
+ export function resetColorTable(): void {
222
+ for (let i = 0; i < COLOR_TABLE.length; i++) {
223
+ const c = COLOR_TABLE[i]!;
224
+ angbandColorTable[i] = i === COLOUR_SHADE
225
+ ? [0, 0x28, 0x28, 0x28]
226
+ : [0, c.rgb[0], c.rgb[1], c.rgb[2]];
227
+ }
228
+ }
229
+
230
+ /** attr_to_text (z-color.c:208-214): basic attrs expose their table name. */
231
+ export function attrToText(attr: number): string {
232
+ return attr >= 0 && attr < BASIC_COLORS
233
+ ? COLOR_TABLE[attr]!.name
234
+ : "Icky";
235
+ }
236
+
237
+ /** CSS hex string for a COLOUR_* index (front-end convenience). Reads the LIVE
238
+ * angband_color_table so do_cmd_colors edits are reflected immediately. */
239
+ export function colorToCss(attr: number): string {
240
+ const row = angbandColorTable[attr] ?? angbandColorTable[COLOUR_WHITE]!;
241
+ const hex = (n: number) => n.toString(16).padStart(2, "0");
242
+ return `#${hex(row[1])}${hex(row[2])}${hex(row[3])}`;
243
+ }
244
+
245
+ /**
246
+ * get_color(a, attr, n): translate color `a` through the color_translate
247
+ * matrix, `n` times, using the `attr` column (one of ATTR_*).
248
+ *
249
+ * Graphical tile attrs (high bit set, a & 0x80) pass through unchanged,
250
+ * and attr === ATTR_FULL (0) is treated as "no translation" -- matching
251
+ * upstream's `if (!attr) return (a);` full-color-term short-circuit, so
252
+ * ATTR_FULL is never actually used to index color_translate[0] at runtime.
253
+ */
254
+ export function getColor(a: number, attr: number, n: number): number {
255
+ if (a & 0x80) return a;
256
+ if (!attr) return a;
257
+
258
+ let result = a;
259
+ for (let i = 0; i < n; i++) {
260
+ const info = COLOR_TABLE[result];
261
+ if (!info) return result;
262
+ const next = info.translate[attr];
263
+ if (next === undefined) return result;
264
+ result = next;
265
+ }
266
+ return result;
267
+ }
@@ -0,0 +1,360 @@
1
+ /**
2
+ * Brand and slay selection for combat, ported VERBATIM from
3
+ * reference/src/obj-slays.c (Angband 4.2.6): get_monster_brand_multiplier and
4
+ * improve_attack_modifier, plus the small object bonus accessors from
5
+ * obj-util.c (object_to_hit / object_to_dam). object_weight_one now lives in
6
+ * obj/object.ts (its curse-aware home); combat imports it from there.
7
+ *
8
+ * These live in the combat domain rather than obj/ because they are combat
9
+ * math and the obj domain does not export them; obj/ owns the Brand/Slay
10
+ * record shapes and the bound brands[]/slays[] arrays, which are passed in.
11
+ *
12
+ * Temporary brands/slays (improve_attack_modifier's obj == NULL path and the
13
+ * learn helper's allow_temp path, obj-slays.c:378-406,501-503,558-560) are now
14
+ * ported: the player_has_temporary_brand/slay lookups (obj-slays.c:287-317)
15
+ * become an injected TempBrandSlay predicate, since the TMD->brand/slay binding
16
+ * (player_timed.txt brand:/slay:) is resolved by the caller (game layer). Only
17
+ * melee's py_attack_real / learn_brand_slay_from_melee consult it upstream
18
+ * (allow_temp = true); the launcher/throw paths pass allow_temp = false.
19
+ *
20
+ * DEFERRED (ledgered in parity/ledger/combat-melee.yaml):
21
+ * - Curse contributions to object_to_hit/to_dam (obj->curses); no object
22
+ * carries curses through combat yet. object_weight_one's curse adjustment is
23
+ * likewise skipped there, since combat does not thread the curse table.
24
+ */
25
+
26
+ import type { Brand, Slay } from "../obj/types.js";
27
+ import type { GameObject } from "../obj/object.js";
28
+ import { tvalIsLauncher, tvalIsWeapon } from "../obj/object.js";
29
+ import type { MonsterRace } from "../mon/types.js";
30
+ import type { Player } from "../player/player.js";
31
+ import type { RuneEnv } from "../obj/knowledge.js";
32
+ import {
33
+ playerKnowsBrand,
34
+ playerKnowsSlay,
35
+ playerLearnBrand,
36
+ playerLearnSlay,
37
+ } from "../obj/knowledge.js";
38
+
39
+ /** The monster fields brand/slay selection reads. */
40
+ export interface BrandSlayTarget {
41
+ race: MonsterRace;
42
+ }
43
+
44
+ /**
45
+ * player_has_temporary_brand / player_has_temporary_slay (obj-slays.c:287-317),
46
+ * as an injected predicate over brand/slay indices. The caller builds it from
47
+ * the player's active timed effects and each effect's temp_brand / temp_slay
48
+ * binding (player_timed.txt brand: / slay:), which combat cannot reach directly.
49
+ */
50
+ export interface TempBrandSlay {
51
+ /** whether a temporary brand with the given index is active. */
52
+ hasBrand(idx: number): boolean;
53
+ /** whether a temporary slay with the given index is active. */
54
+ hasSlay(idx: number): boolean;
55
+ }
56
+
57
+ /** object_to_hit(obj): the object's to-hit bonus (curses DEFERRED). */
58
+ export function objectToHit(obj: GameObject): number {
59
+ return obj.toH;
60
+ }
61
+
62
+ /** object_to_dam(obj): the object's to-dam bonus (curses DEFERRED). */
63
+ export function objectToDam(obj: GameObject): number {
64
+ return obj.toD;
65
+ }
66
+
67
+ /**
68
+ * get_monster_brand_multiplier: the multiplicative factor for a brand hitting
69
+ * a monster. Elemental vulnerability doubles the extra damage; resistances are
70
+ * accounted for by the caller (improve_attack_modifier skips resisted brands).
71
+ */
72
+ export function getMonsterBrandMultiplier(
73
+ mon: BrandSlayTarget,
74
+ b: Brand,
75
+ isOCombat: boolean,
76
+ ): number {
77
+ let mult = isOCombat ? b.oMultiplier : b.multiplier;
78
+
79
+ if (b.vulnFlag && mon.race.flags.has(b.vulnFlag)) {
80
+ /* Especially vulnerable: apply a factor of two to the extra damage. */
81
+ if (isOCombat) {
82
+ mult = 2 * (mult - 10) + 10;
83
+ } else {
84
+ mult *= 2;
85
+ }
86
+ }
87
+
88
+ return mult;
89
+ }
90
+
91
+ /**
92
+ * A best-of brand/slay selection accumulator. `brand` and `slay` are indices
93
+ * into the brands[]/slays[] arrays (0 = none), mirroring the upstream
94
+ * *brand_used / *slay_used out-parameters.
95
+ */
96
+ export interface AttackModifier {
97
+ brand: number;
98
+ slay: number;
99
+ /** Attack verb, updated as the best brand/slay changes ("smite", etc). */
100
+ verb: string;
101
+ }
102
+
103
+ /**
104
+ * react_to_specific_slay (obj-slays.c): does this slay affect this monster?
105
+ */
106
+ function reactToSpecificSlay(s: Slay, mon: BrandSlayTarget): boolean {
107
+ if (!s.name) return false;
108
+ /* Upstream also requires mon->race->base; every bound race has one. */
109
+ if (s.raceFlag && mon.race.flags.has(s.raceFlag)) return true;
110
+ if (s.base && s.base === mon.race.base.name) return true;
111
+ return false;
112
+ }
113
+
114
+ /**
115
+ * react_to_slay (obj-slays.c L435): does `obj` carry a slay that would affect
116
+ * `mon`? Iterates the object's slay runes and returns true on the first whose
117
+ * race flag or base name matches (react_to_specific_slay). Draws no RNG. Used
118
+ * by the thief blows (a slay-bearing item resists being stolen) and by the
119
+ * monster-turn item-pickup guard.
120
+ */
121
+ export function reactToSlay(
122
+ obj: GameObject,
123
+ mon: BrandSlayTarget,
124
+ slays: readonly (Slay | null)[],
125
+ ): boolean {
126
+ if (!obj.slays) return false;
127
+ for (let i = 0; i < slays.length; i++) {
128
+ const s = slays[i];
129
+ if (s && obj.slays[i] && reactToSpecificSlay(s, mon)) return true;
130
+ }
131
+ return false;
132
+ }
133
+
134
+ /**
135
+ * improve_attack_modifier: fold the best applicable brand or slay for `obj`
136
+ * against `mon` into `mod`, updating mod.brand/mod.slay/mod.verb.
137
+ *
138
+ * Faithful to upstream, including the quirk that the brand loop sets
139
+ * mod.brand without clearing mod.slay (only the slay loop clears mod.brand);
140
+ * the damage code then prefers a set slay. When `obj` is null the loops read
141
+ * temporary brands/slays from `temp` (player_has_temporary_brand/slay), exactly
142
+ * as improve_attack_modifier(p, NULL, ...) does; passing no `temp` leaves the
143
+ * obj == null call a no-op (no temporary brand/slay active).
144
+ *
145
+ * \param isOCombat selects the O-combat multipliers (birth_percent_damage);
146
+ * the standard path passes false.
147
+ * \param temp temporary brand/slay predicate, consulted only when obj is null.
148
+ */
149
+ export function improveAttackModifier(
150
+ obj: GameObject | null,
151
+ mon: BrandSlayTarget,
152
+ brands: readonly (Brand | null)[],
153
+ slays: readonly (Slay | null)[],
154
+ mod: AttackModifier,
155
+ range: boolean,
156
+ isOCombat = false,
157
+ temp?: TempBrandSlay,
158
+ ): void {
159
+ let bestMult = 1;
160
+
161
+ /* Set the current best multiplier from any already-chosen brand/slay. */
162
+ if (mod.brand) {
163
+ const b = brands[mod.brand] as Brand;
164
+ bestMult = Math.max(bestMult, getMonsterBrandMultiplier(mon, b, isOCombat));
165
+ } else if (mod.slay) {
166
+ const s = slays[mod.slay] as Slay;
167
+ const mult = isOCombat ? s.oMultiplier : s.multiplier;
168
+ bestMult = Math.max(bestMult, mult);
169
+ }
170
+
171
+ /* Brands */
172
+ for (let i = 1; i < brands.length; i++) {
173
+ const b = brands[i];
174
+ if (!b) continue;
175
+ if (obj) {
176
+ if (!obj.brands || !obj.brands[i]) continue;
177
+ } else {
178
+ /* Temporary brand (player_has_temporary_brand). */
179
+ if (!temp || !temp.hasBrand(i)) continue;
180
+ }
181
+
182
+ /* Is the monster vulnerable (not resistant)? */
183
+ if (!mon.race.flags.has(b.resistFlag)) {
184
+ const mult = getMonsterBrandMultiplier(mon, b, isOCombat);
185
+ if (bestMult < mult) {
186
+ bestMult = mult;
187
+ mod.brand = i;
188
+ mod.verb = range ? `${b.verb}s` : b.verb;
189
+ }
190
+ }
191
+ }
192
+
193
+ /* Slays */
194
+ for (let i = 1; i < slays.length; i++) {
195
+ const s = slays[i];
196
+ if (!s) continue;
197
+ if (obj) {
198
+ if (!obj.slays || !obj.slays[i]) continue;
199
+ } else {
200
+ /* Temporary slay (player_has_temporary_slay). */
201
+ if (!temp || !temp.hasSlay(i)) continue;
202
+ }
203
+
204
+ if (reactToSpecificSlay(s, mon)) {
205
+ const mult = isOCombat ? s.oMultiplier : s.multiplier;
206
+ if (bestMult < mult) {
207
+ bestMult = mult;
208
+ mod.brand = 0;
209
+ mod.slay = i;
210
+ mod.verb = range ? s.rangeVerb : s.meleeVerb;
211
+ }
212
+ }
213
+ }
214
+ }
215
+
216
+ /** The monster fields brand/slay LEARNING reads (visibility gates slays). */
217
+ export interface BrandSlayLearnTarget extends BrandSlayTarget {
218
+ /** monster_is_visible(mon). */
219
+ visible: boolean;
220
+ /**
221
+ * The monster's lore record (mon/lore.ts getLore), for the
222
+ * lore_learn_flag_if_visible learns. Optional: absent (worldless
223
+ * tests), only the player-rune half runs.
224
+ */
225
+ lore?: import("../mon/lore.js").MonsterLore;
226
+ }
227
+
228
+ /** lore_learn_flag_if_visible over the reduced learn target. */
229
+ function loreLearnFlag(mon: BrandSlayLearnTarget, flag: number): void {
230
+ if (flag && mon.lore && mon.visible) mon.lore.flags.on(flag);
231
+ }
232
+
233
+ /**
234
+ * learn_brand_slay_helper (obj-slays.c L463): after an attack, learn the
235
+ * brand/slay runes carried by the objects involved (and, for melee/throws,
236
+ * by off-weapon equipment) that the monster did not resist, and note the
237
+ * monster's resist/vulnerability flags in its lore. Slays are only
238
+ * learned on visible monsters; brands teach whenever they bite.
239
+ *
240
+ * `allowTemp` enables the temporary-brand/slay path (obj-slays.c:501,558):
241
+ * a temporary brand/slay whose rune the objects do NOT carry still teaches the
242
+ * monster's lore (resist/vuln/race flags), but does NOT teach the rune itself
243
+ * (upstream guards player_learn_* on `learn`, which stays false for temp-only).
244
+ */
245
+ function learnBrandSlayHelper(
246
+ p: Player,
247
+ env: RuneEnv,
248
+ obj1: GameObject | null,
249
+ obj2: GameObject | null,
250
+ mon: BrandSlayLearnTarget,
251
+ allowOff: boolean,
252
+ allowTemp: boolean,
253
+ temp?: TempBrandSlay,
254
+ ): void {
255
+ /* Handle brands. */
256
+ for (let i = 1; i < env.brands.length; i++) {
257
+ const b = env.brands[i];
258
+ if (!b) continue;
259
+ let learn = Boolean(obj1?.brands?.[i]) || Boolean(obj2?.brands?.[i]);
260
+ if (allowOff && !learn) {
261
+ for (let j = 0; j < p.body.count; j++) {
262
+ const obj = env.slotObject(j);
263
+ if (
264
+ obj?.brands?.[i] &&
265
+ !tvalIsWeapon(obj.tval) &&
266
+ !tvalIsLauncher(obj.tval)
267
+ ) {
268
+ learn = true;
269
+ }
270
+ }
271
+ }
272
+ /* Temporary brand: relevant only if not already carried by an object. */
273
+ if (!learn && !(allowTemp && (temp?.hasBrand(i) ?? false))) continue;
274
+
275
+ if (!b.resistFlag || !mon.race.flags.has(b.resistFlag)) {
276
+ /* Learn the rune only from a real object, not a temporary brand. */
277
+ if (learn) playerLearnBrand(p, env, i);
278
+ /* Learn about the monster (the flag's known absence / presence). */
279
+ loreLearnFlag(mon, b.resistFlag);
280
+ loreLearnFlag(mon, b.vulnFlag);
281
+ } else if (playerKnowsBrand(p, i)) {
282
+ /* A known brand fizzles: learn the monster resists. */
283
+ loreLearnFlag(mon, b.resistFlag);
284
+ }
285
+ }
286
+
287
+ /* Handle slays. */
288
+ for (let i = 1; i < env.slays.length; i++) {
289
+ const s = env.slays[i];
290
+ if (!s) continue;
291
+ let learn = Boolean(obj1?.slays?.[i]) || Boolean(obj2?.slays?.[i]);
292
+ if (allowOff && !learn) {
293
+ for (let j = 0; j < p.body.count; j++) {
294
+ const obj = env.slotObject(j);
295
+ if (
296
+ obj?.slays?.[i] &&
297
+ !tvalIsWeapon(obj.tval) &&
298
+ !tvalIsLauncher(obj.tval)
299
+ ) {
300
+ learn = true;
301
+ }
302
+ }
303
+ }
304
+ /* Temporary slay: relevant only if not already carried by an object. */
305
+ if (!learn && !(allowTemp && (temp?.hasSlay(i) ?? false))) continue;
306
+
307
+ if (reactToSpecificSlay(s, mon)) {
308
+ /* Learn about the monster. */
309
+ loreLearnFlag(mon, s.raceFlag);
310
+ /* Learn the rune only from a real object on a visible monster. */
311
+ if (mon.visible && learn) playerLearnSlay(p, env, i);
312
+ } else if (playerKnowsSlay(p, i)) {
313
+ /* Learn about unaffected monsters. */
314
+ loreLearnFlag(mon, s.raceFlag);
315
+ }
316
+ }
317
+ }
318
+
319
+ /**
320
+ * learn_brand_slay_from_melee: weapon (or unarmed) plus off-weapon gear, plus
321
+ * temporary brands/slays (allow_off = true, allow_temp = true).
322
+ */
323
+ export function learnBrandSlayFromMelee(
324
+ p: Player,
325
+ env: RuneEnv,
326
+ weapon: GameObject | null,
327
+ mon: BrandSlayLearnTarget,
328
+ temp?: TempBrandSlay,
329
+ ): void {
330
+ learnBrandSlayHelper(p, env, weapon, null, mon, true, true, temp);
331
+ }
332
+
333
+ /**
334
+ * learn_brand_slay_from_launch: missile and launcher only (allow_off = false,
335
+ * allow_temp = false).
336
+ */
337
+ export function learnBrandSlayFromLaunch(
338
+ p: Player,
339
+ env: RuneEnv,
340
+ missile: GameObject,
341
+ launcher: GameObject | null,
342
+ mon: BrandSlayLearnTarget,
343
+ ): void {
344
+ learnBrandSlayHelper(p, env, missile, launcher, mon, false, false);
345
+ }
346
+
347
+ /**
348
+ * learn_brand_slay_from_throw: thrown object only (allow_off = false,
349
+ * allow_temp = false) - obj-slays.c:633. The previous port passed allow_off
350
+ * true, which wrongly taught brand/slay runes from worn off-weapon gear on a
351
+ * throw (gap 3.1).
352
+ */
353
+ export function learnBrandSlayFromThrow(
354
+ p: Player,
355
+ env: RuneEnv,
356
+ missile: GameObject,
357
+ mon: BrandSlayLearnTarget,
358
+ ): void {
359
+ learnBrandSlayHelper(p, env, missile, null, mon, false, false);
360
+ }