react-native-games 0.4.0 → 0.5.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 (275) hide show
  1. package/README.md +121 -130
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +111 -423
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +27 -28
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +42 -117
  7. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +12 -1
  9. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +102 -75
  11. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js +139 -30
  13. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  14. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +7 -6
  15. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  16. package/lib/module/games/balloon-blaster/components/index.js +0 -3
  17. package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
  18. package/lib/module/games/fruit-ninja/FruitNinja.js +94 -376
  19. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  20. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +19 -22
  21. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  22. package/lib/module/games/fruit-ninja/FruitNinjaService.js +30 -9
  23. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -1
  24. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +29 -4
  25. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  26. package/lib/module/games/fruit-ninja/components/GameArea.js +194 -29
  27. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
  28. package/lib/module/games/fruit-ninja/components/GameBackground.js +107 -190
  29. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
  30. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +9 -30
  31. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  32. package/lib/module/games/fruit-ninja/components/index.js +0 -3
  33. package/lib/module/games/fruit-ninja/components/index.js.map +1 -1
  34. package/lib/module/games/maze-runner/MazeRunner.js +106 -109
  35. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  36. package/lib/module/games/maze-runner/MazeRunnerConstants.js +19 -24
  37. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  38. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +5 -4
  39. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -1
  40. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +16 -7
  41. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  42. package/lib/module/games/maze-runner/components/ScoreBoard.js +8 -3
  43. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  44. package/lib/module/games/maze-runner/components/WallComponent.js +3 -2
  45. package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -1
  46. package/lib/module/games/maze-runner/components/index.js +0 -1
  47. package/lib/module/games/maze-runner/components/index.js.map +1 -1
  48. package/lib/module/games/popit-fidget/PopitFidget.js +113 -112
  49. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  50. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +20 -23
  51. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -1
  52. package/lib/module/games/popit-fidget/PopitFidgetService.js +0 -59
  53. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -1
  54. package/lib/module/games/popit-fidget/PopitFidgetStore.js +0 -27
  55. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
  56. package/lib/module/games/popit-fidget/components/BubbleComponent.js +24 -22
  57. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -1
  58. package/lib/module/games/popit-fidget/components/GameBackground.js +4 -1
  59. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -1
  60. package/lib/module/games/popit-fidget/components/ScoreBoard.js +9 -2
  61. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
  62. package/lib/module/games/popit-fidget/components/index.js +0 -2
  63. package/lib/module/games/popit-fidget/components/index.js.map +1 -1
  64. package/lib/module/games/space-fighter/SpaceFighter.js +121 -369
  65. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  66. package/lib/module/games/space-fighter/SpaceFighterConstants.js +21 -23
  67. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  68. package/lib/module/games/space-fighter/SpaceFighterService.js +30 -11
  69. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -1
  70. package/lib/module/games/space-fighter/SpaceFighterStore.js +54 -2
  71. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
  72. package/lib/module/games/space-fighter/components/AsteroidComponent.js +7 -5
  73. package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -1
  74. package/lib/module/games/space-fighter/components/GameArea.js +234 -14
  75. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
  76. package/lib/module/games/space-fighter/components/GameBackground.js +10 -65
  77. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -1
  78. package/lib/module/games/space-fighter/components/ScoreBoard.js +9 -7
  79. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
  80. package/lib/module/games/space-fighter/components/Spacecraft3D.js +72 -111
  81. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -1
  82. package/lib/module/games/space-fighter/components/SpacecraftPath.js +42 -27
  83. package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -1
  84. package/lib/module/games/space-fighter/components/index.js +0 -3
  85. package/lib/module/games/space-fighter/components/index.js.map +1 -1
  86. package/lib/module/games/whack-a-mole/WhackAMole.js +63 -73
  87. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  88. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +17 -19
  89. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  90. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +20 -7
  91. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -1
  92. package/lib/module/games/whack-a-mole/components/GameHole.js +2 -2
  93. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -1
  94. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +5 -1
  95. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  96. package/lib/module/games/whack-a-mole/components/index.js +0 -1
  97. package/lib/module/games/whack-a-mole/components/index.js.map +1 -1
  98. package/lib/module/services/GamesConstants.js +13 -21
  99. package/lib/module/services/GamesConstants.js.map +1 -1
  100. package/lib/module/services/GamesService.js +30 -26
  101. package/lib/module/services/GamesService.js.map +1 -1
  102. package/lib/module/services/SoundsService.js +21 -21
  103. package/lib/module/shared/helpers/AnimationFrame.js +120 -0
  104. package/lib/module/shared/helpers/AnimationFrame.js.map +1 -0
  105. package/lib/module/shared/helpers/AnimationTracker.js +89 -0
  106. package/lib/module/shared/helpers/AnimationTracker.js.map +1 -0
  107. package/lib/module/shared/helpers/ErrorHandler.js +269 -0
  108. package/lib/module/shared/helpers/ErrorHandler.js.map +1 -0
  109. package/lib/module/shared/helpers/GameControlButton.js +67 -58
  110. package/lib/module/shared/helpers/GameControlButton.js.map +1 -1
  111. package/lib/module/{games/whack-a-mole/components → shared/helpers}/GameOverModal.js +23 -13
  112. package/lib/module/shared/helpers/GameOverModal.js.map +1 -0
  113. package/lib/module/shared/helpers/GameSettingsModal.js +287 -0
  114. package/lib/module/shared/helpers/GameSettingsModal.js.map +1 -0
  115. package/lib/module/shared/helpers/ParticleBlast.js +133 -0
  116. package/lib/module/shared/helpers/ParticleBlast.js.map +1 -0
  117. package/lib/module/shared/helpers/index.js +7 -0
  118. package/lib/module/shared/helpers/index.js.map +1 -1
  119. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +2 -14
  120. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  121. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +8 -7
  122. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -1
  123. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +0 -2
  124. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  125. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  126. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  127. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +1 -15
  128. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  129. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +1 -7
  130. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  131. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -3
  132. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
  133. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +2 -14
  134. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  135. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +5 -5
  136. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -1
  137. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts +9 -1
  138. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -1
  139. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts +1 -0
  140. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -1
  141. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +1 -15
  142. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -1
  143. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
  144. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +1 -7
  145. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  146. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts +0 -3
  147. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -1
  148. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +2 -8
  149. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  150. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +4 -4
  151. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -1
  152. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -1
  153. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  154. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  155. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -1
  156. package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -1
  157. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
  158. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +2 -8
  159. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  160. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +4 -4
  161. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -1
  162. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +0 -21
  163. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -1
  164. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +1 -5
  165. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
  166. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -1
  167. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +2 -2
  168. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -1
  169. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -2
  170. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
  171. package/lib/typescript/src/games/popit-fidget/components/index.d.ts +0 -2
  172. package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -1
  173. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +3 -8
  174. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  175. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +4 -4
  176. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -1
  177. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -1
  178. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -1
  179. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +0 -1
  180. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -1
  181. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +1 -15
  182. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
  183. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -1
  184. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +1 -6
  185. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
  186. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -1
  187. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -1
  188. package/lib/typescript/src/games/space-fighter/components/index.d.ts +0 -3
  189. package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -1
  190. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +2 -11
  191. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  192. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +2 -2
  193. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -1
  194. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -1
  195. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts +0 -1
  196. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -1
  197. package/lib/typescript/src/services/GamesConstants.d.ts +47 -38
  198. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  199. package/lib/typescript/src/services/GamesService.d.ts +20 -3
  200. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  201. package/lib/typescript/src/services/SoundsService.d.ts +20 -20
  202. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts +41 -0
  203. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +1 -0
  204. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts +45 -0
  205. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +1 -0
  206. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts +124 -0
  207. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +1 -0
  208. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -1
  209. package/lib/typescript/src/{games/balloon-blaster/components → shared/helpers}/GameOverModal.d.ts +5 -0
  210. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +1 -0
  211. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts +9 -0
  212. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +1 -0
  213. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts +12 -0
  214. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +1 -0
  215. package/lib/typescript/src/shared/helpers/index.d.ts +9 -0
  216. package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -1
  217. package/package.json +1 -1
  218. package/lib/module/games/balloon-blaster/components/GameOverModal.js +0 -133
  219. package/lib/module/games/balloon-blaster/components/GameOverModal.js.map +0 -1
  220. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +0 -55
  221. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +0 -1
  222. package/lib/module/games/balloon-blaster/components/SliceTrail.js +0 -58
  223. package/lib/module/games/balloon-blaster/components/SliceTrail.js.map +0 -1
  224. package/lib/module/games/fruit-ninja/components/GameOverModal.js +0 -189
  225. package/lib/module/games/fruit-ninja/components/GameOverModal.js.map +0 -1
  226. package/lib/module/games/fruit-ninja/components/ParticleSystem.js +0 -52
  227. package/lib/module/games/fruit-ninja/components/ParticleSystem.js.map +0 -1
  228. package/lib/module/games/fruit-ninja/components/SliceTrail.js +0 -58
  229. package/lib/module/games/fruit-ninja/components/SliceTrail.js.map +0 -1
  230. package/lib/module/games/maze-runner/components/GameOverModal.js +0 -134
  231. package/lib/module/games/maze-runner/components/GameOverModal.js.map +0 -1
  232. package/lib/module/games/popit-fidget/components/GameOverModal.js +0 -132
  233. package/lib/module/games/popit-fidget/components/GameOverModal.js.map +0 -1
  234. package/lib/module/games/popit-fidget/components/ParticleSystem.js +0 -89
  235. package/lib/module/games/popit-fidget/components/ParticleSystem.js.map +0 -1
  236. package/lib/module/games/space-fighter/components/GameOverModal.js +0 -182
  237. package/lib/module/games/space-fighter/components/GameOverModal.js.map +0 -1
  238. package/lib/module/games/space-fighter/components/ParticleComponent.js +0 -34
  239. package/lib/module/games/space-fighter/components/ParticleComponent.js.map +0 -1
  240. package/lib/module/games/space-fighter/components/SettingsModal.js +0 -222
  241. package/lib/module/games/space-fighter/components/SettingsModal.js.map +0 -1
  242. package/lib/module/games/whack-a-mole/components/GameOverModal.js.map +0 -1
  243. package/lib/module/shared/settings/GameSettings.js +0 -295
  244. package/lib/module/shared/settings/GameSettings.js.map +0 -1
  245. package/lib/module/shared/settings/SettingsService.js +0 -125
  246. package/lib/module/shared/settings/SettingsService.js.map +0 -1
  247. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts.map +0 -1
  248. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts +0 -8
  249. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +0 -1
  250. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts +0 -11
  251. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts.map +0 -1
  252. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts +0 -9
  253. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts.map +0 -1
  254. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts +0 -8
  255. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts.map +0 -1
  256. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts +0 -11
  257. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts.map +0 -1
  258. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts +0 -11
  259. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts.map +0 -1
  260. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts +0 -9
  261. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts.map +0 -1
  262. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts +0 -9
  263. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts.map +0 -1
  264. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts +0 -9
  265. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts.map +0 -1
  266. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts +0 -8
  267. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts.map +0 -1
  268. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts +0 -9
  269. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts.map +0 -1
  270. package/lib/typescript/src/games/whack-a-mole/components/GameOverModal.d.ts +0 -9
  271. package/lib/typescript/src/games/whack-a-mole/components/GameOverModal.d.ts.map +0 -1
  272. package/lib/typescript/src/shared/settings/GameSettings.d.ts +0 -36
  273. package/lib/typescript/src/shared/settings/GameSettings.d.ts.map +0 -1
  274. package/lib/typescript/src/shared/settings/SettingsService.d.ts +0 -33
  275. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +0 -1
