@datamoc/mw_games 0.2.1 → 0.4.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 (518) hide show
  1. package/README.md +73 -24
  2. package/dist/actors/Affix.d.ts +26 -0
  3. package/dist/actors/Affix.d.ts.map +1 -1
  4. package/dist/actors/Affix.js +32 -1
  5. package/dist/actors/Affix.js.map +1 -1
  6. package/dist/actors/Barrier.d.ts +47 -0
  7. package/dist/actors/Barrier.d.ts.map +1 -0
  8. package/dist/actors/Barrier.js +70 -0
  9. package/dist/actors/Barrier.js.map +1 -0
  10. package/dist/actors/Charges.d.ts +22 -0
  11. package/dist/actors/Charges.d.ts.map +1 -1
  12. package/dist/actors/Charges.js +26 -0
  13. package/dist/actors/Charges.js.map +1 -1
  14. package/dist/actors/Equipment.d.ts +30 -0
  15. package/dist/actors/Equipment.d.ts.map +1 -1
  16. package/dist/actors/Equipment.js +33 -1
  17. package/dist/actors/Equipment.js.map +1 -1
  18. package/dist/actors/Inventory.d.ts +58 -3
  19. package/dist/actors/Inventory.d.ts.map +1 -1
  20. package/dist/actors/Inventory.js +97 -5
  21. package/dist/actors/Inventory.js.map +1 -1
  22. package/dist/actors/ItemState.d.ts +11 -2
  23. package/dist/actors/ItemState.d.ts.map +1 -1
  24. package/dist/actors/ItemState.js +18 -2
  25. package/dist/actors/ItemState.js.map +1 -1
  26. package/dist/actors/Loot.js +1 -1
  27. package/dist/actors/Loot.js.map +1 -1
  28. package/dist/actors/Progression.d.ts +9 -0
  29. package/dist/actors/Progression.d.ts.map +1 -1
  30. package/dist/actors/Progression.js +7 -0
  31. package/dist/actors/Progression.js.map +1 -1
  32. package/dist/actors/Resource.d.ts +16 -0
  33. package/dist/actors/Resource.d.ts.map +1 -1
  34. package/dist/actors/Resource.js +22 -0
  35. package/dist/actors/Resource.js.map +1 -1
  36. package/dist/actors/SkillPoints.d.ts +14 -0
  37. package/dist/actors/SkillPoints.d.ts.map +1 -1
  38. package/dist/actors/SkillPoints.js +16 -0
  39. package/dist/actors/SkillPoints.js.map +1 -1
  40. package/dist/actors/StatBlock.d.ts +16 -0
  41. package/dist/actors/StatBlock.d.ts.map +1 -1
  42. package/dist/actors/StatBlock.js +21 -0
  43. package/dist/actors/StatBlock.js.map +1 -1
  44. package/dist/actors/Support.d.ts +2 -2
  45. package/dist/actors/Support.d.ts.map +1 -1
  46. package/dist/actors/Support.js +2 -2
  47. package/dist/actors/Support.js.map +1 -1
  48. package/dist/actors/index.d.ts +8 -5
  49. package/dist/actors/index.d.ts.map +1 -1
  50. package/dist/actors/index.js +3 -2
  51. package/dist/actors/index.js.map +1 -1
  52. package/dist/assets/ByteProgress.d.ts +27 -0
  53. package/dist/assets/ByteProgress.d.ts.map +1 -0
  54. package/dist/assets/ByteProgress.js +44 -0
  55. package/dist/assets/ByteProgress.js.map +1 -0
  56. package/dist/assets/Streaming.d.ts +10 -4
  57. package/dist/assets/Streaming.d.ts.map +1 -1
  58. package/dist/assets/Streaming.js +18 -7
  59. package/dist/assets/Streaming.js.map +1 -1
  60. package/dist/assets/index.d.ts +11 -44
  61. package/dist/assets/index.d.ts.map +1 -1
  62. package/dist/assets/index.js +9 -76
  63. package/dist/assets/index.js.map +1 -1
  64. package/dist/assets/loader.d.ts +34 -0
  65. package/dist/assets/loader.d.ts.map +1 -0
  66. package/dist/assets/loader.js +61 -0
  67. package/dist/assets/loader.js.map +1 -0
  68. package/dist/assets/paths.d.ts +40 -0
  69. package/dist/assets/paths.d.ts.map +1 -0
  70. package/dist/assets/paths.js +49 -0
  71. package/dist/assets/paths.js.map +1 -0
  72. package/dist/audio/Music.d.ts +10 -0
  73. package/dist/audio/Music.d.ts.map +1 -1
  74. package/dist/audio/Music.js +36 -1
  75. package/dist/audio/Music.js.map +1 -1
  76. package/dist/audio/Playable.d.ts +3 -0
  77. package/dist/audio/Playable.d.ts.map +1 -1
  78. package/dist/audio/Playable.js +1 -1
  79. package/dist/audio/Playable.js.map +1 -1
  80. package/dist/battle/Field.d.ts +2 -2
  81. package/dist/battle/Field.d.ts.map +1 -1
  82. package/dist/battle/Field.js +3 -3
  83. package/dist/battle/Field.js.map +1 -1
  84. package/dist/battle/Hooks.d.ts +7 -13
  85. package/dist/battle/Hooks.d.ts.map +1 -1
  86. package/dist/battle/Hooks.js +20 -18
  87. package/dist/battle/Hooks.js.map +1 -1
  88. package/dist/core/Feedback.d.ts +3 -9
  89. package/dist/core/Feedback.d.ts.map +1 -1
  90. package/dist/core/Feedback.js +6 -18
  91. package/dist/core/Feedback.js.map +1 -1
  92. package/dist/core/Hooks.d.ts +34 -0
  93. package/dist/core/Hooks.d.ts.map +1 -0
  94. package/dist/core/Hooks.js +33 -0
  95. package/dist/core/Hooks.js.map +1 -0
  96. package/dist/core/HttpTransport.d.ts +22 -0
  97. package/dist/core/HttpTransport.d.ts.map +1 -0
  98. package/dist/core/HttpTransport.js +33 -0
  99. package/dist/core/HttpTransport.js.map +1 -0
  100. package/dist/core/Input.d.ts +41 -0
  101. package/dist/core/Input.d.ts.map +1 -1
  102. package/dist/core/Input.js +126 -21
  103. package/dist/core/Input.js.map +1 -1
  104. package/dist/core/Multiplayer.d.ts +63 -0
  105. package/dist/core/Multiplayer.d.ts.map +1 -0
  106. package/dist/core/Multiplayer.js +73 -0
  107. package/dist/core/Multiplayer.js.map +1 -0
  108. package/dist/core/PlayerInput.d.ts +5 -0
  109. package/dist/core/PlayerInput.d.ts.map +1 -1
  110. package/dist/core/PlayerInput.js +11 -0
  111. package/dist/core/PlayerInput.js.map +1 -1
  112. package/dist/core/Random.d.ts +14 -5
  113. package/dist/core/Random.d.ts.map +1 -1
  114. package/dist/core/Random.js +14 -5
  115. package/dist/core/Random.js.map +1 -1
  116. package/dist/core/SaveSync.d.ts +17 -14
  117. package/dist/core/SaveSync.d.ts.map +1 -1
  118. package/dist/core/SaveSync.js +35 -31
  119. package/dist/core/SaveSync.js.map +1 -1
  120. package/dist/core/Scene.d.ts +16 -6
  121. package/dist/core/Scene.d.ts.map +1 -1
  122. package/dist/core/Scene.js +18 -6
  123. package/dist/core/Scene.js.map +1 -1
  124. package/dist/core/SceneStack.d.ts +8 -4
  125. package/dist/core/SceneStack.d.ts.map +1 -1
  126. package/dist/core/SceneStack.js +4 -0
  127. package/dist/core/SceneStack.js.map +1 -1
  128. package/dist/core/Stats.d.ts +33 -0
  129. package/dist/core/Stats.d.ts.map +1 -0
  130. package/dist/core/Stats.js +34 -0
  131. package/dist/core/Stats.js.map +1 -0
  132. package/dist/core/Telemetry.d.ts +34 -0
  133. package/dist/core/Telemetry.d.ts.map +1 -0
  134. package/dist/core/Telemetry.js +47 -0
  135. package/dist/core/Telemetry.js.map +1 -0
  136. package/dist/core/index.d.ts +9 -2
  137. package/dist/core/index.d.ts.map +1 -1
  138. package/dist/core/index.js +4 -1
  139. package/dist/core/index.js.map +1 -1
  140. package/dist/index.d.ts +5 -5
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +5 -5
  143. package/dist/index.js.map +1 -1
  144. package/dist/mw_games.global.js +88 -87
  145. package/dist/roguelike/Boss.d.ts +4 -4
  146. package/dist/roguelike/Boss.d.ts.map +1 -1
  147. package/dist/roguelike/Boss.js +6 -6
  148. package/dist/roguelike/Boss.js.map +1 -1
  149. package/dist/roguelike/Combat.d.ts +10 -11
  150. package/dist/roguelike/Combat.d.ts.map +1 -1
  151. package/dist/roguelike/Combat.js +9 -16
  152. package/dist/roguelike/Combat.js.map +1 -1
  153. package/dist/roguelike/ContentRoll.d.ts +43 -0
  154. package/dist/roguelike/ContentRoll.d.ts.map +1 -0
  155. package/dist/roguelike/ContentRoll.js +38 -0
  156. package/dist/roguelike/ContentRoll.js.map +1 -0
  157. package/dist/roguelike/DungeonParity.d.ts +42 -0
  158. package/dist/roguelike/DungeonParity.d.ts.map +1 -0
  159. package/dist/roguelike/DungeonParity.js +63 -0
  160. package/dist/roguelike/DungeonParity.js.map +1 -0
  161. package/dist/roguelike/Features.d.ts +42 -0
  162. package/dist/roguelike/Features.d.ts.map +1 -0
  163. package/dist/roguelike/Features.js +59 -0
  164. package/dist/roguelike/Features.js.map +1 -0
  165. package/dist/roguelike/MonsterAI.js +1 -1
  166. package/dist/roguelike/MonsterAI.js.map +1 -1
  167. package/dist/roguelike/MultiStageAbility.d.ts +43 -0
  168. package/dist/roguelike/MultiStageAbility.d.ts.map +1 -0
  169. package/dist/roguelike/MultiStageAbility.js +60 -0
  170. package/dist/roguelike/MultiStageAbility.js.map +1 -0
  171. package/dist/roguelike/RoomBuilders.d.ts +43 -0
  172. package/dist/roguelike/RoomBuilders.d.ts.map +1 -0
  173. package/dist/roguelike/RoomBuilders.js +40 -0
  174. package/dist/roguelike/RoomBuilders.js.map +1 -0
  175. package/dist/roguelike/Targeting.d.ts +22 -0
  176. package/dist/roguelike/Targeting.d.ts.map +1 -1
  177. package/dist/roguelike/Targeting.js +20 -0
  178. package/dist/roguelike/Targeting.js.map +1 -1
  179. package/dist/roguelike/TriggerTracker.d.ts +36 -0
  180. package/dist/roguelike/TriggerTracker.d.ts.map +1 -0
  181. package/dist/roguelike/TriggerTracker.js +49 -0
  182. package/dist/roguelike/TriggerTracker.js.map +1 -0
  183. package/dist/roguelike/generate.d.ts +49 -0
  184. package/dist/roguelike/generate.d.ts.map +1 -1
  185. package/dist/roguelike/generate.js +38 -10
  186. package/dist/roguelike/generate.js.map +1 -1
  187. package/dist/roguelike/index.d.ts +16 -4
  188. package/dist/roguelike/index.d.ts.map +1 -1
  189. package/dist/roguelike/index.js +8 -2
  190. package/dist/roguelike/index.js.map +1 -1
  191. package/dist/rpg/EventRunner.d.ts +30 -8
  192. package/dist/rpg/EventRunner.d.ts.map +1 -1
  193. package/dist/rpg/EventRunner.js +1 -13
  194. package/dist/rpg/EventRunner.js.map +1 -1
  195. package/dist/rpg/FreeMover.d.ts +2 -2
  196. package/dist/rpg/FreeMover.d.ts.map +1 -1
  197. package/dist/rpg/FreeMover.js +5 -5
  198. package/dist/rpg/FreeMover.js.map +1 -1
  199. package/dist/rpg/GridMover.d.ts +2 -2
  200. package/dist/rpg/GridMover.d.ts.map +1 -1
  201. package/dist/rpg/GridMover.js +5 -5
  202. package/dist/rpg/GridMover.js.map +1 -1
  203. package/dist/rpg/MovableSprite.d.ts +25 -0
  204. package/dist/rpg/MovableSprite.d.ts.map +1 -0
  205. package/dist/rpg/MovableSprite.js +2 -0
  206. package/dist/rpg/MovableSprite.js.map +1 -0
  207. package/dist/rpg/Quest.d.ts +6 -1
  208. package/dist/rpg/Quest.d.ts.map +1 -1
  209. package/dist/rpg/Quest.js +6 -1
  210. package/dist/rpg/Quest.js.map +1 -1
  211. package/dist/rpg/automap.d.ts +24 -2
  212. package/dist/rpg/automap.d.ts.map +1 -1
  213. package/dist/rpg/automap.js +9 -1
  214. package/dist/rpg/automap.js.map +1 -1
  215. package/dist/rpg/index.d.ts +4 -4
  216. package/dist/rpg/index.d.ts.map +1 -1
  217. package/dist/rpg/index.js +1 -1
  218. package/dist/rpg/index.js.map +1 -1
  219. package/dist/simulation/Scenario.d.ts +29 -0
  220. package/dist/simulation/Scenario.d.ts.map +1 -0
  221. package/dist/simulation/Scenario.js +25 -0
  222. package/dist/simulation/Scenario.js.map +1 -0
  223. package/dist/simulation/Turns.d.ts +29 -0
  224. package/dist/simulation/Turns.d.ts.map +1 -0
  225. package/dist/simulation/Turns.js +30 -0
  226. package/dist/simulation/Turns.js.map +1 -0
  227. package/dist/simulation/index.d.ts +5 -0
  228. package/dist/simulation/index.d.ts.map +1 -0
  229. package/dist/simulation/index.js +3 -0
  230. package/dist/simulation/index.js.map +1 -0
  231. package/dist/three-d/Character3D.d.ts +26 -1
  232. package/dist/three-d/Character3D.d.ts.map +1 -1
  233. package/dist/three-d/Character3D.js +31 -14
  234. package/dist/three-d/Character3D.js.map +1 -1
  235. package/dist/three-d/Collision3D.d.ts +63 -0
  236. package/dist/three-d/Collision3D.d.ts.map +1 -0
  237. package/dist/three-d/Collision3D.js +75 -0
  238. package/dist/three-d/Collision3D.js.map +1 -0
  239. package/dist/three-d/Models.js +1 -1
  240. package/dist/three-d/index.d.ts +3 -1
  241. package/dist/three-d/index.d.ts.map +1 -1
  242. package/dist/three-d/index.js +1 -0
  243. package/dist/three-d/index.js.map +1 -1
  244. package/dist/{core → two-d}/Game.d.ts +7 -6
  245. package/dist/two-d/Game.d.ts.map +1 -0
  246. package/dist/{core → two-d}/Game.js +3 -3
  247. package/dist/two-d/Game.js.map +1 -0
  248. package/dist/two-d/Scene2D.d.ts +19 -0
  249. package/dist/two-d/Scene2D.d.ts.map +1 -0
  250. package/dist/two-d/Scene2D.js +23 -0
  251. package/dist/two-d/Scene2D.js.map +1 -0
  252. package/dist/two-d/index.d.ts +20 -0
  253. package/dist/two-d/index.d.ts.map +1 -0
  254. package/dist/two-d/index.js +18 -0
  255. package/dist/two-d/index.js.map +1 -0
  256. package/dist/two-d/render/ActorAnimator.d.ts.map +1 -0
  257. package/dist/two-d/render/ActorAnimator.js.map +1 -0
  258. package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -0
  259. package/dist/two-d/render/AnimatedSprite.js.map +1 -0
  260. package/dist/two-d/render/Autotile.d.ts.map +1 -0
  261. package/dist/two-d/render/Autotile.js.map +1 -0
  262. package/dist/two-d/render/Camera.d.ts.map +1 -0
  263. package/dist/{render → two-d/render}/Camera.js +2 -2
  264. package/dist/two-d/render/Camera.js.map +1 -0
  265. package/dist/two-d/render/Capabilities.d.ts.map +1 -0
  266. package/dist/two-d/render/Capabilities.js.map +1 -0
  267. package/dist/two-d/render/ColorBlindness.d.ts.map +1 -0
  268. package/dist/two-d/render/ColorBlindness.js.map +1 -0
  269. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -0
  270. package/dist/{render → two-d/render}/ColorTransformBatcher.js +3 -2
  271. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -0
  272. package/dist/two-d/render/LayeredSprite.d.ts.map +1 -0
  273. package/dist/two-d/render/LayeredSprite.js.map +1 -0
  274. package/dist/two-d/render/Minimap.d.ts.map +1 -0
  275. package/dist/{render → two-d/render}/Minimap.js +1 -1
  276. package/dist/two-d/render/Minimap.js.map +1 -0
  277. package/dist/two-d/render/Particles.d.ts +109 -0
  278. package/dist/two-d/render/Particles.d.ts.map +1 -0
  279. package/dist/two-d/render/Particles.js +178 -0
  280. package/dist/two-d/render/Particles.js.map +1 -0
  281. package/dist/two-d/render/Projectile.d.ts.map +1 -0
  282. package/dist/two-d/render/Projectile.js.map +1 -0
  283. package/dist/two-d/render/ScreenEffects.d.ts +71 -0
  284. package/dist/two-d/render/ScreenEffects.d.ts.map +1 -0
  285. package/dist/two-d/render/ScreenEffects.js +133 -0
  286. package/dist/two-d/render/ScreenEffects.js.map +1 -0
  287. package/dist/two-d/render/SpriteSheet.d.ts.map +1 -0
  288. package/dist/{render → two-d/render}/SpriteSheet.js +1 -1
  289. package/dist/two-d/render/SpriteSheet.js.map +1 -0
  290. package/dist/two-d/render/StatusVisuals.d.ts +46 -0
  291. package/dist/two-d/render/StatusVisuals.d.ts.map +1 -0
  292. package/dist/two-d/render/StatusVisuals.js +48 -0
  293. package/dist/two-d/render/StatusVisuals.js.map +1 -0
  294. package/dist/two-d/render/TileMap.d.ts.map +1 -0
  295. package/dist/{render → two-d/render}/TileMap.js +1 -1
  296. package/dist/two-d/render/TileMap.js.map +1 -0
  297. package/dist/{rpg → two-d/render}/TiledMap.d.ts +2 -2
  298. package/dist/two-d/render/TiledMap.d.ts.map +1 -0
  299. package/dist/{rpg → two-d/render}/TiledMap.js +2 -2
  300. package/dist/two-d/render/TiledMap.js.map +1 -0
  301. package/dist/two-d/render/TintedSprite.d.ts.map +1 -0
  302. package/dist/two-d/render/TintedSprite.js.map +1 -0
  303. package/dist/two-d/render/Viewport.d.ts.map +1 -0
  304. package/dist/two-d/render/Viewport.js.map +1 -0
  305. package/dist/{render → two-d/render}/index.d.ts +8 -0
  306. package/dist/two-d/render/index.d.ts.map +1 -0
  307. package/dist/{render → two-d/render}/index.js +4 -0
  308. package/dist/two-d/render/index.js.map +1 -0
  309. package/dist/two-d/stage/DialogueStage.d.ts.map +1 -0
  310. package/dist/{stage → two-d/stage}/DialogueStage.js +1 -1
  311. package/dist/two-d/stage/DialogueStage.js.map +1 -0
  312. package/dist/two-d/stage/index.d.ts.map +1 -0
  313. package/dist/two-d/stage/index.js.map +1 -0
  314. package/dist/two-d/stage/script.d.ts.map +1 -0
  315. package/dist/{stage → two-d/stage}/script.js +0 -0
  316. package/dist/two-d/stage/script.js.map +1 -0
  317. package/dist/two-d/stage/twee.d.ts.map +1 -0
  318. package/dist/two-d/stage/twee.js.map +1 -0
  319. package/dist/two-d/ui/Bar.d.ts.map +1 -0
  320. package/dist/two-d/ui/Bar.js.map +1 -0
  321. package/dist/two-d/ui/BitmapLabel.d.ts.map +1 -0
  322. package/dist/two-d/ui/BitmapLabel.js.map +1 -0
  323. package/dist/{ui → two-d/ui}/Button.d.ts +25 -2
  324. package/dist/two-d/ui/Button.d.ts.map +1 -0
  325. package/dist/{ui → two-d/ui}/Button.js +35 -9
  326. package/dist/two-d/ui/Button.js.map +1 -0
  327. package/dist/two-d/ui/EventDialogue.d.ts +23 -0
  328. package/dist/two-d/ui/EventDialogue.d.ts.map +1 -0
  329. package/dist/two-d/ui/EventDialogue.js +27 -0
  330. package/dist/two-d/ui/EventDialogue.js.map +1 -0
  331. package/dist/two-d/ui/FloatingText.d.ts.map +1 -0
  332. package/dist/two-d/ui/FloatingText.js.map +1 -0
  333. package/dist/{ui → two-d/ui}/HelpScreen.d.ts +1 -1
  334. package/dist/two-d/ui/HelpScreen.d.ts.map +1 -0
  335. package/dist/two-d/ui/HelpScreen.js.map +1 -0
  336. package/dist/{ui → two-d/ui}/IconGrid.d.ts +1 -1
  337. package/dist/two-d/ui/IconGrid.d.ts.map +1 -0
  338. package/dist/two-d/ui/IconGrid.js.map +1 -0
  339. package/dist/{ui → two-d/ui}/Label.d.ts +8 -0
  340. package/dist/two-d/ui/Label.d.ts.map +1 -0
  341. package/dist/{ui → two-d/ui}/Label.js +3 -0
  342. package/dist/two-d/ui/Label.js.map +1 -0
  343. package/dist/{ui → two-d/ui}/ListView.d.ts +1 -1
  344. package/dist/two-d/ui/ListView.d.ts.map +1 -0
  345. package/dist/two-d/ui/ListView.js.map +1 -0
  346. package/dist/{ui → two-d/ui}/LoadingScreen.d.ts +1 -1
  347. package/dist/two-d/ui/LoadingScreen.d.ts.map +1 -0
  348. package/dist/two-d/ui/LoadingScreen.js.map +1 -0
  349. package/dist/{ui → two-d/ui}/MessageBox.d.ts +1 -1
  350. package/dist/two-d/ui/MessageBox.d.ts.map +1 -0
  351. package/dist/two-d/ui/MessageBox.js.map +1 -0
  352. package/dist/two-d/ui/NinePatch.d.ts.map +1 -0
  353. package/dist/two-d/ui/NinePatch.js.map +1 -0
  354. package/dist/{ui → two-d/ui}/RebindScreen.d.ts +1 -1
  355. package/dist/two-d/ui/RebindScreen.d.ts.map +1 -0
  356. package/dist/{ui → two-d/ui}/RebindScreen.js +1 -1
  357. package/dist/two-d/ui/RebindScreen.js.map +1 -0
  358. package/dist/two-d/ui/StatsScreen.d.ts +25 -0
  359. package/dist/two-d/ui/StatsScreen.d.ts.map +1 -0
  360. package/dist/two-d/ui/StatsScreen.js +27 -0
  361. package/dist/two-d/ui/StatsScreen.js.map +1 -0
  362. package/dist/two-d/ui/Toast.d.ts.map +1 -0
  363. package/dist/{ui → two-d/ui}/Toast.js +1 -1
  364. package/dist/two-d/ui/Toast.js.map +1 -0
  365. package/dist/two-d/ui/Tooltip.d.ts +94 -0
  366. package/dist/two-d/ui/Tooltip.d.ts.map +1 -0
  367. package/dist/two-d/ui/Tooltip.js +149 -0
  368. package/dist/two-d/ui/Tooltip.js.map +1 -0
  369. package/dist/two-d/ui/VerticalLabel.d.ts.map +1 -0
  370. package/dist/two-d/ui/VerticalLabel.js.map +1 -0
  371. package/dist/{ui → two-d/ui}/Window.d.ts +2 -2
  372. package/dist/two-d/ui/Window.d.ts.map +1 -0
  373. package/dist/{ui → two-d/ui}/Window.js +1 -1
  374. package/dist/two-d/ui/Window.js.map +1 -0
  375. package/dist/two-d/ui/WindowStack.d.ts.map +1 -0
  376. package/dist/{ui → two-d/ui}/WindowStack.js +1 -1
  377. package/dist/two-d/ui/WindowStack.js.map +1 -0
  378. package/dist/{ui → two-d/ui}/index.d.ts +7 -1
  379. package/dist/two-d/ui/index.d.ts.map +1 -0
  380. package/dist/{ui → two-d/ui}/index.js +3 -0
  381. package/dist/two-d/ui/index.js.map +1 -0
  382. package/dist/{ui → two-d/ui}/theme.d.ts +2 -2
  383. package/dist/two-d/ui/theme.d.ts.map +1 -0
  384. package/dist/{ui → two-d/ui}/theme.js +1 -1
  385. package/dist/two-d/ui/theme.js.map +1 -0
  386. package/dist/version.d.ts +1 -1
  387. package/dist/version.js +1 -1
  388. package/dist/world/Encounters.js +1 -1
  389. package/dist/world/Encounters.js.map +1 -1
  390. package/dist/world/Environment.d.ts +12 -3
  391. package/dist/world/Environment.d.ts.map +1 -1
  392. package/dist/world/Environment.js +18 -9
  393. package/dist/world/Environment.js.map +1 -1
  394. package/package.json +138 -23
  395. package/dist/core/Game.d.ts.map +0 -1
  396. package/dist/core/Game.js.map +0 -1
  397. package/dist/render/ActorAnimator.d.ts.map +0 -1
  398. package/dist/render/ActorAnimator.js.map +0 -1
  399. package/dist/render/AnimatedSprite.d.ts.map +0 -1
  400. package/dist/render/AnimatedSprite.js.map +0 -1
  401. package/dist/render/Autotile.d.ts.map +0 -1
  402. package/dist/render/Autotile.js.map +0 -1
  403. package/dist/render/Camera.d.ts.map +0 -1
  404. package/dist/render/Camera.js.map +0 -1
  405. package/dist/render/Capabilities.d.ts.map +0 -1
  406. package/dist/render/Capabilities.js.map +0 -1
  407. package/dist/render/ColorBlindness.d.ts.map +0 -1
  408. package/dist/render/ColorBlindness.js.map +0 -1
  409. package/dist/render/ColorTransformBatcher.d.ts.map +0 -1
  410. package/dist/render/ColorTransformBatcher.js.map +0 -1
  411. package/dist/render/LayeredSprite.d.ts.map +0 -1
  412. package/dist/render/LayeredSprite.js.map +0 -1
  413. package/dist/render/Minimap.d.ts.map +0 -1
  414. package/dist/render/Minimap.js.map +0 -1
  415. package/dist/render/Projectile.d.ts.map +0 -1
  416. package/dist/render/Projectile.js.map +0 -1
  417. package/dist/render/SpriteSheet.d.ts.map +0 -1
  418. package/dist/render/SpriteSheet.js.map +0 -1
  419. package/dist/render/TileMap.d.ts.map +0 -1
  420. package/dist/render/TileMap.js.map +0 -1
  421. package/dist/render/TintedSprite.d.ts.map +0 -1
  422. package/dist/render/TintedSprite.js.map +0 -1
  423. package/dist/render/Viewport.d.ts.map +0 -1
  424. package/dist/render/Viewport.js.map +0 -1
  425. package/dist/render/index.d.ts.map +0 -1
  426. package/dist/render/index.js.map +0 -1
  427. package/dist/rpg/TiledMap.d.ts.map +0 -1
  428. package/dist/rpg/TiledMap.js.map +0 -1
  429. package/dist/stage/DialogueStage.d.ts.map +0 -1
  430. package/dist/stage/DialogueStage.js.map +0 -1
  431. package/dist/stage/index.d.ts.map +0 -1
  432. package/dist/stage/index.js.map +0 -1
  433. package/dist/stage/script.d.ts.map +0 -1
  434. package/dist/stage/script.js.map +0 -1
  435. package/dist/stage/twee.d.ts.map +0 -1
  436. package/dist/stage/twee.js.map +0 -1
  437. package/dist/ui/Bar.d.ts.map +0 -1
  438. package/dist/ui/Bar.js.map +0 -1
  439. package/dist/ui/BitmapLabel.d.ts.map +0 -1
  440. package/dist/ui/BitmapLabel.js.map +0 -1
  441. package/dist/ui/Button.d.ts.map +0 -1
  442. package/dist/ui/Button.js.map +0 -1
  443. package/dist/ui/FloatingText.d.ts.map +0 -1
  444. package/dist/ui/FloatingText.js.map +0 -1
  445. package/dist/ui/HelpScreen.d.ts.map +0 -1
  446. package/dist/ui/HelpScreen.js.map +0 -1
  447. package/dist/ui/IconGrid.d.ts.map +0 -1
  448. package/dist/ui/IconGrid.js.map +0 -1
  449. package/dist/ui/Label.d.ts.map +0 -1
  450. package/dist/ui/Label.js.map +0 -1
  451. package/dist/ui/ListView.d.ts.map +0 -1
  452. package/dist/ui/ListView.js.map +0 -1
  453. package/dist/ui/LoadingScreen.d.ts.map +0 -1
  454. package/dist/ui/LoadingScreen.js.map +0 -1
  455. package/dist/ui/MessageBox.d.ts.map +0 -1
  456. package/dist/ui/MessageBox.js.map +0 -1
  457. package/dist/ui/NinePatch.d.ts.map +0 -1
  458. package/dist/ui/NinePatch.js.map +0 -1
  459. package/dist/ui/RebindScreen.d.ts.map +0 -1
  460. package/dist/ui/RebindScreen.js.map +0 -1
  461. package/dist/ui/Toast.d.ts.map +0 -1
  462. package/dist/ui/Toast.js.map +0 -1
  463. package/dist/ui/VerticalLabel.d.ts.map +0 -1
  464. package/dist/ui/VerticalLabel.js.map +0 -1
  465. package/dist/ui/Window.d.ts.map +0 -1
  466. package/dist/ui/Window.js.map +0 -1
  467. package/dist/ui/WindowStack.d.ts.map +0 -1
  468. package/dist/ui/WindowStack.js.map +0 -1
  469. package/dist/ui/index.d.ts.map +0 -1
  470. package/dist/ui/index.js.map +0 -1
  471. package/dist/ui/theme.d.ts.map +0 -1
  472. package/dist/ui/theme.js.map +0 -1
  473. /package/dist/{render → two-d/render}/ActorAnimator.d.ts +0 -0
  474. /package/dist/{render → two-d/render}/ActorAnimator.js +0 -0
  475. /package/dist/{render → two-d/render}/AnimatedSprite.d.ts +0 -0
  476. /package/dist/{render → two-d/render}/AnimatedSprite.js +0 -0
  477. /package/dist/{render → two-d/render}/Autotile.d.ts +0 -0
  478. /package/dist/{render → two-d/render}/Autotile.js +0 -0
  479. /package/dist/{render → two-d/render}/Camera.d.ts +0 -0
  480. /package/dist/{render → two-d/render}/Capabilities.d.ts +0 -0
  481. /package/dist/{render → two-d/render}/Capabilities.js +0 -0
  482. /package/dist/{render → two-d/render}/ColorBlindness.d.ts +0 -0
  483. /package/dist/{render → two-d/render}/ColorBlindness.js +0 -0
  484. /package/dist/{render → two-d/render}/ColorTransformBatcher.d.ts +0 -0
  485. /package/dist/{render → two-d/render}/LayeredSprite.d.ts +0 -0
  486. /package/dist/{render → two-d/render}/LayeredSprite.js +0 -0
  487. /package/dist/{render → two-d/render}/Minimap.d.ts +0 -0
  488. /package/dist/{render → two-d/render}/Projectile.d.ts +0 -0
  489. /package/dist/{render → two-d/render}/Projectile.js +0 -0
  490. /package/dist/{render → two-d/render}/SpriteSheet.d.ts +0 -0
  491. /package/dist/{render → two-d/render}/TileMap.d.ts +0 -0
  492. /package/dist/{render → two-d/render}/TintedSprite.d.ts +0 -0
  493. /package/dist/{render → two-d/render}/TintedSprite.js +0 -0
  494. /package/dist/{render → two-d/render}/Viewport.d.ts +0 -0
  495. /package/dist/{render → two-d/render}/Viewport.js +0 -0
  496. /package/dist/{stage → two-d/stage}/DialogueStage.d.ts +0 -0
  497. /package/dist/{stage → two-d/stage}/index.d.ts +0 -0
  498. /package/dist/{stage → two-d/stage}/index.js +0 -0
  499. /package/dist/{stage → two-d/stage}/script.d.ts +0 -0
  500. /package/dist/{stage → two-d/stage}/twee.d.ts +0 -0
  501. /package/dist/{stage → two-d/stage}/twee.js +0 -0
  502. /package/dist/{ui → two-d/ui}/Bar.d.ts +0 -0
  503. /package/dist/{ui → two-d/ui}/Bar.js +0 -0
  504. /package/dist/{ui → two-d/ui}/BitmapLabel.d.ts +0 -0
  505. /package/dist/{ui → two-d/ui}/BitmapLabel.js +0 -0
  506. /package/dist/{ui → two-d/ui}/FloatingText.d.ts +0 -0
  507. /package/dist/{ui → two-d/ui}/FloatingText.js +0 -0
  508. /package/dist/{ui → two-d/ui}/HelpScreen.js +0 -0
  509. /package/dist/{ui → two-d/ui}/IconGrid.js +0 -0
  510. /package/dist/{ui → two-d/ui}/ListView.js +0 -0
  511. /package/dist/{ui → two-d/ui}/LoadingScreen.js +0 -0
  512. /package/dist/{ui → two-d/ui}/MessageBox.js +0 -0
  513. /package/dist/{ui → two-d/ui}/NinePatch.d.ts +0 -0
  514. /package/dist/{ui → two-d/ui}/NinePatch.js +0 -0
  515. /package/dist/{ui → two-d/ui}/Toast.d.ts +0 -0
  516. /package/dist/{ui → two-d/ui}/VerticalLabel.d.ts +0 -0
  517. /package/dist/{ui → two-d/ui}/VerticalLabel.js +0 -0
  518. /package/dist/{ui → two-d/ui}/WindowStack.d.ts +0 -0
