@datamoc/mw_games 0.3.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 (478) hide show
  1. package/README.md +401 -395
  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 +1 -1
  57. package/dist/assets/Streaming.js +1 -1
  58. package/dist/assets/Streaming.js.map +1 -1
  59. package/dist/assets/index.d.ts +11 -52
  60. package/dist/assets/index.d.ts.map +1 -1
  61. package/dist/assets/index.js +9 -80
  62. package/dist/assets/index.js.map +1 -1
  63. package/dist/assets/loader.d.ts +34 -0
  64. package/dist/assets/loader.d.ts.map +1 -0
  65. package/dist/assets/loader.js +61 -0
  66. package/dist/assets/loader.js.map +1 -0
  67. package/dist/assets/paths.d.ts +40 -0
  68. package/dist/assets/paths.d.ts.map +1 -0
  69. package/dist/assets/paths.js +49 -0
  70. package/dist/assets/paths.js.map +1 -0
  71. package/dist/audio/Playable.js +1 -1
  72. package/dist/battle/Field.d.ts +2 -2
  73. package/dist/battle/Field.d.ts.map +1 -1
  74. package/dist/battle/Field.js +3 -3
  75. package/dist/battle/Field.js.map +1 -1
  76. package/dist/battle/Hooks.d.ts +7 -13
  77. package/dist/battle/Hooks.d.ts.map +1 -1
  78. package/dist/battle/Hooks.js +20 -18
  79. package/dist/battle/Hooks.js.map +1 -1
  80. package/dist/core/Hooks.d.ts +34 -0
  81. package/dist/core/Hooks.d.ts.map +1 -0
  82. package/dist/core/Hooks.js +33 -0
  83. package/dist/core/Hooks.js.map +1 -0
  84. package/dist/core/Input.d.ts +41 -0
  85. package/dist/core/Input.d.ts.map +1 -1
  86. package/dist/core/Input.js +126 -21
  87. package/dist/core/Input.js.map +1 -1
  88. package/dist/core/PlayerInput.d.ts +5 -0
  89. package/dist/core/PlayerInput.d.ts.map +1 -1
  90. package/dist/core/PlayerInput.js +11 -0
  91. package/dist/core/PlayerInput.js.map +1 -1
  92. package/dist/core/Random.d.ts +14 -5
  93. package/dist/core/Random.d.ts.map +1 -1
  94. package/dist/core/Random.js +14 -5
  95. package/dist/core/Random.js.map +1 -1
  96. package/dist/core/Scene.d.ts +16 -6
  97. package/dist/core/Scene.d.ts.map +1 -1
  98. package/dist/core/Scene.js +18 -6
  99. package/dist/core/Scene.js.map +1 -1
  100. package/dist/core/SceneStack.d.ts +8 -4
  101. package/dist/core/SceneStack.d.ts.map +1 -1
  102. package/dist/core/SceneStack.js +4 -0
  103. package/dist/core/SceneStack.js.map +1 -1
  104. package/dist/core/index.d.ts +3 -2
  105. package/dist/core/index.d.ts.map +1 -1
  106. package/dist/core/index.js +1 -1
  107. package/dist/core/index.js.map +1 -1
  108. package/dist/index.d.ts +4 -5
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +4 -5
  111. package/dist/index.js.map +1 -1
  112. package/dist/mw_games.global.js +88 -88
  113. package/dist/roguelike/Boss.d.ts +4 -4
  114. package/dist/roguelike/Boss.d.ts.map +1 -1
  115. package/dist/roguelike/Boss.js +6 -6
  116. package/dist/roguelike/Boss.js.map +1 -1
  117. package/dist/roguelike/Combat.d.ts +10 -11
  118. package/dist/roguelike/Combat.d.ts.map +1 -1
  119. package/dist/roguelike/Combat.js +9 -16
  120. package/dist/roguelike/Combat.js.map +1 -1
  121. package/dist/roguelike/ContentRoll.d.ts +43 -0
  122. package/dist/roguelike/ContentRoll.d.ts.map +1 -0
  123. package/dist/roguelike/ContentRoll.js +38 -0
  124. package/dist/roguelike/ContentRoll.js.map +1 -0
  125. package/dist/roguelike/DungeonParity.d.ts +42 -0
  126. package/dist/roguelike/DungeonParity.d.ts.map +1 -0
  127. package/dist/roguelike/DungeonParity.js +63 -0
  128. package/dist/roguelike/DungeonParity.js.map +1 -0
  129. package/dist/roguelike/Features.d.ts +42 -0
  130. package/dist/roguelike/Features.d.ts.map +1 -0
  131. package/dist/roguelike/Features.js +59 -0
  132. package/dist/roguelike/Features.js.map +1 -0
  133. package/dist/roguelike/MonsterAI.js +1 -1
  134. package/dist/roguelike/MonsterAI.js.map +1 -1
  135. package/dist/roguelike/MultiStageAbility.d.ts +43 -0
  136. package/dist/roguelike/MultiStageAbility.d.ts.map +1 -0
  137. package/dist/roguelike/MultiStageAbility.js +60 -0
  138. package/dist/roguelike/MultiStageAbility.js.map +1 -0
  139. package/dist/roguelike/RoomBuilders.d.ts +43 -0
  140. package/dist/roguelike/RoomBuilders.d.ts.map +1 -0
  141. package/dist/roguelike/RoomBuilders.js +40 -0
  142. package/dist/roguelike/RoomBuilders.js.map +1 -0
  143. package/dist/roguelike/Targeting.d.ts +22 -0
  144. package/dist/roguelike/Targeting.d.ts.map +1 -1
  145. package/dist/roguelike/Targeting.js +20 -0
  146. package/dist/roguelike/Targeting.js.map +1 -1
  147. package/dist/roguelike/TriggerTracker.d.ts +36 -0
  148. package/dist/roguelike/TriggerTracker.d.ts.map +1 -0
  149. package/dist/roguelike/TriggerTracker.js +49 -0
  150. package/dist/roguelike/TriggerTracker.js.map +1 -0
  151. package/dist/roguelike/generate.d.ts +49 -0
  152. package/dist/roguelike/generate.d.ts.map +1 -1
  153. package/dist/roguelike/generate.js +38 -10
  154. package/dist/roguelike/generate.js.map +1 -1
  155. package/dist/roguelike/index.d.ts +16 -4
  156. package/dist/roguelike/index.d.ts.map +1 -1
  157. package/dist/roguelike/index.js +8 -2
  158. package/dist/roguelike/index.js.map +1 -1
  159. package/dist/rpg/EventRunner.d.ts +30 -8
  160. package/dist/rpg/EventRunner.d.ts.map +1 -1
  161. package/dist/rpg/EventRunner.js +1 -13
  162. package/dist/rpg/EventRunner.js.map +1 -1
  163. package/dist/rpg/FreeMover.d.ts +2 -2
  164. package/dist/rpg/FreeMover.d.ts.map +1 -1
  165. package/dist/rpg/FreeMover.js +5 -5
  166. package/dist/rpg/FreeMover.js.map +1 -1
  167. package/dist/rpg/GridMover.d.ts +2 -2
  168. package/dist/rpg/GridMover.d.ts.map +1 -1
  169. package/dist/rpg/GridMover.js +5 -5
  170. package/dist/rpg/GridMover.js.map +1 -1
  171. package/dist/rpg/MovableSprite.d.ts +25 -0
  172. package/dist/rpg/MovableSprite.d.ts.map +1 -0
  173. package/dist/rpg/MovableSprite.js +2 -0
  174. package/dist/rpg/MovableSprite.js.map +1 -0
  175. package/dist/rpg/Quest.d.ts +6 -1
  176. package/dist/rpg/Quest.d.ts.map +1 -1
  177. package/dist/rpg/Quest.js +6 -1
  178. package/dist/rpg/Quest.js.map +1 -1
  179. package/dist/rpg/automap.d.ts +24 -2
  180. package/dist/rpg/automap.d.ts.map +1 -1
  181. package/dist/rpg/automap.js +9 -1
  182. package/dist/rpg/automap.js.map +1 -1
  183. package/dist/rpg/index.d.ts +4 -4
  184. package/dist/rpg/index.d.ts.map +1 -1
  185. package/dist/rpg/index.js +1 -1
  186. package/dist/rpg/index.js.map +1 -1
  187. package/dist/three-d/Character3D.d.ts +26 -1
  188. package/dist/three-d/Character3D.d.ts.map +1 -1
  189. package/dist/three-d/Character3D.js +31 -14
  190. package/dist/three-d/Character3D.js.map +1 -1
  191. package/dist/three-d/Collision3D.d.ts +63 -0
  192. package/dist/three-d/Collision3D.d.ts.map +1 -0
  193. package/dist/three-d/Collision3D.js +75 -0
  194. package/dist/three-d/Collision3D.js.map +1 -0
  195. package/dist/three-d/Models.js +1 -1
  196. package/dist/three-d/index.d.ts +3 -1
  197. package/dist/three-d/index.d.ts.map +1 -1
  198. package/dist/three-d/index.js +1 -0
  199. package/dist/three-d/index.js.map +1 -1
  200. package/dist/{core → two-d}/Game.d.ts +7 -6
  201. package/dist/two-d/Game.d.ts.map +1 -0
  202. package/dist/{core → two-d}/Game.js +3 -3
  203. package/dist/two-d/Game.js.map +1 -0
  204. package/dist/two-d/Scene2D.d.ts +19 -0
  205. package/dist/two-d/Scene2D.d.ts.map +1 -0
  206. package/dist/two-d/Scene2D.js +23 -0
  207. package/dist/two-d/Scene2D.js.map +1 -0
  208. package/dist/two-d/index.d.ts +20 -0
  209. package/dist/two-d/index.d.ts.map +1 -0
  210. package/dist/two-d/index.js +18 -0
  211. package/dist/two-d/index.js.map +1 -0
  212. package/dist/two-d/render/ActorAnimator.d.ts.map +1 -0
  213. package/dist/two-d/render/ActorAnimator.js.map +1 -0
  214. package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -0
  215. package/dist/two-d/render/AnimatedSprite.js.map +1 -0
  216. package/dist/two-d/render/Autotile.d.ts.map +1 -0
  217. package/dist/two-d/render/Autotile.js.map +1 -0
  218. package/dist/two-d/render/Camera.d.ts.map +1 -0
  219. package/dist/{render → two-d/render}/Camera.js +2 -2
  220. package/dist/two-d/render/Camera.js.map +1 -0
  221. package/dist/two-d/render/Capabilities.d.ts.map +1 -0
  222. package/dist/two-d/render/Capabilities.js.map +1 -0
  223. package/dist/two-d/render/ColorBlindness.d.ts.map +1 -0
  224. package/dist/two-d/render/ColorBlindness.js.map +1 -0
  225. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -0
  226. package/dist/{render → two-d/render}/ColorTransformBatcher.js +3 -2
  227. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -0
  228. package/dist/two-d/render/LayeredSprite.d.ts.map +1 -0
  229. package/dist/two-d/render/LayeredSprite.js.map +1 -0
  230. package/dist/two-d/render/Minimap.d.ts.map +1 -0
  231. package/dist/{render → two-d/render}/Minimap.js +1 -1
  232. package/dist/two-d/render/Minimap.js.map +1 -0
  233. package/dist/two-d/render/Particles.d.ts +109 -0
  234. package/dist/two-d/render/Particles.d.ts.map +1 -0
  235. package/dist/two-d/render/Particles.js +178 -0
  236. package/dist/two-d/render/Particles.js.map +1 -0
  237. package/dist/two-d/render/Projectile.d.ts.map +1 -0
  238. package/dist/two-d/render/Projectile.js.map +1 -0
  239. package/dist/two-d/render/ScreenEffects.d.ts +71 -0
  240. package/dist/two-d/render/ScreenEffects.d.ts.map +1 -0
  241. package/dist/two-d/render/ScreenEffects.js +133 -0
  242. package/dist/two-d/render/ScreenEffects.js.map +1 -0
  243. package/dist/two-d/render/SpriteSheet.d.ts.map +1 -0
  244. package/dist/{render → two-d/render}/SpriteSheet.js +1 -1
  245. package/dist/two-d/render/SpriteSheet.js.map +1 -0
  246. package/dist/two-d/render/StatusVisuals.d.ts.map +1 -0
  247. package/dist/two-d/render/StatusVisuals.js.map +1 -0
  248. package/dist/two-d/render/TileMap.d.ts.map +1 -0
  249. package/dist/{render → two-d/render}/TileMap.js +1 -1
  250. package/dist/two-d/render/TileMap.js.map +1 -0
  251. package/dist/{rpg → two-d/render}/TiledMap.d.ts +2 -2
  252. package/dist/two-d/render/TiledMap.d.ts.map +1 -0
  253. package/dist/{rpg → two-d/render}/TiledMap.js +2 -2
  254. package/dist/two-d/render/TiledMap.js.map +1 -0
  255. package/dist/two-d/render/TintedSprite.d.ts.map +1 -0
  256. package/dist/two-d/render/TintedSprite.js.map +1 -0
  257. package/dist/two-d/render/Viewport.d.ts.map +1 -0
  258. package/dist/two-d/render/Viewport.js.map +1 -0
  259. package/dist/{render → two-d/render}/index.d.ts +6 -0
  260. package/dist/two-d/render/index.d.ts.map +1 -0
  261. package/dist/{render → two-d/render}/index.js +3 -0
  262. package/dist/two-d/render/index.js.map +1 -0
  263. package/dist/two-d/stage/DialogueStage.d.ts.map +1 -0
  264. package/dist/{stage → two-d/stage}/DialogueStage.js +1 -1
  265. package/dist/two-d/stage/DialogueStage.js.map +1 -0
  266. package/dist/two-d/stage/index.d.ts.map +1 -0
  267. package/dist/two-d/stage/index.js.map +1 -0
  268. package/dist/two-d/stage/script.d.ts.map +1 -0
  269. package/dist/{stage → two-d/stage}/script.js +0 -0
  270. package/dist/two-d/stage/script.js.map +1 -0
  271. package/dist/two-d/stage/twee.d.ts.map +1 -0
  272. package/dist/two-d/stage/twee.js.map +1 -0
  273. package/dist/two-d/ui/Bar.d.ts.map +1 -0
  274. package/dist/two-d/ui/Bar.js.map +1 -0
  275. package/dist/two-d/ui/BitmapLabel.d.ts.map +1 -0
  276. package/dist/two-d/ui/BitmapLabel.js.map +1 -0
  277. package/dist/{ui → two-d/ui}/Button.d.ts +7 -1
  278. package/dist/two-d/ui/Button.d.ts.map +1 -0
  279. package/dist/{ui → two-d/ui}/Button.js +20 -4
  280. package/dist/two-d/ui/Button.js.map +1 -0
  281. package/dist/two-d/ui/EventDialogue.d.ts +23 -0
  282. package/dist/two-d/ui/EventDialogue.d.ts.map +1 -0
  283. package/dist/two-d/ui/EventDialogue.js +27 -0
  284. package/dist/two-d/ui/EventDialogue.js.map +1 -0
  285. package/dist/two-d/ui/FloatingText.d.ts.map +1 -0
  286. package/dist/two-d/ui/FloatingText.js.map +1 -0
  287. package/dist/{ui → two-d/ui}/HelpScreen.d.ts +1 -1
  288. package/dist/two-d/ui/HelpScreen.d.ts.map +1 -0
  289. package/dist/two-d/ui/HelpScreen.js.map +1 -0
  290. package/dist/{ui → two-d/ui}/IconGrid.d.ts +1 -1
  291. package/dist/two-d/ui/IconGrid.d.ts.map +1 -0
  292. package/dist/two-d/ui/IconGrid.js.map +1 -0
  293. package/dist/two-d/ui/Label.d.ts.map +1 -0
  294. package/dist/two-d/ui/Label.js.map +1 -0
  295. package/dist/{ui → two-d/ui}/ListView.d.ts +1 -1
  296. package/dist/two-d/ui/ListView.d.ts.map +1 -0
  297. package/dist/two-d/ui/ListView.js.map +1 -0
  298. package/dist/{ui → two-d/ui}/LoadingScreen.d.ts +1 -1
  299. package/dist/two-d/ui/LoadingScreen.d.ts.map +1 -0
  300. package/dist/two-d/ui/LoadingScreen.js.map +1 -0
  301. package/dist/{ui → two-d/ui}/MessageBox.d.ts +1 -1
  302. package/dist/two-d/ui/MessageBox.d.ts.map +1 -0
  303. package/dist/two-d/ui/MessageBox.js.map +1 -0
  304. package/dist/two-d/ui/NinePatch.d.ts.map +1 -0
  305. package/dist/two-d/ui/NinePatch.js.map +1 -0
  306. package/dist/{ui → two-d/ui}/RebindScreen.d.ts +1 -1
  307. package/dist/two-d/ui/RebindScreen.d.ts.map +1 -0
  308. package/dist/{ui → two-d/ui}/RebindScreen.js +1 -1
  309. package/dist/two-d/ui/RebindScreen.js.map +1 -0
  310. package/dist/two-d/ui/StatsScreen.d.ts.map +1 -0
  311. package/dist/two-d/ui/StatsScreen.js.map +1 -0
  312. package/dist/two-d/ui/Toast.d.ts.map +1 -0
  313. package/dist/{ui → two-d/ui}/Toast.js +1 -1
  314. package/dist/two-d/ui/Toast.js.map +1 -0
  315. package/dist/two-d/ui/Tooltip.d.ts +94 -0
  316. package/dist/two-d/ui/Tooltip.d.ts.map +1 -0
  317. package/dist/two-d/ui/Tooltip.js +149 -0
  318. package/dist/two-d/ui/Tooltip.js.map +1 -0
  319. package/dist/two-d/ui/VerticalLabel.d.ts.map +1 -0
  320. package/dist/two-d/ui/VerticalLabel.js.map +1 -0
  321. package/dist/{ui → two-d/ui}/Window.d.ts +2 -2
  322. package/dist/two-d/ui/Window.d.ts.map +1 -0
  323. package/dist/{ui → two-d/ui}/Window.js +1 -1
  324. package/dist/two-d/ui/Window.js.map +1 -0
  325. package/dist/two-d/ui/WindowStack.d.ts.map +1 -0
  326. package/dist/{ui → two-d/ui}/WindowStack.js +1 -1
  327. package/dist/two-d/ui/WindowStack.js.map +1 -0
  328. package/dist/{ui → two-d/ui}/index.d.ts +4 -0
  329. package/dist/two-d/ui/index.d.ts.map +1 -0
  330. package/dist/{ui → two-d/ui}/index.js +2 -0
  331. package/dist/two-d/ui/index.js.map +1 -0
  332. package/dist/{ui → two-d/ui}/theme.d.ts +2 -2
  333. package/dist/two-d/ui/theme.d.ts.map +1 -0
  334. package/dist/{ui → two-d/ui}/theme.js +1 -1
  335. package/dist/two-d/ui/theme.js.map +1 -0
  336. package/dist/version.d.ts +1 -1
  337. package/dist/version.js +1 -1
  338. package/dist/world/Encounters.js +1 -1
  339. package/dist/world/Encounters.js.map +1 -1
  340. package/dist/world/Environment.d.ts +12 -3
  341. package/dist/world/Environment.d.ts.map +1 -1
  342. package/dist/world/Environment.js +18 -9
  343. package/dist/world/Environment.js.map +1 -1
  344. package/package.json +227 -147
  345. package/dist/core/Game.d.ts.map +0 -1
  346. package/dist/core/Game.js.map +0 -1
  347. package/dist/render/ActorAnimator.d.ts.map +0 -1
  348. package/dist/render/ActorAnimator.js.map +0 -1
  349. package/dist/render/AnimatedSprite.d.ts.map +0 -1
  350. package/dist/render/AnimatedSprite.js.map +0 -1
  351. package/dist/render/Autotile.d.ts.map +0 -1
  352. package/dist/render/Autotile.js.map +0 -1
  353. package/dist/render/Camera.d.ts.map +0 -1
  354. package/dist/render/Camera.js.map +0 -1
  355. package/dist/render/Capabilities.d.ts.map +0 -1
  356. package/dist/render/Capabilities.js.map +0 -1
  357. package/dist/render/ColorBlindness.d.ts.map +0 -1
  358. package/dist/render/ColorBlindness.js.map +0 -1
  359. package/dist/render/ColorTransformBatcher.d.ts.map +0 -1
  360. package/dist/render/ColorTransformBatcher.js.map +0 -1
  361. package/dist/render/LayeredSprite.d.ts.map +0 -1
  362. package/dist/render/LayeredSprite.js.map +0 -1
  363. package/dist/render/Minimap.d.ts.map +0 -1
  364. package/dist/render/Minimap.js.map +0 -1
  365. package/dist/render/Projectile.d.ts.map +0 -1
  366. package/dist/render/Projectile.js.map +0 -1
  367. package/dist/render/SpriteSheet.d.ts.map +0 -1
  368. package/dist/render/SpriteSheet.js.map +0 -1
  369. package/dist/render/StatusVisuals.d.ts.map +0 -1
  370. package/dist/render/StatusVisuals.js.map +0 -1
  371. package/dist/render/TileMap.d.ts.map +0 -1
  372. package/dist/render/TileMap.js.map +0 -1
  373. package/dist/render/TintedSprite.d.ts.map +0 -1
  374. package/dist/render/TintedSprite.js.map +0 -1
  375. package/dist/render/Viewport.d.ts.map +0 -1
  376. package/dist/render/Viewport.js.map +0 -1
  377. package/dist/render/index.d.ts.map +0 -1
  378. package/dist/render/index.js.map +0 -1
  379. package/dist/rpg/TiledMap.d.ts.map +0 -1
  380. package/dist/rpg/TiledMap.js.map +0 -1
  381. package/dist/stage/DialogueStage.d.ts.map +0 -1
  382. package/dist/stage/DialogueStage.js.map +0 -1
  383. package/dist/stage/index.d.ts.map +0 -1
  384. package/dist/stage/index.js.map +0 -1
  385. package/dist/stage/script.d.ts.map +0 -1
  386. package/dist/stage/script.js.map +0 -1
  387. package/dist/stage/twee.d.ts.map +0 -1
  388. package/dist/stage/twee.js.map +0 -1
  389. package/dist/ui/Bar.d.ts.map +0 -1
  390. package/dist/ui/Bar.js.map +0 -1
  391. package/dist/ui/BitmapLabel.d.ts.map +0 -1
  392. package/dist/ui/BitmapLabel.js.map +0 -1
  393. package/dist/ui/Button.d.ts.map +0 -1
  394. package/dist/ui/Button.js.map +0 -1
  395. package/dist/ui/FloatingText.d.ts.map +0 -1
  396. package/dist/ui/FloatingText.js.map +0 -1
  397. package/dist/ui/HelpScreen.d.ts.map +0 -1
  398. package/dist/ui/HelpScreen.js.map +0 -1
  399. package/dist/ui/IconGrid.d.ts.map +0 -1
  400. package/dist/ui/IconGrid.js.map +0 -1
  401. package/dist/ui/Label.d.ts.map +0 -1
  402. package/dist/ui/Label.js.map +0 -1
  403. package/dist/ui/ListView.d.ts.map +0 -1
  404. package/dist/ui/ListView.js.map +0 -1
  405. package/dist/ui/LoadingScreen.d.ts.map +0 -1
  406. package/dist/ui/LoadingScreen.js.map +0 -1
  407. package/dist/ui/MessageBox.d.ts.map +0 -1
  408. package/dist/ui/MessageBox.js.map +0 -1
  409. package/dist/ui/NinePatch.d.ts.map +0 -1
  410. package/dist/ui/NinePatch.js.map +0 -1
  411. package/dist/ui/RebindScreen.d.ts.map +0 -1
  412. package/dist/ui/RebindScreen.js.map +0 -1
  413. package/dist/ui/StatsScreen.d.ts.map +0 -1
  414. package/dist/ui/StatsScreen.js.map +0 -1
  415. package/dist/ui/Toast.d.ts.map +0 -1
  416. package/dist/ui/Toast.js.map +0 -1
  417. package/dist/ui/VerticalLabel.d.ts.map +0 -1
  418. package/dist/ui/VerticalLabel.js.map +0 -1
  419. package/dist/ui/Window.d.ts.map +0 -1
  420. package/dist/ui/Window.js.map +0 -1
  421. package/dist/ui/WindowStack.d.ts.map +0 -1
  422. package/dist/ui/WindowStack.js.map +0 -1
  423. package/dist/ui/index.d.ts.map +0 -1
  424. package/dist/ui/index.js.map +0 -1
  425. package/dist/ui/theme.d.ts.map +0 -1
  426. package/dist/ui/theme.js.map +0 -1
  427. /package/dist/{render → two-d/render}/ActorAnimator.d.ts +0 -0
  428. /package/dist/{render → two-d/render}/ActorAnimator.js +0 -0
  429. /package/dist/{render → two-d/render}/AnimatedSprite.d.ts +0 -0
  430. /package/dist/{render → two-d/render}/AnimatedSprite.js +0 -0
  431. /package/dist/{render → two-d/render}/Autotile.d.ts +0 -0
  432. /package/dist/{render → two-d/render}/Autotile.js +0 -0
  433. /package/dist/{render → two-d/render}/Camera.d.ts +0 -0
  434. /package/dist/{render → two-d/render}/Capabilities.d.ts +0 -0
  435. /package/dist/{render → two-d/render}/Capabilities.js +0 -0
  436. /package/dist/{render → two-d/render}/ColorBlindness.d.ts +0 -0
  437. /package/dist/{render → two-d/render}/ColorBlindness.js +0 -0
  438. /package/dist/{render → two-d/render}/ColorTransformBatcher.d.ts +0 -0
  439. /package/dist/{render → two-d/render}/LayeredSprite.d.ts +0 -0
  440. /package/dist/{render → two-d/render}/LayeredSprite.js +0 -0
  441. /package/dist/{render → two-d/render}/Minimap.d.ts +0 -0
  442. /package/dist/{render → two-d/render}/Projectile.d.ts +0 -0
  443. /package/dist/{render → two-d/render}/Projectile.js +0 -0
  444. /package/dist/{render → two-d/render}/SpriteSheet.d.ts +0 -0
  445. /package/dist/{render → two-d/render}/StatusVisuals.d.ts +0 -0
  446. /package/dist/{render → two-d/render}/StatusVisuals.js +0 -0
  447. /package/dist/{render → two-d/render}/TileMap.d.ts +0 -0
  448. /package/dist/{render → two-d/render}/TintedSprite.d.ts +0 -0
  449. /package/dist/{render → two-d/render}/TintedSprite.js +0 -0
  450. /package/dist/{render → two-d/render}/Viewport.d.ts +0 -0
  451. /package/dist/{render → two-d/render}/Viewport.js +0 -0
  452. /package/dist/{stage → two-d/stage}/DialogueStage.d.ts +0 -0
  453. /package/dist/{stage → two-d/stage}/index.d.ts +0 -0
  454. /package/dist/{stage → two-d/stage}/index.js +0 -0
  455. /package/dist/{stage → two-d/stage}/script.d.ts +0 -0
  456. /package/dist/{stage → two-d/stage}/twee.d.ts +0 -0
  457. /package/dist/{stage → two-d/stage}/twee.js +0 -0
  458. /package/dist/{ui → two-d/ui}/Bar.d.ts +0 -0
  459. /package/dist/{ui → two-d/ui}/Bar.js +0 -0
  460. /package/dist/{ui → two-d/ui}/BitmapLabel.d.ts +0 -0
  461. /package/dist/{ui → two-d/ui}/BitmapLabel.js +0 -0
  462. /package/dist/{ui → two-d/ui}/FloatingText.d.ts +0 -0
  463. /package/dist/{ui → two-d/ui}/FloatingText.js +0 -0
  464. /package/dist/{ui → two-d/ui}/HelpScreen.js +0 -0
  465. /package/dist/{ui → two-d/ui}/IconGrid.js +0 -0
  466. /package/dist/{ui → two-d/ui}/Label.d.ts +0 -0
  467. /package/dist/{ui → two-d/ui}/Label.js +0 -0
  468. /package/dist/{ui → two-d/ui}/ListView.js +0 -0
  469. /package/dist/{ui → two-d/ui}/LoadingScreen.js +0 -0
  470. /package/dist/{ui → two-d/ui}/MessageBox.js +0 -0
  471. /package/dist/{ui → two-d/ui}/NinePatch.d.ts +0 -0
  472. /package/dist/{ui → two-d/ui}/NinePatch.js +0 -0
  473. /package/dist/{ui → two-d/ui}/StatsScreen.d.ts +0 -0
  474. /package/dist/{ui → two-d/ui}/StatsScreen.js +0 -0
  475. /package/dist/{ui → two-d/ui}/Toast.d.ts +0 -0
  476. /package/dist/{ui → two-d/ui}/VerticalLabel.d.ts +0 -0
  477. /package/dist/{ui → two-d/ui}/VerticalLabel.js +0 -0
  478. /package/dist/{ui → two-d/ui}/WindowStack.d.ts +0 -0
