@datamoc/mw_games 0.4.0 → 0.4.1

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 (512) hide show
  1. package/README.md +1 -1
  2. package/dist/actors/Advancement.d.ts +17 -0
  3. package/dist/actors/Advancement.d.ts.map +1 -1
  4. package/dist/actors/Advancement.js +17 -0
  5. package/dist/actors/Advancement.js.map +1 -1
  6. package/dist/actors/Affix.d.ts +20 -0
  7. package/dist/actors/Affix.d.ts.map +1 -1
  8. package/dist/actors/Affix.js.map +1 -1
  9. package/dist/actors/Appearances.d.ts +12 -0
  10. package/dist/actors/Appearances.d.ts.map +1 -1
  11. package/dist/actors/Appearances.js +12 -0
  12. package/dist/actors/Appearances.js.map +1 -1
  13. package/dist/actors/Aura.d.ts +16 -0
  14. package/dist/actors/Aura.d.ts.map +1 -1
  15. package/dist/actors/Aura.js +16 -0
  16. package/dist/actors/Aura.js.map +1 -1
  17. package/dist/actors/Barrier.d.ts +13 -0
  18. package/dist/actors/Barrier.d.ts.map +1 -1
  19. package/dist/actors/Barrier.js.map +1 -1
  20. package/dist/actors/Charges.d.ts +13 -0
  21. package/dist/actors/Charges.d.ts.map +1 -1
  22. package/dist/actors/Charges.js.map +1 -1
  23. package/dist/actors/Equipment.d.ts +18 -0
  24. package/dist/actors/Equipment.d.ts.map +1 -1
  25. package/dist/actors/Equipment.js +18 -0
  26. package/dist/actors/Equipment.js.map +1 -1
  27. package/dist/actors/Inventory.d.ts +12 -0
  28. package/dist/actors/Inventory.d.ts.map +1 -1
  29. package/dist/actors/Inventory.js +12 -0
  30. package/dist/actors/Inventory.js.map +1 -1
  31. package/dist/actors/ItemState.d.ts +13 -0
  32. package/dist/actors/ItemState.d.ts.map +1 -1
  33. package/dist/actors/ItemState.js +13 -0
  34. package/dist/actors/ItemState.js.map +1 -1
  35. package/dist/actors/ItemStatusEffect.d.ts +13 -0
  36. package/dist/actors/ItemStatusEffect.d.ts.map +1 -1
  37. package/dist/actors/ItemStatusEffect.js +13 -0
  38. package/dist/actors/ItemStatusEffect.js.map +1 -1
  39. package/dist/actors/Loot.d.ts +15 -1
  40. package/dist/actors/Loot.d.ts.map +1 -1
  41. package/dist/actors/Loot.js +15 -1
  42. package/dist/actors/Loot.js.map +1 -1
  43. package/dist/actors/Progression.d.ts +14 -1
  44. package/dist/actors/Progression.d.ts.map +1 -1
  45. package/dist/actors/Progression.js +14 -1
  46. package/dist/actors/Progression.js.map +1 -1
  47. package/dist/actors/Resource.d.ts +14 -0
  48. package/dist/actors/Resource.d.ts.map +1 -1
  49. package/dist/actors/Resource.js.map +1 -1
  50. package/dist/actors/Scaling.d.ts +8 -0
  51. package/dist/actors/Scaling.d.ts.map +1 -1
  52. package/dist/actors/Scaling.js.map +1 -1
  53. package/dist/actors/Shop.d.ts +15 -0
  54. package/dist/actors/Shop.d.ts.map +1 -1
  55. package/dist/actors/Shop.js.map +1 -1
  56. package/dist/actors/SkillPoints.d.ts +13 -0
  57. package/dist/actors/SkillPoints.d.ts.map +1 -1
  58. package/dist/actors/SkillPoints.js +13 -0
  59. package/dist/actors/SkillPoints.js.map +1 -1
  60. package/dist/actors/StatusEffect.d.ts +18 -0
  61. package/dist/actors/StatusEffect.d.ts.map +1 -1
  62. package/dist/actors/StatusEffect.js +18 -0
  63. package/dist/actors/StatusEffect.js.map +1 -1
  64. package/dist/actors/Support.d.ts +11 -0
  65. package/dist/actors/Support.d.ts.map +1 -1
  66. package/dist/actors/Support.js +11 -0
  67. package/dist/actors/Support.js.map +1 -1
  68. package/dist/actors/Traits.d.ts +14 -0
  69. package/dist/actors/Traits.d.ts.map +1 -1
  70. package/dist/actors/Traits.js +14 -0
  71. package/dist/actors/Traits.js.map +1 -1
  72. package/dist/actors/craft.d.ts +16 -0
  73. package/dist/actors/craft.d.ts.map +1 -1
  74. package/dist/actors/craft.js +16 -0
  75. package/dist/actors/craft.js.map +1 -1
  76. package/dist/actors/skillCheck.d.ts +8 -0
  77. package/dist/actors/skillCheck.d.ts.map +1 -1
  78. package/dist/actors/skillCheck.js +8 -0
  79. package/dist/actors/skillCheck.js.map +1 -1
  80. package/dist/assets/ByteProgress.d.ts +10 -0
  81. package/dist/assets/ByteProgress.d.ts.map +1 -1
  82. package/dist/assets/ByteProgress.js +10 -0
  83. package/dist/assets/ByteProgress.js.map +1 -1
  84. package/dist/assets/Streaming.d.ts +10 -0
  85. package/dist/assets/Streaming.d.ts.map +1 -1
  86. package/dist/assets/Streaming.js +10 -0
  87. package/dist/assets/Streaming.js.map +1 -1
  88. package/dist/assets/loader.d.ts +11 -0
  89. package/dist/assets/loader.d.ts.map +1 -1
  90. package/dist/assets/loader.js +11 -0
  91. package/dist/assets/loader.js.map +1 -1
  92. package/dist/assets/paths.d.ts +10 -0
  93. package/dist/assets/paths.d.ts.map +1 -1
  94. package/dist/assets/paths.js +10 -0
  95. package/dist/assets/paths.js.map +1 -1
  96. package/dist/audio/Captions.d.ts +13 -1
  97. package/dist/audio/Captions.d.ts.map +1 -1
  98. package/dist/audio/Captions.js +13 -1
  99. package/dist/audio/Captions.js.map +1 -1
  100. package/dist/audio/Midi.d.ts +19 -1
  101. package/dist/audio/Midi.d.ts.map +1 -1
  102. package/dist/audio/Midi.js +19 -1
  103. package/dist/audio/Midi.js.map +1 -1
  104. package/dist/audio/Music.d.ts +11 -0
  105. package/dist/audio/Music.d.ts.map +1 -1
  106. package/dist/audio/Music.js +11 -0
  107. package/dist/audio/Music.js.map +1 -1
  108. package/dist/audio/Orchestrator.d.ts +14 -0
  109. package/dist/audio/Orchestrator.d.ts.map +1 -1
  110. package/dist/audio/Orchestrator.js +14 -0
  111. package/dist/audio/Orchestrator.js.map +1 -1
  112. package/dist/audio/Playable.d.ts +11 -1
  113. package/dist/audio/Playable.d.ts.map +1 -1
  114. package/dist/audio/Playable.js +11 -1
  115. package/dist/audio/Playable.js.map +1 -1
  116. package/dist/audio/Sound.d.ts +8 -0
  117. package/dist/audio/Sound.d.ts.map +1 -1
  118. package/dist/audio/Sound.js +8 -0
  119. package/dist/audio/Sound.js.map +1 -1
  120. package/dist/audio/Synth.d.ts +15 -0
  121. package/dist/audio/Synth.d.ts.map +1 -1
  122. package/dist/audio/Synth.js +15 -0
  123. package/dist/audio/Synth.js.map +1 -1
  124. package/dist/battle/BattleAI.d.ts +18 -2
  125. package/dist/battle/BattleAI.d.ts.map +1 -1
  126. package/dist/battle/BattleAI.js +18 -2
  127. package/dist/battle/BattleAI.js.map +1 -1
  128. package/dist/battle/Evolution.d.ts +12 -0
  129. package/dist/battle/Evolution.d.ts.map +1 -1
  130. package/dist/battle/Evolution.js +12 -0
  131. package/dist/battle/Evolution.js.map +1 -1
  132. package/dist/battle/Field.d.ts +11 -0
  133. package/dist/battle/Field.d.ts.map +1 -1
  134. package/dist/battle/Field.js.map +1 -1
  135. package/dist/battle/Hooks.d.ts +16 -0
  136. package/dist/battle/Hooks.d.ts.map +1 -1
  137. package/dist/battle/Hooks.js +16 -0
  138. package/dist/battle/Hooks.js.map +1 -1
  139. package/dist/battle/Move.d.ts +13 -0
  140. package/dist/battle/Move.d.ts.map +1 -1
  141. package/dist/battle/Move.js +13 -0
  142. package/dist/battle/Move.js.map +1 -1
  143. package/dist/battle/Party.d.ts +11 -0
  144. package/dist/battle/Party.d.ts.map +1 -1
  145. package/dist/battle/Party.js +11 -0
  146. package/dist/battle/Party.js.map +1 -1
  147. package/dist/battle/Species.d.ts +10 -0
  148. package/dist/battle/Species.d.ts.map +1 -1
  149. package/dist/battle/Species.js +10 -0
  150. package/dist/battle/Species.js.map +1 -1
  151. package/dist/battle/StatStages.d.ts +14 -0
  152. package/dist/battle/StatStages.d.ts.map +1 -1
  153. package/dist/battle/StatStages.js.map +1 -1
  154. package/dist/battle/TypeMatrix.d.ts +11 -0
  155. package/dist/battle/TypeMatrix.d.ts.map +1 -1
  156. package/dist/battle/TypeMatrix.js +11 -0
  157. package/dist/battle/TypeMatrix.js.map +1 -1
  158. package/dist/core/Achievements.d.ts +15 -0
  159. package/dist/core/Achievements.d.ts.map +1 -1
  160. package/dist/core/Achievements.js +15 -0
  161. package/dist/core/Achievements.js.map +1 -1
  162. package/dist/core/Collection.d.ts +12 -0
  163. package/dist/core/Collection.d.ts.map +1 -1
  164. package/dist/core/Collection.js +12 -0
  165. package/dist/core/Collection.js.map +1 -1
  166. package/dist/core/Entity.d.ts +42 -0
  167. package/dist/core/Entity.d.ts.map +1 -0
  168. package/dist/core/Entity.js +47 -0
  169. package/dist/core/Entity.js.map +1 -0
  170. package/dist/core/Feedback.d.ts +11 -1
  171. package/dist/core/Feedback.d.ts.map +1 -1
  172. package/dist/core/Feedback.js +11 -1
  173. package/dist/core/Feedback.js.map +1 -1
  174. package/dist/core/Hex.d.ts +14 -0
  175. package/dist/core/Hex.d.ts.map +1 -1
  176. package/dist/core/Hex.js +14 -0
  177. package/dist/core/Hex.js.map +1 -1
  178. package/dist/core/Hooks.d.ts +14 -0
  179. package/dist/core/Hooks.d.ts.map +1 -1
  180. package/dist/core/Hooks.js.map +1 -1
  181. package/dist/core/Input.d.ts +12 -0
  182. package/dist/core/Input.d.ts.map +1 -1
  183. package/dist/core/Input.js.map +1 -1
  184. package/dist/core/Loading.d.ts +17 -0
  185. package/dist/core/Loading.d.ts.map +1 -1
  186. package/dist/core/Loading.js +17 -0
  187. package/dist/core/Loading.js.map +1 -1
  188. package/dist/core/Log.d.ts +9 -0
  189. package/dist/core/Log.d.ts.map +1 -1
  190. package/dist/core/Log.js +9 -0
  191. package/dist/core/Log.js.map +1 -1
  192. package/dist/core/Multiplayer.d.ts +12 -0
  193. package/dist/core/Multiplayer.d.ts.map +1 -1
  194. package/dist/core/Multiplayer.js +12 -0
  195. package/dist/core/Multiplayer.js.map +1 -1
  196. package/dist/core/News.d.ts +12 -0
  197. package/dist/core/News.d.ts.map +1 -1
  198. package/dist/core/News.js.map +1 -1
  199. package/dist/core/PlayerInput.d.ts +14 -0
  200. package/dist/core/PlayerInput.d.ts.map +1 -1
  201. package/dist/core/PlayerInput.js +14 -0
  202. package/dist/core/PlayerInput.js.map +1 -1
  203. package/dist/core/Presentation.d.ts +56 -0
  204. package/dist/core/Presentation.d.ts.map +1 -0
  205. package/dist/core/Presentation.js +78 -0
  206. package/dist/core/Presentation.js.map +1 -0
  207. package/dist/core/Random.d.ts +24 -0
  208. package/dist/core/Random.d.ts.map +1 -1
  209. package/dist/core/Random.js +24 -0
  210. package/dist/core/Random.js.map +1 -1
  211. package/dist/core/Replay.d.ts +31 -0
  212. package/dist/core/Replay.d.ts.map +1 -1
  213. package/dist/core/Replay.js +31 -0
  214. package/dist/core/Replay.js.map +1 -1
  215. package/dist/core/RunHistory.d.ts +12 -0
  216. package/dist/core/RunHistory.d.ts.map +1 -1
  217. package/dist/core/RunHistory.js.map +1 -1
  218. package/dist/core/Sanitize.d.ts +18 -0
  219. package/dist/core/Sanitize.d.ts.map +1 -1
  220. package/dist/core/Sanitize.js +18 -0
  221. package/dist/core/Sanitize.js.map +1 -1
  222. package/dist/core/Save.d.ts.map +1 -1
  223. package/dist/core/Save.js +13 -0
  224. package/dist/core/Save.js.map +1 -1
  225. package/dist/core/SaveSync.d.ts +14 -0
  226. package/dist/core/SaveSync.d.ts.map +1 -1
  227. package/dist/core/SaveSync.js.map +1 -1
  228. package/dist/core/Scene.d.ts +13 -0
  229. package/dist/core/Scene.d.ts.map +1 -1
  230. package/dist/core/Scene.js +13 -0
  231. package/dist/core/Scene.js.map +1 -1
  232. package/dist/core/SceneStack.d.ts +20 -0
  233. package/dist/core/SceneStack.d.ts.map +1 -1
  234. package/dist/core/SceneStack.js +20 -0
  235. package/dist/core/SceneStack.js.map +1 -1
  236. package/dist/core/Scramble.d.ts +8 -0
  237. package/dist/core/Scramble.d.ts.map +1 -1
  238. package/dist/core/Scramble.js +8 -0
  239. package/dist/core/Scramble.js.map +1 -1
  240. package/dist/core/Session.d.ts +10 -0
  241. package/dist/core/Session.d.ts.map +1 -1
  242. package/dist/core/Session.js.map +1 -1
  243. package/dist/core/Signal.d.ts +11 -0
  244. package/dist/core/Signal.d.ts.map +1 -1
  245. package/dist/core/Signal.js.map +1 -1
  246. package/dist/core/Spawner.d.ts +17 -0
  247. package/dist/core/Spawner.d.ts.map +1 -1
  248. package/dist/core/Spawner.js +17 -0
  249. package/dist/core/Spawner.js.map +1 -1
  250. package/dist/core/Stats.d.ts +14 -0
  251. package/dist/core/Stats.d.ts.map +1 -1
  252. package/dist/core/Stats.js +14 -0
  253. package/dist/core/Stats.js.map +1 -1
  254. package/dist/core/Telemetry.d.ts +11 -0
  255. package/dist/core/Telemetry.d.ts.map +1 -1
  256. package/dist/core/Telemetry.js +11 -0
  257. package/dist/core/Telemetry.js.map +1 -1
  258. package/dist/core/Tween.d.ts +16 -1
  259. package/dist/core/Tween.d.ts.map +1 -1
  260. package/dist/core/Tween.js +16 -1
  261. package/dist/core/Tween.js.map +1 -1
  262. package/dist/core/UndoHistory.d.ts +15 -0
  263. package/dist/core/UndoHistory.d.ts.map +1 -1
  264. package/dist/core/UndoHistory.js.map +1 -1
  265. package/dist/core/index.d.ts +4 -0
  266. package/dist/core/index.d.ts.map +1 -1
  267. package/dist/core/index.js +2 -0
  268. package/dist/core/index.js.map +1 -1
  269. package/dist/i18n/Format.d.ts +25 -0
  270. package/dist/i18n/Format.d.ts.map +1 -0
  271. package/dist/i18n/Format.js +32 -0
  272. package/dist/i18n/Format.js.map +1 -0
  273. package/dist/i18n/SemanticMessage.d.ts +71 -0
  274. package/dist/i18n/SemanticMessage.d.ts.map +1 -0
  275. package/dist/i18n/SemanticMessage.js +40 -0
  276. package/dist/i18n/SemanticMessage.js.map +1 -0
  277. package/dist/i18n/Validate.d.ts +56 -0
  278. package/dist/i18n/Validate.d.ts.map +1 -0
  279. package/dist/i18n/Validate.js +65 -0
  280. package/dist/i18n/Validate.js.map +1 -0
  281. package/dist/i18n/index.d.ts +39 -0
  282. package/dist/i18n/index.d.ts.map +1 -1
  283. package/dist/i18n/index.js +48 -1
  284. package/dist/i18n/index.js.map +1 -1
  285. package/dist/mw_games.global.js +153 -88
  286. package/dist/roguelike/Blob.d.ts +11 -0
  287. package/dist/roguelike/Blob.d.ts.map +1 -1
  288. package/dist/roguelike/Blob.js +11 -0
  289. package/dist/roguelike/Blob.js.map +1 -1
  290. package/dist/roguelike/Boss.d.ts +12 -0
  291. package/dist/roguelike/Boss.d.ts.map +1 -1
  292. package/dist/roguelike/Boss.js +12 -0
  293. package/dist/roguelike/Boss.js.map +1 -1
  294. package/dist/roguelike/Combat.d.ts +13 -0
  295. package/dist/roguelike/Combat.d.ts.map +1 -1
  296. package/dist/roguelike/Combat.js +13 -0
  297. package/dist/roguelike/Combat.js.map +1 -1
  298. package/dist/roguelike/ContentRoll.d.ts +10 -0
  299. package/dist/roguelike/ContentRoll.d.ts.map +1 -1
  300. package/dist/roguelike/ContentRoll.js +10 -0
  301. package/dist/roguelike/ContentRoll.js.map +1 -1
  302. package/dist/roguelike/Doors.d.ts +13 -0
  303. package/dist/roguelike/Doors.d.ts.map +1 -1
  304. package/dist/roguelike/Doors.js +13 -0
  305. package/dist/roguelike/Doors.js.map +1 -1
  306. package/dist/roguelike/DungeonParity.d.ts +15 -0
  307. package/dist/roguelike/DungeonParity.d.ts.map +1 -1
  308. package/dist/roguelike/DungeonParity.js +15 -0
  309. package/dist/roguelike/DungeonParity.js.map +1 -1
  310. package/dist/roguelike/Elevation.d.ts +15 -0
  311. package/dist/roguelike/Elevation.d.ts.map +1 -1
  312. package/dist/roguelike/Elevation.js +15 -0
  313. package/dist/roguelike/Elevation.js.map +1 -1
  314. package/dist/roguelike/Features.d.ts +17 -0
  315. package/dist/roguelike/Features.d.ts.map +1 -1
  316. package/dist/roguelike/Features.js +17 -0
  317. package/dist/roguelike/Features.js.map +1 -1
  318. package/dist/roguelike/FieldOfView.d.ts +13 -0
  319. package/dist/roguelike/FieldOfView.d.ts.map +1 -1
  320. package/dist/roguelike/FieldOfView.js +13 -0
  321. package/dist/roguelike/FieldOfView.js.map +1 -1
  322. package/dist/roguelike/Level.d.ts +26 -1
  323. package/dist/roguelike/Level.d.ts.map +1 -1
  324. package/dist/roguelike/Level.js +26 -1
  325. package/dist/roguelike/Level.js.map +1 -1
  326. package/dist/roguelike/MonsterAI.d.ts +14 -0
  327. package/dist/roguelike/MonsterAI.d.ts.map +1 -1
  328. package/dist/roguelike/MonsterAI.js +14 -0
  329. package/dist/roguelike/MonsterAI.js.map +1 -1
  330. package/dist/roguelike/MultiStageAbility.d.ts +16 -0
  331. package/dist/roguelike/MultiStageAbility.d.ts.map +1 -1
  332. package/dist/roguelike/MultiStageAbility.js +16 -0
  333. package/dist/roguelike/MultiStageAbility.js.map +1 -1
  334. package/dist/roguelike/Pathfinder.d.ts +23 -2
  335. package/dist/roguelike/Pathfinder.d.ts.map +1 -1
  336. package/dist/roguelike/Pathfinder.js +23 -2
  337. package/dist/roguelike/Pathfinder.js.map +1 -1
  338. package/dist/roguelike/RoomBuilders.d.ts +18 -1
  339. package/dist/roguelike/RoomBuilders.d.ts.map +1 -1
  340. package/dist/roguelike/RoomBuilders.js +18 -1
  341. package/dist/roguelike/RoomBuilders.js.map +1 -1
  342. package/dist/roguelike/Scheduler.d.ts +48 -1
  343. package/dist/roguelike/Scheduler.d.ts.map +1 -1
  344. package/dist/roguelike/Scheduler.js +58 -1
  345. package/dist/roguelike/Scheduler.js.map +1 -1
  346. package/dist/roguelike/Secrets.d.ts +13 -0
  347. package/dist/roguelike/Secrets.d.ts.map +1 -1
  348. package/dist/roguelike/Secrets.js +13 -0
  349. package/dist/roguelike/Secrets.js.map +1 -1
  350. package/dist/roguelike/Stealth.d.ts +13 -0
  351. package/dist/roguelike/Stealth.d.ts.map +1 -1
  352. package/dist/roguelike/Stealth.js +13 -0
  353. package/dist/roguelike/Stealth.js.map +1 -1
  354. package/dist/roguelike/Targeting.d.ts +45 -1
  355. package/dist/roguelike/Targeting.d.ts.map +1 -1
  356. package/dist/roguelike/Targeting.js +33 -1
  357. package/dist/roguelike/Targeting.js.map +1 -1
  358. package/dist/roguelike/TriggerTracker.d.ts +10 -0
  359. package/dist/roguelike/TriggerTracker.d.ts.map +1 -1
  360. package/dist/roguelike/TriggerTracker.js +10 -0
  361. package/dist/roguelike/TriggerTracker.js.map +1 -1
  362. package/dist/roguelike/generate.d.ts +41 -1
  363. package/dist/roguelike/generate.d.ts.map +1 -1
  364. package/dist/roguelike/generate.js +41 -1
  365. package/dist/roguelike/generate.js.map +1 -1
  366. package/dist/roguelike/index.d.ts +1 -1
  367. package/dist/roguelike/index.d.ts.map +1 -1
  368. package/dist/rpg/Collision.d.ts +19 -0
  369. package/dist/rpg/Collision.d.ts.map +1 -1
  370. package/dist/rpg/Collision.js +19 -0
  371. package/dist/rpg/Collision.js.map +1 -1
  372. package/dist/rpg/Event.d.ts +17 -0
  373. package/dist/rpg/Event.d.ts.map +1 -1
  374. package/dist/rpg/Event.js +17 -0
  375. package/dist/rpg/Event.js.map +1 -1
  376. package/dist/rpg/EventRunner.d.ts +14 -0
  377. package/dist/rpg/EventRunner.d.ts.map +1 -1
  378. package/dist/rpg/EventRunner.js +14 -0
  379. package/dist/rpg/EventRunner.js.map +1 -1
  380. package/dist/rpg/FreeMover.d.ts +14 -0
  381. package/dist/rpg/FreeMover.d.ts.map +1 -1
  382. package/dist/rpg/FreeMover.js +14 -0
  383. package/dist/rpg/FreeMover.js.map +1 -1
  384. package/dist/rpg/GameState.d.ts +14 -0
  385. package/dist/rpg/GameState.d.ts.map +1 -1
  386. package/dist/rpg/GameState.js +14 -0
  387. package/dist/rpg/GameState.js.map +1 -1
  388. package/dist/rpg/GridMover.d.ts +14 -0
  389. package/dist/rpg/GridMover.d.ts.map +1 -1
  390. package/dist/rpg/GridMover.js +14 -0
  391. package/dist/rpg/GridMover.js.map +1 -1
  392. package/dist/rpg/Marshal.d.ts +16 -0
  393. package/dist/rpg/Marshal.d.ts.map +1 -1
  394. package/dist/rpg/Marshal.js +16 -0
  395. package/dist/rpg/Marshal.js.map +1 -1
  396. package/dist/rpg/Quest.d.ts +15 -0
  397. package/dist/rpg/Quest.d.ts.map +1 -1
  398. package/dist/rpg/Quest.js +15 -0
  399. package/dist/rpg/Quest.js.map +1 -1
  400. package/dist/rpg/automap.d.ts +15 -0
  401. package/dist/rpg/automap.d.ts.map +1 -1
  402. package/dist/rpg/automap.js +15 -0
  403. package/dist/rpg/automap.js.map +1 -1
  404. package/dist/simulation/Runtime.d.ts +98 -0
  405. package/dist/simulation/Runtime.d.ts.map +1 -0
  406. package/dist/simulation/Runtime.js +91 -0
  407. package/dist/simulation/Runtime.js.map +1 -0
  408. package/dist/simulation/Scenario.d.ts +15 -0
  409. package/dist/simulation/Scenario.d.ts.map +1 -1
  410. package/dist/simulation/Scenario.js +15 -0
  411. package/dist/simulation/Scenario.js.map +1 -1
  412. package/dist/simulation/Turns.d.ts +11 -0
  413. package/dist/simulation/Turns.d.ts.map +1 -1
  414. package/dist/simulation/Turns.js +11 -0
  415. package/dist/simulation/Turns.js.map +1 -1
  416. package/dist/simulation/index.d.ts +10 -0
  417. package/dist/simulation/index.d.ts.map +1 -1
  418. package/dist/simulation/index.js +8 -0
  419. package/dist/simulation/index.js.map +1 -1
  420. package/dist/two-d/Game.d.ts +8 -11
  421. package/dist/two-d/Game.d.ts.map +1 -1
  422. package/dist/two-d/Game.js.map +1 -1
  423. package/dist/two-d/Scene2D.d.ts +2 -2
  424. package/dist/two-d/Scene2D.d.ts.map +1 -1
  425. package/dist/two-d/Scene2D.js.map +1 -1
  426. package/dist/two-d/pixi-interop.d.ts +13 -0
  427. package/dist/two-d/pixi-interop.d.ts.map +1 -0
  428. package/dist/two-d/pixi-interop.js +12 -0
  429. package/dist/two-d/pixi-interop.js.map +1 -0
  430. package/dist/two-d/render/AnimatedSprite.d.ts +4 -4
  431. package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
  432. package/dist/two-d/render/AnimatedSprite.js.map +1 -1
  433. package/dist/two-d/render/ColorTransformBatcher.d.ts +8 -3
  434. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -1
  435. package/dist/two-d/render/ColorTransformBatcher.js +8 -3
  436. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -1
  437. package/dist/two-d/render/LayeredSprite.d.ts +3 -3
  438. package/dist/two-d/render/LayeredSprite.d.ts.map +1 -1
  439. package/dist/two-d/render/LayeredSprite.js.map +1 -1
  440. package/dist/two-d/render/Shape2D.d.ts +40 -0
  441. package/dist/two-d/render/Shape2D.d.ts.map +1 -0
  442. package/dist/two-d/render/Shape2D.js +40 -0
  443. package/dist/two-d/render/Shape2D.js.map +1 -0
  444. package/dist/two-d/render/SpriteSheet.d.ts +9 -6
  445. package/dist/two-d/render/SpriteSheet.d.ts.map +1 -1
  446. package/dist/two-d/render/SpriteSheet.js +7 -0
  447. package/dist/two-d/render/SpriteSheet.js.map +1 -1
  448. package/dist/two-d/render/TintedSprite.d.ts +3 -2
  449. package/dist/two-d/render/TintedSprite.d.ts.map +1 -1
  450. package/dist/two-d/render/TintedSprite.js +5 -1
  451. package/dist/two-d/render/TintedSprite.js.map +1 -1
  452. package/dist/two-d/render/Types2D.d.ts +27 -0
  453. package/dist/two-d/render/Types2D.d.ts.map +1 -0
  454. package/dist/two-d/render/Types2D.js +6 -0
  455. package/dist/two-d/render/Types2D.js.map +1 -0
  456. package/dist/two-d/render/index.d.ts +3 -0
  457. package/dist/two-d/render/index.d.ts.map +1 -1
  458. package/dist/two-d/render/index.js +2 -0
  459. package/dist/two-d/render/index.js.map +1 -1
  460. package/dist/two-d/stage/DialogueStage.d.ts +16 -0
  461. package/dist/two-d/stage/DialogueStage.d.ts.map +1 -1
  462. package/dist/two-d/stage/DialogueStage.js +16 -0
  463. package/dist/two-d/stage/DialogueStage.js.map +1 -1
  464. package/dist/two-d/stage/script.d.ts +20 -0
  465. package/dist/two-d/stage/script.d.ts.map +1 -1
  466. package/dist/two-d/stage/script.js +20 -0
  467. package/dist/two-d/stage/script.js.map +1 -1
  468. package/dist/two-d/stage/twee.d.ts +11 -0
  469. package/dist/two-d/stage/twee.d.ts.map +1 -1
  470. package/dist/two-d/stage/twee.js +11 -0
  471. package/dist/two-d/stage/twee.js.map +1 -1
  472. package/dist/two-d/ui/Button.d.ts +4 -3
  473. package/dist/two-d/ui/Button.d.ts.map +1 -1
  474. package/dist/two-d/ui/Button.js.map +1 -1
  475. package/dist/two-d/ui/IconGrid.d.ts +2 -1
  476. package/dist/two-d/ui/IconGrid.d.ts.map +1 -1
  477. package/dist/two-d/ui/IconGrid.js.map +1 -1
  478. package/dist/two-d/ui/ListView.d.ts +2 -1
  479. package/dist/two-d/ui/ListView.d.ts.map +1 -1
  480. package/dist/two-d/ui/ListView.js.map +1 -1
  481. package/dist/two-d/ui/NinePatch.d.ts +3 -2
  482. package/dist/two-d/ui/NinePatch.d.ts.map +1 -1
  483. package/dist/two-d/ui/NinePatch.js +1 -1
  484. package/dist/two-d/ui/NinePatch.js.map +1 -1
  485. package/dist/two-d/ui/Toast.d.ts +2 -1
  486. package/dist/two-d/ui/Toast.d.ts.map +1 -1
  487. package/dist/two-d/ui/Toast.js.map +1 -1
  488. package/dist/two-d/ui/theme.d.ts +2 -2
  489. package/dist/two-d/ui/theme.d.ts.map +1 -1
  490. package/dist/two-d/ui/theme.js.map +1 -1
  491. package/dist/version.d.ts +1 -1
  492. package/dist/version.js +1 -1
  493. package/dist/world/Encounters.d.ts +12 -0
  494. package/dist/world/Encounters.d.ts.map +1 -1
  495. package/dist/world/Encounters.js.map +1 -1
  496. package/dist/world/Environment.d.ts +15 -1
  497. package/dist/world/Environment.d.ts.map +1 -1
  498. package/dist/world/Environment.js +15 -1
  499. package/dist/world/Environment.js.map +1 -1
  500. package/dist/world/Overworld.d.ts +14 -0
  501. package/dist/world/Overworld.d.ts.map +1 -1
  502. package/dist/world/Overworld.js +14 -0
  503. package/dist/world/Overworld.js.map +1 -1
  504. package/dist/world/TurnClock.d.ts +16 -0
  505. package/dist/world/TurnClock.d.ts.map +1 -1
  506. package/dist/world/TurnClock.js +16 -0
  507. package/dist/world/TurnClock.js.map +1 -1
  508. package/dist/world/World.d.ts +14 -0
  509. package/dist/world/World.d.ts.map +1 -1
  510. package/dist/world/World.js +14 -0
  511. package/dist/world/World.js.map +1 -1
  512. package/package.json +3 -2