@@ -94,6 +94,47 @@ export interface RumbleOptions {
94
94
  * game reaching for "juice" should not have to feature-test this itself.
95
95
  */
96
96
  export declare function rumble(padIndex: number, options: RumbleOptions, pads?: readonly (Gamepad | null)[]): void;
97
+ /** the pseudo key code for an on-screen touch control identified by `id` - bind it the same way a `KeyboardEvent.code` is bound */
98
+ export declare function touchCode(id: string): string;
99
+ /** binds this player's own action to an on-screen touch control, the same way `bindButton` wires up a gamepad button - call once during setup, then toggle it with `pressTouch`/`releaseTouch` */
100
+ export declare function bindTouch(action: Action, id?: string): void;
101
+ /**
102
+ * Presses an on-screen touch control bound with `bindTouch`, e.g. from a `Button`'s
103
+ * `onPress` - shares the same held/`justPressed` state a real key does, so holding a virtual
104
+ * d-pad button repeats a move the same way holding an arrow key does, rather than firing
105
+ * once per tap the way `Button.onClick` alone would.
106
+ */
107
+ export declare function pressTouch(id: string): void;
108
+ export declare function releaseTouch(id: string): void;
109
+ /** where a swipe's own 8 directions and its short in-place tap map to, defaulting to this project's own default movement/wait bindings */
110
+ export interface SwipeActions {
111
+ up?: Action;
112
+ down?: Action;
113
+ left?: Action;
114
+ right?: Action;
115
+ upLeft?: Action;
116
+ upRight?: Action;
117
+ downLeft?: Action;
118
+ downRight?: Action;
119
+ /** dispatched for a touch that moved less than `minDistance`; omit to ignore taps */
120
+ tap?: Action;
121
+ }
122
+ export interface SwipeOptions {
123
+ actions?: SwipeActions;
124
+ /** minimum drag distance, in CSS pixels, before a touch counts as a swipe rather than a tap; default 24 */
125
+ minDistance?: number;
126
+ }
127
+ /**
128
+ * Turns a one-finger drag on `target` into a single directional action pulse - press
129
+ * immediately followed by release, the same shape a quick key tap produces - resolved to one
130
+ * of 8 directions by angle, or to `actions.tap` for a touch that barely moved. Movement by
131
+ * swipe rather than a held virtual d-pad is the more common mobile roguelike control scheme
132
+ * (a swipe per tile, not a held direction), so this dispatches one pulse per gesture rather
133
+ * than holding an action down for the drag's duration.
134
+ *
135
+ * Returns a function that removes the listeners this attached.
136
+ */
137
+ export declare function attachSwipe(target: EventTarget, options?: SwipeOptions): () => void;
97
138
  export declare function attach(target?: EventTarget): void;
98
139
  export declare function detach(target?: EventTarget): void;
99
140
  //# sourceMappingURL=Input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/core/Input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/core/Input.ts"],"names":[],"mappings":"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"}
@@ -103,6 +103,30 @@ function actionsFor(code) {
103
103
  }
104
104
  return out;
105
105
  }
