react-native-games 0.3.0 → 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 (387) hide show
  1. package/README.md +45 -32
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +160 -75
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +183 -0
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -0
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +152 -55
  7. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +108 -92
  9. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +48 -65
  11. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js +7 -2
  13. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  14. package/lib/module/games/balloon-blaster/components/GameBackground.js +8 -83
  15. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  16. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +9 -6
  17. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +1 -1
  18. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +8 -16
  19. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  20. package/lib/module/games/balloon-blaster/components/index.js +0 -1
  21. package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
  22. package/lib/module/games/{fruit-slicer/FruitSlicer.js → fruit-ninja/FruitNinja.js} +68 -54
  23. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -0
  24. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +151 -0
  25. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -0
  26. package/lib/module/games/{fruit-slicer/FruitSlicerService.js → fruit-ninja/FruitNinjaService.js} +13 -12
  27. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -0
  28. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +166 -0
  29. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -0
  30. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.js +1 -1
  31. package/lib/module/games/fruit-ninja/components/FruitComponent.js.map +1 -0
  32. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -0
  33. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameBackground.js +198 -169
  34. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -0
  35. package/lib/module/games/fruit-ninja/components/GameOverModal.js.map +1 -0
  36. package/lib/module/games/fruit-ninja/components/ParticleSystem.js.map +1 -0
  37. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.js +8 -17
  38. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -0
  39. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/SliceTrail.js +1 -1
  40. package/lib/module/games/fruit-ninja/components/SliceTrail.js.map +1 -0
  41. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/index.js +0 -1
  42. package/lib/module/games/fruit-ninja/components/index.js.map +1 -0
  43. package/lib/module/games/maze-runner/MazeRunner.js +109 -91
  44. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  45. package/lib/module/games/maze-runner/MazeRunnerConstants.js +105 -0
  46. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -0
  47. package/lib/module/games/maze-runner/MazeRunnerService.js +37 -14
  48. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  49. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +5 -9
  50. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  51. package/lib/module/games/maze-runner/components/GameBackground.js +151 -192
  52. package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -1
  53. package/lib/module/games/maze-runner/components/ScoreBoard.js +8 -23
  54. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  55. package/lib/module/games/maze-runner/components/index.js +0 -1
  56. package/lib/module/games/maze-runner/components/index.js.map +1 -1
  57. package/lib/module/games/popit-fidget/PopitFidget.js +293 -0
  58. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -0
  59. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +116 -0
  60. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -0
  61. package/lib/module/games/popit-fidget/PopitFidgetService.js +191 -0
  62. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -0
  63. package/lib/module/games/popit-fidget/PopitFidgetStore.js +190 -0
  64. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -0
  65. package/lib/module/games/popit-fidget/components/BubbleComponent.js +196 -0
  66. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -0
  67. package/lib/module/games/popit-fidget/components/FidgetGrid.js +165 -0
  68. package/lib/module/games/popit-fidget/components/FidgetGrid.js.map +1 -0
  69. package/lib/module/games/popit-fidget/components/GameBackground.js +174 -0
  70. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -0
  71. package/lib/module/games/popit-fidget/components/GameOverModal.js +132 -0
  72. package/lib/module/games/popit-fidget/components/GameOverModal.js.map +1 -0
  73. package/lib/module/games/popit-fidget/components/ParticleSystem.js +89 -0
  74. package/lib/module/games/popit-fidget/components/ParticleSystem.js.map +1 -0
  75. package/lib/module/games/popit-fidget/components/ScoreBoard.js +68 -0
  76. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -0
  77. package/lib/module/games/popit-fidget/components/index.js +9 -0
  78. package/lib/module/games/popit-fidget/components/index.js.map +1 -0
  79. package/lib/module/games/{space-traveller/SpaceTraveller.js → space-fighter/SpaceFighter.js} +94 -70
  80. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -0
  81. package/lib/module/games/space-fighter/SpaceFighterConstants.js +110 -0
  82. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -0
  83. package/lib/module/games/{space-traveller/SpaceTravellerService.js → space-fighter/SpaceFighterService.js} +18 -10
  84. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -0
  85. package/lib/module/games/space-fighter/SpaceFighterStore.js +143 -0
  86. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -0
  87. package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -0
  88. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -0
  89. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -0
  90. package/lib/module/games/space-fighter/components/GameOverModal.js.map +1 -0
  91. package/lib/module/games/space-fighter/components/ParticleComponent.js.map +1 -0
  92. package/lib/module/games/{space-traveller → space-fighter}/components/ScoreBoard.js +11 -19
  93. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -0
  94. package/lib/module/games/space-fighter/components/SettingsModal.js.map +1 -0
  95. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -0
  96. package/lib/module/games/{space-traveller → space-fighter}/components/SpacecraftPath.js +1 -1
  97. package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -0
  98. package/lib/module/games/{space-traveller → space-fighter}/components/index.js +0 -1
  99. package/lib/module/games/space-fighter/components/index.js.map +1 -0
  100. package/lib/module/games/whack-a-mole/WhackAMole.js +273 -0
  101. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -0
  102. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +117 -0
  103. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -0
  104. package/lib/module/games/whack-a-mole/WhackAMoleService.js +120 -0
  105. package/lib/module/games/whack-a-mole/WhackAMoleService.js.map +1 -0
  106. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +159 -0
  107. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -0
  108. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameBackground.js +31 -91
  109. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -0
  110. package/lib/module/games/whack-a-mole/components/GameGrid.js +97 -0
  111. package/lib/module/games/whack-a-mole/components/GameGrid.js.map +1 -0
  112. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameHole.js +67 -54
  113. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -0
  114. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameOverModal.js +2 -2
  115. package/lib/module/games/whack-a-mole/components/GameOverModal.js.map +1 -0
  116. package/lib/module/games/{cat-popper/components/CatCharacter.js → whack-a-mole/components/MoleCharacter.js} +75 -115
  117. package/lib/module/games/whack-a-mole/components/MoleCharacter.js.map +1 -0
  118. package/lib/module/games/{cat-popper → whack-a-mole}/components/ScoreBoard.js +8 -16
  119. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -0
  120. package/lib/module/games/{cat-popper → whack-a-mole}/components/index.js +1 -2
  121. package/lib/module/games/whack-a-mole/components/index.js.map +1 -0
  122. package/lib/module/index.js +4 -3
  123. package/lib/module/index.js.map +1 -1
  124. package/lib/module/services/GamesConstants.js +36 -506
  125. package/lib/module/services/GamesConstants.js.map +1 -1
  126. package/lib/module/services/GamesService.js +22 -14
  127. package/lib/module/services/GamesService.js.map +1 -1
  128. package/lib/module/services/HapticsService.js +77 -0
  129. package/lib/module/services/HapticsService.js.map +1 -0
  130. package/lib/module/services/SoundsService.js +171 -0
  131. package/lib/module/services/SoundsService.js.map +1 -0
  132. package/lib/module/{games/balloon-blaster/components/GameControls.js → shared/helpers/GameControlButton.js} +39 -58
  133. package/lib/module/shared/helpers/GameControlButton.js.map +1 -0
  134. package/lib/module/shared/helpers/ResponsiveScoreBoard.js +81 -0
  135. package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +1 -0
  136. package/lib/module/shared/helpers/index.js +5 -0
  137. package/lib/module/shared/helpers/index.js.map +1 -0
  138. package/lib/module/shared/settings/SettingsService.js +18 -12
  139. package/lib/module/shared/settings/SettingsService.js.map +1 -1
  140. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  141. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +143 -0
  142. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -0
  143. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +3 -1
  144. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  145. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +12 -2
  146. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  147. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  148. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  149. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  150. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +1 -1
  151. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  152. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -1
  153. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
  154. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +16 -0
  155. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -0
  156. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +112 -0
  157. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -0
  158. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerService.d.ts → fruit-ninja/FruitNinjaService.d.ts} +4 -4
  159. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -0
  160. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerStore.d.ts → fruit-ninja/FruitNinjaStore.d.ts} +12 -4
  161. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -0
  162. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.d.ts +1 -1
  163. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts.map +1 -0
  164. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/GameArea.d.ts +1 -1
  165. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -0
  166. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -0
  167. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts.map +1 -0
  168. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/ParticleSystem.d.ts +1 -1
  169. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts.map +1 -0
  170. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -0
  171. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts.map +1 -0
  172. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/index.d.ts +0 -1
  173. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -0
  174. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -9
  175. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  176. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +41 -0
  177. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -0
  178. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +4 -2
  179. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  180. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  181. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +2 -1
  182. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -1
  183. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  184. package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -1
  185. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
  186. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +11 -0
  187. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -0
  188. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +45 -0
  189. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -0
  190. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +54 -0
  191. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -0
  192. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +40 -0
  193. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -0
  194. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts +12 -0
  195. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -0
  196. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts +12 -0
  197. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts.map +1 -0
  198. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +9 -0
  199. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -0
  200. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts +9 -0
  201. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts.map +1 -0
  202. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts +9 -0
  203. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts.map +1 -0
  204. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +8 -0
  205. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -0
  206. package/lib/typescript/src/games/popit-fidget/components/index.d.ts +7 -0
  207. package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -0
  208. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +9 -0
  209. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -0
  210. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +71 -0
  211. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -0
  212. package/lib/typescript/src/games/{space-traveller/SpaceTravellerService.d.ts → space-fighter/SpaceFighterService.d.ts} +7 -4
  213. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -0
  214. package/lib/typescript/src/games/{space-traveller/SpaceTravellerStore.d.ts → space-fighter/SpaceFighterStore.d.ts} +12 -4
  215. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -0
  216. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/AsteroidComponent.d.ts +1 -1
  217. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -0
  218. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/GameArea.d.ts +1 -1
  219. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -0
  220. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -0
  221. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts.map +1 -0
  222. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/ParticleComponent.d.ts +1 -1
  223. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts.map +1 -0
  224. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -0
  225. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts.map +1 -0
  226. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/Spacecraft3D.d.ts +1 -1
  227. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -0
  228. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -0
  229. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/index.d.ts +0 -1
  230. package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -0
  231. package/lib/typescript/src/games/{cat-popper/CatPopper.d.ts → whack-a-mole/WhackAMole.d.ts} +4 -4
  232. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -0
  233. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +79 -0
  234. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -0
  235. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts +33 -0
  236. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts.map +1 -0
  237. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts +41 -0
  238. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -0
  239. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -0
  240. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameGrid.d.ts +2 -2
  241. package/lib/typescript/src/games/whack-a-mole/components/GameGrid.d.ts.map +1 -0
  242. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameHole.d.ts +3 -2
  243. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts.map +1 -0
  244. package/lib/typescript/src/games/{fruit-slicer → whack-a-mole}/components/GameOverModal.d.ts.map +1 -1
  245. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts +7 -0
  246. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts.map +1 -0
  247. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -0
  248. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/index.d.ts +1 -2
  249. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -0
  250. package/lib/typescript/src/index.d.ts +4 -3
  251. package/lib/typescript/src/index.d.ts.map +1 -1
  252. package/lib/typescript/src/services/GamesConstants.d.ts +30 -318
  253. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  254. package/lib/typescript/src/services/GamesService.d.ts +1 -0
  255. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  256. package/lib/typescript/src/services/HapticsService.d.ts +16 -0
  257. package/lib/typescript/src/services/HapticsService.d.ts.map +1 -0
  258. package/lib/typescript/src/services/SoundsService.d.ts +154 -0
  259. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -0
  260. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts +17 -0
  261. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -0
  262. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +42 -0
  263. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +1 -0
  264. package/lib/typescript/src/shared/helpers/index.d.ts +4 -0
  265. package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -0
  266. package/lib/typescript/src/shared/settings/SettingsService.d.ts +2 -1
  267. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +1 -1
  268. package/package.json +9 -6
  269. package/lib/module/games/balloon-blaster/components/GameControls.js.map +0 -1
  270. package/lib/module/games/cat-popper/CatPopper.js +0 -230
  271. package/lib/module/games/cat-popper/CatPopper.js.map +0 -1
  272. package/lib/module/games/cat-popper/CatPopperService.js +0 -100
  273. package/lib/module/games/cat-popper/CatPopperService.js.map +0 -1
  274. package/lib/module/games/cat-popper/CatPopperStore.js +0 -113
  275. package/lib/module/games/cat-popper/CatPopperStore.js.map +0 -1
  276. package/lib/module/games/cat-popper/components/CatCharacter.js.map +0 -1
  277. package/lib/module/games/cat-popper/components/GameBackground.js.map +0 -1
  278. package/lib/module/games/cat-popper/components/GameControls.js +0 -230
  279. package/lib/module/games/cat-popper/components/GameControls.js.map +0 -1
  280. package/lib/module/games/cat-popper/components/GameGrid.js +0 -66
  281. package/lib/module/games/cat-popper/components/GameGrid.js.map +0 -1
  282. package/lib/module/games/cat-popper/components/GameHole.js.map +0 -1
  283. package/lib/module/games/cat-popper/components/GameOverModal.js.map +0 -1
  284. package/lib/module/games/cat-popper/components/ScoreBoard.js.map +0 -1
  285. package/lib/module/games/cat-popper/components/index.js.map +0 -1
  286. package/lib/module/games/fruit-slicer/FruitSlicer.js.map +0 -1
  287. package/lib/module/games/fruit-slicer/FruitSlicerService.js.map +0 -1
  288. package/lib/module/games/fruit-slicer/FruitSlicerStore.js +0 -156
  289. package/lib/module/games/fruit-slicer/FruitSlicerStore.js.map +0 -1
  290. package/lib/module/games/fruit-slicer/components/FruitComponent.js.map +0 -1
  291. package/lib/module/games/fruit-slicer/components/GameArea.js.map +0 -1
  292. package/lib/module/games/fruit-slicer/components/GameBackground.js.map +0 -1
  293. package/lib/module/games/fruit-slicer/components/GameControls.js +0 -230
  294. package/lib/module/games/fruit-slicer/components/GameControls.js.map +0 -1
  295. package/lib/module/games/fruit-slicer/components/GameOverModal.js.map +0 -1
  296. package/lib/module/games/fruit-slicer/components/ParticleSystem.js.map +0 -1
  297. package/lib/module/games/fruit-slicer/components/ScoreBoard.js.map +0 -1
  298. package/lib/module/games/fruit-slicer/components/SliceTrail.js.map +0 -1
  299. package/lib/module/games/fruit-slicer/components/index.js.map +0 -1
  300. package/lib/module/games/maze-runner/components/GameControls.js +0 -129
  301. package/lib/module/games/maze-runner/components/GameControls.js.map +0 -1
  302. package/lib/module/games/space-traveller/SpaceTraveller.js.map +0 -1
  303. package/lib/module/games/space-traveller/SpaceTravellerService.js.map +0 -1
  304. package/lib/module/games/space-traveller/SpaceTravellerStore.js +0 -139
  305. package/lib/module/games/space-traveller/SpaceTravellerStore.js.map +0 -1
  306. package/lib/module/games/space-traveller/components/AsteroidComponent.js.map +0 -1
  307. package/lib/module/games/space-traveller/components/GameArea.js.map +0 -1
  308. package/lib/module/games/space-traveller/components/GameBackground.js.map +0 -1
  309. package/lib/module/games/space-traveller/components/GameControls.js +0 -177
  310. package/lib/module/games/space-traveller/components/GameControls.js.map +0 -1
  311. package/lib/module/games/space-traveller/components/GameOverModal.js.map +0 -1
  312. package/lib/module/games/space-traveller/components/ParticleComponent.js.map +0 -1
  313. package/lib/module/games/space-traveller/components/ScoreBoard.js.map +0 -1
  314. package/lib/module/games/space-traveller/components/SettingsModal.js.map +0 -1
  315. package/lib/module/games/space-traveller/components/Spacecraft3D.js.map +0 -1
  316. package/lib/module/games/space-traveller/components/SpacecraftPath.js.map +0 -1
  317. package/lib/module/games/space-traveller/components/index.js.map +0 -1
  318. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts +0 -10
  319. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts.map +0 -1
  320. package/lib/typescript/src/games/cat-popper/CatPopper.d.ts.map +0 -1
  321. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts +0 -32
  322. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts.map +0 -1
  323. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts +0 -21
  324. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts.map +0 -1
  325. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts +0 -7
  326. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts.map +0 -1
  327. package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts.map +0 -1
  328. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts +0 -10
  329. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts.map +0 -1
  330. package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts.map +0 -1
  331. package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts.map +0 -1
  332. package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts.map +0 -1
  333. package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts.map +0 -1
  334. package/lib/typescript/src/games/cat-popper/components/index.d.ts.map +0 -1
  335. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts +0 -16
  336. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts.map +0 -1
  337. package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts.map +0 -1
  338. package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts.map +0 -1
  339. package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts.map +0 -1
  340. package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts.map +0 -1
  341. package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts.map +0 -1
  342. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts +0 -10
  343. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts.map +0 -1
  344. package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts.map +0 -1
  345. package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts.map +0 -1
  346. package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts.map +0 -1
  347. package/lib/typescript/src/games/fruit-slicer/components/index.d.ts.map +0 -1
  348. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts +0 -10
  349. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts.map +0 -1
  350. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts +0 -17
  351. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts.map +0 -1
  352. package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts.map +0 -1
  353. package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts.map +0 -1
  354. package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts.map +0 -1
  355. package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts.map +0 -1
  356. package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts.map +0 -1
  357. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts +0 -10
  358. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts.map +0 -1
  359. package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts.map +0 -1
  360. package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts.map +0 -1
  361. package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts.map +0 -1
  362. package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts.map +0 -1
  363. package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts.map +0 -1
  364. package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts.map +0 -1
  365. package/lib/typescript/src/games/space-traveller/components/index.d.ts.map +0 -1
  366. /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameArea.js +0 -0
  367. /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameOverModal.js +0 -0
  368. /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ParticleSystem.js +0 -0
  369. /package/lib/module/games/{space-traveller → space-fighter}/components/AsteroidComponent.js +0 -0
  370. /package/lib/module/games/{space-traveller → space-fighter}/components/GameArea.js +0 -0
  371. /package/lib/module/games/{space-traveller → space-fighter}/components/GameBackground.js +0 -0
  372. /package/lib/module/games/{space-traveller → space-fighter}/components/GameOverModal.js +0 -0
  373. /package/lib/module/games/{space-traveller → space-fighter}/components/ParticleComponent.js +0 -0
  374. /package/lib/module/games/{space-traveller → space-fighter}/components/SettingsModal.js +0 -0
  375. /package/lib/module/games/{space-traveller → space-fighter}/components/Spacecraft3D.js +0 -0
  376. /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameBackground.d.ts +0 -0
  377. /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameOverModal.d.ts +0 -0
  378. /package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.d.ts +0 -0
  379. /package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/SliceTrail.d.ts +0 -0
  380. /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameBackground.d.ts +0 -0
  381. /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameOverModal.d.ts +0 -0
  382. /package/lib/typescript/src/games/{cat-popper → space-fighter}/components/ScoreBoard.d.ts +0 -0
  383. /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SettingsModal.d.ts +0 -0
  384. /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SpacecraftPath.d.ts +0 -0
  385. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/GameBackground.d.ts +0 -0
  386. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/GameOverModal.d.ts +0 -0
  387. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/ScoreBoard.d.ts +0 -0
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ // Balloon Blaster Game Constants
4
+ export const BALLOON_BLASTER_GAME_CONFIG = {
5
+ GAME_DURATION: 60,
6
+ // seconds
7
+ MAX_LIVES: 3,
8
+ BALLOON_SPAWN_INTERVAL: 1200,
9
+ // ms - faster balloon spawning
10
+ BALLOON_RISE_SPEED: 0.1,
11
+ // pixels per frame - balloons rise from bottom to top (reduced from 1)
12
+ GRAVITY: -0.005,
13
+ // negative gravity for upward movement (reduced from -0.03)
14
+ INITIAL_VELOCITY_Y: -0.5,
15
+ // negative for upward movement (reduced from -2.5)
16
+ INITIAL_VELOCITY_X_RANGE: 0.2,
17
+ // horizontal velocity range (reduced from 0.8)
18
+ BALLOON_SIZE: 60,
19
+ SLICE_TRAIL_LENGTH: 10,
20
+ COMBO_TIMEOUT: 2000,
21
+ // ms
22
+ PARTICLE_COUNT: 4,
23
+ // Reduced from 8 to 4 for better performance
24
+ PARTICLE_LIFETIME: 600 // Reduced from 1000ms to 600ms for faster cleanup
25
+ };
26
+ export const BALLOON_BLASTER_ANIMATION_CONFIG = {
27
+ BALLOON_SPRING: {
28
+ damping: 30,
29
+ stiffness: 50
30
+ },
31
+ POP_SPRING: {
32
+ damping: 20,
33
+ stiffness: 300
34
+ },
35
+ PARTICLE_SPRING: {
36
+ damping: 25,
37
+ stiffness: 400
38
+ },
39
+ SLICE_TIMING: {
40
+ duration: 200
41
+ }
42
+ };
43
+ export const BALLOON_BLASTER_COLORS = {
44
+ BACKGROUND: '#87CEEB',
45
+ // Sky blue
46
+ SCORE_BOARD: '#4169E1',
47
+ SLICE_TRAIL: '#FFD700',
48
+ PARTICLE_COLORS: ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FFEAA7', '#DDA0DD'],
49
+ COMBO_TEXT: '#FF4757',
50
+ LIVES_COLOR: '#FF6B6B',
51
+ PARTICLE_GLOW: 'rgba(255,255,255,0.9)',
52
+ SCORE: '#FFFFFF',
53
+ UI: '#FF6347',
54
+ BUTTON_ACTIVE: '#FF7F50',
55
+ BUTTON_INACTIVE: '#FFA07A',
56
+ TEXT_PRIMARY: '#FFFFFF',
57
+ TEXT_SECONDARY: '#F0F8FF',
58
+ WHITE: '#FFFFFF',
59
+ START_BUTTON: '#4CAF50',
60
+ GAME_OVER_OVERLAY: 'rgba(0, 0, 0, 0.85)'
61
+ };
62
+
63
+ // Balloon types and their properties
64
+ export const BALLOON_TYPES = [{
65
+ emoji: '🎈',
66
+ points: 10,
67
+ name: 'red balloon',
68
+ color: '#FF0040',
69
+ gradient: ['#FF0040', '#FF4080']
70
+ }, {
71
+ emoji: '🎈',
72
+ points: 10,
73
+ name: 'blue balloon',
74
+ color: '#0080FF',
75
+ gradient: ['#0080FF', '#40A0FF']
76
+ }, {
77
+ emoji: '🎈',
78
+ points: 15,
79
+ name: 'yellow balloon',
80
+ color: '#FFD700',
81
+ gradient: ['#FFD700', '#FFEB3B']
82
+ }, {
83
+ emoji: '🎈',
84
+ points: 20,
85
+ name: 'green balloon',
86
+ color: '#00FF80',
87
+ gradient: ['#00FF80', '#40FFA0']
88
+ }, {
89
+ emoji: '🎈',
90
+ points: 25,
91
+ name: 'purple balloon',
92
+ color: '#8000FF',
93
+ gradient: ['#8000FF', '#A040FF']
94
+ }, {
95
+ emoji: '🎈',
96
+ points: 15,
97
+ name: 'pink balloon',
98
+ color: '#FF0080',
99
+ gradient: ['#FF0080', '#FF40A0']
100
+ }, {
101
+ emoji: '🎈',
102
+ points: 30,
103
+ name: 'orange balloon',
104
+ color: '#FF4000',
105
+ gradient: ['#FF4000', '#FF8040']
106
+ }, {
107
+ emoji: '🎈',
108
+ points: 25,
109
+ name: 'cyan balloon',
110
+ color: '#00FFFF',
111
+ gradient: ['#00FFFF', '#40FFFF']
112
+ }, {
113
+ emoji: '🎈',
114
+ points: 35,
115
+ name: 'magenta balloon',
116
+ color: '#FF00FF',
117
+ gradient: ['#FF00FF', '#FF40FF']
118
+ }, {
119
+ emoji: '🎈',
120
+ points: 40,
121
+ name: 'gold balloon',
122
+ color: '#FFB000',
123
+ gradient: ['#FFB000', '#FFD700']
124
+ }, {
125
+ emoji: '🎈',
126
+ points: 45,
127
+ name: 'rainbow balloon',
128
+ color: '#FF0080',
129
+ gradient: ['#FF0080', '#8000FF', '#0080FF', '#00FF80']
130
+ }, {
131
+ emoji: '🎈',
132
+ points: 50,
133
+ name: 'neon balloon',
134
+ color: '#00FF00',
135
+ gradient: ['#00FF00', '#FFFF00']
136
+ }];
137
+ export const BALLOON_SPECIAL_ITEMS = [{
138
+ emoji: '💣',
139
+ points: -50,
140
+ name: 'bomb',
141
+ isBomb: true,
142
+ color: '#FF4444'
143
+ }, {
144
+ emoji: '⭐',
145
+ points: 50,
146
+ name: 'star',
147
+ isBonus: true,
148
+ color: '#FFD700'
149
+ }];
150
+
151
+ // Balloon Blaster Game Theme
152
+ export const BALLOON_BLASTER_THEME = {
153
+ backgroundColor: '#87CEEB',
154
+ // Sky blue
155
+ headerBackgroundColor: 'rgba(20, 83, 45, 0.8)',
156
+ // Green with transparency
157
+ headerTextColor: '#ffffff',
158
+ sectionBackgroundColor: 'rgba(255, 255, 255, 0.2)',
159
+ sectionTitleColor: '#1f2937',
160
+ // Dark gray
161
+ buttonSelectedColor: '#22c55e',
162
+ // Green
163
+ buttonUnselectedColor: 'rgba(255, 255, 255, 0.3)',
164
+ buttonSelectedTextColor: '#ffffff',
165
+ buttonUnselectedTextColor: '#1f2937',
166
+ switchTrackColorFalse: '#16a34a',
167
+ switchTrackColorTrue: '#22c55e',
168
+ switchThumbColor: '#fbbf24',
169
+ // Amber
170
+ infoTextColor: '#374151',
171
+ // Gray
172
+ resetButtonColor: '#ef4444',
173
+ // Red
174
+ resetButtonTextColor: '#ffffff'
175
+ };
176
+
177
+ // Balloon Blaster Difficulty Descriptions
178
+ export const BALLOON_BLASTER_DIFFICULTY_DESCRIPTIONS = {
179
+ easy: '60 seconds, balloons spawn slower',
180
+ medium: '120 seconds, balanced gameplay',
181
+ hard: '180 seconds, fast balloons, quick reflexes needed!'
182
+ };
183
+ //# sourceMappingURL=BalloonBlasterConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BALLOON_BLASTER_GAME_CONFIG","GAME_DURATION","MAX_LIVES","BALLOON_SPAWN_INTERVAL","BALLOON_RISE_SPEED","GRAVITY","INITIAL_VELOCITY_Y","INITIAL_VELOCITY_X_RANGE","BALLOON_SIZE","SLICE_TRAIL_LENGTH","COMBO_TIMEOUT","PARTICLE_COUNT","PARTICLE_LIFETIME","BALLOON_BLASTER_ANIMATION_CONFIG","BALLOON_SPRING","damping","stiffness","POP_SPRING","PARTICLE_SPRING","SLICE_TIMING","duration","BALLOON_BLASTER_COLORS","BACKGROUND","SCORE_BOARD","SLICE_TRAIL","PARTICLE_COLORS","COMBO_TEXT","LIVES_COLOR","PARTICLE_GLOW","SCORE","UI","BUTTON_ACTIVE","BUTTON_INACTIVE","TEXT_PRIMARY","TEXT_SECONDARY","WHITE","START_BUTTON","GAME_OVER_OVERLAY","BALLOON_TYPES","emoji","points","name","color","gradient","BALLOON_SPECIAL_ITEMS","isBomb","isBonus","BALLOON_BLASTER_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","resetButtonColor","resetButtonTextColor","BALLOON_BLASTER_DIFFICULTY_DESCRIPTIONS","easy","medium","hard"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterConstants.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,2BAA2B,GAAG;EACzCC,aAAa,EAAE,EAAE;EAAE;EACnBC,SAAS,EAAE,CAAC;EACZC,sBAAsB,EAAE,IAAI;EAAE;EAC9BC,kBAAkB,EAAE,GAAG;EAAE;EACzBC,OAAO,EAAE,CAAC,KAAK;EAAE;EACjBC,kBAAkB,EAAE,CAAC,GAAG;EAAE;EAC1BC,wBAAwB,EAAE,GAAG;EAAE;EAC/BC,YAAY,EAAE,EAAE;EAChBC,kBAAkB,EAAE,EAAE;EACtBC,aAAa,EAAE,IAAI;EAAE;EACrBC,cAAc,EAAE,CAAC;EAAE;EACnBC,iBAAiB,EAAE,GAAG,CAAC;AACzB,CAAU;AAEV,OAAO,MAAMC,gCAAgC,GAAG;EAC9CC,cAAc,EAAE;IACdC,OAAO,EAAE,EAAE;IACXC,SAAS,EAAE;EACb,CAAC;EACDC,UAAU,EAAE;IACVF,OAAO,EAAE,EAAE;IACXC,SAAS,EAAE;EACb,CAAC;EACDE,eAAe,EAAE;IACfH,OAAO,EAAE,EAAE;IACXC,SAAS,EAAE;EACb,CAAC;EACDG,YAAY,EAAE;IACZC,QAAQ,EAAE;EACZ;AACF,CAAU;AAEV,OAAO,MAAMC,sBAAsB,GAAG;EACpCC,UAAU,EAAE,SAAS;EAAE;EACvBC,WAAW,EAAE,SAAS;EACtBC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;EACnFC,UAAU,EAAE,SAAS;EACrBC,WAAW,EAAE,SAAS;EACtBC,aAAa,EAAE,uBAAuB;EACtCC,KAAK,EAAE,SAAS;EAChBC,EAAE,EAAE,SAAS;EACbC,aAAa,EAAE,SAAS;EACxBC,eAAe,EAAE,SAAS;EAC1BC,YAAY,EAAE,SAAS;EACvBC,cAAc,EAAE,SAAS;EACzBC,KAAK,EAAE,SAAS;EAChBC,YAAY,EAAE,SAAS;EACvBC,iBAAiB,EAAE;AACrB,CAAU;;AAEV;AACA,OAAO,MAAMC,aAAa,GAAG,CAC3B;EAAEC,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,aAAa;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACpG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,cAAc;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACrG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,gBAAgB;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACvG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,eAAe;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACtG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,gBAAgB;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACvG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,cAAc;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACrG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,gBAAgB;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACvG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,cAAc;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACrG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,iBAAiB;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACxG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,cAAc;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,EACrG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,iBAAiB;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;AAAE,CAAC,EAC9H;EAAEJ,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,cAAc;EAAEC,KAAK,EAAE,SAAS;EAAEC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS;AAAE,CAAC,CAC7F;AAEV,OAAO,MAAMC,qBAAqB,GAAG,CACnC;EAAEL,KAAK,EAAE,IAAI;EAAEC,MAAM,EAAE,CAAC,EAAE;EAAEC,IAAI,EAAE,MAAM;EAAEI,MAAM,EAAE,IAAI;EAAEH,KAAK,EAAE;AAAU,CAAC,EAC1E;EAAEH,KAAK,EAAE,GAAG;EAAEC,MAAM,EAAE,EAAE;EAAEC,IAAI,EAAE,MAAM;EAAEK,OAAO,EAAE,IAAI;EAAEJ,KAAK,EAAE;AAAU,CAAC,CACjE;;AAEV;AACA,OAAO,MAAMK,qBAAwC,GAAG;EACtDC,eAAe,EAAE,SAAS;EAAE;EAC5BC,qBAAqB,EAAE,uBAAuB;EAAE;EAChDC,eAAe,EAAE,SAAS;EAC1BC,sBAAsB,EAAE,0BAA0B;EAClDC,iBAAiB,EAAE,SAAS;EAAE;EAC9BC,mBAAmB,EAAE,SAAS;EAAE;EAChCC,qBAAqB,EAAE,0BAA0B;EACjDC,uBAAuB,EAAE,SAAS;EAClCC,yBAAyB,EAAE,SAAS;EACpCC,qBAAqB,EAAE,SAAS;EAChCC,oBAAoB,EAAE,SAAS;EAC/BC,gBAAgB,EAAE,SAAS;EAAE;EAC7BC,aAAa,EAAE,SAAS;EAAE;EAC1BC,gBAAgB,EAAE,SAAS;EAAE;EAC7BC,oBAAoB,EAAE;AACxB,CAAC;;AAED;AACA,OAAO,MAAMC,uCAAuC,GAAG;EACrDC,IAAI,EAAE,mCAAmC;EACzCC,MAAM,EAAE,gCAAgC;EACxCC,IAAI,EAAE;AACR,CAAU","ignoreList":[]}
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  import { Dimensions } from 'react-native';
4
- import { BALLOON_BLASTER_GAME_CONFIG as GAME_CONFIG, BALLOON_BLASTER_ANIMATION_CONFIG as ANIMATION_CONFIG, BALLOON_BLASTER_COLORS as COLORS, BALLOON_TYPES, BALLOON_SPECIAL_ITEMS as SPECIAL_ITEMS } from "../../services/GamesConstants.js";
4
+ import { BALLOON_BLASTER_GAME_CONFIG as GAME_CONFIG, BALLOON_BLASTER_ANIMATION_CONFIG as ANIMATION_CONFIG, BALLOON_BLASTER_COLORS as COLORS, BALLOON_TYPES, BALLOON_SPECIAL_ITEMS as SPECIAL_ITEMS } from "./BalloonBlasterConstants.js";
5
5
  const {
6
6
  width,
7
7
  height
8
8
  } = Dimensions.get('window');
