@datamoc/mw_games 0.1.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 (425) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +327 -0
  3. package/dist/actors/Advancement.d.ts +73 -0
  4. package/dist/actors/Advancement.d.ts.map +1 -0
  5. package/dist/actors/Advancement.js +98 -0
  6. package/dist/actors/Advancement.js.map +1 -0
  7. package/dist/actors/Affix.d.ts +44 -0
  8. package/dist/actors/Affix.d.ts.map +1 -0
  9. package/dist/actors/Affix.js +35 -0
  10. package/dist/actors/Affix.js.map +1 -0
  11. package/dist/actors/Appearances.d.ts +36 -0
  12. package/dist/actors/Appearances.d.ts.map +1 -0
  13. package/dist/actors/Appearances.js +50 -0
  14. package/dist/actors/Appearances.js.map +1 -0
  15. package/dist/actors/Charges.d.ts +31 -0
  16. package/dist/actors/Charges.d.ts.map +1 -0
  17. package/dist/actors/Charges.js +35 -0
  18. package/dist/actors/Charges.js.map +1 -0
  19. package/dist/actors/Equipment.d.ts +40 -0
  20. package/dist/actors/Equipment.d.ts.map +1 -0
  21. package/dist/actors/Equipment.js +57 -0
  22. package/dist/actors/Equipment.js.map +1 -0
  23. package/dist/actors/Inventory.d.ts +50 -0
  24. package/dist/actors/Inventory.d.ts.map +1 -0
  25. package/dist/actors/Inventory.js +56 -0
  26. package/dist/actors/Inventory.js.map +1 -0
  27. package/dist/actors/ItemState.d.ts +21 -0
  28. package/dist/actors/ItemState.d.ts.map +1 -0
  29. package/dist/actors/ItemState.js +34 -0
  30. package/dist/actors/ItemState.js.map +1 -0
  31. package/dist/actors/Loot.d.ts +24 -0
  32. package/dist/actors/Loot.d.ts.map +1 -0
  33. package/dist/actors/Loot.js +14 -0
  34. package/dist/actors/Loot.js.map +1 -0
  35. package/dist/actors/Progression.d.ts +30 -0
  36. package/dist/actors/Progression.d.ts.map +1 -0
  37. package/dist/actors/Progression.js +39 -0
  38. package/dist/actors/Progression.js.map +1 -0
  39. package/dist/actors/Resource.d.ts +23 -0
  40. package/dist/actors/Resource.d.ts.map +1 -0
  41. package/dist/actors/Resource.js +28 -0
  42. package/dist/actors/Resource.js.map +1 -0
  43. package/dist/actors/Scaling.d.ts +22 -0
  44. package/dist/actors/Scaling.d.ts.map +1 -0
  45. package/dist/actors/Scaling.js +9 -0
  46. package/dist/actors/Scaling.js.map +1 -0
  47. package/dist/actors/Shop.d.ts +25 -0
  48. package/dist/actors/Shop.d.ts.map +1 -0
  49. package/dist/actors/Shop.js +33 -0
  50. package/dist/actors/Shop.js.map +1 -0
  51. package/dist/actors/SkillPoints.d.ts +45 -0
  52. package/dist/actors/SkillPoints.d.ts.map +1 -0
  53. package/dist/actors/SkillPoints.js +58 -0
  54. package/dist/actors/SkillPoints.js.map +1 -0
  55. package/dist/actors/StatBlock.d.ts +52 -0
  56. package/dist/actors/StatBlock.d.ts.map +1 -0
  57. package/dist/actors/StatBlock.js +80 -0
  58. package/dist/actors/StatBlock.js.map +1 -0
  59. package/dist/actors/StatusEffect.d.ts +38 -0
  60. package/dist/actors/StatusEffect.d.ts.map +1 -0
  61. package/dist/actors/StatusEffect.js +28 -0
  62. package/dist/actors/StatusEffect.js.map +1 -0
  63. package/dist/actors/craft.d.ts +26 -0
  64. package/dist/actors/craft.d.ts.map +1 -0
  65. package/dist/actors/craft.js +34 -0
  66. package/dist/actors/craft.js.map +1 -0
  67. package/dist/actors/index.d.ts +33 -0
  68. package/dist/actors/index.d.ts.map +1 -0
  69. package/dist/actors/index.js +18 -0
  70. package/dist/actors/index.js.map +1 -0
  71. package/dist/actors/skillCheck.d.ts +13 -0
  72. package/dist/actors/skillCheck.d.ts.map +1 -0
  73. package/dist/actors/skillCheck.js +16 -0
  74. package/dist/actors/skillCheck.js.map +1 -0
  75. package/dist/assets/index.d.ts +37 -0
  76. package/dist/assets/index.d.ts.map +1 -0
  77. package/dist/assets/index.js +62 -0
  78. package/dist/assets/index.js.map +1 -0
  79. package/dist/audio/Music.d.ts +22 -0
  80. package/dist/audio/Music.d.ts.map +1 -0
  81. package/dist/audio/Music.js +67 -0
  82. package/dist/audio/Music.js.map +1 -0
  83. package/dist/audio/Playable.d.ts +16 -0
  84. package/dist/audio/Playable.d.ts.map +1 -0
  85. package/dist/audio/Playable.js +6 -0
  86. package/dist/audio/Playable.js.map +1 -0
  87. package/dist/audio/Sound.d.ts +23 -0
  88. package/dist/audio/Sound.d.ts.map +1 -0
  89. package/dist/audio/Sound.js +30 -0
  90. package/dist/audio/Sound.js.map +1 -0
  91. package/dist/audio/index.d.ts +7 -0
  92. package/dist/audio/index.d.ts.map +1 -0
  93. package/dist/audio/index.js +4 -0
  94. package/dist/audio/index.js.map +1 -0
  95. package/dist/battle/BattleAI.d.ts +24 -0
  96. package/dist/battle/BattleAI.d.ts.map +1 -0
  97. package/dist/battle/BattleAI.js +47 -0
  98. package/dist/battle/BattleAI.js.map +1 -0
  99. package/dist/battle/Evolution.d.ts +22 -0
  100. package/dist/battle/Evolution.d.ts.map +1 -0
  101. package/dist/battle/Evolution.js +25 -0
  102. package/dist/battle/Evolution.js.map +1 -0
  103. package/dist/battle/Field.d.ts +25 -0
  104. package/dist/battle/Field.d.ts.map +1 -0
  105. package/dist/battle/Field.js +31 -0
  106. package/dist/battle/Field.js.map +1 -0
  107. package/dist/battle/Hooks.d.ts +29 -0
  108. package/dist/battle/Hooks.d.ts.map +1 -0
  109. package/dist/battle/Hooks.js +20 -0
  110. package/dist/battle/Hooks.js.map +1 -0
  111. package/dist/battle/Move.d.ts +32 -0
  112. package/dist/battle/Move.d.ts.map +1 -0
  113. package/dist/battle/Move.js +10 -0
  114. package/dist/battle/Move.js.map +1 -0
  115. package/dist/battle/Party.d.ts +21 -0
  116. package/dist/battle/Party.d.ts.map +1 -0
  117. package/dist/battle/Party.js +49 -0
  118. package/dist/battle/Party.js.map +1 -0
  119. package/dist/battle/Species.d.ts +40 -0
  120. package/dist/battle/Species.d.ts.map +1 -0
  121. package/dist/battle/Species.js +31 -0
  122. package/dist/battle/Species.js.map +1 -0
  123. package/dist/battle/StatStages.d.ts +38 -0
  124. package/dist/battle/StatStages.d.ts.map +1 -0
  125. package/dist/battle/StatStages.js +50 -0
  126. package/dist/battle/StatStages.js.map +1 -0
  127. package/dist/battle/TypeMatrix.d.ts +14 -0
  128. package/dist/battle/TypeMatrix.d.ts.map +1 -0
  129. package/dist/battle/TypeMatrix.js +24 -0
  130. package/dist/battle/TypeMatrix.js.map +1 -0
  131. package/dist/battle/index.d.ts +16 -0
  132. package/dist/battle/index.d.ts.map +1 -0
  133. package/dist/battle/index.js +10 -0
  134. package/dist/battle/index.js.map +1 -0
  135. package/dist/board/Classics.d.ts +123 -0
  136. package/dist/board/Classics.d.ts.map +1 -0
  137. package/dist/board/Classics.js +260 -0
  138. package/dist/board/Classics.js.map +1 -0
  139. package/dist/board/Engine.d.ts +23 -0
  140. package/dist/board/Engine.d.ts.map +1 -0
  141. package/dist/board/Engine.js +87 -0
  142. package/dist/board/Engine.js.map +1 -0
  143. package/dist/board/Tactics.d.ts +46 -0
  144. package/dist/board/Tactics.d.ts.map +1 -0
  145. package/dist/board/Tactics.js +108 -0
  146. package/dist/board/Tactics.js.map +1 -0
  147. package/dist/board/chess.d.ts +67 -0
  148. package/dist/board/chess.d.ts.map +1 -0
  149. package/dist/board/chess.js +439 -0
  150. package/dist/board/chess.js.map +1 -0
  151. package/dist/board/index.d.ts +9 -0
  152. package/dist/board/index.d.ts.map +1 -0
  153. package/dist/board/index.js +5 -0
  154. package/dist/board/index.js.map +1 -0
  155. package/dist/core/Achievements.d.ts +53 -0
  156. package/dist/core/Achievements.d.ts.map +1 -0
  157. package/dist/core/Achievements.js +80 -0
  158. package/dist/core/Achievements.js.map +1 -0
  159. package/dist/core/Collection.d.ts +46 -0
  160. package/dist/core/Collection.d.ts.map +1 -0
  161. package/dist/core/Collection.js +61 -0
  162. package/dist/core/Collection.js.map +1 -0
  163. package/dist/core/Game.d.ts +115 -0
  164. package/dist/core/Game.d.ts.map +1 -0
  165. package/dist/core/Game.js +236 -0
  166. package/dist/core/Game.js.map +1 -0
  167. package/dist/core/Hex.d.ts +45 -0
  168. package/dist/core/Hex.d.ts.map +1 -0
  169. package/dist/core/Hex.js +120 -0
  170. package/dist/core/Hex.js.map +1 -0
  171. package/dist/core/Input.d.ts +41 -0
  172. package/dist/core/Input.d.ts.map +1 -0
  173. package/dist/core/Input.js +132 -0
  174. package/dist/core/Input.js.map +1 -0
  175. package/dist/core/Log.d.ts +39 -0
  176. package/dist/core/Log.d.ts.map +1 -0
  177. package/dist/core/Log.js +50 -0
  178. package/dist/core/Log.js.map +1 -0
  179. package/dist/core/Random.d.ts +64 -0
  180. package/dist/core/Random.d.ts.map +1 -0
  181. package/dist/core/Random.js +178 -0
  182. package/dist/core/Random.js.map +1 -0
  183. package/dist/core/Replay.d.ts +71 -0
  184. package/dist/core/Replay.d.ts.map +1 -0
  185. package/dist/core/Replay.js +102 -0
  186. package/dist/core/Replay.js.map +1 -0
  187. package/dist/core/Save.d.ts +52 -0
  188. package/dist/core/Save.d.ts.map +1 -0
  189. package/dist/core/Save.js +81 -0
  190. package/dist/core/Save.js.map +1 -0
  191. package/dist/core/Scene.d.ts +40 -0
  192. package/dist/core/Scene.d.ts.map +1 -0
  193. package/dist/core/Scene.js +56 -0
  194. package/dist/core/Scene.js.map +1 -0
  195. package/dist/core/SceneStack.d.ts +37 -0
  196. package/dist/core/SceneStack.d.ts.map +1 -0
  197. package/dist/core/SceneStack.js +67 -0
  198. package/dist/core/SceneStack.js.map +1 -0
  199. package/dist/core/Signal.d.ts +24 -0
  200. package/dist/core/Signal.d.ts.map +1 -0
  201. package/dist/core/Signal.js +41 -0
  202. package/dist/core/Signal.js.map +1 -0
  203. package/dist/core/index.d.ts +23 -0
  204. package/dist/core/index.d.ts.map +1 -0
  205. package/dist/core/index.js +14 -0
  206. package/dist/core/index.js.map +1 -0
  207. package/dist/i18n/index.d.ts +51 -0
  208. package/dist/i18n/index.d.ts.map +1 -0
  209. package/dist/i18n/index.js +74 -0
  210. package/dist/i18n/index.js.map +1 -0
  211. package/dist/index.d.ts +22 -0
  212. package/dist/index.d.ts.map +1 -0
  213. package/dist/index.js +22 -0
  214. package/dist/index.js.map +1 -0
  215. package/dist/mw_games.global.js +993 -0
  216. package/dist/render/ActorAnimator.d.ts +60 -0
  217. package/dist/render/ActorAnimator.d.ts.map +1 -0
  218. package/dist/render/ActorAnimator.js +76 -0
  219. package/dist/render/ActorAnimator.js.map +1 -0
  220. package/dist/render/AnimatedSprite.d.ts +57 -0
  221. package/dist/render/AnimatedSprite.d.ts.map +1 -0
  222. package/dist/render/AnimatedSprite.js +105 -0
  223. package/dist/render/AnimatedSprite.js.map +1 -0
  224. package/dist/render/Autotile.d.ts +42 -0
  225. package/dist/render/Autotile.d.ts.map +1 -0
  226. package/dist/render/Autotile.js +117 -0
  227. package/dist/render/Autotile.js.map +1 -0
  228. package/dist/render/Camera.d.ts +88 -0
  229. package/dist/render/Camera.d.ts.map +1 -0
  230. package/dist/render/Camera.js +145 -0
  231. package/dist/render/Camera.js.map +1 -0
  232. package/dist/render/ColorTransformBatcher.d.ts +57 -0
  233. package/dist/render/ColorTransformBatcher.d.ts.map +1 -0
  234. package/dist/render/ColorTransformBatcher.js +212 -0
  235. package/dist/render/ColorTransformBatcher.js.map +1 -0
  236. package/dist/render/LayeredSprite.d.ts +27 -0
  237. package/dist/render/LayeredSprite.d.ts.map +1 -0
  238. package/dist/render/LayeredSprite.js +53 -0
  239. package/dist/render/LayeredSprite.js.map +1 -0
  240. package/dist/render/Projectile.d.ts +37 -0
  241. package/dist/render/Projectile.d.ts.map +1 -0
  242. package/dist/render/Projectile.js +50 -0
  243. package/dist/render/Projectile.js.map +1 -0
  244. package/dist/render/SpriteSheet.d.ts +38 -0
  245. package/dist/render/SpriteSheet.d.ts.map +1 -0
  246. package/dist/render/SpriteSheet.js +79 -0
  247. package/dist/render/SpriteSheet.js.map +1 -0
  248. package/dist/render/TileMap.d.ts +188 -0
  249. package/dist/render/TileMap.d.ts.map +1 -0
  250. package/dist/render/TileMap.js +488 -0
  251. package/dist/render/TileMap.js.map +1 -0
  252. package/dist/render/TintedSprite.d.ts +47 -0
  253. package/dist/render/TintedSprite.d.ts.map +1 -0
  254. package/dist/render/TintedSprite.js +173 -0
  255. package/dist/render/TintedSprite.js.map +1 -0
  256. package/dist/render/index.d.ts +18 -0
  257. package/dist/render/index.d.ts.map +1 -0
  258. package/dist/render/index.js +11 -0
  259. package/dist/render/index.js.map +1 -0
  260. package/dist/roguelike/Blob.d.ts +46 -0
  261. package/dist/roguelike/Blob.d.ts.map +1 -0
  262. package/dist/roguelike/Blob.js +98 -0
  263. package/dist/roguelike/Blob.js.map +1 -0
  264. package/dist/roguelike/Boss.d.ts +67 -0
  265. package/dist/roguelike/Boss.d.ts.map +1 -0
  266. package/dist/roguelike/Boss.js +114 -0
  267. package/dist/roguelike/Boss.js.map +1 -0
  268. package/dist/roguelike/Combat.d.ts +23 -0
  269. package/dist/roguelike/Combat.d.ts.map +1 -0
  270. package/dist/roguelike/Combat.js +27 -0
  271. package/dist/roguelike/Combat.js.map +1 -0
  272. package/dist/roguelike/Doors.d.ts +60 -0
  273. package/dist/roguelike/Doors.d.ts.map +1 -0
  274. package/dist/roguelike/Doors.js +102 -0
  275. package/dist/roguelike/Doors.js.map +1 -0
  276. package/dist/roguelike/Elevation.d.ts +26 -0
  277. package/dist/roguelike/Elevation.d.ts.map +1 -0
  278. package/dist/roguelike/Elevation.js +37 -0
  279. package/dist/roguelike/Elevation.js.map +1 -0
  280. package/dist/roguelike/FieldOfView.d.ts +72 -0
  281. package/dist/roguelike/FieldOfView.d.ts.map +1 -0
  282. package/dist/roguelike/FieldOfView.js +134 -0
  283. package/dist/roguelike/FieldOfView.js.map +1 -0
  284. package/dist/roguelike/Level.d.ts +96 -0
  285. package/dist/roguelike/Level.d.ts.map +1 -0
  286. package/dist/roguelike/Level.js +137 -0
  287. package/dist/roguelike/Level.js.map +1 -0
  288. package/dist/roguelike/MonsterAI.d.ts +40 -0
  289. package/dist/roguelike/MonsterAI.d.ts.map +1 -0
  290. package/dist/roguelike/MonsterAI.js +69 -0
  291. package/dist/roguelike/MonsterAI.js.map +1 -0
  292. package/dist/roguelike/Pathfinder.d.ts +82 -0
  293. package/dist/roguelike/Pathfinder.d.ts.map +1 -0
  294. package/dist/roguelike/Pathfinder.js +192 -0
  295. package/dist/roguelike/Pathfinder.js.map +1 -0
  296. package/dist/roguelike/Scheduler.d.ts +45 -0
  297. package/dist/roguelike/Scheduler.d.ts.map +1 -0
  298. package/dist/roguelike/Scheduler.js +82 -0
  299. package/dist/roguelike/Scheduler.js.map +1 -0
  300. package/dist/roguelike/Secrets.d.ts +44 -0
  301. package/dist/roguelike/Secrets.d.ts.map +1 -0
  302. package/dist/roguelike/Secrets.js +64 -0
  303. package/dist/roguelike/Secrets.js.map +1 -0
  304. package/dist/roguelike/Targeting.d.ts +66 -0
  305. package/dist/roguelike/Targeting.d.ts.map +1 -0
  306. package/dist/roguelike/Targeting.js +150 -0
  307. package/dist/roguelike/Targeting.js.map +1 -0
  308. package/dist/roguelike/generate.d.ts +44 -0
  309. package/dist/roguelike/generate.d.ts.map +1 -0
  310. package/dist/roguelike/generate.js +88 -0
  311. package/dist/roguelike/generate.js.map +1 -0
  312. package/dist/roguelike/index.d.ts +23 -0
  313. package/dist/roguelike/index.d.ts.map +1 -0
  314. package/dist/roguelike/index.js +15 -0
  315. package/dist/roguelike/index.js.map +1 -0
  316. package/dist/rpg/Event.d.ts +33 -0
  317. package/dist/rpg/Event.d.ts.map +1 -0
  318. package/dist/rpg/Event.js +19 -0
  319. package/dist/rpg/Event.js.map +1 -0
  320. package/dist/rpg/EventRunner.d.ts +72 -0
  321. package/dist/rpg/EventRunner.d.ts.map +1 -0
  322. package/dist/rpg/EventRunner.js +76 -0
  323. package/dist/rpg/EventRunner.js.map +1 -0
  324. package/dist/rpg/GameState.d.ts +22 -0
  325. package/dist/rpg/GameState.d.ts.map +1 -0
  326. package/dist/rpg/GameState.js +35 -0
  327. package/dist/rpg/GameState.js.map +1 -0
  328. package/dist/rpg/GridMover.d.ts +51 -0
  329. package/dist/rpg/GridMover.d.ts.map +1 -0
  330. package/dist/rpg/GridMover.js +91 -0
  331. package/dist/rpg/GridMover.js.map +1 -0
  332. package/dist/rpg/Quest.d.ts +67 -0
  333. package/dist/rpg/Quest.d.ts.map +1 -0
  334. package/dist/rpg/Quest.js +92 -0
  335. package/dist/rpg/Quest.js.map +1 -0
  336. package/dist/rpg/TiledMap.d.ts +107 -0
  337. package/dist/rpg/TiledMap.d.ts.map +1 -0
  338. package/dist/rpg/TiledMap.js +123 -0
  339. package/dist/rpg/TiledMap.js.map +1 -0
  340. package/dist/rpg/automap.d.ts +40 -0
  341. package/dist/rpg/automap.d.ts.map +1 -0
  342. package/dist/rpg/automap.js +81 -0
  343. package/dist/rpg/automap.js.map +1 -0
  344. package/dist/rpg/index.d.ts +14 -0
  345. package/dist/rpg/index.d.ts.map +1 -0
  346. package/dist/rpg/index.js +8 -0
  347. package/dist/rpg/index.js.map +1 -0
  348. package/dist/stage/DialogueStage.d.ts +75 -0
  349. package/dist/stage/DialogueStage.d.ts.map +1 -0
  350. package/dist/stage/DialogueStage.js +207 -0
  351. package/dist/stage/DialogueStage.js.map +1 -0
  352. package/dist/stage/index.d.ts +7 -0
  353. package/dist/stage/index.d.ts.map +1 -0
  354. package/dist/stage/index.js +4 -0
  355. package/dist/stage/index.js.map +1 -0
  356. package/dist/stage/script.d.ts +111 -0
  357. package/dist/stage/script.d.ts.map +1 -0
  358. package/dist/stage/script.js +133 -0
  359. package/dist/stage/script.js.map +1 -0
  360. package/dist/stage/twee.d.ts +42 -0
  361. package/dist/stage/twee.d.ts.map +1 -0
  362. package/dist/stage/twee.js +169 -0
  363. package/dist/stage/twee.js.map +1 -0
  364. package/dist/ui/IconGrid.d.ts +110 -0
  365. package/dist/ui/IconGrid.d.ts.map +1 -0
  366. package/dist/ui/IconGrid.js +284 -0
  367. package/dist/ui/IconGrid.js.map +1 -0
  368. package/dist/ui/Label.d.ts +26 -0
  369. package/dist/ui/Label.d.ts.map +1 -0
  370. package/dist/ui/Label.js +41 -0
  371. package/dist/ui/Label.js.map +1 -0
  372. package/dist/ui/ListView.d.ts +67 -0
  373. package/dist/ui/ListView.d.ts.map +1 -0
  374. package/dist/ui/ListView.js +167 -0
  375. package/dist/ui/ListView.js.map +1 -0
  376. package/dist/ui/MessageBox.d.ts +66 -0
  377. package/dist/ui/MessageBox.d.ts.map +1 -0
  378. package/dist/ui/MessageBox.js +161 -0
  379. package/dist/ui/MessageBox.js.map +1 -0
  380. package/dist/ui/NinePatch.d.ts +34 -0
  381. package/dist/ui/NinePatch.d.ts.map +1 -0
  382. package/dist/ui/NinePatch.js +45 -0
  383. package/dist/ui/NinePatch.js.map +1 -0
  384. package/dist/ui/VerticalLabel.d.ts +46 -0
  385. package/dist/ui/VerticalLabel.d.ts.map +1 -0
  386. package/dist/ui/VerticalLabel.js +81 -0
  387. package/dist/ui/VerticalLabel.js.map +1 -0
  388. package/dist/ui/Window.d.ts +71 -0
  389. package/dist/ui/Window.d.ts.map +1 -0
  390. package/dist/ui/Window.js +126 -0
  391. package/dist/ui/Window.js.map +1 -0
  392. package/dist/ui/WindowStack.d.ts +40 -0
  393. package/dist/ui/WindowStack.d.ts.map +1 -0
  394. package/dist/ui/WindowStack.js +106 -0
  395. package/dist/ui/WindowStack.js.map +1 -0
  396. package/dist/ui/index.d.ts +18 -0
  397. package/dist/ui/index.d.ts.map +1 -0
  398. package/dist/ui/index.js +10 -0
  399. package/dist/ui/index.js.map +1 -0
  400. package/dist/ui/theme.d.ts +50 -0
  401. package/dist/ui/theme.d.ts.map +1 -0
  402. package/dist/ui/theme.js +36 -0
  403. package/dist/ui/theme.js.map +1 -0
  404. package/dist/world/Encounters.d.ts +20 -0
  405. package/dist/world/Encounters.d.ts.map +1 -0
  406. package/dist/world/Encounters.js +9 -0
  407. package/dist/world/Encounters.js.map +1 -0
  408. package/dist/world/Overworld.d.ts +25 -0
  409. package/dist/world/Overworld.d.ts.map +1 -0
  410. package/dist/world/Overworld.js +26 -0
  411. package/dist/world/Overworld.js.map +1 -0
  412. package/dist/world/TurnClock.d.ts +25 -0
  413. package/dist/world/TurnClock.d.ts.map +1 -0
  414. package/dist/world/TurnClock.js +33 -0
  415. package/dist/world/TurnClock.js.map +1 -0
  416. package/dist/world/World.d.ts +50 -0
  417. package/dist/world/World.d.ts.map +1 -0
  418. package/dist/world/World.js +77 -0
  419. package/dist/world/World.js.map +1 -0
  420. package/dist/world/index.d.ts +8 -0
  421. package/dist/world/index.d.ts.map +1 -0
  422. package/dist/world/index.js +5 -0
  423. package/dist/world/index.js.map +1 -0
  424. package/package.json +76 -0
  425. package/tools/compile-resources.mjs +129 -0