106
+ /**
107
+ * Presses a held code - a key, a gamepad button/axis, or a touch control - fanning out to
108
+ * every action currently bound to it. Shared by `handleKeyDown`, `pollGamepads`, and
109
+ * `pressTouch` rather than each repeating the same "add to `held`, mark every bound action
110
+ * pressed this frame, dispatch `onAction`" sequence, since none of them differ in anything
111
+ * but where `code` came from.
112
+ */
113
+ function pressCode(code) {
114
+ if (held.has(code))
115
+ return;
116
+ held.add(code);
117
+ for (const action of actionsFor(code)) {
118
+ pressedThisFrame.add(action);
119
+ onAction.dispatch(action);
120
+ }
121
+ }
122
+ /** the release counterpart to `pressCode` */
123
+ function releaseCode(code) {
124
+ if (!held.has(code))
125
+ return;
126
+ held.delete(code);
127
+ for (const action of actionsFor(code))
128
+ releasedThisFrame.add(action);
129
+ }
106
130
  /** true for as long as the key is held */
107
131
  export function isDown(action) {
108
132
  const keys = bindings.get(action);
@@ -137,18 +161,11 @@ function handleKeyDown(event) {
137
161
  onKey.dispatch(event);
138
162
  return;
139
163
  }
140
- held.add(event.code);
141
- for (const action of actionsFor(event.code)) {
142
- pressedThisFrame.add(action);
143
- onAction.dispatch(action);
144
- }
164
+ pressCode(event.code);
145
165
  onKey.dispatch(event);
146
166
  }