@@ -13,6 +13,19 @@ import type { Level } from './Level.ts';
13
13
  * Discovery itself is a game's call, not this class's: a search action rolling against a
14
14
  * distance, a trap firing the moment a creature steps onto it, a wand of revealing. This
15
15
  * only does the bookkeeping once that decision has been made.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { Secrets, Level, WALL, FLOOR } from '@datamoc/mw_games/roguelike';
20
+ *
21
+ * const level = new Level(20, 20, [WALL, FLOOR], 1);
22
+ * const secrets = new Secrets(level);
23
+ *
24
+ * secrets.conceal(5, 5, 0, 1); // disguised as WALL (0), reveals as FLOOR (1) once found
25
+ * console.log(secrets.isSecret(5, 5)); // true - the cell reads as solid rock until found
26
+ *
27
+ * secrets.discover(5, 5); // a search action succeeded
28
+ * ```
16
29
  */
17
30
  export declare class Secrets {
18
31
  private level;
@@ -1 +1 @@
1
- {"version":3,"file":"Secrets.d.ts","sourceRoot":"","sources":["../../src/roguelike/Secrets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,OAAO;IACnB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,UAAU,CAAqB;IAEvC,YAAY,KAAK,EAAE,KAAK,EAEvB;IAED,yFAAyF;IACzF,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKtE;IAED,0FAA0F;IAC1F,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAGtC;IAED,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1C;IAED;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAOtC;IAED,MAAM,IAAI;QAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAE/D;IAED,yEAAyE;IACzE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAKnG;CACD"}
1
+ {"version":3,"file":"Secrets.d.ts","sourceRoot":"","sources":["../../src/roguelike/Secrets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,OAAO;IACnB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,UAAU,CAAqB;IAEvC,YAAY,KAAK,EAAE,KAAK,EAEvB;IAED,yFAAyF;IACzF,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKtE;IAED,0FAA0F;IAC1F,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAGtC;IAED,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1C;IAED;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAOtC;IAED,MAAM,IAAI;QAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAE/D;IAED,yEAAyE;IACzE,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAKnG;CACD"}
@@ -12,6 +12,19 @@
12
12
  * Discovery itself is a game's call, not this class's: a search action rolling against a
13
13
  * distance, a trap firing the moment a creature steps onto it, a wand of revealing. This
14
14
  * only does the bookkeeping once that decision has been made.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { Secrets, Level, WALL, FLOOR } from '@datamoc/mw_games/roguelike';
19
+ *
20
+ * const level = new Level(20, 20, [WALL, FLOOR], 1);
21
+ * const secrets = new Secrets(level);
22
+ *
23
+ * secrets.conceal(5, 5, 0, 1); // disguised as WALL (0), reveals as FLOOR (1) once found
24
+ * console.log(secrets.isSecret(5, 5)); // true - the cell reads as solid rock until found
25
+ *
26
+ * secrets.discover(5, 5); // a search action succeeded
27
+ * ```
15
28
  */