@@ -0,0 +1,109 @@
1
+ import { Container, type Texture } from 'pixi.js';
2
+ /**
3
+ * One live particle. Exposed as plain readable state rather than hidden inside the emitter,
4
+ * because that is what makes the simulation testable without a renderer at all: an emitter
5
+ * given no `texture` runs the whole physics step and draws nothing, so a test drives
6
+ * `update(dt)` and reads positions directly, the same split `Level` and `TileMap` already
7
+ * draw between what a thing *is* and how it is drawn.
8
+ */
9
+ export interface Particle {
10
+ x: number;
11
+ y: number;
12
+ vx: number;
13
+ vy: number;
14
+ /** seconds since birth */
15
+ age: number;
16
+ /** seconds this particle lives for */
17
+ life: number;
18
+ rotation: number;
19
+ spin: number;
20
+ /** current interpolated values, recomputed every step from the emitter's ranges */
21
+ scale: number;
22
+ alpha: number;
23
+ /** false for a pooled particle waiting to be reused */
24
+ active: boolean;
25
+ }
26
+ /** a `[min, max]` range picked per particle; a bare number means that value exactly */
27
+ export type ParticleRange = number | readonly [number, number];
28
+ export interface ParticleEmitterOptions {
29
+ /** drawn per particle; omit for a pure simulation that renders nothing (tests, headless) */
30
+ texture?: Texture;
31
+ /** how many particles can live at once. The pool is allocated once at this size and never grows */
32
+ max?: number;
33
+ /** particles emitted per second while `start()`ed; 0 makes the emitter burst-only */
34
+ rate?: number;
35
+ /** seconds a particle lives */
36
+ life?: ParticleRange;
37
+ /** initial speed, world units per second */
38
+ speed?: ParticleRange;
39
+ /** emission direction in radians; the default sprays in every direction */
40
+ angle?: ParticleRange;
41
+ /** constant acceleration, world units per second squared - the default falls nowhere */
42
+ gravity?: {
43
+ x: number;
44
+ y: number;
45
+ };
46
+ /** scale at birth and at death, interpolated across a particle's life */
47
+ scale?: readonly [number, number];
48
+ /** alpha at birth and at death */
49
+ alpha?: readonly [number, number];
50
+ /** rotation change in radians per second */
51
+ spin?: ParticleRange;
52
+ /** multiplied into every particle sprite; ignored without a `texture` */
53
+ tint?: number;
54
+ }
55
+ /**
56
+ * A pooled particle emitter: sparks off a sword hit, dust under a footstep, rain over a map.
57
+ *
58
+ * Pooled rather than allocating per particle, because this is the one primitive in the
59
+ * framework that can be asked to create and discard thousands of short-lived things per
60
+ * second, and a garbage collector pause is exactly the frame-time cost this project's own
61
+ * performance priority cares about. The pool is allocated once at `max` and reused forever
62
+ * after; asking for more particles than that while `max` are already alive drops the request
63
+ * rather than growing, so a runaway emitter degrades visibly instead of eating memory.
64
+ *
65
+ * Every random draw goes through `mwg/core`'s seeded `Random`, so a replayed or
66
+ * seeded run produces the same spray, rather than particles being the one thing on screen
67
+ * that a deterministic replay cannot reproduce.
68
+ */
69
+ export declare class ParticleEmitter extends Container {
70
+ private readonly pool;
71
+ private readonly sprites;
72
+ private readonly rate;
73
+ private readonly life;
74
+ private readonly speed;
75
+ private readonly angleRange;
76
+ private readonly gravityX;
77
+ private readonly gravityY;
78
+ private readonly scaleRange;
79
+ private readonly alphaRange;
80
+ private readonly spin;
81
+ private emitting;
82
+ /** where the next pool search starts, so reuse stays O(1) amortised rather than O(pool) */
83
+ private poolCursor;
84
+ /** fractional particles owed from previous frames, so a low rate still emits accurately */
85
+ private debt;
86
+ constructor(options?: ParticleEmitterOptions);
87
+ /** begins continuous emission at `rate` particles per second */
88
+ start(): void;
89
+ /** stops emitting; particles already alive still finish their lives */
90
+ stop(): void;
91
+ get isEmitting(): boolean;
92
+ /** how many particles are alive right now */
93
+ get activeCount(): number;
94
+ /** the pool, live: a renderer or a test reads `active` particles straight off it */
95
+ get particles(): readonly Particle[];
96
+ /**
97
+ * Emits `count` particles at once - a hit spark, an explosion.
98
+ *
99
+ * @returns how many were actually emitted, which is fewer than asked when the pool is full
100
+ */
101
+ burst(count: number): number;
102
+ private spawn;
103
+ update(dt: number): void;
104
+ /** mirrors the pool onto the sprites; a no-op for a textureless emitter */
105
+ private draw;
106
+ /** kills every live particle at once, without emitting anything further */
107
+ clear(): void;
108
+ }
109
+ //# sourceMappingURL=Particles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Particles.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/Particles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { Container, Sprite } from 'pixi.js';
2
+ import * as Random from '../../core/Random.js';
3
+ function pick(range) {
4
+ return typeof range === 'number' ? range : Random.float(range[0], range[1]);
5
+ }
6
+ /**
7
+ * A pooled particle emitter: sparks off a sword hit, dust under a footstep, rain over a map.
8
+ *
9
+ * Pooled rather than allocating per particle, because this is the one primitive in the
10
+ * framework that can be asked to create and discard thousands of short-lived things per
11
+ * second, and a garbage collector pause is exactly the frame-time cost this project's own
12
+ * performance priority cares about. The pool is allocated once at `max` and reused forever
13
+ * after; asking for more particles than that while `max` are already alive drops the request
14
+ * rather than growing, so a runaway emitter degrades visibly instead of eating memory.
15
+ *
16
+ * Every random draw goes through `mwg/core`'s seeded `Random`, so a replayed or
17
+ * seeded run produces the same spray, rather than particles being the one thing on screen
18
+ * that a deterministic replay cannot reproduce.
19
+ */
20
+ export class ParticleEmitter extends Container {
21
+ constructor(options = {}) {
22
+ super();
23
+ this.pool = [];
24
+ this.sprites = [];
25
+ this.emitting = false;
26
+ /** where the next pool search starts, so reuse stays O(1) amortised rather than O(pool) */
27
+ this.poolCursor = 0;
28
+ /** fractional particles owed from previous frames, so a low rate still emits accurately */
29
+ this.debt = 0;
30
+ const max = Math.max(1, Math.floor(options.max ?? 200));
31
+ this.rate = options.rate ?? 0;
32
+ this.life = options.life ?? [0.4, 0.9];
33
+ this.speed = options.speed ?? [20, 60];
34
+ this.angleRange = options.angle ?? [0, Math.PI * 2];
35
+ this.gravityX = options.gravity?.x ?? 0;
36
+ this.gravityY = options.gravity?.y ?? 0;
37
+ this.scaleRange = options.scale ?? [1, 1];
38
+ this.alphaRange = options.alpha ?? [1, 0];
39
+ this.spin = options.spin ?? 0;
40
+ for (let i = 0; i < max; i++) {
41
+ this.pool.push({ x: 0, y: 0, vx: 0, vy: 0, age: 0, life: 0, rotation: 0, spin: 0, scale: 1, alpha: 1, active: false });
42
+ if (options.texture) {
43
+ const sprite = new Sprite(options.texture);
44
+ sprite.anchor.set(0.5);
45
+ sprite.visible = false;
46
+ if (options.tint !== undefined)
47
+ sprite.tint = options.tint;
48
+ this.sprites.push(sprite);
49
+ this.addChild(sprite);
50
+ }
51
+ }
52
+ }
53
+ /** begins continuous emission at `rate` particles per second */
54
+ start() {
55
+ this.emitting = true;
56
+ }
57
+ /** stops emitting; particles already alive still finish their lives */
58
+ stop() {
59
+ this.emitting = false;
60
+ this.debt = 0;
61
+ }
62
+ get isEmitting() {
63
+ return this.emitting;
64
+ }
65
+ /** how many particles are alive right now */
66
+ get activeCount() {
67
+ let count = 0;
68
+ for (const particle of this.pool)
69
+ if (particle.active)
70
+ count++;
71
+ return count;
72
+ }
73
+ /** the pool, live: a renderer or a test reads `active` particles straight off it */
74
+ get particles() {
75
+ return this.pool;
76
+ }
77
+ /**
78
+ * Emits `count` particles at once - a hit spark, an explosion.
79
+ *
80
+ * @returns how many were actually emitted, which is fewer than asked when the pool is full
81
+ */
82
+ burst(count) {
83
+ let emitted = 0;
84
+ for (let i = 0; i < count; i++) {
85
+ if (!this.spawn())
86
+ break;
87
+ emitted++;
88
+ }
89
+ return emitted;
90
+ }
91
+ spawn() {
92
+ //a cursor rather than a scan from zero: reusing the pool must not get more expensive
93
+ //the fuller it gets, which is exactly when an emitter is under the most load
94
+ let particle = null;
95
+ for (let tried = 0; tried < this.pool.length; tried++) {
96
+ const candidate = this.pool[this.poolCursor];
97
+ this.poolCursor = (this.poolCursor + 1) % this.pool.length;
98
+ if (!candidate.active) {
99
+ particle = candidate;
100
+ break;
101
+ }
102
+ }
103
+ if (!particle)
104
+ return false;
105
+ const angle = pick(this.angleRange);
106
+ const speed = pick(this.speed);
107
+ particle.x = this.x;
108
+ particle.y = this.y;
109
+ particle.vx = Math.cos(angle) * speed;
110
+ particle.vy = Math.sin(angle) * speed;
111
+ particle.age = 0;
112
+ particle.life = Math.max(1e-6, pick(this.life));
113
+ particle.rotation = 0;
114
+ particle.spin = pick(this.spin);
115
+ particle.scale = this.scaleRange[0];
116
+ particle.alpha = this.alphaRange[0];
117
+ particle.active = true;
118
+ return true;
119
+ }
120
+ update(dt) {
121
+ if (this.emitting && this.rate > 0) {
122
+ this.debt += this.rate * dt;
123
+ while (this.debt >= 1) {
124
+ this.debt -= 1;
125
+ if (!this.spawn()) {
126
+ //pool full: drop the backlog rather than banking it for a later burst
127
+ this.debt = 0;
128
+ break;
129
+ }
130
+ }
131
+ }
132
+ for (const particle of this.pool) {
133
+ if (!particle.active)
134
+ continue;
135
+ particle.age += dt;
136
+ if (particle.age >= particle.life) {
137
+ particle.active = false;
138
+ continue;
139
+ }
140
+ particle.vx += this.gravityX * dt;
141
+ particle.vy += this.gravityY * dt;
142
+ particle.x += particle.vx * dt;
143
+ particle.y += particle.vy * dt;
144
+ particle.rotation += particle.spin * dt;
145
+ const t = particle.age / particle.life;
146
+ particle.scale = this.scaleRange[0] + (this.scaleRange[1] - this.scaleRange[0]) * t;
147
+ particle.alpha = this.alphaRange[0] + (this.alphaRange[1] - this.alphaRange[0]) * t;
148
+ }
149
+ this.draw();
150
+ }
151
+ /** mirrors the pool onto the sprites; a no-op for a textureless emitter */
152
+ draw() {
153
+ if (this.sprites.length === 0)
154
+ return;
155
+ for (let i = 0; i < this.pool.length; i++) {
156
+ const particle = this.pool[i];
157
+ const sprite = this.sprites[i];
158
+ sprite.visible = particle.active;
159
+ if (!particle.active)
160
+ continue;
161
+ //particle positions are world units, the emitter's own origin included, while the
162
+ //sprite is a child of the emitter - so the origin is subtracted back out here
163
+ sprite.x = particle.x - this.x;
164
+ sprite.y = particle.y - this.y;
165
+ sprite.rotation = particle.rotation;
166
+ sprite.alpha = particle.alpha;
167
+ sprite.scale.set(particle.scale);
168
+ }
169
+ }
170
+ /** kills every live particle at once, without emitting anything further */
171
+ clear() {
172
+ for (const particle of this.pool)
173
+ particle.active = false;
174
+ this.debt = 0;
175
+ this.draw();
176
+ }
177
+ }
178
+ //# sourceMappingURL=Particles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Particles.js","sourceRoot":"","sources":["../../../src/two-d/render/Particles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Projectile.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/Projectile.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,MAAM,WAAW,iBAAiB;IACjC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,GAAE,iBAAsB,EAc/G;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,gCAAgC;IAChC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,wFAAwF;IACxF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAa1B;CACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Projectile.js","sourceRoot":"","sources":["../../../src/two-d/render/Projectile.ts"],"names":[],"mappings":"AAaA;;;;;;;;;GASG;AACH,MAAM,OAAO,UAAU;IAUtB,YAAY,MAAuB,EAAE,IAAqB,EAAE,EAAmB,EAAE,OAAO,GAAsB,EAAE;QAHxG,YAAO,GAAG,CAAC,CAAC;QACZ,YAAO,GAAG,KAAK,CAAC;QAGvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;QACtE,4EAA4E;QAC5E,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE7C,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAClB,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,gCAAgC;IAChC,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,wFAAwF;IACxF,MAAM,CAAC,EAAU;QAChB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE/B,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;CACD"}
@@ -0,0 +1,71 @@
1
+ import { Container } from 'pixi.js';
2
+ /** what the overlay is currently doing; `'idle'` covers both fully clear and a held tint */
3
+ export type ScreenEffectPhase = 'idle' | 'fadeOut' | 'fadeIn' | 'flash';
4
+ export interface ScreenEffectsOptions {
5
+ width?: number;
6
+ height?: number;
7
+ /** the colour used when a call does not name one; defaults to black */
8
+ color?: number;
9
+ }
10
+ /**
11
+ * A full-screen colour wash over everything else: fade out to black between floors, flash
12
+ * white on a critical hit, hold a red tint while poisoned.
13
+ *
14
+ * Driven by `update(dt)` against a plain elapsed timer rather than a promise-returning tween,
15
+ * matching `Toast` and `FloatingText`: a single frame boundary per phase keeps the whole
16
+ * sequence reproducible one `update` call at a time, which a test (or a recorded replay) can
17
+ * drive without waiting on a microtask to settle. `update` returns true on the exact frame an
18
+ * effect finishes, the same way `Projectile.update` reports arrival, so a caller sequences
19
+ * "fade out, swap the level, fade in" without needing `await`.
20
+ *
21
+ * Add the container last, or to a layer above the world: this draws over whatever is beneath
22
+ * it in the display list and nothing else about draw order is its business.
23
+ */
24
+ export declare class ScreenEffects extends Container {
25
+ private readonly overlay;
26
+ private readonly defaultColor;
27
+ private viewWidth;
28
+ private viewHeight;
29
+ private phase;
30
+ private elapsed;
31
+ private duration;
32
+ /** alpha the current phase starts from and drives towards */
33
+ private fromAlpha;
34
+ private toAlpha;
35
+ constructor(options?: ScreenEffectsOptions);
36
+ /** call from a scene's own `resize`, so the wash keeps covering the whole canvas */
37
+ setViewport(width: number, height: number): void;
38
+ private redraw;
39
+ /** true while a fade or flash is still running; a held tint is not busy */
40
+ get isBusy(): boolean;
41
+ /**
42
+ * The wash's own opacity, 0 (clear) to 1 (fully covering).
43
+ *
44
+ * Distinct from this container's inherited `alpha`, which scales the whole effect layer
45
+ * including the wash - a game that fades the effect layer itself still reads the wash here.
46
+ */
47
+ get washAlpha(): number;
48
+ /** darkens to fully cover the screen - the first half of a transition between scenes */
49
+ fadeOut(duration: number, color?: number): void;
50
+ /** clears back to fully transparent - the second half, once the new scene is built */
51
+ fadeIn(duration: number, color?: number): void;
52
+ /**
53
+ * A quick wash in and straight back out again, peaking at `peak` partway through.
54
+ *
55
+ * One phase rather than a fade-out chained into a fade-in, because a flash is a single
56
+ * gesture: interrupting it halfway should cancel the whole thing, not leave the screen
57
+ * stuck at full white waiting for a second phase that no longer runs.
58
+ */
59
+ flash(duration: number, color?: number, peak?: number): void;
60
+ /**
61
+ * Holds a colour at a fixed opacity until changed - a poisoned green cast, an underwater
62
+ * blue. Cancels any running fade or flash, since those drive the same one overlay.
63
+ */
64
+ setTint(color: number, alpha: number): void;
65
+ /** clears the overlay outright, running effect and held tint alike */
66
+ clear(): void;
67
+ private begin;
68
+ /** @returns true on the single frame the running effect completes */
69
+ update(dt: number): boolean;
70
+ }
71
+ //# sourceMappingURL=ScreenEffects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenEffects.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/ScreenEffects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAG9C,4FAA4F;AAC5F,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExE,MAAM,WAAW,oBAAoB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAK;IAErB,6DAA6D;IAC7D,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAK;IAEpB,YAAY,OAAO,GAAE,oBAAyB,EAU7C;IAED,oFAAoF;IACpF,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI/C;IAED,OAAO,CAAC,MAAM;IAOd,2EAA2E;IAC3E,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;;OAKG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,wFAAwF;IACxF,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAE9C;IAED,sFAAsF;IACtF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAE7C;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,SAAI,GAAG,IAAI,CAEtD;IAED;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1C;IAED,sEAAsE;IACtE,KAAK,IAAI,IAAI,CAKZ;IAED,OAAO,CAAC,KAAK;IAkBb,qEAAqE;IACrE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAqB1B;CACD"}
@@ -0,0 +1,133 @@
1
+ import { Container, Graphics } from 'pixi.js';
2
+ import { Easing } from '../../core/Tween.js';
3
+ /**
4
+ * A full-screen colour wash over everything else: fade out to black between floors, flash
5
+ * white on a critical hit, hold a red tint while poisoned.
6
+ *
7
+ * Driven by `update(dt)` against a plain elapsed timer rather than a promise-returning tween,
8
+ * matching `Toast` and `FloatingText`: a single frame boundary per phase keeps the whole
9
+ * sequence reproducible one `update` call at a time, which a test (or a recorded replay) can
10
+ * drive without waiting on a microtask to settle. `update` returns true on the exact frame an
11
+ * effect finishes, the same way `Projectile.update` reports arrival, so a caller sequences
12
+ * "fade out, swap the level, fade in" without needing `await`.
13
+ *
14
+ * Add the container last, or to a layer above the world: this draws over whatever is beneath
15
+ * it in the display list and nothing else about draw order is its business.
16
+ */
17
+ export class ScreenEffects extends Container {
18
+ constructor(options = {}) {
19
+ super();
20
+ this.overlay = new Graphics();
21
+ this.phase = 'idle';
22
+ this.elapsed = 0;
23
+ this.duration = 0;
24
+ /** alpha the current phase starts from and drives towards */
25
+ this.fromAlpha = 0;
26
+ this.toAlpha = 0;
27
+ this.defaultColor = options.color ?? 0x000000;
28
+ this.viewWidth = options.width ?? 0;
29
+ this.viewHeight = options.height ?? 0;
30
+ this.overlay.alpha = 0;
31
+ this.overlay.tint = this.defaultColor;
32
+ this.addChild(this.overlay);
33
+ this.redraw();
34
+ }
35
+ /** call from a scene's own `resize`, so the wash keeps covering the whole canvas */
36
+ setViewport(width, height) {
37
+ this.viewWidth = width;
38
+ this.viewHeight = height;
39
+ this.redraw();
40
+ }
41
+ redraw() {
42
+ this.overlay.clear();
43
+ if (this.viewWidth > 0 && this.viewHeight > 0) {
44
+ this.overlay.rect(0, 0, this.viewWidth, this.viewHeight).fill({ color: 0xffffff });
45
+ }
46
+ }
47
+ /** true while a fade or flash is still running; a held tint is not busy */
48
+ get isBusy() {
49
+ return this.phase !== 'idle';
50
+ }
51
+ /**
52
+ * The wash's own opacity, 0 (clear) to 1 (fully covering).
53
+ *
54
+ * Distinct from this container's inherited `alpha`, which scales the whole effect layer
55
+ * including the wash - a game that fades the effect layer itself still reads the wash here.
56
+ */
57
+ get washAlpha() {
58
+ return this.overlay.alpha;
59
+ }
60
+ /** darkens to fully cover the screen - the first half of a transition between scenes */
61
+ fadeOut(duration, color) {
62
+ this.begin('fadeOut', duration, this.overlay.alpha, 1, color);
63
+ }
64
+ /** clears back to fully transparent - the second half, once the new scene is built */
65
+ fadeIn(duration, color) {
66
+ this.begin('fadeIn', duration, this.overlay.alpha, 0, color);
67
+ }
68
+ /**
69
+ * A quick wash in and straight back out again, peaking at `peak` partway through.
70
+ *
71
+ * One phase rather than a fade-out chained into a fade-in, because a flash is a single
72
+ * gesture: interrupting it halfway should cancel the whole thing, not leave the screen
73
+ * stuck at full white waiting for a second phase that no longer runs.
74
+ */
75
+ flash(duration, color, peak = 1) {
76
+ this.begin('flash', duration, 0, peak, color);
77
+ }
78
+ /**
79
+ * Holds a colour at a fixed opacity until changed - a poisoned green cast, an underwater
80
+ * blue. Cancels any running fade or flash, since those drive the same one overlay.
81
+ */
82
+ setTint(color, alpha) {
83
+ this.phase = 'idle';
84
+ this.elapsed = 0;
85
+ this.overlay.tint = color;
86
+ this.overlay.alpha = Math.max(0, Math.min(1, alpha));
87
+ }
88
+ /** clears the overlay outright, running effect and held tint alike */
89
+ clear() {
90
+ this.phase = 'idle';
91
+ this.elapsed = 0;
92
+ this.overlay.alpha = 0;
93
+ this.overlay.tint = this.defaultColor;
94
+ }
95
+ begin(phase, duration, from, to, color) {
96
+ this.overlay.tint = color ?? this.defaultColor;
97
+ this.fromAlpha = from;
98
+ this.toAlpha = to;
99
+ this.elapsed = 0;
100
+ this.duration = duration;
101
+ //a non-positive duration is an instant cut, applied now rather than a frame later
102
+ if (!(duration > 0)) {
103
+ this.overlay.alpha = phase === 'flash' ? 0 : to;
104
+ this.phase = 'idle';
105
+ return;
106
+ }
107
+ this.phase = phase;
108
+ this.overlay.alpha = phase === 'flash' ? 0 : from;
109
+ }
110
+ /** @returns true on the single frame the running effect completes */
111
+ update(dt) {
112
+ if (this.phase === 'idle')
113
+ return false;
114
+ this.elapsed += dt;
115
+ const t = Math.min(1, this.elapsed / this.duration);
116
+ if (this.phase === 'flash') {
117
+ //up fast, down slow: a flash reads as an impact rather than a pulse
118
+ const shape = t < 0.5 ? Easing.easeOutQuad(t * 2) : 1 - Easing.easeInQuad((t - 0.5) * 2);
119
+ this.overlay.alpha = this.toAlpha * shape;
120
+ }
121
+ else {
122
+ const eased = Easing.easeInOutQuad(t);
123
+ this.overlay.alpha = this.fromAlpha + (this.toAlpha - this.fromAlpha) * eased;
124
+ }
125
+ if (t >= 1) {
126
+ this.overlay.alpha = this.phase === 'flash' ? 0 : this.toAlpha;
127
+ this.phase = 'idle';
128
+ return true;
129
+ }
130
+ return false;
131
+ }
132
+ }
133
+ //# sourceMappingURL=ScreenEffects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenEffects.js","sourceRoot":"","sources":["../../../src/two-d/render/ScreenEffects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAa7C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAe3C,YAAY,OAAO,GAAyB,EAAE;QAC7C,KAAK,EAAE,CAAC;QAfQ,YAAO,GAAG,IAAI,QAAQ,EAAE,CAAC;QAMlC,UAAK,GAAsB,MAAM,CAAC;QAClC,YAAO,GAAG,CAAC,CAAC;QACZ,aAAQ,GAAG,CAAC,CAAC;QAErB,6DAA6D;QACrD,cAAS,GAAG,CAAC,CAAC;QACd,YAAO,GAAG,CAAC,CAAC;QAInB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,oFAAoF;IACpF,WAAW,CAAC,KAAa,EAAE,MAAc;QACxC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAEO,MAAM;QACb,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpF,CAAC;IACF,CAAC;IAED,2EAA2E;IAC3E,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,wFAAwF;IACxF,OAAO,CAAC,QAAgB,EAAE,KAAc;QACvC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,QAAgB,EAAE,KAAc;QACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAgB,EAAE,KAAc,EAAE,IAAI,GAAG,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAa,EAAE,KAAa;QACnC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,sEAAsE;IACtE,KAAK;QACJ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,KAAwB,EAAE,QAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,KAAc;QACjG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,kFAAkF;QAClF,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED,qEAAqE;IACrE,MAAM,CAAC,EAAU;QAChB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAExC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC5B,oEAAoE;YACpE,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3C,CAAC;aAAM,CAAC;YACP,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC/D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;CACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpriteSheet.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/SpriteSheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,MAAM,SAAS,CAAC;AAG7C;;;;;;;GAOG;AACH,qBAAa,WAAW;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,KAAK,CAA6B;IAE1C,OAAO,eAMN;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,SAAa,GAAG,WAAW,CAEnF;IAED,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,SAAa,GAAG,WAAW,CAE9F;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,8FAA8F;IAC9F,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAGtC;IAED,yEAAyE;IACzE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAGrD;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5B;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAsBnC;IAED,0EAA0E;IAC1E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,EAAE,CAIzC;IAED,iEAAiE;IACjE,IAAI,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,EAAE,CAEjD;CACD"}
@@ -1,5 +1,5 @@
1
1
  import { Rectangle, Texture } from 'pixi.js';