147
167
  function handleKeyUp(event) {
148
- held.delete(event.code);
149
- for (const action of actionsFor(event.code)) {
150
- releasedThisFrame.add(action);
151
- }
168
+ releaseCode(event.code);
152
169
  }
153
170
  function handleBlur() {
154
171
  //a key held while the window loses focus never sends its keyup, and would stay stuck
@@ -208,15 +225,8 @@ pads = typeof navigator?.getGamepads === 'function' ? navigator.getGamepads() :
208
225
  gamepadDown.add(gamepadAxisCode(pad.index, i, -1));
209
226
  }
210
227
  }
211
- for (const code of gamepadDown) {
212
- if (held.has(code))
213
- continue;
214
- held.add(code);
215
- for (const action of actionsFor(code)) {
216
- pressedThisFrame.add(action);
217
- onAction.dispatch(action);
218
- }
219
- }
228
+ for (const code of gamepadDown)
229
+ pressCode(code);
220
230
  //a real KeyboardEvent.code never starts with "Gamepad", so this only ever releases codes
221
231
  //pollGamepads itself could have added, never a key still held from handleKeyDown; safe to
222
232
  //delete the current entry mid-iteration, since Set iteration order is insertion order and
@@ -224,9 +234,7 @@ pads = typeof navigator?.getGamepads === 'function' ? navigator.getGamepads() :
224
234
  for (const code of held) {
225
235
  if (gamepadDown.has(code) || !code.startsWith('Gamepad'))
226
236
  continue;
227
- held.delete(code);
228
- for (const action of actionsFor(code))
229
- releasedThisFrame.add(action);
237
+ releaseCode(code);
230
238
  }