16
29
  export class Secrets {
17
30
  constructor(level) {
@@ -1 +1 @@
1
- {"version":3,"file":"Secrets.js","sourceRoot":"","sources":["../../src/roguelike/Secrets.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,OAAO;IAKnB,YAAY,KAAY;QAHhB,iBAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,eAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAGtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,yFAAyF;IACzF,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,QAAgB,EAAE,QAAgB;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,0FAA0F;IAC1F,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,YAAY,CAAC,CAAS,EAAE,CAAS;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM;QACL,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,QAAQ,CAAC,KAAY,EAAE,IAA4D;QACzF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO,OAAO,CAAC;IAChB,CAAC;CACD"}
1
+ {"version":3,"file":"Secrets.js","sourceRoot":"","sources":["../../src/roguelike/Secrets.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,OAAO;IAKnB,YAAY,KAAY;QAHhB,iBAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,eAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAGtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,yFAAyF;IACzF,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,QAAgB,EAAE,QAAgB;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,0FAA0F;IAC1F,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,YAAY,CAAC,CAAS,EAAE,CAAS;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM;QACL,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,QAAQ,CAAC,KAAY,EAAE,IAA4D;QACzF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO,OAAO,CAAC;IAChB,CAAC;CACD"}
@@ -14,6 +14,19 @@ export interface StealthOptions {
14
14
  * Tracks one hidden unit's detection state. Detection is one-way and sticky: once found, a
15
15
  * unit stays found until something explicitly re-hides it (`reset`), the same way a real
16
16
  * ambush does not un-happen because the enemy that spotted you wandered off again.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import { Stealth } from '@datamoc/mw_games/roguelike';
21
+ *
22
+ * const assassin = new Stealth({ radius: 2 });
23
+ * const guards = [{ x: 10, y: 10 }, { x: 5, y: 5 }];
24
+ *
25
+ * if (assassin.checkDetection({ x: 4, y: 5 }, guards)) {
26
+ * console.log('spotted! that guard spends its move noticing');
27
+ * }
28
+ * console.log(assassin.isDetected);
29
+ * ```
17
30
  */
18
31
  export declare class Stealth {
19
32
  private detected;
@@ -1 +1 @@
1
- {"version":3,"file":"Stealth.d.ts","sourceRoot":"","sources":["../../src/roguelike/Stealth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC9B,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,OAAO;IACnB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IAEvB,YAAY,OAAO,EAAE,cAAc,EAElC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE,GAAG,OAAO,CAKhE;IAED,+FAA+F;IAC/F,KAAK,IAAI,IAAI,CAEZ;CACD"}
1
+ {"version":3,"file":"Stealth.d.ts","sourceRoot":"","sources":["../../src/roguelike/Stealth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC9B,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,OAAO;IACnB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IAEvB,YAAY,OAAO,EAAE,cAAc,EAElC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE,GAAG,OAAO,CAKhE;IAED,+FAA+F;IAC/F,KAAK,IAAI,IAAI,CAEZ;CACD"}
@@ -3,6 +3,19 @@ import { chebyshevDistance } from './Targeting.js';
3
3
  * Tracks one hidden unit's detection state. Detection is one-way and sticky: once found, a
4
4
  * unit stays found until something explicitly re-hides it (`reset`), the same way a real
5
5
  * ambush does not un-happen because the enemy that spotted you wandered off again.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { Stealth } from '@datamoc/mw_games/roguelike';
10
+ *
11
+ * const assassin = new Stealth({ radius: 2 });
12
+ * const guards = [{ x: 10, y: 10 }, { x: 5, y: 5 }];
13
+ *
14
+ * if (assassin.checkDetection({ x: 4, y: 5 }, guards)) {
15
+ * console.log('spotted! that guard spends its move noticing');
16
+ * }
17
+ * console.log(assassin.isDetected);
18
+ * ```
6
19
  */
7
20
  export class Stealth {
8
21
  constructor(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"Stealth.js","sourceRoot":"","sources":["../../src/roguelike/Stealth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAenD;;;;GAIG;AACH,MAAM,OAAO,OAAO;IAInB,YAAY,OAAuB;QAH3B,aAAQ,GAAG,KAAK,CAAC;QAIxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,MAAY,EAAE,SAA0B;QACtD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/F,IAAI,KAAK;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,+FAA+F;IAC/F,KAAK;QACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;CACD"}
1
+ {"version":3,"file":"Stealth.js","sourceRoot":"","sources":["../../src/roguelike/Stealth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAenD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,OAAO;IAInB,YAAY,OAAuB;QAH3B,aAAQ,GAAG,KAAK,CAAC;QAIxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,MAAY,EAAE,SAA0B;QACtD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/F,IAAI,KAAK;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAChC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,+FAA+F;IAC/F,KAAK;QACJ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;CACD"}
@@ -26,7 +26,26 @@ export interface TargetingOptions {
26
26
  /** whether a wall in the way blocks the shot; on by default, since most things do not arc */
27
27
  requireLineOfSight?: boolean;
28
28
  }
29
- /** the straight-line ruler distance a roguelike uses: diagonals cost the same as a step */
29
+ /**
30
+ * The straight-line ruler distance a roguelike uses: diagonals cost the same as a step.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * import { chebyshevDistance, traceLine, hasLineOfSight, canTarget, resolveArea, Level, WALL, FLOOR } from '@datamoc/mw_games/roguelike';
35
+ *
36
+ * const level = new Level(20, 20, [WALL, FLOOR], 1); // an open floor
37
+ * const origin = { x: 2, y: 2 };
38
+ * const target = { x: 8, y: 5 };
39
+ *
40
+ * chebyshevDistance(origin, target); // 6
41
+ * traceLine(origin, target); // every cell the shot crosses
42
+ * hasLineOfSight(level, origin, target); // true - nothing blocks it
43
+ *
44
+ * if (canTarget(level, origin, target, { range: 10 })) {
45
+ * const hit = resolveArea(origin, target, { kind: 'burst', radius: 2 });
46
+ * }
47
+ * ```
48
+ */
30
49
  export declare function chebyshevDistance(a: Step, b: Step): number;
31
50
  /**
32
51
  * Every cell a straight line crosses from `from` to `to`, `from` included and `to` included.
@@ -47,6 +66,19 @@ export declare function resolveArea(origin: Step, target: Step, shape: AreaShape
47
66
  * nearest of the 8 directions, the length is the distance aimed, and step `i` of `length`
48
67
  * spans `round(i / length * width)` cells to each side of the centre line. A width of 0
49
68
  * is a single-file beam, the same cells `line` would trace along that snapped direction.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * import { coneCells, chainTargets, knockbackPath, Level, WALL, FLOOR } from '@datamoc/mw_games/roguelike';
73
+ *
74
+ * const breath = coneCells({ x: 5, y: 5 }, { x: 5, y: 0 }, 3); // a dragon's breath, aimed north
75
+ *
76
+ * const monsters = [{ x: 5, y: 4 }, { x: 5, y: 3 }, { x: 6, y: 2 }];
77
+ * const arc = chainTargets(monsters, { x: 5, y: 5 }, 3, 2); // a lightning bolt hopping between them
78
+ *
79
+ * const level = new Level(20, 20, [WALL, FLOOR], 1);
80
+ * const shovedTo = knockbackPath(level, { x: 5, y: 5 }, { x: 1, y: 0 }, 3); // shoved 3 cells east
81
+ * ```
50
82
  */
51
83
  export declare function coneCells(origin: Step, target: Step, width: number): Step[];
52
84
  /**
@@ -62,6 +94,18 @@ export declare function chainTargets(candidates: readonly Step[], origin: Step,
62
94
  * once its distance is known. `mwg` supplies no default bands or multipliers, only the lookup:
63
95
  * bands are checked in order, the first whose `max` is at or above `distance` applies, and a
64
96
  * distance past every band's `max` falls back to `beyond`.
97
+ *
98
+ * @example
99
+ * ```ts
100
+ * import { rangeMultiplier, areaFalloffMultiplier, type RangeBand } from '@datamoc/mw_games/roguelike';
101
+ *
102
+ * const bands: RangeBand[] = [{ max: 2, multiplier: 1.5 }, { max: 6, multiplier: 1 }];
103
+ * rangeMultiplier(1, bands); // 1.5 - point-blank bonus
104
+ * rangeMultiplier(10, bands, 0.5); // 0.5 - past every band, falls back to `beyond`
105
+ *
106
+ * areaFalloffMultiplier(0, [1, 0.5]); // 1 - first target hit, full damage
107
+ * areaFalloffMultiplier(1, [1, 0.5]); // 0.5 - second target
108
+ * ```
65
109
  */
66
110
  export interface RangeBand {
67
111
  /** the greatest distance this band covers */
@@ -1 +1 @@
1
- {"version":3,"file":"Targeting.d.ts","sourceRoot":"","sources":["../../src/roguelike/Targeting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAChC,2FAA2F;IAC3F,KAAK,EAAE,MAAM,CAAC;IAEd,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,CA2BtD;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAM1E;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAItG;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,CAuBhF;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAoB3E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAsB5G;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACzB,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,MAAM,SAAI,GAAG,MAAM,CAKjG;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAGrF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,CAQjG"}
1
+ {"version":3,"file":"Targeting.d.ts","sourceRoot":"","sources":["../../src/roguelike/Targeting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAChC,2FAA2F;IAC3F,KAAK,EAAE,MAAM,CAAC;IAEd,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,CA2BtD;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAM1E;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAItG;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,CAuBhF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAoB3E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,CAsB5G;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,SAAS;IACzB,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,MAAM,SAAI,GAAG,MAAM,CAKjG;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAGrF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,CAQjG"}
@@ -1,4 +1,23 @@
1
- /** the straight-line ruler distance a roguelike uses: diagonals cost the same as a step */
1
+ /**
2
+ * The straight-line ruler distance a roguelike uses: diagonals cost the same as a step.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * import { chebyshevDistance, traceLine, hasLineOfSight, canTarget, resolveArea, Level, WALL, FLOOR } from '@datamoc/mw_games/roguelike';
7
+ *
8
+ * const level = new Level(20, 20, [WALL, FLOOR], 1); // an open floor
9
+ * const origin = { x: 2, y: 2 };
10
+ * const target = { x: 8, y: 5 };
11
+ *
12
+ * chebyshevDistance(origin, target); // 6
13
+ * traceLine(origin, target); // every cell the shot crosses
14
+ * hasLineOfSight(level, origin, target); // true - nothing blocks it
15
+ *
16
+ * if (canTarget(level, origin, target, { range: 10 })) {
17
+ * const hit = resolveArea(origin, target, { kind: 'burst', radius: 2 });
18
+ * }
19
+ * ```
20
+ */
2
21
  export function chebyshevDistance(a, b) {
3
22
  return Math.max(Math.abs(a.x - b.x), Math.abs(a.y - b.y));
4
23
  }
@@ -79,6 +98,19 @@ export function resolveArea(origin, target, shape) {
79
98
  * nearest of the 8 directions, the length is the distance aimed, and step `i` of `length`
80
99
  * spans `round(i / length * width)` cells to each side of the centre line. A width of 0
81
100
  * is a single-file beam, the same cells `line` would trace along that snapped direction.
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * import { coneCells, chainTargets, knockbackPath, Level, WALL, FLOOR } from '@datamoc/mw_games/roguelike';
105
+ *
106
+ * const breath = coneCells({ x: 5, y: 5 }, { x: 5, y: 0 }, 3); // a dragon's breath, aimed north
107
+ *
108
+ * const monsters = [{ x: 5, y: 4 }, { x: 5, y: 3 }, { x: 6, y: 2 }];
109
+ * const arc = chainTargets(monsters, { x: 5, y: 5 }, 3, 2); // a lightning bolt hopping between them
110
+ *
111
+ * const level = new Level(20, 20, [WALL, FLOOR], 1);
112
+ * const shovedTo = knockbackPath(level, { x: 5, y: 5 }, { x: 1, y: 0 }, 3); // shoved 3 cells east
113
+ * ```
82
114
  */
83
115
  export function coneCells(origin, target, width) {
84
116
  const dx = target.x - origin.x;
@@ -1 +1 @@
1
- {"version":3,"file":"Targeting.js","sourceRoot":"","sources":["../../src/roguelike/Targeting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Targeting.js","sourceRoot":"","sources":["../../src/roguelike/Targeting.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,16 @@
5
5
  * proc shares. `mwg` tracks only the streak and its turn-window; what counts as a qualifying
6
6
  * event, and what a streak length unlocks, stay the game's own rule, fired from `trigger`'s
7
7
  * own returned count.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { TriggerTracker } from '@datamoc/mw_games/roguelike';
12
+ *
13
+ * const combo = new TriggerTracker(2); // a hit must land within 2 turns of the last
14
+ * combo.trigger(1); // streak: 1
15
+ * combo.trigger(2); // streak: 2 - within the window
16
+ * combo.trigger(10); // streak restarts at 1 - the window lapsed
17
+ * ```
8
18
  */
9
19
  export declare class TriggerTracker {
10
20
  private readonly window;
@@ -1 +1 @@
1
- {"version":3,"file":"TriggerTracker.d.ts","sourceRoot":"","sources":["../../src/roguelike/TriggerTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAa;IAE7B,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED,oFAAoF;IACpF,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5B;IAED,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9B;IAED,uGAAuG;IACvG,KAAK,IAAI,IAAI,CAGZ;IAED,MAAM,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAE7C;IAED,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAK1F;CACD"}
1
+ {"version":3,"file":"TriggerTracker.d.ts","sourceRoot":"","sources":["../../src/roguelike/TriggerTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAa;IAE7B,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED,oFAAoF;IACpF,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5B;IAED,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9B;IAED,uGAAuG;IACvG,KAAK,IAAI,IAAI,CAGZ;IAED,MAAM,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAE7C;IAED,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAK1F;CACD"}
@@ -5,6 +5,16 @@
5
5
  * proc shares. `mwg` tracks only the streak and its turn-window; what counts as a qualifying
6
6
  * event, and what a streak length unlocks, stay the game's own rule, fired from `trigger`'s
7
7
  * own returned count.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { TriggerTracker } from '@datamoc/mw_games/roguelike';
12
+ *
13
+ * const combo = new TriggerTracker(2); // a hit must land within 2 turns of the last
14
+ * combo.trigger(1); // streak: 1
15
+ * combo.trigger(2); // streak: 2 - within the window
16
+ * combo.trigger(10); // streak restarts at 1 - the window lapsed
17
+ * ```
8
18
  */
9
19
  export class TriggerTracker {
10
20
  constructor(window) {
@@ -1 +1 @@
1
- {"version":3,"file":"TriggerTracker.js","sourceRoot":"","sources":["../../src/roguelike/TriggerTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,OAAO,cAAc;IAK1B,YAAY,MAAc;QAHlB,WAAM,GAAG,CAAC,CAAC;QACX,aAAQ,GAAG,CAAC,QAAQ,CAAC;QAG5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,oFAAoF;IACpF,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAY;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,4FAA4F;IAC5F,QAAQ,CAAC,IAAY;QACpB,OAAO,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,uGAAuG;IACvG,KAAK;QACJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM;QACL,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,IAA0C;QACzE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjC,OAAO,OAAO,CAAC;IAChB,CAAC;CACD"}
1
+ {"version":3,"file":"TriggerTracker.js","sourceRoot":"","sources":["../../src/roguelike/TriggerTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,cAAc;IAK1B,YAAY,MAAc;QAHlB,WAAM,GAAG,CAAC,CAAC;QACX,aAAQ,GAAG,CAAC,QAAQ,CAAC;QAG5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,oFAAoF;IACpF,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAY;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,4FAA4F;IAC5F,QAAQ,CAAC,IAAY;QACpB,OAAO,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED,uGAAuG;IACvG,KAAK;QACJ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM;QACL,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,IAA0C;QACzE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjC,OAAO,OAAO,CAAC;IAChB,CAAC;CACD"}
@@ -75,6 +75,17 @@ export interface DungeonResult {
75
75
  */
76
76
  roomBuilders: string[];
77
77
  }
78
+ /**
79
+ * The two terrain kinds every dungeon needs: wall (index 0) and floor (index 1). A game
80
+ * appends its own kinds (traps, doors) after these via `DungeonOptions.kinds`.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * import { DUNGEON_KINDS } from '@datamoc/mw_games/roguelike';
85
+ *
86
+ * const kinds = [...DUNGEON_KINDS, { passable: false, transparent: true }]; // + a window
87
+ * ```
88
+ */
78
89
  export declare const DUNGEON_KINDS: TerrainKind[];
79
90
  /**
80
91
  * The full pipeline result: the level, its room graph, and how many placement attempts were
@@ -82,8 +93,37 @@ export declare const DUNGEON_KINDS: TerrainKind[];
82
93
  * for a caller that has no use for the graph or retry count.
83
94
  */
84
95
  export declare function generateDungeonGraph(options: DungeonOptions): DungeonResult;
96
+ /**
97
+ * Rooms joined by corridors, seeded and reproducible.
98
+ *
99
+ * @example
100
+ * ```ts
101
+ * import { generateDungeon, generateDungeonGraph } from '@datamoc/mw_games/roguelike';
102
+ * import { Random } from '@datamoc/mw_games/core';
103
+ *
104
+ * Random.push(12345); // the same seed always produces the same floor
105
+ * const level = generateDungeon({ width: 60, height: 40, rooms: 12 });
106
+ * Random.pop();
107
+ *
108
+ * // generateDungeonGraph is the same pipeline, also returning the room graph and retries
109
+ * const { level: level2, graph, retries, roomBuilders } = generateDungeonGraph({ width: 60, height: 40 });
110
+ * ```
111
+ */
85
112
  export declare function generateDungeon(options: DungeonOptions): Level;
86
- /** a random passable cell, avoiding any listed as taken */
113
+ /**
114
+ * A random passable cell, avoiding any listed as taken.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * import { generateDungeon, findFreeCell, furthestRoom, rectCenter } from '@datamoc/mw_games/roguelike';
119
+ *
120
+ * const level = generateDungeon({ width: 40, height: 30 });
121
+ * const start = rectCenter(level.rooms[0]);
122
+ *
123
+ * const stairsRoom = furthestRoom(level, start); // put the exit far from the entrance
124
+ * const monsterCell = findFreeCell(level, new Set([level.index(start.x, start.y)]));
125
+ * ```
126
+ */
87
127
  export declare function findFreeCell(level: Level, taken?: ReadonlySet<number>): number | null;
88
128
  /** the room furthest from `from`, by straight-line distance between centres */
89
129
  export declare function furthestRoom(level: Level, from: {
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/roguelike/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAA4B,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/E;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iGAAiG;IACjG,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAEtB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAE/B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACtC,6EAA6E;IAC7E,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/C,yDAAyD;IACzD,gBAAgB,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9D;AAED,gFAAgF;AAChF,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IAEV,wFAAwF;IACxF,KAAK,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,KAAK,CAAC;IAEb,uEAAuE;IACvE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,EAAE,WAAW,EAGtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CA4E3E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,KAAK,CAE9D;AA0CD,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAE,WAAW,CAAC,MAAM,CAAa,GAAG,MAAM,GAAG,IAAI,CAGhG;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,IAAI,CActF"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/roguelike/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAA4B,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/E;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iGAAiG;IACjG,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAEtB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAE/B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACtC,6EAA6E;IAC7E,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/C,yDAAyD;IACzD,gBAAgB,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9D;AAED,gFAAgF;AAChF,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IAEV,wFAAwF;IACxF,KAAK,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,KAAK,CAAC;IAEb,uEAAuE;IACvE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,EAGtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CA4E3E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,KAAK,CAE9D;AA0CD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAE,WAAW,CAAC,MAAM,CAAa,GAAG,MAAM,GAAG,IAAI,CAGhG;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,IAAI,CActF"}
@@ -1,6 +1,17 @@
1
1
  import * as Random from '../core/Random.js';
2
2
  import { Level, rectCenter, rectsOverlap } from './Level.js';
3
3
  import { hallBuilder, pickBuilder } from './RoomBuilders.js';
4
+ /**
5
+ * The two terrain kinds every dungeon needs: wall (index 0) and floor (index 1). A game
6
+ * appends its own kinds (traps, doors) after these via `DungeonOptions.kinds`.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import { DUNGEON_KINDS } from '@datamoc/mw_games/roguelike';
11
+ *
12
+ * const kinds = [...DUNGEON_KINDS, { passable: false, transparent: true }]; // + a window
13
+ * ```
14
+ */
4
15
  export const DUNGEON_KINDS = [
5
16
  { passable: false, transparent: false }, //0 wall
6
17
  { passable: true, transparent: true }, //1 floor
@@ -64,6 +75,22 @@ export function generateDungeonGraph(options) {
64
75
  level.rooms = placed;
65
76
  return { level, graph, retries, roomBuilders };
66
77
  }
78
+ /**
79
+ * Rooms joined by corridors, seeded and reproducible.
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * import { generateDungeon, generateDungeonGraph } from '@datamoc/mw_games/roguelike';
84
+ * import { Random } from '@datamoc/mw_games/core';
85
+ *
86
+ * Random.push(12345); // the same seed always produces the same floor
87
+ * const level = generateDungeon({ width: 60, height: 40, rooms: 12 });
88
+ * Random.pop();
89
+ *
90
+ * // generateDungeonGraph is the same pipeline, also returning the room graph and retries
91
+ * const { level: level2, graph, retries, roomBuilders } = generateDungeonGraph({ width: 60, height: 40 });
92
+ * ```
93
+ */
67
94
  export function generateDungeon(options) {
68
95
  return generateDungeonGraph(options).level;
69
96
  }
@@ -94,7 +121,20 @@ function carveLine(level, fromCoord, toCoord, fixed, horizontal, floor) {
94
121
  level.set(x, y, floor);
95
122
  }
96
123
  }
97
- /** a random passable cell, avoiding any listed as taken */
124
+ /**
125
+ * A random passable cell, avoiding any listed as taken.
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * import { generateDungeon, findFreeCell, furthestRoom, rectCenter } from '@datamoc/mw_games/roguelike';
130
+ *
131
+ * const level = generateDungeon({ width: 40, height: 30 });
132
+ * const start = rectCenter(level.rooms[0]);
133
+ *
134
+ * const stairsRoom = furthestRoom(level, start); // put the exit far from the entrance
135
+ * const monsterCell = findFreeCell(level, new Set([level.index(start.x, start.y)]));
136
+ * ```
137
+ */
98
138
  export function findFreeCell(level, taken = new Set()) {
99
139
  const free = level.passableCells().filter((cell) => !taken.has(cell));
100
140
  return free.length > 0 ? free[Random.int(free.length)] : null;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/roguelike/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/roguelike/generate.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export { Elevation } from './Elevation.ts';
16
16
  export { Pathfinder, neighbourOffsets } from './Pathfinder.ts';
17
17
  export type { Step, PathOptions } from './Pathfinder.ts';
18
18
  export { Scheduler } from './Scheduler.ts';
19
- export type { Actor } from './Scheduler.ts';
19
+ export type { Actor, SchedulerSnapshot } from './Scheduler.ts';
20
20
  export { decideMonsterAI } from './MonsterAI.ts';
21
21
  export type { AIState, AIDecision, MonsterAIOptions, Disposition } from './MonsterAI.ts';
22
22
  export { Secrets } from './Secrets.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/roguelike/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjH,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE/G,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEzF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtG,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAChH,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/roguelike/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjH,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE/G,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEzF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtG,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAChH,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
@@ -7,6 +7,25 @@
7
7
  * `rpg.FreeMover`'s own doc comment: "both own position and animation only, nothing about
8
8
  * collision or passability". A game wires this in itself; `FreeMover` stays unopinionated
9
9
  * about whether a game wants tile solidity, circle-vs-circle hits, or no collision at all.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { aabbOverlap, circleOverlap, circleAabbOverlap, resolveAabbAgainstTiles } from '@datamoc/mw_games/rpg';
14
+ *
15
+ * const player = { x: 10, y: 10, width: 16, height: 16 };
16
+ * const chest = { x: 20, y: 10, width: 16, height: 16 };
17
+ * aabbOverlap(player, chest); // false, not touching yet
18
+ *
19
+ * const hero = { x: 100, y: 100, radius: 8 };
20
+ * const bomb = { x: 105, y: 100, radius: 4 };
21
+ * circleOverlap(hero, bomb); // true - within blast radius
22
+ * circleAabbOverlap(hero, chest); // circle vs box, same idea
23
+ *
24
+ * const resolved = resolveAabbAgainstTiles(player, 5, 0, {
25
+ * tileSize: 32,
26
+ * isSolid: (tx, ty) => tx === 1 && ty === 0, // one solid tile
27
+ * });
28
+ * ```
10
29
  */
11
30
  export interface AABB {
12
31
  x: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Collision.d.ts","sourceRoot":"","sources":["../../src/rpg/Collision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,IAAI;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,MAAM;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAErD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAK3D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAMpE;AAED,sDAAsD;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAOpI"}
1
+ {"version":3,"file":"Collision.d.ts","sourceRoot":"","sources":["../../src/rpg/Collision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,WAAW,IAAI;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,MAAM;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAErD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAK3D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAMpE;AAED,sDAAsD;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAOpI"}
@@ -7,6 +7,25 @@
7
7
  * `rpg.FreeMover`'s own doc comment: "both own position and animation only, nothing about
8
8
  * collision or passability". A game wires this in itself; `FreeMover` stays unopinionated
9
9
  * about whether a game wants tile solidity, circle-vs-circle hits, or no collision at all.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { aabbOverlap, circleOverlap, circleAabbOverlap, resolveAabbAgainstTiles } from '@datamoc/mw_games/rpg';
14
+ *
15
+ * const player = { x: 10, y: 10, width: 16, height: 16 };
16
+ * const chest = { x: 20, y: 10, width: 16, height: 16 };
17
+ * aabbOverlap(player, chest); // false, not touching yet
18
+ *
19
+ * const hero = { x: 100, y: 100, radius: 8 };
20
+ * const bomb = { x: 105, y: 100, radius: 4 };
21
+ * circleOverlap(hero, bomb); // true - within blast radius
22
+ * circleAabbOverlap(hero, chest); // circle vs box, same idea
23
+ *
24
+ * const resolved = resolveAabbAgainstTiles(player, 5, 0, {
25
+ * tileSize: 32,
26
+ * isSolid: (tx, ty) => tx === 1 && ty === 0, // one solid tile
27
+ * });
28
+ * ```
10
29
  */
11
30
  export function aabbOverlap(a, b) {
12
31
  return a.x < b.x + b.width && a.x + a.width > b.x && a.y < b.y + b.height && a.y + a.height > b.y;
@@ -1 +1 @@
1
- {"version":3,"file":"Collision.js","sourceRoot":"","sources":["../../src/rpg/Collision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Collision.js","sourceRoot":"","sources":["../../src/rpg/Collision.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,23 @@ export declare function conditionHolds(condition: EventCondition, state: GameSta
28
28
  * The last page whose conditions all hold - the same convention RPG Maker uses, so an event
29
29
  * is authored as an ordered list running from "default behaviour" to "most specific", and
30
30
  * whichever specific case currently applies overrides the general one before it.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * import { activePage, conditionHolds, GameState, type MapEvent } from '@datamoc/mw_games/rpg';
35
+ *
36
+ * const state = new GameState();
37
+ * const shopkeeper: MapEvent = {
38
+ * id: 'shopkeeper', x: 5, y: 3,
39
+ * pages: [
40
+ * { trigger: 'action', commands: [{ say: 'Welcome!' }] },
41
+ * { conditions: [{ switch: 'questDone', equals: true }], trigger: 'action', commands: [{ say: 'Thank you!' }] },
42
+ * ],
43
+ * };
44
+ *
45
+ * conditionHolds({ switch: 'questDone', equals: true }, state); // false, until the switch flips
46
+ * const page = activePage(shopkeeper, state); // the first page, until "questDone" is set
47
+ * ```
31
48
  */
32
49
  export declare function activePage(event: MapEvent, state: GameState): EventPage | undefined;
33
50
  //# sourceMappingURL=Event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../src/rpg/Event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,iCAAiC;AACjC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzG,MAAM,WAAW,SAAS;IACzB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IAEzB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAGnF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAMnF"}
1
+ {"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../src/rpg/Event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,iCAAiC;AACjC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzG,MAAM,WAAW,SAAS;IACzB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IAEzB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAGnF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAMnF"}