@@ -7,14 +7,16 @@ export const BALLOON_BLASTER_GAME_CONFIG = {
7
7
  MAX_LIVES: 3,
8
8
  BALLOON_SPAWN_INTERVAL: 1200,
9
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)
10
+ BALLOON_RISE_SPEED: 0.08,
11
+ // pixels per frame - balloons rise from bottom to top (slightly faster)
12
+ GRAVITY: -0.003,
13
+ // negative gravity for upward movement (slightly stronger)
14
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)
15
+ // negative for upward movement (slightly faster initial speed)
16
+ INITIAL_VELOCITY_X_RANGE: 0.1,
17
+ // horizontal velocity range (further reduced for less horizontal drift)
18
+ ROTATION_SPEED_RANGE: 0.02,
19
+ // realistic balloon rotation speed (reduced from 0.2 for more natural movement)
18
20
  BALLOON_SIZE: 60,
19
21
  SLICE_TRAIL_LENGTH: 10,
20
22
  COMBO_TIMEOUT: 2000,
@@ -148,36 +150,33 @@ export const BALLOON_SPECIAL_ITEMS = [{
148
150
  color: '#FFD700'
149
151
  }];
150
152
 
151
- // Balloon Blaster Game Theme
153
+ // Balloon Blaster Game Theme - Matches scoreboard blue
152
154
  export const BALLOON_BLASTER_THEME = {
153
155
  backgroundColor: '#87CEEB',
154
- // Sky blue
155
- headerBackgroundColor: 'rgba(20, 83, 45, 0.8)',
156
- // Green with transparency
156
+ // Sky blue background
157
+ headerBackgroundColor: 'rgba(59, 130, 246, 0.9)',
158
+ // Blue header to match scoreboard
157
159
  headerTextColor: '#ffffff',
158
- sectionBackgroundColor: 'rgba(255, 255, 255, 0.2)',
159
- sectionTitleColor: '#1f2937',
160
- // Dark gray
161
- buttonSelectedColor: '#22c55e',
162
- // Green
160
+ sectionBackgroundColor: 'rgba(59, 130, 246, 0.4)',
161
+ // Match scoreboard transparency
162
+ sectionTitleColor: '#ffffff',
163
+ // White text on blue sections
164
+ buttonSelectedColor: '#3b82f6',
165
+ // Match actual start button blue
163
166
  buttonUnselectedColor: 'rgba(255, 255, 255, 0.3)',
164
167
  buttonSelectedTextColor: '#ffffff',
165
168
  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'
169
+ switchTrackColorFalse: 'rgba(59, 130, 246, 0.5)',
170
+ switchTrackColorTrue: '#3b82f6',
171
+ // Match actual start button blue
172
+ switchThumbColor: '#ffffff',
173
+ infoTextColor: '#1f2937' // Dark text for readability
175
174
  };