2
- import * as Resources from '../assets/index.js';
2
+ import * as Resources from '../../assets/index.js';
3
3
  /**
4
4
  * A texture cut into numbered frames.
5
5
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpriteSheet.js","sourceRoot":"","sources":["../../../src/two-d/render/SpriteSheet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusVisuals.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/StatusVisuals.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,UAAU,IAAI,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IACjC,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACpC,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAoC;IAClD,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAK;IAEpB,YAAY,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAI5D;IAED,kGAAkG;IAClG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAGvC;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED,qFAAqF;IACrF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAcvB;CACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusVisuals.js","sourceRoot":"","sources":["../../../src/two-d/render/StatusVisuals.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,aAAa;IAQzB,YAAY,MAAkB,EAAE,OAA6B;QAHrD,WAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3B,YAAO,GAAG,CAAC,CAAC;QAGnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,kGAAkG;IAClG,GAAG,CAAC,IAAY,EAAE,MAAe;QAChC,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;YAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,qFAAqF;IACrF,MAAM,CAAC,EAAU;QAChB,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEtH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;CACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileMap.d.ts","sourceRoot":"","sources":["../../../src/two-d/render/TileMap.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Container, Graphics } from 'pixi.js';
2
2
  import { TintedSprite } from './TintedSprite.js';
3
- import { hexToPixel, pixelToHex } from '../core/Hex.js';
3
+ import { hexToPixel, pixelToHex } from '../../core/Hex.js';
4
4
  /** the frame value meaning "nothing here"; a cell holding it gets no sprite at all */
5
5
  export const EMPTY = -1;
6
6
  /** the faces of a raised block are shaded, the way light falls on the classic block look */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileMap.js","sourceRoot":"","sources":["../../../src/two-d/render/TileMap.ts"],"names":[],"mappings":"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"}