9
9
 
10
- // Constants now imported from centralized GamesConstants.ts
10
+ // Constants now imported from BalloonBlasterConstants.ts
11
11
  // Re-export for backward compatibility
12
12
  export { GAME_CONFIG, ANIMATION_CONFIG, COLORS, BALLOON_TYPES, SPECIAL_ITEMS };
13
13
 
@@ -19,6 +19,7 @@ export class BalloonBlasterService {
19
19
  animationRef = null;
20
20
  comboTimeoutRef = null;
21
21
  particles = [];
22
+ lastSpawnPositions = [];
22
23
  constructor(balloonAnimations, particleAnimations) {
23
24
  this.balloonAnimations = balloonAnimations;
24
25
  this.particleAnimations = particleAnimations;
@@ -34,39 +35,57 @@ export class BalloonBlasterService {
34
35
  const balloon = this.createRandomBalloon();
35
36
  spawnBalloon(balloon);
36
37
 
37
- // Better spawn timing - less frequent joint spawning
38
- const randomVariation = (Math.random() - 0.5) * 400; // Reduced variation for faster spawning
38
+ // Reduced random variation for more consistent spawning
39
+ const randomVariation = (Math.random() - 0.5) * 200; // Reduced from 400ms to 200ms
39
40
  const nextSpawnTime = spawnInterval + randomVariation;
40
- this.balloonSpawnRef = setTimeout(spawnLoop, Math.max(600, nextSpawnTime)); // Minimum 600ms between spawns
41
+ this.balloonSpawnRef = setTimeout(spawnLoop, Math.max(300, nextSpawnTime)); // Reduced minimum from 600ms to 300ms
41
42
  };
42
43
 
43
- // Start spawning immediately when game starts
44
- this.balloonSpawnRef = setTimeout(spawnLoop, 0);
44
+ // Spawn initial balloons with better spacing to prevent overlap
45
+ for (let i = 0; i < 3; i++) {
46
+ // Reduced from 5 to 3 to prevent bulk spawning
47
+ setTimeout(() => {
48
+ const initialBalloon = this.createRandomBalloon();
49
+ spawnBalloon(initialBalloon);
50
+ }, i * 200); // Increased stagger to 200ms for better spacing
51
+ }
52
+
53
+ // Start continuous spawning loop with proper delay
54
+ this.balloonSpawnRef = setTimeout(spawnLoop, 600); // Increased delay to prevent immediate overlap
45
55
  }
46
56
  startPhysicsLoop(updateBalloon, removeBalloon, getBalloons) {
57
+ let frameCount = 0;
47
58
  const updateLoop = () => {
59
+ frameCount++;
60
+
61
+ // Always update particles for smooth animation, but throttle balloon physics
62
+ this.updateParticles();
63
+
64
+ // Throttle balloon physics updates for better performance - update every other frame
65
+ if (frameCount % 2 !== 0) {
66
+ this.animationRef = requestAnimationFrame(updateLoop);
67
+ return;
68
+ }
48
69
  const balloons = getBalloons();
49
- balloons.forEach(balloon => {
50
- if (balloon.isPopped) return;
51
70
 
52
- // Apply negative gravity for upward movement
53
- const newVelocityY = balloon.velocity.y + GAME_CONFIG.GRAVITY;
71
+ // Use for loop instead of forEach for better performance
72
+ for (let i = 0; i < balloons.length; i++) {
73
+ const balloon = balloons[i];
74
+ if (!balloon || balloon.isPopped) continue;
54
75
 
55
- // Update position
76
+ // Simplified physics calculations
77
+ const newVelocityY = balloon.velocity.y + GAME_CONFIG.GRAVITY;
56
78
  let newX = balloon.position.x + balloon.velocity.x;
57
79
  const newY = balloon.position.y + newVelocityY;
58
-
59
- // Update rotation
60
80
  const newRotation = balloon.rotation + balloon.rotationSpeed;
61
81
 
62
82
  // Remove balloons that float off screen (top only)
63
83
  if (newY < -100) {
64
84
  removeBalloon(balloon.id);
65
- return;
85
+ continue;
66
86
  }
67
87
 
68
88
  // Prevent balloons from going too low off screen (bottom boundary)
69
- let newVelocityX = balloon.velocity.x;
70
89
  if (newY > height + 50) {
71
90
  // If balloon goes too low, start bringing it back up
72
91
  const adjustedVelocityY = Math.min(newVelocityY, -0.5); // Ensure upward movement
@@ -76,25 +95,25 @@ export class BalloonBlasterService {
76
95
  y: height + 50
77
96
  },
78
97
  velocity: {
79
- x: newVelocityX,
98
+ x: balloon.velocity.x,
80
99
  y: adjustedVelocityY
81
100
  },
82
101
  rotation: newRotation
83
102
  });
84
- return;
103
+ continue;
85
104
  }
86
105
 
87
- // Left wall bounce
106
+ // Simplified wall bounce logic
107
+ let newVelocityX = balloon.velocity.x;
88
108
  if (newX <= 0) {
89
109
  newX = 0;
90
110
  newVelocityX = Math.abs(newVelocityX) * 0.8; // Bounce right with damping
91
- }
92
-
93
- // Right wall bounce
94
- if (newX >= width - GAME_CONFIG.BALLOON_SIZE) {
111
+ } else if (newX >= width - GAME_CONFIG.BALLOON_SIZE) {
95
112
  newX = width - GAME_CONFIG.BALLOON_SIZE;
96
113
  newVelocityX = -Math.abs(newVelocityX) * 0.8; // Bounce left with damping
97
114
  }
115
+
116
+ // Batch update for better performance
98
117
  updateBalloon(balloon.id, {
99
118
  position: {
100
119
  x: newX,
@@ -106,10 +125,7 @@ export class BalloonBlasterService {
106
125
  },
107
126
  rotation: newRotation
108
127
  });
109
- });
110
-
111
- // Update particles
112
- this.updateParticles();
128
+ }
113
129
  this.animationRef = requestAnimationFrame(updateLoop);
114
130
  };
115
131
  this.animationRef = requestAnimationFrame(updateLoop);
@@ -121,10 +137,28 @@ export class BalloonBlasterService {
121
137
  if (!type) {
122
138
  // Fallback to default balloon type if undefined
123
139
  const defaultType = BALLOON_TYPES[0];
124
- const spawnX = Math.random() * (width - GAME_CONFIG.BALLOON_SIZE);
125
- const spawnY = height + 20; // Start from bottom
140
+
141
+ // Use same anti-overlap logic for fallback balloons
142
+ let spawnX;
143
+ let spawnY;
144
+ let attempts = 0;
145
+ const maxAttempts = 10;
146
+ const minDistance = GAME_CONFIG.BALLOON_SIZE + 20;
147
+ do {
148
+ spawnX = Math.random() * (width - GAME_CONFIG.BALLOON_SIZE);
149
+ spawnY = height - 50 + Math.random() * 30; // Spawn near bottom of screen for immediate visibility
150
+ attempts++;
151
+ } while (attempts < maxAttempts && this.isPositionTooClose(spawnX, spawnY, minDistance));
152
+
153
+ // Record this spawn position
154
+ this.lastSpawnPositions.push({
155
+ x: spawnX,
156
+ y: spawnY,
157
+ time: Date.now()
158
+ });
126
159
  const velocityX = (Math.random() - 0.5) * GAME_CONFIG.INITIAL_VELOCITY_X_RANGE;
127
- const velocityY = GAME_CONFIG.INITIAL_VELOCITY_Y + (Math.random() - 0.5) * 2;
160
+ const velocityY = -4 + (Math.random() - 0.5) * 1; // Fast upward movement for immediate visibility
161
+
128
162
  return {
129
163
  id: `balloon_${Date.now()}_${Math.random()}`,
130
164
  type: defaultType,
@@ -145,13 +179,32 @@ export class BalloonBlasterService {
145
179
  };
146
180
  }
147
181
 
148
- // Random spawn position (bottom of screen)
149
- const spawnX = Math.random() * (width - GAME_CONFIG.BALLOON_SIZE);
150
- const spawnY = height + 20; // Start from bottom
182
+ // Generate spawn position with anti-overlap logic
183
+ let spawnX;
184
+ let spawnY;
185
+ let attempts = 0;
186
+ const maxAttempts = 10;
187
+ const minDistance = GAME_CONFIG.BALLOON_SIZE + 20; // Minimum distance between balloons
188
+
189
+ do {
190
+ spawnX = Math.random() * (width - GAME_CONFIG.BALLOON_SIZE);
191
+ spawnY = height - 50 + Math.random() * 30; // Spawn near bottom of screen for immediate visibility
192
+ attempts++;
193
+ } while (attempts < maxAttempts && this.isPositionTooClose(spawnX, spawnY, minDistance));
194
+
195
+ // Record this spawn position
196
+ this.lastSpawnPositions.push({
197
+ x: spawnX,
198
+ y: spawnY,
199
+ time: Date.now()
200
+ });
201
+
202
+ // Clean up old spawn positions (older than 3 seconds)
203
+ this.lastSpawnPositions = this.lastSpawnPositions.filter(pos => Date.now() - pos.time < 3000);
151
204
 
152
- // Random initial velocity for upward movement
205
+ // Fast upward velocity for immediate visibility
153
206
  const velocityX = (Math.random() - 0.5) * GAME_CONFIG.INITIAL_VELOCITY_X_RANGE;
154
- const velocityY = GAME_CONFIG.INITIAL_VELOCITY_Y + (Math.random() - 0.5) * 2; // Negative for upward movement
207
+ const velocityY = -4 + (Math.random() - 0.5) * 1; // Much faster upward movement (-3.5 to -4.5 pixels per frame)
155
208
 
156
209
  return {
157
210
  id: `balloon_${Date.now()}_${Math.random()}`,
@@ -172,44 +225,88 @@ export class BalloonBlasterService {
172
225
  isBonus: 'isBonus' in type && type.isBonus
173
226
  };
174
227
  }
228
+ isPositionTooClose(x, y, minDistance) {
229
+ return this.lastSpawnPositions.some(pos => {
230
+ const distance = Math.sqrt(Math.pow(x - pos.x, 2) + Math.pow(y - pos.y, 2));
231
+ return distance < minDistance;
232
+ });
233
+ }
175
234
  createPopParticles(balloon) {
235
+ // Aggressive particle limiting to prevent performance issues during rapid popping
236
+ const maxTotalParticles = 15; // Reduced maximum particles on screen at once
237
+ if (this.particles.length >= maxTotalParticles) {
238
+ // Remove half of existing particles to make room for new ones
239
+ this.particles.splice(0, Math.floor(this.particles.length / 2));
240
+ }
176
241
  const particles = [];
177
- for (let i = 0; i < GAME_CONFIG.PARTICLE_COUNT; i++) {
178
- const angle = i / GAME_CONFIG.PARTICLE_COUNT * Math.PI * 2;
179
- const speed = 3 + Math.random() * 4;
242
+ const particleCount = Math.min(GAME_CONFIG.PARTICLE_COUNT, 6); // Limit particles per balloon to 6
243
+
244
+ // Calculate balloon center for particle spawn
245
+ const balloonCenterX = balloon.position.x + GAME_CONFIG.BALLOON_SIZE / 2;
246
+ const balloonCenterY = balloon.position.y + GAME_CONFIG.BALLOON_SIZE / 2;
247
+ for (let i = 0; i < particleCount; i++) {
248
+ const angle = i / particleCount * Math.PI * 2;
249
+ const speed = 5 + Math.random() * 4; // Increased speed for better visibility
250
+
180
251
  particles.push({
181
- id: `particle_${balloon.id}_${Date.now()}_${Math.random()}_${i}`,
252
+ id: `particle_${balloon.id}_${i}_${Date.now()}_${Math.random()}`,
253
+ // More unique ID
182
254
  position: {
183
- ...balloon.position
255
+ x: balloonCenterX,
256
+ // Center particles exactly on balloon center
257
+ y: balloonCenterY
184
258
  },
185
259
  velocity: {
186
260
  x: Math.cos(angle) * speed,
187
- y: Math.sin(angle) * speed - 2
261
+ y: Math.sin(angle) * speed - 3 // Stronger upward bias for visibility
188
262
  },
189
- color: COLORS.PARTICLE_COLORS[Math.floor(Math.random() * COLORS.PARTICLE_COLORS.length)] || '#ff6b6b',
190
- size: 4 + Math.random() * 6,
263
+ color: COLORS.PARTICLE_COLORS[i % COLORS.PARTICLE_COLORS.length] || '#FF6B6B',
264
+ size: 4 + Math.random() * 3,
265
+ // Slightly smaller particles (4-7px) for better performance
191
266
  lifetime: 0,
192
- maxLifetime: GAME_CONFIG.PARTICLE_LIFETIME
267
+ maxLifetime: Math.min(GAME_CONFIG.PARTICLE_LIFETIME, 800) // Reduced lifetime for better performance
193
268
  });
194
269
  }
195
- this.particles.push(...particles);
270
+
271
+ // Create new particles array instead of mutating existing one
272
+ this.particles = [...this.particles, ...particles];
196
273
  return particles;
197
274
  }
198
275
  updateParticles() {
199
- this.particles = this.particles.filter(particle => {
200
- particle.lifetime += 16; // Assume 60fps
276
+ // Optimized particle update with batch processing
277
+ const deltaTime = 16; // Assume 60fps
278
+ const gravity = 0.08; // Reduced gravity for better performance
201
279
 
202
- if (particle.lifetime >= particle.maxLifetime) {
203
- return false;
280
+ // Use filter to create new array instead of mutating existing one
281
+ const updatedParticles = [];
282
+ for (let i = 0; i < this.particles.length; i++) {
283
+ const particle = this.particles[i];
284
+ if (!particle) continue;
285
+
286
+ // Create a new particle object to avoid mutation
287
+ const updatedParticle = {
288
+ ...particle
289
+ };
290
+ updatedParticle.lifetime += deltaTime;
291
+ if (updatedParticle.lifetime >= updatedParticle.maxLifetime) {
292
+ // Skip expired particle (don't add to updatedParticles)
293
+ continue;
204
294
  }
205
295
 
206
- // Update particle physics
207
- particle.position.x += particle.velocity.x;
208
- particle.position.y += particle.velocity.y;
209
- particle.velocity.y += 0.1; // Gravity
296
+ // Update particle physics with good visibility
297
+ updatedParticle.position = {
298
+ x: updatedParticle.position.x + updatedParticle.velocity.x,
299
+ y: updatedParticle.position.y + updatedParticle.velocity.y
300
+ };
301
+ updatedParticle.velocity = {
302
+ x: updatedParticle.velocity.x * 0.99,
303
+ y: (updatedParticle.velocity.y + gravity) * 0.99
304
+ };
305
+ updatedParticles.push(updatedParticle);
306
+ }
210
307
 
211
- return true;
212
- });
308
+ // Replace particles array with updated one
309
+ this.particles = updatedParticles;
213
310
  }
214
311
  getParticles() {
215
312
  return this.particles;
@@ -1 +1 @@
1
- {"version":3,"names":["Dimensions","BALLOON_BLASTER_GAME_CONFIG","GAME_CONFIG","BALLOON_BLASTER_ANIMATION_CONFIG","ANIMATION_CONFIG","BALLOON_BLASTER_COLORS","COLORS","BALLOON_TYPES","BALLOON_SPECIAL_ITEMS","SPECIAL_ITEMS","width","height","get","BalloonBlasterService","gameTimerRef","balloonSpawnRef","animationRef","comboTimeoutRef","particles","constructor","balloonAnimations","particleAnimations","startGameTimer","onTick","clearGameTimer","setInterval","startBalloonSpawning","spawnBalloon","customSpawnInterval","clearBalloonSpawn","spawnInterval","BALLOON_SPAWN_INTERVAL","spawnLoop","balloon","createRandomBalloon","randomVariation","Math","random","nextSpawnTime","setTimeout","max","startPhysicsLoop","updateBalloon","removeBalloon","getBalloons","updateLoop","balloons","forEach","isPopped","newVelocityY","velocity","y","GRAVITY","newX","position","x","newY","newRotation","rotation","rotationSpeed","id","newVelocityX","adjustedVelocityY","min","abs","BALLOON_SIZE","updateParticles","requestAnimationFrame","isSpecial","type","floor","length","defaultType","spawnX","spawnY","velocityX","INITIAL_VELOCITY_X_RANGE","velocityY","INITIAL_VELOCITY_Y","Date","now","spawnTime","isBomb","Boolean","isBonus","createPopParticles","i","PARTICLE_COUNT","angle","PI","speed","push","cos","sin","color","PARTICLE_COLORS","size","lifetime","maxLifetime","PARTICLE_LIFETIME","filter","particle","getParticles","checkBalloonPop","slicePath","balloonCenter","balloonRadius","p1","p2","distance","distanceFromPointToLine","point","lineStart","lineEnd","A","B","C","D","dot","lenSq","sqrt","param","xx","yy","dx","dy","resetAnimations","clear","cleanup","clearAnimationLoop","clearComboTimeout","clearInterval","clearTimeout","cancelAnimationFrame","createBalloonBlasterService"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Dimensions","BALLOON_BLASTER_GAME_CONFIG","GAME_CONFIG","BALLOON_BLASTER_ANIMATION_CONFIG","ANIMATION_CONFIG","BALLOON_BLASTER_COLORS","COLORS","BALLOON_TYPES","BALLOON_SPECIAL_ITEMS","SPECIAL_ITEMS","width","height","get","BalloonBlasterService","gameTimerRef","balloonSpawnRef","animationRef","comboTimeoutRef","particles","lastSpawnPositions","constructor","balloonAnimations","particleAnimations","startGameTimer","onTick","clearGameTimer","setInterval","startBalloonSpawning","spawnBalloon","customSpawnInterval","clearBalloonSpawn","spawnInterval","BALLOON_SPAWN_INTERVAL","spawnLoop","balloon","createRandomBalloon","randomVariation","Math","random","nextSpawnTime","setTimeout","max","i","initialBalloon","startPhysicsLoop","updateBalloon","removeBalloon","getBalloons","frameCount","updateLoop","updateParticles","requestAnimationFrame","balloons","length","isPopped","newVelocityY","velocity","y","GRAVITY","newX","position","x","newY","newRotation","rotation","rotationSpeed","id","adjustedVelocityY","min","newVelocityX","abs","BALLOON_SIZE","isSpecial","type","floor","defaultType","spawnX","spawnY","attempts","maxAttempts","minDistance","isPositionTooClose","push","time","Date","now","velocityX","INITIAL_VELOCITY_X_RANGE","velocityY","spawnTime","isBomb","Boolean","isBonus","filter","pos","some","distance","sqrt","pow","createPopParticles","maxTotalParticles","splice","particleCount","PARTICLE_COUNT","balloonCenterX","balloonCenterY","angle","PI","speed","cos","sin","color","PARTICLE_COLORS","size","lifetime","maxLifetime","PARTICLE_LIFETIME","deltaTime","gravity","updatedParticles","particle","updatedParticle","getParticles","checkBalloonPop","slicePath","balloonCenter","balloonRadius","p1","p2","distanceFromPointToLine","point","lineStart","lineEnd","A","B","C","D","dot","lenSq","param","xx","yy","dx","dy","resetAnimations","clear","cleanup","clearAnimationLoop","clearComboTimeout","clearInterval","clearTimeout","cancelAnimationFrame","createBalloonBlasterService"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterService.ts"],"mappings":"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","ignoreList":[]}