@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,357 @@
1
+ /**
2
+ * Color-cycle + legacy flicker animation engine, ported from
3
+ * reference/src/ui-visuals.c (Angband 4.2.6).
4
+ *
5
+ * This is the front-end-agnostic half of the visuals subsystem: given a
6
+ * color cycle group/name (or a monster race, or a base selection attr) and a
7
+ * frame counter, it returns the COLOUR_* attr to draw for that frame. It has
8
+ * no DOM/canvas dependency; a front end owns the frame timer and the actual
9
+ * glyph/tile draw. The stateful interpretation that ui-visuals.c performs at
10
+ * parse time is reproduced here in the builders (buildVisualsFlicker /
11
+ * buildVisualsCycler) that consume the compiled visuals.txt pack record.
12
+ *
13
+ * Faithful details preserved from the C:
14
+ * - visuals_color_cycle_attr_for_frame (L169): step = frame % max_steps.
15
+ * - visuals_color_cycle_copy (L126): a cycle is compressed to only its valid
16
+ * colors (preserving order) when moved into a group, so attrForFrame wraps
17
+ * over the real color count, not the padded VISUALS_STEPS_MAX capacity.
18
+ * - visuals_flicker_get_attr_for_frame (L633): the flicker table is indexed
19
+ * by the selection attr (the color code on the `flicker:` line), then by
20
+ * frame % colors_per_cycle. Out-of-range selection attr -> BASIC_COLORS.
21
+ * - visuals_flicker_set_color (L574): flicker cycles are filled by the
22
+ * selection attr, so "the last one listed wins" for a duplicate selection.
23
+ * - visuals_cycler_set_cycle_for_race (L420) / _get_attr_for_race (L468):
24
+ * a race->cycle lookup table, growable by ridx, returns BASIC_COLORS when
25
+ * a race has no cycle.
26
+ * - do_animation (ui-display.c L1435): animateMonsterAttr replicates the
27
+ * per-monster branch (RF_ATTR_MULTI random, RF_ATTR_FLICKER cycle ->
28
+ * flicker -> base fallback, otherwise static).
29
+ */
30
+ import { BASIC_COLORS, colorCharToAttr, MAX_COLORS } from "../color.js";
31
+ /**
32
+ * z-color.h BASIC_COLORS: the count of the basic color attrs (0..28). It
33
+ * doubles as the "no color / invalid" sentinel the cycler/flicker return on a
34
+ * miss, since it is one past the last valid attr.
35
+ */
36
+ export { BASIC_COLORS } from "../color.js";
37
+ /**
38
+ * z-color.h MAX_COLORS (32). The flicker table is sized with this by
39
+ * ui_visuals_module_init: visuals_flicker_new(MAX_COLORS, 3).
40
+ */
41
+ export const VISUALS_MAX_COLORS = MAX_COLORS;
42
+ /** ui-visuals.c VISUALS_STEPS_MAX (L35): max colors per color cycle. */
43
+ export const VISUALS_STEPS_MAX = 32;
44
+ /** ui-visuals.c VISUALS_INVALID_COLOR (L38): unused-step marker. */
45
+ export const VISUALS_INVALID_COLOR = 0xff;
46
+ /** ui_visuals_module_init: colors_per_cycle for the legacy flicker table. */
47
+ const FLICKER_COLORS_PER_CYCLE = 3;
48
+ /* ----- Fancy Color Cycling ----- */
49
+ /**
50
+ * struct visuals_color_cycle (ui-visuals.c L45): an ordered set of color
51
+ * attrs to rotate through, plus the padding capacity and invalid marker.
52
+ */
53
+ export class VisualsColorCycle {
54
+ cycleName;
55
+ invalidColor;
56
+ /** The steps array (length maxSteps), invalidColor for unused slots. */
57
+ stepValues;
58
+ constructor(name, stepCount, invalidColor) {
59
+ this.cycleName = name;
60
+ this.invalidColor = invalidColor;
61
+ this.stepValues = new Array(stepCount).fill(invalidColor);
62
+ }
63
+ /** visuals_color_cycle_new (L62): NULL (here null) when stepCount is 0. */
64
+ static create(name, stepCount, invalidColor) {
65
+ if (stepCount === 0)
66
+ return null;
67
+ return new VisualsColorCycle(name, stepCount, invalidColor);
68
+ }
69
+ get maxSteps() {
70
+ return this.stepValues.length;
71
+ }
72
+ /** The step attrs, including any invalid padding. */
73
+ get steps() {
74
+ return this.stepValues;
75
+ }
76
+ /** Set the attr at a step (no-op if out of range, like the raw array). */
77
+ setStep(index, attr) {
78
+ if (index >= 0 && index < this.stepValues.length) {
79
+ this.stepValues[index] = attr;
80
+ }
81
+ }
82
+ /**
83
+ * visuals_color_cycle_copy (L126): a new cycle holding only the valid
84
+ * colors of this one, in order. Returns null if there are no valid colors
85
+ * (matching visuals_color_cycle_new(0) -> NULL).
86
+ */
87
+ copy() {
88
+ const valid = this.stepValues.filter((s) => s !== this.invalidColor);
89
+ const copy = VisualsColorCycle.create(this.cycleName, valid.length, this.invalidColor);
90
+ if (copy === null)
91
+ return null;
92
+ for (let i = 0; i < valid.length; i++)
93
+ copy.setStep(i, valid[i]);
94
+ return copy;
95
+ }
96
+ /**
97
+ * visuals_color_cycle_attr_for_frame (L169): the color for a frame, i.e.
98
+ * steps[frame % max_steps]. On a compressed (copied) cycle this wraps over
99
+ * the true color count.
100
+ */
101
+ attrForFrame(frame) {
102
+ const step = frame % this.stepValues.length;
103
+ return this.stepValues[step];
104
+ }
105
+ }
106
+ /**
107
+ * struct visuals_cycle_group (L186): named group of color cycles. Modeled as
108
+ * an insertion-ordered map of cycle-name -> cycle (the C uses parallel arrays
109
+ * but only ever looks cycles up by name).
110
+ */
111
+ class VisualsCycleGroup {
112
+ groupName;
113
+ cycles;
114
+ constructor(name) {
115
+ this.groupName = name;
116
+ this.cycles = new Map();
117
+ }
118
+ /** visuals_cycler_cycle_by_name inner loop (L363): find a cycle by name. */
119
+ cycleByName(name) {
120
+ return this.cycles.get(name) ?? null;
121
+ }
122
+ }
123
+ /**
124
+ * struct visuals_cycler (L261): the whole color-cycling table, groups of
125
+ * color cycles. Built from the compiled visuals.txt `cycle` records.
126
+ */
127
+ export class VisualsCycler {
128
+ groups;
129
+ constructor() {
130
+ this.groups = new Map();
131
+ }
132
+ /** Internal: fetch-or-create a group, preserving first-seen order. */
133
+ group(name) {
134
+ let g = this.groups.get(name);
135
+ if (g === undefined) {
136
+ g = new VisualsCycleGroup(name);
137
+ this.groups.set(name, g);
138
+ }
139
+ return g;
140
+ }
141
+ /**
142
+ * Add (or replace) a cycle in a group. Replicates visuals_parse_cycle's
143
+ * "if a cycle with a matching name is found, the parsed cycle replaces it"
144
+ * (L968-987) via Map.set. The stored cycle is the compressed copy, matching
145
+ * visuals_parse_context_convert (L807-813).
146
+ */
147
+ addCycle(groupName, cycle) {
148
+ const compressed = cycle.copy();
149
+ if (compressed === null)
150
+ return;
151
+ this.group(groupName).cycles.set(cycle.cycleName, compressed);
152
+ }
153
+ /** visuals_cycler_cycle_by_name (L336): find a cycle by group + name. */
154
+ cycleByName(groupName, cycleName) {
155
+ if (!groupName || !cycleName)
156
+ return null;
157
+ return this.groups.get(groupName)?.cycleByName(cycleName) ?? null;
158
+ }
159
+ /**
160
+ * visuals_cycler_get_attr_for_frame (L384): attr for a group/cycle at a
161
+ * frame, or BASIC_COLORS when the cycle is not found.
162
+ */
163
+ getAttrForFrame(groupName, cycleName, frame) {
164
+ const cycle = this.cycleByName(groupName, cycleName);
165
+ if (cycle === null)
166
+ return BASIC_COLORS;
167
+ return cycle.attrForFrame(frame);
168
+ }
169
+ /** Number of groups (introspection for wiring/tests). */
170
+ get groupCount() {
171
+ return this.groups.size;
172
+ }
173
+ }
174
+ /**
175
+ * struct visuals_flicker (L496): the legacy flicker table, a fixed grid of
176
+ * maxCycles * colorsPerCycle attrs indexed by [selection attr][step].
177
+ */
178
+ export class VisualsFlicker {
179
+ maxCycles;
180
+ colorsPerCycle;
181
+ cells;
182
+ constructor(maxCycles, colorsPerCycle) {
183
+ this.maxCycles = maxCycles;
184
+ this.colorsPerCycle = colorsPerCycle;
185
+ this.cells = new Array(maxCycles * colorsPerCycle).fill(0);
186
+ }
187
+ /**
188
+ * visuals_flicker_new (L515): null unless maxCycles >= BASIC_COLORS and
189
+ * colorsPerCycle > 0, so the table can at least hold the basic colors.
190
+ */
191
+ static create(maxCycles, colorsPerCycle) {
192
+ if (maxCycles < BASIC_COLORS || colorsPerCycle === 0)
193
+ return null;
194
+ return new VisualsFlicker(maxCycles, colorsPerCycle);
195
+ }
196
+ /** visuals_flicker_set_color (L574): set [cycle][color], ignore if OOB. */
197
+ setColor(cycleIndex, colorIndex, attr) {
198
+ if (cycleIndex >= this.maxCycles)
199
+ return;
200
+ if (colorIndex >= this.colorsPerCycle)
201
+ return;
202
+ this.cells[cycleIndex * this.colorsPerCycle + colorIndex] = attr;
203
+ }
204
+ /** visuals_flicker_get_color (L603): [cycle][color], 0 if out of range. */
205
+ getColor(cycleIndex, colorIndex) {
206
+ if (cycleIndex >= this.maxCycles)
207
+ return 0;
208
+ if (colorIndex >= this.colorsPerCycle)
209
+ return 0;
210
+ return this.cells[cycleIndex * this.colorsPerCycle + colorIndex];
211
+ }
212
+ /**
213
+ * visuals_flicker_get_attr_for_frame (L633): the flicker color for a base
214
+ * selection attr at a frame, or BASIC_COLORS if the attr is out of range.
215
+ */
216
+ getAttrForFrame(selectionAttr, frame) {
217
+ if (selectionAttr >= this.maxCycles)
218
+ return BASIC_COLORS;
219
+ const colorIndex = frame % this.colorsPerCycle;
220
+ return this.getColor(selectionAttr, colorIndex);
221
+ }
222
+ }
223
+ /**
224
+ * Build the legacy flicker table from the compiled `flicker` records.
225
+ * Faithful to visuals_parse_flicker (L828) + visuals_parse_flicker_color
226
+ * (L863): each flicker entry selects a table row by its color's attr and
227
+ * resets the step index; each following flicker-color fills the next step.
228
+ * Duplicate selection attrs overwrite the same row (last wins). Invalid
229
+ * color codes are skipped defensively (the C aborts parsing; the shipped
230
+ * data is valid, so this is unreachable for pack zero).
231
+ */
232
+ export function buildVisualsFlicker(records) {
233
+ const table = VisualsFlicker.create(VISUALS_MAX_COLORS, FLICKER_COLORS_PER_CYCLE);
234
+ /* create() only returns null for an impossible (too-small) config. */
235
+ if (table === null)
236
+ throw new Error("visuals: could not allocate flicker table");
237
+ for (const rec of records) {
238
+ const selection = colorCharToAttr(rec.color?.[0] ?? "");
239
+ const steps = rec["flicker-color"] ?? [];
240
+ let colorIndex = 0;
241
+ for (const code of steps) {
242
+ const attr = colorCharToAttr(code[0] ?? "");
243
+ table.setColor(selection, colorIndex, attr);
244
+ colorIndex++;
245
+ }
246
+ }
247
+ return table;
248
+ }
249
+ /**
250
+ * Build the color-cycle table from the compiled `cycle` records. Faithful to
251
+ * visuals_parse_cycle (L900) + visuals_parse_cycle_color (L1001) followed by
252
+ * visuals_parse_context_convert (L768): each cycle is created with
253
+ * VISUALS_STEPS_MAX capacity, filled with its color attrs (capped at
254
+ * capacity, matching PARSE_ERROR_TOO_MANY_ENTRIES), then compressed into its
255
+ * group. Later group+name duplicates replace earlier ones.
256
+ */
257
+ export function buildVisualsCycler(records) {
258
+ const cycler = new VisualsCycler();
259
+ for (const rec of records) {
260
+ if (!rec.group || !rec.name)
261
+ continue;
262
+ const cycle = VisualsColorCycle.create(rec.name, VISUALS_STEPS_MAX, VISUALS_INVALID_COLOR);
263
+ /* VISUALS_STEPS_MAX is nonzero, so create never returns null here. */
264
+ if (cycle === null)
265
+ continue;
266
+ const steps = rec["cycle-color"] ?? [];
267
+ let stepIndex = 0;
268
+ for (const code of steps) {
269
+ if (stepIndex >= cycle.maxSteps)
270
+ break; // PARSE_ERROR_TOO_MANY_ENTRIES
271
+ const attr = colorCharToAttr(code[0] ?? "");
272
+ cycle.setStep(stepIndex, attr);
273
+ stepIndex++;
274
+ }
275
+ cycler.addCycle(rec.group, cycle);
276
+ }
277
+ return cycler;
278
+ }
279
+ /* ----- Race binding + the animator ----- */
280
+ /**
281
+ * The instantiable visuals animator: owns the flicker table, the color
282
+ * cycler, and the race->cycle lookup (the three ui-visuals.c module globals),
283
+ * and exposes the per-frame attr selection do_animation uses. Build one with
284
+ * createVisualsAnimator from the compiled visuals.txt record.
285
+ */
286
+ export class VisualsAnimator {
287
+ flicker;
288
+ cycler;
289
+ /** visuals_color_cycles_by_race: ridx -> cycle (sparse). */
290
+ raceCycles;
291
+ constructor(flicker, cycler) {
292
+ this.flicker = flicker;
293
+ this.cycler = cycler;
294
+ this.raceCycles = [];
295
+ }
296
+ /**
297
+ * visuals_cycler_set_cycle_for_race (L420): map a race (by ridx) to a
298
+ * cycle. A missing group/cycle leaves the race un-cycled (no entry).
299
+ */
300
+ setCycleForRace(ridx, groupName, cycleName) {
301
+ if (ridx < 0 || !groupName || !cycleName)
302
+ return;
303
+ const cycle = this.cycler.cycleByName(groupName, cycleName);
304
+ if (cycle === null)
305
+ return;
306
+ this.raceCycles[ridx] = cycle;
307
+ }
308
+ /**
309
+ * visuals_cycler_get_attr_for_race (L468): the cycled attr for a race at a
310
+ * frame, or BASIC_COLORS when the race has no cycle.
311
+ */
312
+ getAttrForRace(ridx, frame) {
313
+ if (ridx < 0 || ridx >= this.raceCycles.length)
314
+ return BASIC_COLORS;
315
+ const cycle = this.raceCycles[ridx];
316
+ if (!cycle)
317
+ return BASIC_COLORS;
318
+ return cycle.attrForFrame(frame);
319
+ }
320
+ }
321
+ /**
322
+ * Assemble a VisualsAnimator from the compiled visuals.txt record
323
+ * (records[0] of pack visuals.json). Mirrors ui_visuals_module_init: create
324
+ * the flicker table and parse the cycler.
325
+ */
326
+ export function createVisualsAnimator(record) {
327
+ const flicker = buildVisualsFlicker(record.flicker ?? []);
328
+ const cycler = buildVisualsCycler(record.cycle ?? []);
329
+ return new VisualsAnimator(flicker, cycler);
330
+ }
331
+ /**
332
+ * do_animation's per-monster attr selection (ui-display.c L1445-1464). Returns
333
+ * the animated attr, or null when the monster is not animated (upstream
334
+ * `continue`, leaving mon->attr untouched at its static value).
335
+ *
336
+ * - RF_ATTR_MULTI: randint1(BASIC_COLORS - 1), a shimmering random color.
337
+ * - RF_ATTR_FLICKER: the race's color cycle, else the legacy flicker cycle
338
+ * for the base attr, else the static base attr.
339
+ * - neither flag: null (static).
340
+ */
341
+ export function animateMonsterAttr(animator, opts) {
342
+ if (opts.attrMulti) {
343
+ return opts.randint1(BASIC_COLORS - 1);
344
+ }
345
+ if (opts.attrFlicker) {
346
+ let attr = animator.getAttrForRace(opts.ridx, opts.frame);
347
+ if (attr === BASIC_COLORS) {
348
+ attr = animator.flicker.getAttrForFrame(opts.baseAttr, opts.frame);
349
+ }
350
+ if (attr === BASIC_COLORS) {
351
+ attr = opts.baseAttr;
352
+ }
353
+ return attr;
354
+ }
355
+ return null;
356
+ }
357
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/visuals/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * The runtime attr/char override tables, ported from reference/src/ui-prefs.c
3
+ * (Angband 4.2.6): the `monster_x_attr` / `monster_x_char` /
4
+ * `kind_x_attr` / `kind_x_char` / `feat_x_attr[LIGHTING_MAX]` /
5
+ * `feat_x_char[LIGHTING_MAX]` / `trap_x_attr[LIGHTING_MAX]` /
6
+ * `trap_x_char[LIGHTING_MAX]` / `flavor_x_attr` / `flavor_x_char` globals
7
+ * (ui-prefs.c L46-56), their allocation (textui_prefs_init, L1427-1452) and
8
+ * their (re)initialisation from gamedata (reset_visuals, L1352-1421).
9
+ *
10
+ * WHY THIS IS A SEPARATE LAYER FROM THE GAMEDATA. Upstream never draws a
11
+ * monster with `race->d_attr`: every draw goes through the x_attr/x_char
12
+ * table, which merely STARTS at the gamedata default. Three things write to it
13
+ * after that - a pref file (`process_pref_file`'s parse_prefs_monster and
14
+ * friends, L602-928), the knowledge browser's glyph picker (`glyph_command`,
15
+ * ui-knowledge.c L597-752), and the graphics pref of the active tile mode -
16
+ * and four things read it back out (the map, the knowledge screens, the
17
+ * monster-list sidebar, and the `dump_*` pref writers). A port that reads
18
+ * `race.dAttr` at the draw site cannot express any of that, which is why the
19
+ * glyph picker and the four "Save ... attr/chars" rows were both absent.
20
+ *
21
+ * RELATIONSHIP TO TileMap (tile-prefs.ts). Upstream keeps ONE set of arrays
22
+ * and lets a graf-*.prf write high-bit values into them, so in graphics mode
23
+ * the very same slot holds an atlas (row, col) instead of an (attr, glyph).
24
+ * This port splits the two: TileMap holds the graphics mapping, this table
25
+ * holds the ASCII one. That is behaviourally equivalent because upstream only
26
+ * ever has one of the two interpretations live at a time (`use_graphics`
27
+ * gates it, and display_knowledge picks the tile picker or the glyph picker on
28
+ * the same flag, ui-knowledge.c L1052-1070) - but it means the glyph picker
29
+ * edits this table and the tile picker edits the TileMap, rather than both
30
+ * editing one array.
31
+ *
32
+ * ATTR NORMALISATION. Upstream's `d_attr` is already a uint8_t COLOUR_* code
33
+ * for every entity type. The port's compiled gamedata keeps the source text's
34
+ * spelling instead: a colour CHAR for features / kinds / traps (`"w"`), a
35
+ * colour NAME for flavours (`"Light Green"`), and an already-numeric attr for
36
+ * monster races. resetVisuals normalises all four to the numeric attr, so from
37
+ * here on the table is uniform exactly as the C's arrays are.
38
+ *
39
+ * Determinism: no RNG anywhere in this module.
40
+ */
41
+ import type { Flavor, ObjectKind } from "../obj/types.js";
42
+ import type { MonsterRace } from "../mon/types.js";
43
+ import type { Feature } from "../world/feature.js";
44
+ import type { TrapKind } from "../world/trap.js";
45
+ /** One (attr, char) pair - upstream's parallel uint8_t/wchar_t slot pair. */
46
+ export interface GlyphPair {
47
+ attr: number;
48
+ char: string;
49
+ }
50
+ /** The gamedata reset_visuals reads its defaults out of. */
51
+ export interface GlyphTableDeps {
52
+ /** f_info, indexed by fidx (FEAT_MAX slots upstream). */
53
+ features: readonly Feature[];
54
+ /** k_info in kidx order. */
55
+ kinds: readonly ObjectKind[];
56
+ /** r_info in ridx order. */
57
+ races: readonly MonsterRace[];
58
+ /** trap_info in tidx order; null when the pack binds no traps. */
59
+ traps: readonly TrapKind[] | null;
60
+ /** The flavor list (upstream walks the `flavors` linked list by fidx). */
61
+ flavors: readonly Flavor[];
62
+ }
63
+ /**
64
+ * The x_attr/x_char arrays as one object. Sparse-safe: a read for an index the
65
+ * gamedata never bound falls back to the caller's default rather than
66
+ * throwing, because upstream's arrays are FEAT_MAX / r_max / k_max long and
67
+ * simply hold the zeroed slot for an unbound entry.
68
+ */
69
+ export declare class GlyphTable {
70
+ private readonly deps;
71
+ /** monster_x_attr / monster_x_char[ridx]. */
72
+ private readonly monster;
73
+ /** kind_x_attr / kind_x_char[kidx]. */
74
+ private readonly kind;
75
+ /** feat_x_attr / feat_x_char[lighting][fidx]. */
76
+ private readonly feat;
77
+ /** trap_x_attr / trap_x_char[lighting][tidx]. */
78
+ private readonly trap;
79
+ /** flavor_x_attr / flavor_x_char[fidx]. */
80
+ private readonly flavor;
81
+ constructor(deps: GlyphTableDeps);
82
+ /**
83
+ * reset_visuals(false) (ui-prefs.c L1352): re-extract every default
84
+ * attr/char from the gamedata, discarding any pref-file or picker override.
85
+ * The `load_prefs` half of the C's signature is the caller's job here (the
86
+ * front end re-runs its own pref load, exactly as reset_visuals(true) then
87
+ * calls process_pref_file("font.prf") or the tile mode's graphics pref).
88
+ *
89
+ * WART KEPT: upstream resets flavours from the CURRENT flavor list, which is
90
+ * the shuffled per-game one, not a canonical order - so a reset restores the
91
+ * glyphs this savefile was born with, not the file order.
92
+ */
93
+ reset(): void;
94
+ monsterGlyph(ridx: number): GlyphPair | undefined;
95
+ kindGlyph(kidx: number): GlyphPair | undefined;
96
+ featGlyph(lighting: number, fidx: number): GlyphPair | undefined;
97
+ trapGlyph(lighting: number, tidx: number): GlyphPair | undefined;
98
+ flavorGlyph(fidx: number): GlyphPair | undefined;
99
+ setMonsterGlyph(ridx: number, pair: GlyphPair): void;
100
+ setKindGlyph(kidx: number, pair: GlyphPair): void;
101
+ /**
102
+ * parse_prefs_feat (ui-prefs.c L798-849): a `*` lighting field writes every
103
+ * variant, which is why this takes LIGHTING.MAX as "all".
104
+ */
105
+ setFeatGlyph(lighting: number, fidx: number, pair: GlyphPair): void;
106
+ /** set_trap_graphic (ui-prefs.c L733-743), with the same `*` convention. */
107
+ setTrapGlyph(lighting: number, tidx: number, pair: GlyphPair): void;
108
+ setFlavorGlyph(fidx: number, pair: GlyphPair): void;
109
+ /** The gamedata this table was built from, for the dump writers' names. */
110
+ get gamedata(): GlyphTableDeps;
111
+ }
112
+ //# sourceMappingURL=glyph-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glyph-table.d.ts","sourceRoot":"","sources":["../../src/visuals/glyph-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAC7B,4BAA4B;IAC5B,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,4BAA4B;IAC5B,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9B,kEAAkE;IAClE,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,CAAC;IAClC,0EAA0E;IAC1E,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IAYT,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXjC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;gBAEb,IAAI,EAAE,cAAc;IAIjD;;;;;;;;;;OAUG;IACH,KAAK,IAAI,IAAI;IA0Bb,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIjD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI9C,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIhE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIhE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAMhD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAIpD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAIjD;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IASnE,4EAA4E;IAC5E,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IASnE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAMnD,2EAA2E;IAC3E,IAAI,QAAQ,IAAI,cAAc,CAE7B;CACF"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * The runtime attr/char override tables, ported from reference/src/ui-prefs.c
3
+ * (Angband 4.2.6): the `monster_x_attr` / `monster_x_char` /
4
+ * `kind_x_attr` / `kind_x_char` / `feat_x_attr[LIGHTING_MAX]` /
5
+ * `feat_x_char[LIGHTING_MAX]` / `trap_x_attr[LIGHTING_MAX]` /
6
+ * `trap_x_char[LIGHTING_MAX]` / `flavor_x_attr` / `flavor_x_char` globals
7
+ * (ui-prefs.c L46-56), their allocation (textui_prefs_init, L1427-1452) and
8
+ * their (re)initialisation from gamedata (reset_visuals, L1352-1421).
9
+ *
10
+ * WHY THIS IS A SEPARATE LAYER FROM THE GAMEDATA. Upstream never draws a
11
+ * monster with `race->d_attr`: every draw goes through the x_attr/x_char
12
+ * table, which merely STARTS at the gamedata default. Three things write to it
13
+ * after that - a pref file (`process_pref_file`'s parse_prefs_monster and
14
+ * friends, L602-928), the knowledge browser's glyph picker (`glyph_command`,
15
+ * ui-knowledge.c L597-752), and the graphics pref of the active tile mode -
16
+ * and four things read it back out (the map, the knowledge screens, the
17
+ * monster-list sidebar, and the `dump_*` pref writers). A port that reads
18
+ * `race.dAttr` at the draw site cannot express any of that, which is why the
19
+ * glyph picker and the four "Save ... attr/chars" rows were both absent.
20
+ *
21
+ * RELATIONSHIP TO TileMap (tile-prefs.ts). Upstream keeps ONE set of arrays
22
+ * and lets a graf-*.prf write high-bit values into them, so in graphics mode
23
+ * the very same slot holds an atlas (row, col) instead of an (attr, glyph).
24
+ * This port splits the two: TileMap holds the graphics mapping, this table
25
+ * holds the ASCII one. That is behaviourally equivalent because upstream only
26
+ * ever has one of the two interpretations live at a time (`use_graphics`
27
+ * gates it, and display_knowledge picks the tile picker or the glyph picker on
28
+ * the same flag, ui-knowledge.c L1052-1070) - but it means the glyph picker
29
+ * edits this table and the tile picker edits the TileMap, rather than both
30
+ * editing one array.
31
+ *
32
+ * ATTR NORMALISATION. Upstream's `d_attr` is already a uint8_t COLOUR_* code
33
+ * for every entity type. The port's compiled gamedata keeps the source text's
34
+ * spelling instead: a colour CHAR for features / kinds / traps (`"w"`), a
35
+ * colour NAME for flavours (`"Light Green"`), and an already-numeric attr for
36
+ * monster races. resetVisuals normalises all four to the numeric attr, so from
37
+ * here on the table is uniform exactly as the C's arrays are.
38
+ *
39
+ * Determinism: no RNG anywhere in this module.
40
+ */
41
+ import { colorCharToAttr, colorTextToAttr } from "../color.js";
42
+ import { LIGHTING } from "./tile-prefs.js";
43
+ /**
44
+ * The x_attr/x_char arrays as one object. Sparse-safe: a read for an index the
45
+ * gamedata never bound falls back to the caller's default rather than
46
+ * throwing, because upstream's arrays are FEAT_MAX / r_max / k_max long and
47
+ * simply hold the zeroed slot for an unbound entry.
48
+ */
49
+ export class GlyphTable {
50
+ deps;
51
+ /** monster_x_attr / monster_x_char[ridx]. */
52
+ monster = [];
53
+ /** kind_x_attr / kind_x_char[kidx]. */
54
+ kind = [];
55
+ /** feat_x_attr / feat_x_char[lighting][fidx]. */
56
+ feat = [[], [], [], []];
57
+ /** trap_x_attr / trap_x_char[lighting][tidx]. */
58
+ trap = [[], [], [], []];
59
+ /** flavor_x_attr / flavor_x_char[fidx]. */
60
+ flavor = [];
61
+ constructor(deps) {
62
+ this.deps = deps;
63
+ this.reset();
64
+ }
65
+ /**
66
+ * reset_visuals(false) (ui-prefs.c L1352): re-extract every default
67
+ * attr/char from the gamedata, discarding any pref-file or picker override.
68
+ * The `load_prefs` half of the C's signature is the caller's job here (the
69
+ * front end re-runs its own pref load, exactly as reset_visuals(true) then
70
+ * calls process_pref_file("font.prf") or the tile mode's graphics pref).
71
+ *
72
+ * WART KEPT: upstream resets flavours from the CURRENT flavor list, which is
73
+ * the shuffled per-game one, not a canonical order - so a reset restores the
74
+ * glyphs this savefile was born with, not the file order.
75
+ */
76
+ reset() {
77
+ for (const f of this.deps.features) {
78
+ const pair = { attr: colorCharToAttr(f.dAttr), char: f.dChar };
79
+ for (let j = 0; j < LIGHTING.MAX; j++) {
80
+ this.feat[j][f.fidx] = { ...pair };
81
+ }
82
+ }
83
+ for (const k of this.deps.kinds) {
84
+ this.kind[k.kidx] = { attr: colorCharToAttr(k.dAttr), char: k.dChar };
85
+ }
86
+ for (const r of this.deps.races) {
87
+ this.monster[r.ridx] = { attr: r.dAttr, char: r.dChar };
88
+ }
89
+ for (const t of this.deps.traps ?? []) {
90
+ const pair = { attr: colorCharToAttr(t.color), char: t.glyph };
91
+ for (let j = 0; j < LIGHTING.MAX; j++) {
92
+ this.trap[j][t.tidx] = { ...pair };
93
+ }
94
+ }
95
+ for (const f of this.deps.flavors) {
96
+ this.flavor[f.fidx] = { attr: colorTextToAttr(f.dAttr), char: f.dChar };
97
+ }
98
+ }
99
+ /* ----- reads (the draw sites and the dump writers) ----- */
100
+ monsterGlyph(ridx) {
101
+ return this.monster[ridx];
102
+ }
103
+ kindGlyph(kidx) {
104
+ return this.kind[kidx];
105
+ }
106
+ featGlyph(lighting, fidx) {
107
+ return this.feat[lighting]?.[fidx];
108
+ }
109
+ trapGlyph(lighting, tidx) {
110
+ return this.trap[lighting]?.[tidx];
111
+ }
112
+ flavorGlyph(fidx) {
113
+ return this.flavor[fidx];
114
+ }
115
+ /* ----- writes (the pref parser and the glyph picker) ----- */
116
+ setMonsterGlyph(ridx, pair) {
117
+ this.monster[ridx] = { ...pair };
118
+ }
119
+ setKindGlyph(kidx, pair) {
120
+ this.kind[kidx] = { ...pair };
121
+ }
122
+ /**
123
+ * parse_prefs_feat (ui-prefs.c L798-849): a `*` lighting field writes every
124
+ * variant, which is why this takes LIGHTING.MAX as "all".
125
+ */
126
+ setFeatGlyph(lighting, fidx, pair) {
127
+ if (lighting === LIGHTING.MAX) {
128
+ for (let j = 0; j < LIGHTING.MAX; j++)
129
+ this.feat[j][fidx] = { ...pair };
130
+ return;
131
+ }
132
+ const row = this.feat[lighting];
133
+ if (row)
134
+ row[fidx] = { ...pair };
135
+ }
136
+ /** set_trap_graphic (ui-prefs.c L733-743), with the same `*` convention. */
137
+ setTrapGlyph(lighting, tidx, pair) {
138
+ if (lighting === LIGHTING.MAX) {
139
+ for (let j = 0; j < LIGHTING.MAX; j++)
140
+ this.trap[j][tidx] = { ...pair };
141
+ return;
142
+ }
143
+ const row = this.trap[lighting];
144
+ if (row)
145
+ row[tidx] = { ...pair };
146
+ }
147
+ setFlavorGlyph(fidx, pair) {
148
+ this.flavor[fidx] = { ...pair };
149
+ }
150
+ /* ----- enumeration (the dump_* writers walk the whole table) ----- */
151
+ /** The gamedata this table was built from, for the dump writers' names. */
152
+ get gamedata() {
153
+ return this.deps;
154
+ }
155
+ }
156
+ //# sourceMappingURL=glyph-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glyph-table.js","sourceRoot":"","sources":["../../src/visuals/glyph-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { GraphicsMode } from "./grafmode.js";
2
+ /** Every parsed graphics mode from list.txt, in file order (grafID 1..N). */
3
+ export declare const GRAPHICS_MODE_CATALOG: readonly GraphicsMode[];
4
+ //# sourceMappingURL=grafmode-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grafmode-data.d.ts","sourceRoot":"","sources":["../../src/visuals/grafmode-data.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,EAAE,SAAS,YAAY,EAyExD,CAAC"}