231
239
  }
232
240
  /**
@@ -243,6 +251,103 @@ export function rumble(padIndex, options, pads = typeof navigator?.getGamepads =
243
251
  strongMagnitude: options.strongMagnitude ?? 1,
244
252
  });
245
253
  }
254
+ //---- touch input ----
255
+ //
256
+ //a touchscreen phone has no keyboard and, unless a gamepad is paired, no Gamepad API input
257
+ //either - the gap item 110's own Capacitor integration named as "untested, not unconsidered"
258
+ //once `Button`'s existing pointer support is set aside. This follows the exact same pattern
259
+ //`bindButton`/`pollGamepads` already established: bind a synthetic code to an action once,
260
+ //then flip that one code's held state - `isDown`/`justPressed`/`justReleased` already work
261
+ //unmodified, since none of them know or care whether a held code came from a key, a pad, or
262
+ //an on-screen control.
263
+ /** the pseudo key code for an on-screen touch control identified by `id` - bind it the same way a `KeyboardEvent.code` is bound */
264
+ export function touchCode(id) {
265
+ return `Touch:${id}`;
266
+ }
267
+ /** binds this player's own action to an on-screen touch control, the same way `bindButton` wires up a gamepad button - call once during setup, then toggle it with `pressTouch`/`releaseTouch` */
268
+ export function bindTouch(action, id = action) {
269
+ addBindings(action, [touchCode(id)]);
270
+ }
271
+ /**
272
+ * Presses an on-screen touch control bound with `bindTouch`, e.g. from a `Button`'s
273
+ * `onPress` - shares the same held/`justPressed` state a real key does, so holding a virtual
274
+ * d-pad button repeats a move the same way holding an arrow key does, rather than firing
275
+ * once per tap the way `Button.onClick` alone would.
276
+ */
277
+ export function pressTouch(id) {
278
+ pressCode(touchCode(id));
279
+ }
280
+ export function releaseTouch(id) {
281
+ releaseCode(touchCode(id));
282
+ }
283
+ const DEFAULT_SWIPE_ACTIONS = {
284
+ up: 'up', down: 'down', left: 'left', right: 'right',
285
+ upLeft: 'upLeft', upRight: 'upRight', downLeft: 'downLeft', downRight: 'downRight',
286
+ };
287
+ //screen-space octant order starting at 0 radians (right) and going clockwise (since screen
288
+ //y grows downward) - index matches `Math.round(angle / (PI/4))` folded into 0..7 by attachSwipe
289
+ const SWIPE_OCTANTS = [
290
+ 'right', 'downRight', 'down', 'downLeft', 'left', 'upLeft', 'up', 'upRight',
291
+ ];
292
+ /**
293
+ * Turns a one-finger drag on `target` into a single directional action pulse - press
294
+ * immediately followed by release, the same shape a quick key tap produces - resolved to one
295
+ * of 8 directions by angle, or to `actions.tap` for a touch that barely moved. Movement by
296
+ * swipe rather than a held virtual d-pad is the more common mobile roguelike control scheme
297
+ * (a swipe per tile, not a held direction), so this dispatches one pulse per gesture rather
298
+ * than holding an action down for the drag's duration.
299
+ *
300
+ * Returns a function that removes the listeners this attached.
301
+ */
302
+ export function attachSwipe(target, options = {}) {
303
+ const actions = { ...DEFAULT_SWIPE_ACTIONS, ...options.actions };
304
+ const minDistance = options.minDistance ?? 24;
305
+ //bound once up front, the same way a game calling bindButton itself would - attachSwipe
306
+ //is this project's own convenience wrapper over that same primitive, not a special case
307
+ for (const id of [...SWIPE_OCTANTS, 'tap']) {
308
+ const action = actions[id];
309
+ if (action)
310
+ bindTouch(action, `swipe:${id}`);
311
+ }
312
+ let tracking = false;
313
+ let pointerId = -1;
314
+ let startX = 0;
315
+ let startY = 0;
316
+ function pulse(id) {
317
+ pressTouch(`swipe:${id}`);
318
+ releaseTouch(`swipe:${id}`);
319
+ }
320
+ function onPointerDown(event) {
321
+ tracking = true;
322
+ pointerId = event.pointerId;
323
+ startX = event.clientX;
324
+ startY = event.clientY;
325
+ }
326
+ function onPointerUp(event) {
327
+ if (!tracking || event.pointerId !== pointerId)
328
+ return;
329
+ tracking = false;
330
+ const dx = event.clientX - startX;
331
+ const dy = event.clientY - startY;
332
+ if (Math.hypot(dx, dy) < minDistance) {
333
+ if (actions.tap)
334
+ pulse('tap');
335
+ return;
336
+ }
337
+ const octant = (Math.round(Math.atan2(dy, dx) / (Math.PI / 4)) % 8 + 8) % 8;
338
+ const id = SWIPE_OCTANTS[octant];
339
+ if (actions[id])
340
+ pulse(id);
341
+ }
342
+ target.addEventListener('pointerdown', onPointerDown);
343
+ target.addEventListener('pointerup', onPointerUp);
344
+ target.addEventListener('pointercancel', onPointerUp);
345
+ return () => {
346
+ target.removeEventListener('pointerdown', onPointerDown);
347
+ target.removeEventListener('pointerup', onPointerUp);
348
+ target.removeEventListener('pointercancel', onPointerUp);
349
+ };
350
+ }
246
351
  export function attach(target = window) {
247
352
  if (attached)
248
353
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/core/Input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/core/Input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { Signal } from './Signal.ts';
2
+ /** the subset of the DOM/Node `WebSocket` this needs - injectable so a test never opens a real socket */
3
+ export interface WebSocketLike {
4
+ readyState: number;
5
+ send(data: string): void;
6
+ close(): void;
7
+ onopen: ((event: unknown) => void) | null;
8
+ onclose: ((event: unknown) => void) | null;
9
+ onerror: ((event: unknown) => void) | null;
10
+ onmessage: ((event: {
11
+ data: string;
12
+ }) => void) | null;
13
+ }
14
+ export interface LockstepClientOptions {
15
+ url: string;
16
+ /** defaults to the global `WebSocket`; inject a fake in tests, or `ws`'s own client in Node */
17
+ create?: (url: string) => WebSocketLike;
18
+ }
19
+ export interface TickEvent {
20
+ tick: number;
21
+ /** this room's every client id mapped to its input for `tick`, or `null` if it missed the deadline */
22
+ inputs: Record<string, unknown>;
23
+ }
24
+ /**
25
+ * A client for this project's own reference lockstep server (`tools/multiplayer-server.mjs`):
26
+ * the transport, identity, and tick-authority piece item 129 asked for, without `mwg`
27
+ * inventing a full prediction/rollback netcode a real game would likely want to replace
28
+ * anyway. Every connected client submits at most one input per tick; the server broadcasts a
29
+ * `tick` message once every client in its room has submitted for that tick, or once a
30
+ * configured timeout elapses, substituting `null` for whoever is still missing - lockstep,
31
+ * the model turn-driven and RTS-shaped games have used for this for decades, chosen because
32
+ * it needs no client-side prediction to already be correct. A game wanting prediction or
33
+ * interpolation on top of this still can: `onTick` hands over the same ordered, authoritative
34
+ * input stream a prediction layer would reconcile against.
35
+ *
36
+ * This is deliberately the only network surface in `mwg` that assumes a server exists rather
37
+ * than a game's own endpoint - `FeedbackClient`/`NewsClient`/`SaveSyncClient` all assume the
38
+ * opposite, a one-shot request/response a game points at its own backend. Real-time
39
+ * multiplayer has no one-shot shape to hide a server behind, which is why `mwg` ships a
40
+ * reference one (`tools/multiplayer-server.mjs`) rather than assuming a game brings its own,
41
+ * the same reasoning that decided this the moment the item was sized.
42
+ */
43
+ export declare class LockstepClient {
44
+ readonly onWelcome: Signal<{
45
+ id: string;
46
+ }>;
47
+ readonly onTick: Signal<TickEvent>;
48
+ readonly onClose: Signal<void>;
49
+ private socket;
50
+ private readonly url;
51
+ private readonly createSocket;
52
+ private _id;
53
+ constructor(options: LockstepClientOptions);
54
+ /** this client's own id, assigned by the server's `welcome` message; `null` before it arrives */
55
+ get id(): string | null;
56
+ get connected(): boolean;
57
+ connect(): void;
58
+ /** submits this client's input for the current tick; a no-op before the connection is open */
59
+ submitInput(payload: unknown): void;
60
+ close(): void;
61
+ private handleMessage;
62
+ }
63
+ //# sourceMappingURL=Multiplayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Multiplayer.d.ts","sourceRoot":"","sources":["../../src/core/Multiplayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,yGAAyG;AACzG,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACtD;AAID,MAAM,WAAW,qBAAqB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,+FAA+F;IAC/F,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,CAAC;CACxC;AAED,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,sGAAsG;IACtG,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;IAC1B,QAAQ,CAAC,SAAS;YAAoB,MAAM;OAAM;IAClD,QAAQ,CAAC,MAAM,oBAA2B;IAC1C,QAAQ,CAAC,OAAO,eAAsB;IAEtC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,GAAG,CAAuB;IAElC,YAAY,OAAO,EAAE,qBAAqB,EAIzC;IAED,iGAAiG;IACjG,IAAI,EAAE,IAAI,MAAM,GAAG,IAAI,CAEtB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,OAAO,IAAI,IAAI,CAUd;IAED,8FAA8F;IAC9F,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGlC;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,OAAO,CAAC,aAAa;CASrB"}
@@ -0,0 +1,73 @@
1
+ import { Signal } from './Signal.js';
2
+ const OPEN = 1; //WebSocket.OPEN, kept as a literal so this file needs no DOM/Node WebSocket type import
3
+ /**
4
+ * A client for this project's own reference lockstep server (`tools/multiplayer-server.mjs`):
5
+ * the transport, identity, and tick-authority piece item 129 asked for, without `mwg`
6
+ * inventing a full prediction/rollback netcode a real game would likely want to replace
7
+ * anyway. Every connected client submits at most one input per tick; the server broadcasts a
8
+ * `tick` message once every client in its room has submitted for that tick, or once a
9
+ * configured timeout elapses, substituting `null` for whoever is still missing - lockstep,
10
+ * the model turn-driven and RTS-shaped games have used for this for decades, chosen because
11
+ * it needs no client-side prediction to already be correct. A game wanting prediction or
12
+ * interpolation on top of this still can: `onTick` hands over the same ordered, authoritative
13
+ * input stream a prediction layer would reconcile against.
14
+ *
15
+ * This is deliberately the only network surface in `mwg` that assumes a server exists rather
16
+ * than a game's own endpoint - `FeedbackClient`/`NewsClient`/`SaveSyncClient` all assume the
17
+ * opposite, a one-shot request/response a game points at its own backend. Real-time
18
+ * multiplayer has no one-shot shape to hide a server behind, which is why `mwg` ships a
19
+ * reference one (`tools/multiplayer-server.mjs`) rather than assuming a game brings its own,
20
+ * the same reasoning that decided this the moment the item was sized.
21
+ */
22
+ export class LockstepClient {
23
+ constructor(options) {
24
+ this.onWelcome = new Signal();
25
+ this.onTick = new Signal();
26
+ this.onClose = new Signal();
27
+ this.socket = null;
28
+ this._id = null;
29
+ if (!options.url)
30
+ throw new Error('lockstep client url is required');
31
+ this.url = options.url;
32
+ this.createSocket = options.create ?? ((url) => new WebSocket(url));
33
+ }
34
+ /** this client's own id, assigned by the server's `welcome` message; `null` before it arrives */
35
+ get id() {
36
+ return this._id;
37
+ }
38
+ get connected() {
39
+ return this.socket !== null && this.socket.readyState === OPEN;
40
+ }
41
+ connect() {
42
+ if (this.socket)
43
+ throw new Error('lockstep client is already connected');
44
+ const socket = this.createSocket(this.url);
45
+ socket.onmessage = (event) => this.handleMessage(event.data);
46
+ socket.onclose = () => {
47
+ this.socket = null;
48
+ this._id = null;
49
+ this.onClose.dispatch();
50
+ };
51
+ this.socket = socket;
52
+ }
53
+ /** submits this client's input for the current tick; a no-op before the connection is open */
54
+ submitInput(payload) {
55
+ if (!this.connected)
56
+ return;
57
+ this.socket?.send(JSON.stringify({ type: 'input', payload }));
58
+ }
59
+ close() {
60
+ this.socket?.close();
61
+ }
62
+ handleMessage(raw) {
63
+ const message = JSON.parse(raw);
64
+ if (message.type === 'welcome' && message.id !== undefined) {
65
+ this._id = message.id;
66
+ this.onWelcome.dispatch({ id: message.id });
67
+ }
68
+ else if (message.type === 'tick' && message.tick !== undefined && message.inputs !== undefined) {
69
+ this.onTick.dispatch({ tick: message.tick, inputs: message.inputs });
70
+ }
71
+ }
72
+ }
73
+ //# sourceMappingURL=Multiplayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Multiplayer.js","sourceRoot":"","sources":["../../src/core/Multiplayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAarC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,wFAAwF;AAcxG;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,cAAc;IAU1B,YAAY,OAA8B;QATjC,cAAS,GAAG,IAAI,MAAM,EAAkB,CAAC;QACzC,WAAM,GAAG,IAAI,MAAM,EAAa,CAAC;QACjC,YAAO,GAAG,IAAI,MAAM,EAAQ,CAAC;QAE9B,WAAM,GAAyB,IAAI,CAAC;QAGpC,QAAG,GAAkB,IAAI,CAAC;QAGjC,IAAI,CAAC,OAAO,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAA6B,CAAC,CAAC;IACjG,CAAC;IAED,iGAAiG;IACjG,IAAI,EAAE;QACL,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC;IAChE,CAAC;IAED,OAAO;QACN,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,8FAA8F;IAC9F,WAAW,CAAC,OAAgB;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IACtB,CAAC;IAEO,aAAa,CAAC,GAAW;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmF,CAAC;QAClH,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;IACF,CAAC;CACD"}
@@ -29,6 +29,11 @@ export declare class PlayerInput {
29
29
  bindButton(action: Action, buttons: readonly number[]): void;
30
30
  /** binds this player's own action to an axis direction on their own `padIndex` */
31
31
  bindAxis(action: Action, axis: number, direction: 1 | -1): void;
32
+ /** binds this player's own action to an on-screen touch control, independent of any other player's binding for the same action name */
33
+ bindTouch(action: Action, id?: string): void;
34
+ /** presses this player's own touch control, bound previously with `bindTouch` */
35
+ pressTouch(id: string): void;
36
+ releaseTouch(id: string): void;
32
37
  isDown(action: Action): boolean;
33
38
  justPressed(action: Action): boolean;
34
39
  justReleased(action: Action): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerInput.d.ts","sourceRoot":"","sources":["../../src/core/PlayerInput.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IAClC,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAW;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,EAIvD;IAED,OAAO,CAAC,MAAM;IAId,0HAA0H;IAC1H,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAElD;IAED,yEAAyE;IACzE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAG3D;IAED,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAG9D;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9B;IAED,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnC;IAED,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpC;IAED,wGAAwG;IACxG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhC;CACD"}
1
+ {"version":3,"file":"PlayerInput.d.ts","sourceRoot":"","sources":["../../src/core/PlayerInput.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IAClC,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAW;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,EAIvD;IAED,OAAO,CAAC,MAAM;IAId,0HAA0H;IAC1H,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAElD;IAED,yEAAyE;IACzE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAG3D;IAED,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAG9D;IAED,uIAAuI;IACvI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAE,MAAe,GAAG,IAAI,CAEnD;IAED,iFAAiF;IACjF,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9B;IAED,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnC;IAED,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpC;IAED,wGAAwG;IACxG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhC;CACD"}
@@ -40,6 +40,17 @@ export class PlayerInput {
40
40
  throw new Error(`player "${this.id}" has no padIndex to bind a gamepad axis to`);
41
41
  Input.bindAxis(this.scoped(action), this.padIndex, axis, direction);
42
42
  }
43
+ /** binds this player's own action to an on-screen touch control, independent of any other player's binding for the same action name */
44
+ bindTouch(action, id = action) {
45
+ Input.bindTouch(this.scoped(action), `${this.id}:${id}`);
46
+ }
47
+ /** presses this player's own touch control, bound previously with `bindTouch` */
48
+ pressTouch(id) {
49
+ Input.pressTouch(`${this.id}:${id}`);
50
+ }
51
+ releaseTouch(id) {
52
+ Input.releaseTouch(`${this.id}:${id}`);
53
+ }
43
54
  isDown(action) {
44
55
  return Input.isDown(this.scoped(action));
45
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerInput.js","sourceRoot":"","sources":["../../src/core/PlayerInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAQpC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,WAAW;IAIvB,YAAY,EAAU,EAAE,OAAO,GAAuB,EAAE;QACvD,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC1D,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,MAAc;QAC5B,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,0HAA0H;IAC1H,IAAI,CAAC,MAAc,EAAE,IAAuB;QAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,yEAAyE;IACzE,UAAU,CAAC,MAAc,EAAE,OAA0B;QACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,+CAA+C,CAAC,CAAC;QACpH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,kFAAkF;IAClF,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,SAAiB;QACvD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,6CAA6C,CAAC,CAAC;QAClH,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,MAAc;QACpB,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,MAAc;QACzB,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY,CAAC,MAAc;QAC1B,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,wGAAwG;IACxG,OAAO,CAAC,MAAc;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;CACD"}
1
+ {"version":3,"file":"PlayerInput.js","sourceRoot":"","sources":["../../src/core/PlayerInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAQpC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,WAAW;IAIvB,YAAY,EAAU,EAAE,OAAO,GAAuB,EAAE;QACvD,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC1D,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,MAAc;QAC5B,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,0HAA0H;IAC1H,IAAI,CAAC,MAAc,EAAE,IAAuB;QAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,yEAAyE;IACzE,UAAU,CAAC,MAAc,EAAE,OAA0B;QACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,+CAA+C,CAAC,CAAC;QACpH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,kFAAkF;IAClF,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,SAAiB;QACvD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,6CAA6C,CAAC,CAAC;QAClH,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,uIAAuI;IACvI,SAAS,CAAC,MAAc,EAAE,EAAE,GAAW,MAAM;QAC5C,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,iFAAiF;IACjF,UAAU,CAAC,EAAU;QACpB,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,EAAU;QACtB,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,MAAc;QACpB,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,MAAc;QACzB,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY,CAAC,MAAc;QAC1B,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,wGAAwG;IACxG,OAAO,CAAC,MAAc;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;CACD"}
@@ -54,11 +54,20 @@ export declare function range(min: number, max: number): number;
54
54
  */
55
55
  export declare function normalRange(min: number, max: number): number;
56
56
  export declare function chance(probability: number): boolean;
57
- export declare function element<T>(items: readonly T[]): T | undefined;
58
- /** an index into `weights`, each index drawn in proportion to its weight */
59
- export declare function weighted(weights: readonly number[]): number;
60
- /** a key from `weights`, drawn in proportion to the value it maps to */
61
- export declare function weightedKey<K>(weights: ReadonlyMap<K, number>): K | undefined;
57
+ /**
58
+ * Every "pick one" function here reports "there was nothing to pick" as `null`, never as
59
+ * `-1` or `undefined`.
60
+ *
61
+ * `weighted` used to return `-1` and the two functions built on it returned `undefined`,
62
+ * which meant one call chain carried three different spellings of the same outcome and two
63
+ * separate hand-written translations between them. One sentinel, checked one way.
64
+ */
65
+ /** a random element, or `null` for an empty list */
66
+ export declare function element<T>(items: readonly T[]): T | null;
67
+ /** an index into `weights` drawn in proportion to its weight, or `null` if nothing has any */
68
+ export declare function weighted(weights: readonly number[]): number | null;
69
+ /** a key from `weights`, drawn in proportion to the value it maps to, or `null` if none has any */
70
+ export declare function weightedKey<K>(weights: ReadonlyMap<K, number>): K | null;
62
71
  /** Fisher-Yates, in place */
63
72
  export declare function shuffle<T>(items: T[]): T[];
64
73
  //# sourceMappingURL=Random.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Random.d.ts","sourceRoot":"","sources":["../../src/core/Random.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAcH,qBAAa,SAAS;IACrB,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,EAAE,CAAK;IAEf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,CAAC,EAAE,MAAM,EAcxB;IAED,yEAAyE;IACzE,UAAU,IAAI,MAAM,CAanB;IAED,oDAAoD;IACpD,KAAK,IAAI,MAAM,CAEd;IAED;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASzB;IAED,8EAA8E;IAC9E,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAE3C;IAED,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAE/D;CACD;AAUD,iEAAiE;AACjE,wBAAgB,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAI7C;AAED,wBAAgB,GAAG,IAAI,IAAI,CAK1B;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAO1D;AAED,wBAAgB,KAAK,IAAI,IAAI,CAG5B;AAED,oDAAoD;AACpD,wBAAgB,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,4CAA4C;AAC5C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,8EAA8E;AAC9E,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAE7D;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAW3D;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAI7E;AAED,6BAA6B;AAC7B,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAM1C"}
1
+ {"version":3,"file":"Random.d.ts","sourceRoot":"","sources":["../../src/core/Random.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAcH,qBAAa,SAAS;IACrB,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,EAAE,CAAK;IAEf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,CAAC,EAAE,MAAM,EAcxB;IAED,yEAAyE;IACzE,UAAU,IAAI,MAAM,CAanB;IAED,oDAAoD;IACpD,KAAK,IAAI,MAAM,CAEd;IAED;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASzB;IAED,8EAA8E;IAC9E,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAE3C;IAED,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAE/D;CACD;AAUD,iEAAiE;AACjE,wBAAgB,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAI7C;AAED,wBAAgB,GAAG,IAAI,IAAI,CAK1B;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAO1D;AAED,wBAAgB,KAAK,IAAI,IAAI,CAG5B;AAED,oDAAoD;AACpD,wBAAgB,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,4CAA4C;AAC5C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,8EAA8E;AAC9E,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;GAOG;AAEH,oDAAoD;AACpD,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAExD;AAED,8FAA8F;AAC9F,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAWlE;AAED,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAIxE;AAED,6BAA6B;AAC7B,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAM1C"}
@@ -143,16 +143,25 @@ export function normalRange(min, max) {
143
143
  export function chance(probability) {
144
144
  return current().float() < probability;
145
145
  }
146
+ /**
147
+ * Every "pick one" function here reports "there was nothing to pick" as `null`, never as
148
+ * `-1` or `undefined`.
149
+ *
150
+ * `weighted` used to return `-1` and the two functions built on it returned `undefined`,
151
+ * which meant one call chain carried three different spellings of the same outcome and two
152
+ * separate hand-written translations between them. One sentinel, checked one way.
153
+ */
154
+ /** a random element, or `null` for an empty list */
146
155
  export function element(items) {
147
- return items.length > 0 ? items[current().int(items.length)] : undefined;
156
+ return items.length > 0 ? items[current().int(items.length)] : null;
148
157
  }
149
- /** an index into `weights`, each index drawn in proportion to its weight */
158
+ /** an index into `weights` drawn in proportion to its weight, or `null` if nothing has any */
150
159
  export function weighted(weights) {
151
160
  let total = 0;
152
161
  for (const w of weights)
153
162
  total += w;
154
163
  if (total <= 0)
155
- return -1;
164
+ return null;
156
165
  let value = current().float() * total;
157
166
  for (let i = 0; i < weights.length; i++) {
158
167
  value -= weights[i];
@@ -161,11 +170,11 @@ export function weighted(weights) {
161
170
  }
162
171
  return weights.length - 1;
163
172
  }
164
- /** a key from `weights`, drawn in proportion to the value it maps to */
173
+ /** a key from `weights`, drawn in proportion to the value it maps to, or `null` if none has any */
165
174
  export function weightedKey(weights) {
166
175
  const keys = [...weights.keys()];
167
176
  const index = weighted(keys.map((k) => weights.get(k) ?? 0));
168
- return index === -1 ? undefined : keys[index];
177
+ return index === null ? null : keys[index];
169
178
  }
170
179
  /** Fisher-Yates, in place */
171
180
  export function shuffle(items) {
@@ -1 +1 @@
1
- {"version":3,"file":"Random.js","sourceRoot":"","sources":["../../src/core/Random.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Random.js","sourceRoot":"","sources":["../../src/core/Random.ts"],"names":[],"mappings":"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"}