@@ -0,0 +1,23 @@
1
+ export { Game } from './Game.ts';
2
+ export type { GameOptions } from './Game.ts';
3
+ export { Scene } from './Scene.ts';
4
+ export type { SceneClass } from './Scene.ts';
5
+ export { SceneStack } from './SceneStack.ts';
6
+ export { Logger } from './Log.ts';
7
+ export type { LogLevel, LogEntry, LoggerOptions } from './Log.ts';
8
+ export { Signal } from './Signal.ts';
9
+ export type { SignalListener } from './Signal.ts';
10
+ export * as Random from './Random.ts';
11
+ export * as Input from './Input.ts';
12
+ export { Generator } from './Random.ts';
13
+ export { SaveSystem } from './Save.ts';
14
+ export type { SaveMeta, SaveData, SaveStorage, SaveSystemOptions } from './Save.ts';
15
+ export { Collection } from './Collection.ts';
16
+ export type { DbRecord, CollectionOptions } from './Collection.ts';
17
+ export { Recorder, Player, serializeReplay, deserializeReplay } from './Replay.ts';
18
+ export type { ReplayEvent } from './Replay.ts';
19
+ export { Achievements } from './Achievements.ts';
20
+ export type { AchievementDef } from './Achievements.ts';
21
+ export { hexNeighbors, hexDistance, hexLine, hexRange, hexToPixel, pixelToHex } from './Hex.ts';
22
+ export type { HexCoord } from './Hex.ts';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnF,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAChG,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,14 @@
1
+ export { Game } from './Game.js';
2
+ export { Scene } from './Scene.js';
3
+ export { SceneStack } from './SceneStack.js';
4
+ export { Logger } from './Log.js';
5
+ export { Signal } from './Signal.js';
6
+ export * as Random from './Random.js';
7
+ export * as Input from './Input.js';
8
+ export { Generator } from './Random.js';
9
+ export { SaveSystem } from './Save.js';
10
+ export { Collection } from './Collection.js';
11
+ export { Recorder, Player, serializeReplay, deserializeReplay } from './Replay.js';
12
+ export { Achievements } from './Achievements.js';
13
+ export { hexNeighbors, hexDistance, hexLine, hexRange, hexToPixel, pixelToHex } from './Hex.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Message tables per language, with plurals and interpolation, compiled at build time the
3
+ * same way every other resource is.
4
+ *
5
+ * A message table is data - loaded like any other asset, so `mwg/assets` already covers
6
+ * getting it into the game and `tools/compile-resources` already covers shipping it from
7
+ * `file://`. What lives here is picking the right string out of it: plural forms selected
8
+ * by `Intl.PluralRules` rather than a hand-rolled rule table (the browser already ships the
9
+ * CLDR plural rules for every locale, and getting those right by hand is exactly the kind
10
+ * of detail that stays wrong until a native speaker notices), `{token}` interpolation, and
11
+ * the text direction `mwg/ui` lays widgets out against.
12
+ *
13
+ * A missing key in the active language falls back to the base language rather than showing
14
+ * a raw key to the player - a translation catalog is nearly always incomplete somewhere,
15
+ * and a placeholder key breaks immersion far worse than the wrong language would.
16
+ */
17
+ /** left-to-right is the default; right-to-left is the other case `mwg/ui` mirrors against */
18
+ export type Direction = 'ltr' | 'rtl';
19
+ /** a value that varies by count, keyed by the CLDR plural category it applies to */
20
+ export type PluralForms = Partial<Record<Intl.LDMLPluralRule, string>>;
21
+ export interface Catalog {
22
+ /** a BCP-47 tag, such as 'en', 'fr', or 'ar' - passed straight to Intl.PluralRules */
23
+ locale: string;
24
+ direction: Direction;
25
+ messages: Record<string, string | PluralForms>;
26
+ }
27
+ /** the language everything falls back to; set this once, at startup */
28
+ export declare function setBase(catalog: Catalog): void;
29
+ /** the language currently shown; pass null to fall back to the base language alone */
30
+ export declare function setActive(catalog: Catalog | null): void;
31
+ export declare function locale(): string;
32
+ /** what `mwg/ui` lays widgets out against */
33
+ export declare function direction(): Direction;
34
+ export interface MessageParams {
35
+ /** picks the plural form, when the message has more than one */
36
+ count?: number;
37
+ [token: string]: string | number | undefined;
38
+ }
39
+ /**
40
+ * Resolves a message by key, interpolating `{token}` placeholders from `params`.
41
+ *
42
+ * A key present in neither language returns itself, which is the only case where a raw key
43
+ * can reach the player - and it means the key was never translated anywhere, not merely
44
+ * missing from one language.
45
+ */
46
+ export declare function t(key: string, params?: MessageParams): string;
47
+ /** true when `key` resolves to something other than itself, in either language */
48
+ export declare function has(key: string): boolean;
49
+ /** clears both languages, mainly so tests do not leak state into one another */
50
+ export declare function reset(): void;
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,6FAA6F;AAC7F,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtC,oFAAoF;AACpF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvE,MAAM,WAAW,OAAO;IACvB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;CAC/C;AAOD,uEAAuE;AACvE,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE9C;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAGvD;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,6CAA6C;AAC7C,wBAAgB,SAAS,IAAI,SAAS,CAErC;AAED,MAAM,WAAW,aAAa;IAC7B,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAM7D;AAED,kFAAkF;AAClF,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExC;AAkBD,gFAAgF;AAChF,wBAAgB,KAAK,IAAI,IAAI,CAI5B"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Message tables per language, with plurals and interpolation, compiled at build time the
3
+ * same way every other resource is.
4
+ *
5
+ * A message table is data - loaded like any other asset, so `mwg/assets` already covers
6
+ * getting it into the game and `tools/compile-resources` already covers shipping it from
7
+ * `file://`. What lives here is picking the right string out of it: plural forms selected
8
+ * by `Intl.PluralRules` rather than a hand-rolled rule table (the browser already ships the
9
+ * CLDR plural rules for every locale, and getting those right by hand is exactly the kind
10
+ * of detail that stays wrong until a native speaker notices), `{token}` interpolation, and
11
+ * the text direction `mwg/ui` lays widgets out against.
12
+ *
13
+ * A missing key in the active language falls back to the base language rather than showing
14
+ * a raw key to the player - a translation catalog is nearly always incomplete somewhere,
15
+ * and a placeholder key breaks immersion far worse than the wrong language would.
16
+ */
17
+ let base = null;
18
+ let active = null;
19
+ let activeRules = null;
20
+ let fallbackRules = null;
21
+ /** the language everything falls back to; set this once, at startup */
22
+ export function setBase(catalog) {
23
+ base = catalog;
24
+ }
25
+ /** the language currently shown; pass null to fall back to the base language alone */
26
+ export function setActive(catalog) {
27
+ active = catalog;
28
+ activeRules = catalog ? new Intl.PluralRules(catalog.locale) : null;
29
+ }
30
+ export function locale() {
31
+ return (active ?? base)?.locale ?? 'en';
32
+ }
33
+ /** what `mwg/ui` lays widgets out against */
34
+ export function direction() {
35
+ return (active ?? base)?.direction ?? 'ltr';
36
+ }
37
+ /**
38
+ * Resolves a message by key, interpolating `{token}` placeholders from `params`.
39
+ *
40
+ * A key present in neither language returns itself, which is the only case where a raw key
41
+ * can reach the player - and it means the key was never translated anywhere, not merely
42
+ * missing from one language.
43
+ */
44
+ export function t(key, params) {
45
+ const entry = active?.messages[key] ?? base?.messages[key];
46
+ if (entry === undefined)
47
+ return key;
48
+ const text = typeof entry === 'string' ? entry : resolvePlural(entry, params?.count);
49
+ return params ? interpolate(text, params) : text;
50
+ }
51
+ /** true when `key` resolves to something other than itself, in either language */
52
+ export function has(key) {
53
+ return active?.messages[key] !== undefined || base?.messages[key] !== undefined;
54
+ }
55
+ function resolvePlural(forms, count) {
56
+ if (count === undefined) {
57
+ return forms.other ?? Object.values(forms)[0] ?? '';
58
+ }
59
+ const category = (activeRules ?? (fallbackRules ??= new Intl.PluralRules('en'))).select(count);
60
+ return forms[category] ?? forms.other ?? '';
61
+ }
62
+ function interpolate(text, params) {
63
+ return text.replace(/\{(\w+)\}/g, (whole, token) => {
64
+ const value = params[token];
65
+ return value === undefined ? whole : String(value);
66
+ });
67
+ }
68
+ /** clears both languages, mainly so tests do not leak state into one another */
69
+ export function reset() {
70
+ base = null;
71
+ active = null;
72
+ activeRules = null;
73
+ }
74
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAeH,IAAI,IAAI,GAAmB,IAAI,CAAC;AAChC,IAAI,MAAM,GAAmB,IAAI,CAAC;AAClC,IAAI,WAAW,GAA4B,IAAI,CAAC;AAChD,IAAI,aAAa,GAA4B,IAAI,CAAC;AAElD,uEAAuE;AACvE,MAAM,UAAU,OAAO,CAAC,OAAgB;IACvC,IAAI,GAAG,OAAO,CAAC;AAChB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,OAAuB;IAChD,MAAM,GAAG,OAAO,CAAC;IACjB,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,MAAM;IACrB,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,SAAS;IACxB,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC;AAC7C,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,CAAC,CAAC,GAAW,EAAE,MAAsB;IACpD,MAAM,KAAK,GAAG,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAEpC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,GAAG,CAAC,GAAW;IAC9B,OAAO,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACjF,CAAC;AAED,SAAS,aAAa,CAAC,KAAkB,EAAE,KAAyB;IACnE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,WAAW,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,MAAqB;IACvD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,KAAK;IACpB,IAAI,GAAG,IAAI,CAAC;IACZ,MAAM,GAAG,IAAI,CAAC;IACd,WAAW,GAAG,IAAI,CAAC;AACpB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * mwg - a framework for 2D top-down games that run from a local file.
3
+ *
4
+ * This is the whole surface in one place, which is also what the standalone
5
+ * `mw_games.global.js` build exposes as `window.mw_games`. Consumers using a bundler can
6
+ * import the narrower entry points instead: `mw_games/core`, `mw_games/render`,
7
+ * `mw_games/roguelike`.
8
+ */
9
+ export * from './core/index.ts';
10
+ export * from './render/index.ts';
11
+ export * as Resources from './assets/index.ts';
12
+ export * from './ui/index.ts';
13
+ export * from './stage/index.ts';
14
+ export * as Roguelike from './roguelike/index.ts';
15
+ export * as I18n from './i18n/index.ts';
16
+ export * as Actors from './actors/index.ts';
17
+ export * as World from './world/index.ts';
18
+ export * as Rpg from './rpg/index.ts';
19
+ export * as Battle from './battle/index.ts';
20
+ export * as Board from './board/index.ts';
21
+ export * as Audio from './audio/index.ts';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ /**
2
+ * mwg - a framework for 2D top-down games that run from a local file.
3
+ *
4
+ * This is the whole surface in one place, which is also what the standalone
5
+ * `mw_games.global.js` build exposes as `window.mw_games`. Consumers using a bundler can
6
+ * import the narrower entry points instead: `mw_games/core`, `mw_games/render`,
7
+ * `mw_games/roguelike`.
8
+ */
9
+ export * from './core/index.js';
10
+ export * from './render/index.js';
11
+ export * as Resources from './assets/index.js';
12
+ export * from './ui/index.js';
13
+ export * from './stage/index.js';
14
+ export * as Roguelike from './roguelike/index.js';
15
+ export * as I18n from './i18n/index.js';
16
+ export * as Actors from './actors/index.js';
17
+ export * as World from './world/index.js';
18
+ export * as Rpg from './rpg/index.js';
19
+ export * as Battle from './battle/index.js';
20
+ export * as Board from './board/index.js';
21
+ export * as Audio from './audio/index.js';
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}