176
175
 
177
176
  // Balloon Blaster Difficulty Descriptions
178
177
  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!'
178
+ easy: 'Balloons spawn slower, more forgiving',
179
+ medium: 'Balanced gameplay and balloon speed',
180
+ hard: 'Fast balloons, quick reflexes needed!'
182
181
  };
183
182
  //# sourceMappingURL=BalloonBlasterConstants.js.map
@@ -1 +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":"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","ignoreList":[]}
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","ROTATION_SPEED_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","BALLOON_BLASTER_DIFFICULTY_DESCRIPTIONS","easy","medium","hard"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterConstants.ts"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,6 @@ export class BalloonBlasterService {
19
19
  animationRef = null;
20
20
  comboTimeoutRef = null;
21
21
  particles = [];
22
- lastSpawnPositions = [];
23
22
  constructor(balloonAnimations, particleAnimations) {
24
23
  this.balloonAnimations = balloonAnimations;
25
24
  this.particleAnimations = particleAnimations;
@@ -54,18 +53,22 @@ export class BalloonBlasterService {
54
53
  this.balloonSpawnRef = setTimeout(spawnLoop, 600); // Increased delay to prevent immediate overlap
55
54
  }
56
55
  startPhysicsLoop(updateBalloon, removeBalloon, getBalloons) {
57
- let frameCount = 0;
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) {
56
+ let lastTime = performance.now();
57
+ const targetFPS = 60;
58
+ const targetFrameTime = 1000 / targetFPS;
59
+ const updateLoop = currentTime => {
60
+ const deltaTime = currentTime - lastTime;
61
+
62
+ // Frame rate limiting - only update if enough time has passed
63
+ if (deltaTime < targetFrameTime) {
66
64
  this.animationRef = requestAnimationFrame(updateLoop);
67
65
  return;
68
66
  }
67
+ lastTime = currentTime;
68
+ const deltaMultiplier = deltaTime / 16.67; // Normalize to 60fps baseline
69
+
70
+ // Always update particles for smooth animation with delta time
71
+ this.updateParticles(deltaMultiplier);
69
72
  const balloons = getBalloons();
70
73
 
71
74
  // Use for loop instead of forEach for better performance
@@ -73,11 +76,11 @@ export class BalloonBlasterService {
73
76
  const balloon = balloons[i];
74
77
  if (!balloon || balloon.isPopped) continue;
75
78
 
76
- // Simplified physics calculations
77
- const newVelocityY = balloon.velocity.y + GAME_CONFIG.GRAVITY;
78
- let newX = balloon.position.x + balloon.velocity.x;
79
- const newY = balloon.position.y + newVelocityY;
80
- const newRotation = balloon.rotation + balloon.rotationSpeed;
79
+ // Physics calculations with delta time
80
+ const newVelocityY = balloon.velocity.y + GAME_CONFIG.GRAVITY * deltaMultiplier;
81
+ let newX = balloon.position.x + balloon.velocity.x * deltaMultiplier;
82
+ const newY = balloon.position.y + newVelocityY * deltaMultiplier;
83
+ const newRotation = balloon.rotation + balloon.rotationSpeed * deltaMultiplier;
81
84
 
82
85
  // Remove balloons that float off screen (top only)
83
86
  if (newY < -100) {
@@ -85,21 +88,10 @@ export class BalloonBlasterService {
85
88
  continue;
86
89
  }
87
90
 
88
- // Prevent balloons from going too low off screen (bottom boundary)
89
- if (newY > height + 50) {
90
- // If balloon goes too low, start bringing it back up
91
- const adjustedVelocityY = Math.min(newVelocityY, -0.5); // Ensure upward movement
92
- updateBalloon(balloon.id, {
93
- position: {
94
- x: newX,
95
- y: height + 50
96
- },
97
- velocity: {
98
- x: balloon.velocity.x,
99
- y: adjustedVelocityY
100
- },
101
- rotation: newRotation
102
- });
91
+ // Remove balloons that go too far below screen (they should only move upward)
92
+ if (newY > height + 100) {
93
+ // Remove balloons that somehow drift too far down
94
+ removeBalloon(balloon.id);
103
95
  continue;
104
96
  }
105
97
 
@@ -134,81 +126,20 @@ export class BalloonBlasterService {
134
126
  // 10% chance for special items
135
127
  const isSpecial = Math.random() < 0.1;
136
128
  const type = isSpecial ? SPECIAL_ITEMS[Math.floor(Math.random() * SPECIAL_ITEMS.length)] : BALLOON_TYPES[Math.floor(Math.random() * BALLOON_TYPES.length)];
137
- if (!type) {
138
- // Fallback to default balloon type if undefined
139
- const defaultType = BALLOON_TYPES[0];
140
129
 
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));
130
+ // Use fallback if type is undefined
131
+ const balloonType = type || BALLOON_TYPES[0];
152
132
 
153
- // Record this spawn position
154
- this.lastSpawnPositions.push({
155
- x: spawnX,
156
- y: spawnY,
157
- time: Date.now()
158
- });
159
- const velocityX = (Math.random() - 0.5) * GAME_CONFIG.INITIAL_VELOCITY_X_RANGE;
160
- const velocityY = -4 + (Math.random() - 0.5) * 1; // Fast upward movement for immediate visibility
133
+ // FORCE all balloons to spawn from bottom - no complex logic
134
+ const spawnX = Math.random() * (width - GAME_CONFIG.BALLOON_SIZE);
135
+ const spawnY = height + 20; // Always spawn below screen
161
136
 
162
- return {
163
- id: `balloon_${Date.now()}_${Math.random()}`,
164
- type: defaultType,
165
- position: {
166
- x: spawnX,
167
- y: spawnY
168
- },
169
- velocity: {
170
- x: velocityX,
171
- y: velocityY
172
- },
173
- rotation: 0,
174
- rotationSpeed: (Math.random() - 0.5) * 0.2,
175
- isPopped: false,
176
- spawnTime: Date.now(),
177
- isBomb: 'isBomb' in defaultType && Boolean(defaultType.isBomb),
178
- isBonus: 'isBonus' in defaultType && Boolean(defaultType.isBonus)
179
- };
180
- }
181
-
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);
204
-
205
- // Fast upward velocity for immediate visibility
137
+ // Simple upward velocity
206
138
  const velocityX = (Math.random() - 0.5) * GAME_CONFIG.INITIAL_VELOCITY_X_RANGE;
207
- const velocityY = -4 + (Math.random() - 0.5) * 1; // Much faster upward movement (-3.5 to -4.5 pixels per frame)
208
-
139
+ const velocityY = GAME_CONFIG.INITIAL_VELOCITY_Y;
209
140
  return {
210
141
  id: `balloon_${Date.now()}_${Math.random()}`,
211
- type,
142
+ type: balloonType,
212
143
  position: {
213
144
  x: spawnX,
214
145
  y: spawnY
@@ -218,19 +149,13 @@ export class BalloonBlasterService {
218
149
  y: velocityY
219
150
  },
220
151
  rotation: 0,
221
- rotationSpeed: (Math.random() - 0.5) * 0.2,
152
+ rotationSpeed: (Math.random() - 0.5) * GAME_CONFIG.ROTATION_SPEED_RANGE,
222
153
  isPopped: false,
223
154
  spawnTime: Date.now(),
224
- isBomb: 'isBomb' in type && type.isBomb,
225
- isBonus: 'isBonus' in type && type.isBonus
155
+ isBomb: 'isBomb' in balloonType && balloonType.isBomb,
156
+ isBonus: 'isBonus' in balloonType && balloonType.isBonus
226
157
  };
227
158
  }
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
- }
234
159
  createPopParticles(balloon) {
235
160
  // Aggressive particle limiting to prevent performance issues during rapid popping
236
161
  const maxTotalParticles = 15; // Reduced maximum particles on screen at once
@@ -272,10 +197,10 @@ export class BalloonBlasterService {
272
197
  this.particles = [...this.particles, ...particles];
273
198
  return particles;
274
199
  }
275
- updateParticles() {
276
- // Optimized particle update with batch processing
277
- const deltaTime = 16; // Assume 60fps
278
- const gravity = 0.08; // Reduced gravity for better performance
200
+ updateParticles(deltaMultiplier = 1) {
201
+ // Optimized particle update with delta time
202
+ const deltaTime = 16 * deltaMultiplier; // Scale with actual frame time
203
+ const gravity = 0.08 * deltaMultiplier; // Scale gravity with delta time
279
204
 
280
205
  // Use filter to create new array instead of mutating existing one
281
206
  const updatedParticles = [];
@@ -293,14 +218,14 @@ export class BalloonBlasterService {
293
218
  continue;
294
219
  }
295
220
 
296
- // Update particle physics with good visibility
221
+ // Update particle physics with delta time scaling
297
222
  updatedParticle.position = {
298
- x: updatedParticle.position.x + updatedParticle.velocity.x,
299
- y: updatedParticle.position.y + updatedParticle.velocity.y
223
+ x: updatedParticle.position.x + updatedParticle.velocity.x * deltaMultiplier,
224
+ y: updatedParticle.position.y + updatedParticle.velocity.y * deltaMultiplier
300
225
  };
301
226
  updatedParticle.velocity = {
302
- x: updatedParticle.velocity.x * 0.99,
303
- y: (updatedParticle.velocity.y + gravity) * 0.99
227
+ x: updatedParticle.velocity.x * Math.pow(0.99, deltaMultiplier),
228
+ y: (updatedParticle.velocity.y + gravity) * Math.pow(0.99, deltaMultiplier)
304
229
  };
305
230
  updatedParticles.push(updatedParticle);
306
231
  }
@@ -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","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":[]}
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","i","initialBalloon","startPhysicsLoop","updateBalloon","removeBalloon","getBalloons","lastTime","performance","now","targetFPS","targetFrameTime","updateLoop","currentTime","deltaTime","requestAnimationFrame","deltaMultiplier","updateParticles","balloons","length","isPopped","newVelocityY","velocity","y","GRAVITY","newX","position","x","newY","newRotation","rotation","rotationSpeed","id","newVelocityX","abs","BALLOON_SIZE","isSpecial","type","floor","balloonType","spawnX","spawnY","velocityX","INITIAL_VELOCITY_X_RANGE","velocityY","INITIAL_VELOCITY_Y","Date","ROTATION_SPEED_RANGE","spawnTime","isBomb","isBonus","createPopParticles","maxTotalParticles","splice","particleCount","min","PARTICLE_COUNT","balloonCenterX","balloonCenterY","angle","PI","speed","push","cos","sin","color","PARTICLE_COLORS","size","lifetime","maxLifetime","PARTICLE_LIFETIME","gravity","updatedParticles","particle","updatedParticle","pow","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":[]}
@@ -107,7 +107,18 @@ export const useBalloonBlasterStore = create()(subscribeWithSelector(immerMiddle
107
107
  },
108
108
  addBalloon: balloon => {
109
109
  set(draft => {
110
- draft.balloons.push(balloon);
110
+ // FORCE all balloons to spawn from bottom - override any wrong positions
111
+ const {
112
+ height
113
+ } = require('react-native').Dimensions.get('window');
114
+ const correctedBalloon = {
115
+ ...balloon,
116
+ position: {
117
+ x: balloon.position.x,
118
+ y: height + 20 // Force bottom spawn regardless of input
119
+ }
120
+ };
121
+ draft.balloons.push(correctedBalloon);
111
122
  });
112
123
  },
113
124
  removeBalloon: balloonId => {
@@ -1 +1 @@
1
- {"version":3,"names":["create","subscribeWithSelector","GAME_CONFIG","immerMiddleware","useBalloonBlasterStore","set","get","score","timeLeft","isPlaying","gameOver","combo","lives","MAX_LIVES","balloons","particles","slicePath","isSlicing","startGame","_gameDuration","duration","draft","stopGame","resetGame","popBalloon","balloonId","balloonIndex","i","length","id","isPopped","points","popTime","Date","now","updateScore","decrementTime","newTimeLeft","addBalloon","balloon","push","removeBalloon","filter","b","updateBalloon","updates","Object","assign","setParticles","setSlicePath","path","setIsSlicing","incrementCombo","resetCombo","loseLife","newLives","addLife","Math","min"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterStore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["create","subscribeWithSelector","GAME_CONFIG","immerMiddleware","useBalloonBlasterStore","set","get","score","timeLeft","isPlaying","gameOver","combo","lives","MAX_LIVES","balloons","particles","slicePath","isSlicing","startGame","_gameDuration","duration","draft","stopGame","resetGame","popBalloon","balloonId","balloonIndex","i","length","id","isPopped","points","popTime","Date","now","updateScore","decrementTime","newTimeLeft","addBalloon","balloon","height","require","Dimensions","correctedBalloon","position","x","y","push","removeBalloon","filter","b","updateBalloon","updates","Object","assign","setParticles","setSlicePath","path","setIsSlicing","incrementCombo","resetCombo","loseLife","newLives","addLife","Math","min"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterStore.ts"],"mappings":"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","ignoreList":[]}