react-native-games 0.4.0 → 0.6.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 (281) hide show
  1. package/README.md +121 -130
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +121 -422
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +30 -31
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +52 -124
  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/GameBackground.js +2 -2
  15. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  16. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +7 -6
  17. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  18. package/lib/module/games/balloon-blaster/components/index.js +0 -3
  19. package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
  20. package/lib/module/games/fruit-ninja/FruitNinja.js +93 -376
  21. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  22. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +19 -22
  23. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  24. package/lib/module/games/fruit-ninja/FruitNinjaService.js +25 -8
  25. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -1
  26. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +29 -4
  27. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  28. package/lib/module/games/fruit-ninja/components/GameArea.js +194 -29
  29. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
  30. package/lib/module/games/fruit-ninja/components/GameBackground.js +107 -190
  31. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
  32. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +9 -30
  33. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  34. package/lib/module/games/fruit-ninja/components/index.js +0 -3
  35. package/lib/module/games/fruit-ninja/components/index.js.map +1 -1
  36. package/lib/module/games/maze-runner/MazeRunner.js +106 -109
  37. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  38. package/lib/module/games/maze-runner/MazeRunnerConstants.js +19 -24
  39. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  40. package/lib/module/games/maze-runner/MazeRunnerService.js +2 -1
  41. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  42. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +5 -4
  43. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -1
  44. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +32 -15
  45. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  46. package/lib/module/games/maze-runner/components/ScoreBoard.js +8 -3
  47. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  48. package/lib/module/games/maze-runner/components/WallComponent.js +3 -2
  49. package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -1
  50. package/lib/module/games/maze-runner/components/index.js +0 -1
  51. package/lib/module/games/maze-runner/components/index.js.map +1 -1
  52. package/lib/module/games/popit-fidget/PopitFidget.js +113 -112
  53. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  54. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +20 -23
  55. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -1
  56. package/lib/module/games/popit-fidget/PopitFidgetService.js +0 -59
  57. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -1
  58. package/lib/module/games/popit-fidget/PopitFidgetStore.js +0 -27
  59. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
  60. package/lib/module/games/popit-fidget/components/BubbleComponent.js +24 -22
  61. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -1
  62. package/lib/module/games/popit-fidget/components/GameBackground.js +4 -1
  63. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -1
  64. package/lib/module/games/popit-fidget/components/ScoreBoard.js +9 -2
  65. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
  66. package/lib/module/games/popit-fidget/components/index.js +0 -2
  67. package/lib/module/games/popit-fidget/components/index.js.map +1 -1
  68. package/lib/module/games/space-fighter/SpaceFighter.js +121 -369
  69. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  70. package/lib/module/games/space-fighter/SpaceFighterConstants.js +21 -23
  71. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  72. package/lib/module/games/space-fighter/SpaceFighterService.js +30 -11
  73. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -1
  74. package/lib/module/games/space-fighter/SpaceFighterStore.js +54 -2
  75. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
  76. package/lib/module/games/space-fighter/components/AsteroidComponent.js +7 -5
  77. package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -1
  78. package/lib/module/games/space-fighter/components/GameArea.js +234 -14
  79. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
  80. package/lib/module/games/space-fighter/components/GameBackground.js +10 -65
  81. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -1
  82. package/lib/module/games/space-fighter/components/ScoreBoard.js +9 -7
  83. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
  84. package/lib/module/games/space-fighter/components/Spacecraft3D.js +90 -250
  85. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -1
  86. package/lib/module/games/space-fighter/components/SpacecraftPath.js +42 -27
  87. package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -1
  88. package/lib/module/games/space-fighter/components/index.js +0 -3
  89. package/lib/module/games/space-fighter/components/index.js.map +1 -1
  90. package/lib/module/games/whack-a-mole/WhackAMole.js +63 -73
  91. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  92. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +17 -19
  93. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  94. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +20 -7
  95. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -1
  96. package/lib/module/games/whack-a-mole/components/GameHole.js +2 -2
  97. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -1
  98. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +5 -1
  99. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  100. package/lib/module/games/whack-a-mole/components/index.js +0 -1
  101. package/lib/module/games/whack-a-mole/components/index.js.map +1 -1
  102. package/lib/module/services/GamesConstants.js +13 -21
  103. package/lib/module/services/GamesConstants.js.map +1 -1
  104. package/lib/module/services/GamesService.js +30 -26
  105. package/lib/module/services/GamesService.js.map +1 -1
  106. package/lib/module/services/SoundsService.js +21 -21
  107. package/lib/module/shared/helpers/AnimationFrame.js +120 -0
  108. package/lib/module/shared/helpers/AnimationFrame.js.map +1 -0
  109. package/lib/module/shared/helpers/AnimationTracker.js +89 -0
  110. package/lib/module/shared/helpers/AnimationTracker.js.map +1 -0
  111. package/lib/module/shared/helpers/ErrorHandler.js +269 -0
  112. package/lib/module/shared/helpers/ErrorHandler.js.map +1 -0
  113. package/lib/module/shared/helpers/GameControlButton.js +67 -58
  114. package/lib/module/shared/helpers/GameControlButton.js.map +1 -1
  115. package/lib/module/{games/whack-a-mole/components → shared/helpers}/GameOverModal.js +23 -13
  116. package/lib/module/shared/helpers/GameOverModal.js.map +1 -0
  117. package/lib/module/shared/helpers/GameSettingsModal.js +287 -0
  118. package/lib/module/shared/helpers/GameSettingsModal.js.map +1 -0
  119. package/lib/module/shared/helpers/ParticleBlast.js +133 -0
  120. package/lib/module/shared/helpers/ParticleBlast.js.map +1 -0
  121. package/lib/module/shared/helpers/index.js +7 -0
  122. package/lib/module/shared/helpers/index.js.map +1 -1
  123. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +2 -14
  124. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  125. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +10 -9
  126. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -1
  127. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +0 -2
  128. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  129. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  130. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  131. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +1 -15
  132. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  133. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  134. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +1 -7
  135. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  136. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -3
  137. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
  138. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +2 -14
  139. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  140. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +5 -5
  141. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -1
  142. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts +8 -0
  143. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -1
  144. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts +1 -0
  145. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -1
  146. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +1 -15
  147. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -1
  148. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
  149. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +1 -7
  150. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  151. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts +0 -3
  152. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -1
  153. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +2 -8
  154. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  155. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +4 -4
  156. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -1
  157. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  158. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -1
  159. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  160. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  161. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -1
  162. package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -1
  163. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
  164. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +2 -8
  165. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  166. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +4 -4
  167. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -1
  168. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +0 -21
  169. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -1
  170. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +1 -5
  171. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
  172. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -1
  173. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +2 -2
  174. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -1
  175. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -2
  176. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
  177. package/lib/typescript/src/games/popit-fidget/components/index.d.ts +0 -2
  178. package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -1
  179. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +3 -8
  180. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  181. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +4 -4
  182. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -1
  183. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -1
  184. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -1
  185. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +0 -1
  186. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -1
  187. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +1 -15
  188. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
  189. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -1
  190. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +1 -6
  191. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
  192. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -1
  193. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -1
  194. package/lib/typescript/src/games/space-fighter/components/index.d.ts +0 -3
  195. package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -1
  196. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +2 -11
  197. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  198. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +2 -2
  199. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -1
  200. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -1
  201. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts +0 -1
  202. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -1
  203. package/lib/typescript/src/services/GamesConstants.d.ts +47 -38
  204. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  205. package/lib/typescript/src/services/GamesService.d.ts +20 -3
  206. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  207. package/lib/typescript/src/services/SoundsService.d.ts +20 -20
  208. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts +41 -0
  209. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +1 -0
  210. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts +45 -0
  211. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +1 -0
  212. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts +124 -0
  213. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +1 -0
  214. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -1
  215. package/lib/typescript/src/{games/balloon-blaster/components → shared/helpers}/GameOverModal.d.ts +5 -0
  216. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +1 -0
  217. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts +9 -0
  218. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +1 -0
  219. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts +12 -0
  220. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +1 -0
  221. package/lib/typescript/src/shared/helpers/index.d.ts +9 -0
  222. package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -1
  223. package/package.json +2 -2
  224. package/lib/module/games/balloon-blaster/components/GameOverModal.js +0 -133
  225. package/lib/module/games/balloon-blaster/components/GameOverModal.js.map +0 -1
  226. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +0 -55
  227. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +0 -1
  228. package/lib/module/games/balloon-blaster/components/SliceTrail.js +0 -58
  229. package/lib/module/games/balloon-blaster/components/SliceTrail.js.map +0 -1
  230. package/lib/module/games/fruit-ninja/components/GameOverModal.js +0 -189
  231. package/lib/module/games/fruit-ninja/components/GameOverModal.js.map +0 -1
  232. package/lib/module/games/fruit-ninja/components/ParticleSystem.js +0 -52
  233. package/lib/module/games/fruit-ninja/components/ParticleSystem.js.map +0 -1
  234. package/lib/module/games/fruit-ninja/components/SliceTrail.js +0 -58
  235. package/lib/module/games/fruit-ninja/components/SliceTrail.js.map +0 -1
  236. package/lib/module/games/maze-runner/components/GameOverModal.js +0 -134
  237. package/lib/module/games/maze-runner/components/GameOverModal.js.map +0 -1
  238. package/lib/module/games/popit-fidget/components/GameOverModal.js +0 -132
  239. package/lib/module/games/popit-fidget/components/GameOverModal.js.map +0 -1
  240. package/lib/module/games/popit-fidget/components/ParticleSystem.js +0 -89
  241. package/lib/module/games/popit-fidget/components/ParticleSystem.js.map +0 -1
  242. package/lib/module/games/space-fighter/components/GameOverModal.js +0 -182
  243. package/lib/module/games/space-fighter/components/GameOverModal.js.map +0 -1
  244. package/lib/module/games/space-fighter/components/ParticleComponent.js +0 -34
  245. package/lib/module/games/space-fighter/components/ParticleComponent.js.map +0 -1
  246. package/lib/module/games/space-fighter/components/SettingsModal.js +0 -222
  247. package/lib/module/games/space-fighter/components/SettingsModal.js.map +0 -1
  248. package/lib/module/games/whack-a-mole/components/GameOverModal.js.map +0 -1
  249. package/lib/module/shared/settings/GameSettings.js +0 -295
  250. package/lib/module/shared/settings/GameSettings.js.map +0 -1
  251. package/lib/module/shared/settings/SettingsService.js +0 -125
  252. package/lib/module/shared/settings/SettingsService.js.map +0 -1
  253. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts.map +0 -1
  254. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts +0 -8
  255. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +0 -1
  256. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts +0 -11
  257. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts.map +0 -1
  258. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts +0 -9
  259. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts.map +0 -1
  260. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts +0 -8
  261. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts.map +0 -1
  262. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts +0 -11
  263. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts.map +0 -1
  264. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts +0 -11
  265. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts.map +0 -1
  266. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts +0 -9
  267. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts.map +0 -1
  268. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts +0 -9
  269. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts.map +0 -1
  270. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts +0 -9
  271. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts.map +0 -1
  272. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts +0 -8
  273. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts.map +0 -1
  274. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts +0 -9
  275. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts.map +0 -1
  276. package/lib/typescript/src/games/whack-a-mole/components/GameOverModal.d.ts +0 -9
  277. package/lib/typescript/src/games/whack-a-mole/components/GameOverModal.d.ts.map +0 -1
  278. package/lib/typescript/src/shared/settings/GameSettings.d.ts +0 -36
  279. package/lib/typescript/src/shared/settings/GameSettings.d.ts.map +0 -1
  280. package/lib/typescript/src/shared/settings/SettingsService.d.ts +0 -33
  281. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +0 -1
@@ -1,26 +1,24 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect, useRef, useCallback } from 'react';
4
- import { View, StyleSheet, Dimensions, Modal } from 'react-native';
3
+ import React, { useEffect, useRef, useCallback, useMemo } from 'react';
4
+ import { View, StyleSheet, Dimensions } from 'react-native';
5
5
  import { GestureHandlerRootView } from 'react-native-gesture-handler';
6
6
  import { usePopitFidgetStore } from "./PopitFidgetStore.js";
7
7
  import { PopitFidgetService } from "./PopitFidgetService.js";
8
- import { createGameSettingsStore } from "../../shared/settings/SettingsService.js";
8
+ import { POPIT_FIDGET_GAME_CONFIG } from "./PopitFidgetConstants.js";
9
+ import { GAME_IDS } from "../../services/GamesService.js";
9
10
  import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
10
11
  import { playHaptic, HapticType } from "../../services/HapticsService.js";
11
- import { getDurationForDifficulty } from "../../shared/settings/SettingsService.js";
12
- import { GameBackground, FidgetGrid as FidgetGridComponent, ScoreBoard, GameOverModal } from "./components/index.js";
13
- import { GameControlButton } from "../../shared/helpers/index.js";
14
- import { GameSettings as GameSettingsComponent } from "../../shared/settings/GameSettings.js";
12
+ import { GameBackground, FidgetGrid as FidgetGridComponent, ScoreBoard } from "./components/index.js";
13
+ import { GameControlButton, GameOverModal } from "../../shared/helpers/index.js";
14
+ import { GameSettingsModal } from "../../shared/helpers/index.js";
15
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  const {
17
17
  width,
18
18
  height
19
19
  } = Dimensions.get('window');
20
20
  const PopitFidget = ({
21
- showSettingsModal = false,
22
- onToggleSettingsModal,
23
- externalSettings,
21
+ settings,
24
22
  onSettingsChange
25
23
  }) => {
26
24
  // Use selective subscriptions to prevent unnecessary re-renders
@@ -39,10 +37,13 @@ const PopitFidget = ({
39
37
  const popBubble = usePopitFidgetStore(state => state.popBubble);
40
38
  const setTimeLeft = usePopitFidgetStore(state => state.setTimeLeft);
41
39
  const serviceRef = useRef(null);
42
- // Removed animation maps to prevent memory leaks
43
- const useSettings = useRef(createGameSettingsStore()).current;
44
- const settings = useSettings();
45
- const prevSettingsRef = useRef(null);
40
+
41
+ // Use settings from props
42
+ const {
43
+ difficulty,
44
+ enableSounds,
45
+ enableHaptics
46
+ } = settings;
46
47
 
47
48
  // Initialize service and generate initial fidget grid
48
49
  useEffect(() => {
@@ -52,92 +53,83 @@ const PopitFidget = ({
52
53
 
53
54
  // Generate initial fidget grid so it shows before game starts
54
55
  if (serviceRef.current && !fidgetGrid) {
55
- const grid = serviceRef.current.generateFidgetGrid(settings.difficulty);
56
+ const grid = serviceRef.current.generateFidgetGrid(difficulty);
56
57
  setFidgetGrid(grid);
57
58
  }
59
+ }, [fidgetGrid, setFidgetGrid, difficulty]);
60
+
61
+ // Unmount-only cleanup to fully reset without causing state update loops
62
+ useEffect(() => {
58
63
  return () => {
59
- serviceRef.current?.cleanup();
64
+ // Stop timers and reset store, but do NOT generate a new grid on unmount
65
+ try {
66
+ serviceRef.current?.stopGameTimer();
67
+ } catch {}
68
+ try {
69
+ resetGame();
70
+ } catch {}
71
+ try {
72
+ serviceRef.current?.cleanup();
73
+ } catch {}
60
74
  };
61
- }, [fidgetGrid, setFidgetGrid, settings.difficulty]);
75
+ }, []);
62
76
 
63
- // Handle external settings changes
64
- useEffect(() => {
65
- if (!externalSettings) return;
66
- const prev = prevSettingsRef.current;
67
- const hasChanged = !prev || prev.difficulty !== externalSettings.difficulty || prev.soundEnabled !== externalSettings.soundEnabled || prev.hapticEnabled !== externalSettings.hapticEnabled;
68
- if (hasChanged) {
69
- const commonSettings = {
70
- difficulty: externalSettings.difficulty,
71
- soundEnabled: externalSettings.soundEnabled,
72
- hapticEnabled: externalSettings.hapticEnabled
73
- };
74
- settings.setDifficulty(commonSettings.difficulty);
75
- settings.setSoundEnabled(commonSettings.soundEnabled);
76
- settings.setHapticEnabled(commonSettings.hapticEnabled);
77
- prevSettingsRef.current = externalSettings;
77
+ // Memoize service to prevent recreation
78
+ const service = useMemo(() => {
79
+ if (!serviceRef.current) {
80
+ serviceRef.current = new PopitFidgetService();
78
81
  }
79
- }, [externalSettings, settings]);
80
-
81
- // Settings change callback
82
- useEffect(() => {
83
- if (!onSettingsChange) return;
84
- const unsubscribe = useSettings.subscribe(state => {
85
- onSettingsChange({
86
- difficulty: state.difficulty,
87
- soundEnabled: state.soundEnabled,
88
- hapticEnabled: state.hapticEnabled
89
- });
90
- });
91
- return unsubscribe;
92
- }, [onSettingsChange, useSettings]);
82
+ return serviceRef.current;
83
+ }, []);
93
84
 
94
85
  // Generate new fidget grid (simplified - always square based on difficulty)
95
86
  const generateNewFidget = useCallback(() => {
96
- if (!serviceRef.current) return;
97
- const grid = serviceRef.current.generateFidgetGrid(settings.difficulty);
87
+ const grid = service.generateFidgetGrid(difficulty);
98
88
  setFidgetGrid(grid);
99
- }, [setFidgetGrid, settings.difficulty]);
89
+ }, [service, setFidgetGrid, difficulty]);
100
90
 
101
91
  // Track previous difficulty to avoid infinite loops
102
- const prevDifficultyRef = React.useRef(settings.difficulty);
92
+ const prevDifficultyRef = React.useRef(difficulty);
103
93
 
104
94
  // Watch for difficulty changes and regenerate grid when difficulty changes
105
- React.useEffect(() => {
95
+ const handleDifficultyChange = useCallback(() => {
106
96
  // Only regenerate if difficulty actually changed
107
- if (prevDifficultyRef.current !== settings.difficulty && serviceRef.current) {
97
+ if (prevDifficultyRef.current !== difficulty) {
108
98
  if (!isPlaying) {
109
99
  // Game not playing - just regenerate grid
110
- const grid = serviceRef.current.generateFidgetGrid(settings.difficulty);
111
- setFidgetGrid(grid);
100
+ generateNewFidget();
112
101
  } else {
113
102
  // Game is playing - restart with new difficulty duration
114
- const newDuration = getDurationForDifficulty(settings.difficulty);
103
+ const newDuration = POPIT_FIDGET_GAME_CONFIG.GAME_DURATION;
115
104
 
116
105
  // Stop current timer
117
- serviceRef.current.stopGameTimer();
106
+ service.stopGameTimer();
118
107
 
119
108
  // Start new timer with new duration
120
- serviceRef.current.startGameTimer(newDuration, timeLeft => setTimeLeft(timeLeft), () => stopGame());
109
+ service.startGameTimer(newDuration, timeLeft => setTimeLeft(timeLeft), () => stopGame());
121
110
 
122
111
  // Update store with new duration
123
112
  setTimeLeft(newDuration);
124
113
  }
125
- prevDifficultyRef.current = settings.difficulty;
114
+ prevDifficultyRef.current = difficulty;
126
115
  }
127
- }, [settings.difficulty, isPlaying, setFidgetGrid, setTimeLeft, stopGame]);
116
+ }, [difficulty, isPlaying, generateNewFidget, service, setTimeLeft, stopGame]);
117
+ useEffect(() => {
118
+ handleDifficultyChange();
119
+ }, [handleDifficultyChange]);
128
120
 
129
121
  // Watch for game completion events and play appropriate sounds
130
122
  React.useEffect(() => {
131
123
  if (gameOver && !isPlaying) {
132
124
  if (gameWon) {
133
125
  // All bubbles popped - game completed successfully
134
- playSound(GAME_SOUNDS.BUBBLE_POPPER.COMPLETE, settings.soundEnabled);
126
+ playSound(GAME_SOUNDS.BUBBLE_POPPER.COMPLETE, enableSounds);
135
127
  } else {
136
128
  // Time ran out - game over
137
- playSound(GAME_SOUNDS.TIME_UP, settings.soundEnabled);
129
+ playSound(GAME_SOUNDS.TIME_UP, enableSounds);
138
130
  }
139
131
  }
140
- }, [gameOver, gameWon, isPlaying, settings.soundEnabled]);
132
+ }, [gameOver, gameWon, isPlaying, enableSounds]);
141
133
 
142
134
  // Timer effect - handles countdown when game is playing
143
135
  useEffect(() => {
@@ -163,73 +155,101 @@ const PopitFidget = ({
163
155
 
164
156
  // Start game
165
157
  const startGameHandler = useCallback(() => {
166
- if (!serviceRef.current) return;
167
-
168
158
  // Always generate new fidget when starting a new game
169
159
  generateNewFidget();
170
160
 
171
161
  // Play game start sound
172
- playSound(GAME_SOUNDS.BUBBLE_POPPER.START, settings.soundEnabled);
162
+ playSound(GAME_SOUNDS.BUBBLE_POPPER.START, enableSounds);
173
163
 
174
164
  // Store uses fixed 60s duration internally
175
165
  startGame();
176
166
 
177
167
  // Haptic feedback
178
- playHaptic(HapticType.MEDIUM, settings.hapticEnabled);
179
- }, [startGame, settings.soundEnabled, settings.hapticEnabled, generateNewFidget]);
168
+ playHaptic(HapticType.MEDIUM, enableHaptics);
169
+ }, [startGame, enableSounds, enableHaptics, generateNewFidget]);
180
170
 
181
171
  // Stop game - simply reset the game state without showing game over popup
182
172
  const stopGameHandler = useCallback(() => {
183
- if (!serviceRef.current) return;
184
- serviceRef.current.stopGameTimer();
185
- serviceRef.current.clearParticles();
173
+ service.stopGameTimer();
186
174
  resetGame();
187
175
  generateNewFidget();
188
- }, [resetGame, generateNewFidget]);
176
+ }, [service, resetGame, generateNewFidget]);
189
177
 
190
178
  // Reset game
191
179
  const resetGameHandler = useCallback(() => {
192
- if (!serviceRef.current) return;
193
- serviceRef.current.stopGameTimer();
194
- serviceRef.current.clearParticles();
180
+ service.stopGameTimer();
195
181
  resetGame();
196
182
  generateNewFidget();
197
- }, [resetGame, generateNewFidget]);
183
+ }, [service, resetGame, generateNewFidget]);
198
184
 
199
185
  // Handle bubble pop with stable callback reference
200
186
  const handleBubblePop = useCallback((row, col) => {
201
- if (!serviceRef.current || !fidgetGrid) return;
187
+ if (!fidgetGrid) return;
202
188
  const bubble = fidgetGrid.bubbles[row]?.[col];
203
189
  if (!bubble || bubble.isPopped) return;
204
190
 
205
191
  // Play pop sound
206
- playSound(GAME_SOUNDS.BUBBLE_POPPER.POP, settings.soundEnabled);
192
+ playSound(GAME_SOUNDS.BUBBLE_POPPER.POP, enableSounds);
207
193
 
208
194
  // Pop the bubble in store
209
195
  popBubble(row, col);
210
196
 
211
197
  // Haptic feedback
212
- playHaptic(HapticType.LIGHT, settings.hapticEnabled);
198
+ playHaptic(HapticType.LIGHT, enableHaptics);
213
199
 
214
200
  // Completion percentage is already calculated efficiently in the store
215
- }, [fidgetGrid, popBubble, settings.soundEnabled, settings.hapticEnabled]);
201
+ }, [fidgetGrid, popBubble, enableSounds, enableHaptics]);
202
+
203
+ // Memoize screen dimensions to prevent recalculation
204
+ const screenDimensions = useMemo(() => ({
205
+ width,
206
+ height
207
+ }), []);
216
208
 
217
209
  // Calculate bubble size based on grid - made bigger for Pop It appearance
218
- const getBubbleSize = useCallback(() => {
210
+ const bubbleSize = useMemo(() => {
219
211
  if (!fidgetGrid) return 60;
220
- const availableWidth = width * 0.85;
221
- const availableHeight = height * 0.6;
212
+ const availableWidth = screenDimensions.width * 0.85;
213
+ const availableHeight = screenDimensions.height * 0.6;
222
214
  const maxSize = Math.min(availableWidth / fidgetGrid.size, availableHeight / fidgetGrid.size);
223
215
  // Increased minimum and maximum sizes for bigger, more prominent bubbles
224
216
  return Math.max(45, Math.min(80, maxSize * 0.9));
225
- }, [fidgetGrid]);
217
+ }, [fidgetGrid, screenDimensions]);
218
+
219
+ // Memoize game control button props to prevent unnecessary re-renders
220
+ const gameControlButtonProps = useMemo(() => ({
221
+ isPlaying,
222
+ gameOver,
223
+ onStartGame: startGameHandler,
224
+ onStopGame: stopGameHandler,
225
+ startButtonText: "START POPPING",
226
+ stopButtonText: "STOP GAME",
227
+ startButtonSubtext: "Pop bubbles to relax!",
228
+ stopButtonSubtext: "End current game",
229
+ startButtonColor: "#9c27b0",
230
+ stopButtonColor: "#dc2626",
231
+ startButtonBorderColor: "#ce93d8",
232
+ stopButtonBorderColor: "#f87171"
233
+ }), [isPlaying, gameOver, startGameHandler, stopGameHandler]);
234
+
235
+ // Memoize game over modal props to prevent unnecessary re-renders
236
+ const gameOverModalProps = useMemo(() => ({
237
+ isVisible: gameOver,
238
+ score,
239
+ onPlayAgain: resetGameHandler,
240
+ buttonText: "Pop Again!",
241
+ primaryColor: "rgba(108, 92, 231, 0.85)",
242
+ borderColor: "rgba(108, 92, 231, 0.95)",
243
+ buttonColor: "#9c27b0",
244
+ buttonBorderColor: "#ce93d8"
245
+ }), [gameOver, score, resetGameHandler]);
226
246
  return /*#__PURE__*/_jsx(GestureHandlerRootView, {
227
247
  style: styles.container,
228
248
  children: /*#__PURE__*/_jsxs(View, {
229
249
  style: styles.gameContainer,
230
250
  children: [/*#__PURE__*/_jsx(GameBackground, {
231
- width: width,
232
- height: height,
251
+ width: screenDimensions.width,
252
+ height: screenDimensions.height,
233
253
  isPlaying: isPlaying
234
254
  }), /*#__PURE__*/_jsx(ScoreBoard, {
235
255
  score: score,
@@ -238,38 +258,19 @@ const PopitFidget = ({
238
258
  style: styles.gameArea,
239
259
  children: fidgetGrid && /*#__PURE__*/_jsx(FidgetGridComponent, {
240
260
  grid: fidgetGrid,
241
- bubbleSize: getBubbleSize(),
261
+ bubbleSize: bubbleSize,
242
262
  onBubblePop: handleBubblePop,
243
- hapticEnabled: settings.hapticEnabled,
263
+ hapticEnabled: enableHaptics,
244
264
  isPlaying: isPlaying
245
265
  })
246
266
  }), /*#__PURE__*/_jsx(GameControlButton, {
247
- isPlaying: isPlaying,
248
- gameOver: gameOver,
249
- onStartGame: startGameHandler,
250
- onStopGame: stopGameHandler,
251
- startButtonText: "START POPPING",
252
- stopButtonText: "STOP GAME",
253
- startButtonSubtext: "Pop bubbles to relax!",
254
- stopButtonSubtext: "End current game",
255
- startButtonColor: "#9c27b0",
256
- stopButtonColor: "#dc2626",
257
- startButtonBorderColor: "#ce93d8",
258
- stopButtonBorderColor: "#f87171"
267
+ ...gameControlButtonProps
259
268
  }), /*#__PURE__*/_jsx(GameOverModal, {
260
- visible: gameOver,
261
- score: score,
262
- onPlayAgain: resetGameHandler
263
- }), /*#__PURE__*/_jsx(Modal, {
264
- visible: showSettingsModal,
265
- animationType: "slide",
266
- presentationStyle: "pageSheet",
267
- onRequestClose: onToggleSettingsModal,
268
- children: /*#__PURE__*/_jsx(GameSettingsComponent, {
269
- gameId: "popit-fidget",
270
- onClose: onToggleSettingsModal || (() => {}),
271
- settingsStore: settings
272
- })
269
+ ...gameOverModalProps
270
+ }), /*#__PURE__*/_jsx(GameSettingsModal, {
271
+ gameId: GAME_IDS.POPIT_FIDGET,
272
+ settings: settings,
273
+ onSettingsChange: onSettingsChange
273
274
  })]
274
275
  })
275
276
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useCallback","View","StyleSheet","Dimensions","Modal","GestureHandlerRootView","usePopitFidgetStore","PopitFidgetService","createGameSettingsStore","playSound","GAME_SOUNDS","playHaptic","HapticType","getDurationForDifficulty","GameBackground","FidgetGrid","FidgetGridComponent","ScoreBoard","GameOverModal","GameControlButton","GameSettings","GameSettingsComponent","jsx","_jsx","jsxs","_jsxs","width","height","get","PopitFidget","showSettingsModal","onToggleSettingsModal","externalSettings","onSettingsChange","fidgetGrid","state","score","timeLeft","isPlaying","gameOver","gameWon","startGame","stopGame","resetGame","setFidgetGrid","popBubble","setTimeLeft","serviceRef","useSettings","current","settings","prevSettingsRef","grid","generateFidgetGrid","difficulty","cleanup","prev","hasChanged","soundEnabled","hapticEnabled","commonSettings","setDifficulty","setSoundEnabled","setHapticEnabled","unsubscribe","subscribe","generateNewFidget","prevDifficultyRef","newDuration","stopGameTimer","startGameTimer","BUBBLE_POPPER","COMPLETE","TIME_UP","timerInterval","setInterval","newTime","clearInterval","startGameHandler","START","MEDIUM","stopGameHandler","clearParticles","resetGameHandler","handleBubblePop","row","col","bubble","bubbles","isPopped","POP","LIGHT","getBubbleSize","availableWidth","availableHeight","maxSize","Math","min","size","max","style","styles","container","children","gameContainer","gameArea","bubbleSize","onBubblePop","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","visible","onPlayAgain","animationType","presentationStyle","onRequestClose","gameId","onClose","settingsStore","create","flex","backgroundColor","justifyContent","alignItems","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidget.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,EAAEC,WAAW,QAAQ,OAAO;AAC7D,SAASC,IAAI,EAAEC,UAAU,EAAEC,UAAU,EAAEC,KAAK,QAAQ,cAAc;AAClE,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,mBAAmB,QAA+B,uBAAoB;AAC/E,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,uBAAuB,QAAQ,0CAAuC;AAC/E,SAASC,SAAS,EAAEC,WAAW,QAAQ,iCAA8B;AACrE,SAASC,UAAU,EAAEC,UAAU,QAAQ,kCAA+B;AAEtE,SAASC,wBAAwB,QAAQ,0CAAuC;AAChF,SACEC,cAAc,EACdC,UAAU,IAAIC,mBAAmB,EACjCC,UAAU,EACVC,aAAa,QACR,uBAAc;AACrB,SAASC,iBAAiB,QAAQ,+BAAsB;AACxD,SAASC,YAAY,IAAIC,qBAAqB,QAAQ,uCAAoC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE3F,MAAM;EAAEC,KAAK;EAAEC;AAAO,CAAC,GAAGxB,UAAU,CAACyB,GAAG,CAAC,QAAQ,CAAC;AASlD,MAAMC,WAAuC,GAAGA,CAAC;EAC/CC,iBAAiB,GAAG,KAAK;EACzBC,qBAAqB;EACrBC,gBAAgB;EAChBC;AACF,CAAC,KAAK;EACJ;EACA,MAAMC,UAAU,GAAG5B,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACD,UAAU,CAAC;EACrF,MAAME,KAAK,GAAG9B,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACC,KAAK,CAAC;EAC3E,MAAMC,QAAQ,GAAG/B,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACE,QAAQ,CAAC;EACjF,MAAMC,SAAS,GAAGhC,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACG,SAAS,CAAC;EACnF,MAAMC,QAAQ,GAAGjC,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACI,QAAQ,CAAC;EACjF,MAAMC,OAAO,GAAGlC,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACK,OAAO,CAAC;;EAE/E;EACA,MAAMC,SAAS,GAAGnC,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACM,SAAS,CAAC;EACnF,MAAMC,QAAQ,GAAGpC,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACO,QAAQ,CAAC;EACjF,MAAMC,SAAS,GAAGrC,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACQ,SAAS,CAAC;EACnF,MAAMC,aAAa,GAAGtC,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACS,aAAa,CAAC;EAC3F,MAAMC,SAAS,GAAGvC,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACU,SAAS,CAAC;EACnF,MAAMC,WAAW,GAAGxC,mBAAmB,CAAE6B,KAAuB,IAAKA,KAAK,CAACW,WAAW,CAAC;EAEvF,MAAMC,UAAU,GAAGhD,MAAM,CAA4B,IAAI,CAAC;EAC1D;EACA,MAAMiD,WAAW,GAAGjD,MAAM,CAACS,uBAAuB,CAAC,CAAC,CAAC,CAACyC,OAAO;EAC7D,MAAMC,QAAQ,GAAGF,WAAW,CAAC,CAAC;EAC9B,MAAMG,eAAe,GAAGpD,MAAM,CAAsB,IAAI,CAAC;;EAEzD;EACAD,SAAS,CAAC,MAAM;IACd,IAAI,CAACiD,UAAU,CAACE,OAAO,EAAE;MACvBF,UAAU,CAACE,OAAO,GAAG,IAAI1C,kBAAkB,CAAC,CAAC;IAC/C;;IAEA;IACA,IAAIwC,UAAU,CAACE,OAAO,IAAI,CAACf,UAAU,EAAE;MACrC,MAAMkB,IAAI,GAAGL,UAAU,CAACE,OAAO,CAACI,kBAAkB,CAACH,QAAQ,CAACI,UAAU,CAAC;MACvEV,aAAa,CAACQ,IAAI,CAAC;IACrB;IAEA,OAAO,MAAM;MACXL,UAAU,CAACE,OAAO,EAAEM,OAAO,CAAC,CAAC;IAC/B,CAAC;EACH,CAAC,EAAE,CAACrB,UAAU,EAAEU,aAAa,EAAEM,QAAQ,CAACI,UAAU,CAAC,CAAC;;EAEpD;EACAxD,SAAS,CAAC,MAAM;IACd,IAAI,CAACkC,gBAAgB,EAAE;IAEvB,MAAMwB,IAAI,GAAGL,eAAe,CAACF,OAAO;IACpC,MAAMQ,UAAU,GAAG,CAACD,IAAI,IACtBA,IAAI,CAACF,UAAU,KAAKtB,gBAAgB,CAACsB,UAAU,IAC/CE,IAAI,CAACE,YAAY,KAAK1B,gBAAgB,CAAC0B,YAAY,IACnDF,IAAI,CAACG,aAAa,KAAK3B,gBAAgB,CAAC2B,aAAa;IAEvD,IAAIF,UAAU,EAAE;MACd,MAAMG,cAAc,GAAG;QACrBN,UAAU,EAAEtB,gBAAgB,CAACsB,UAAU;QACvCI,YAAY,EAAE1B,gBAAgB,CAAC0B,YAAY;QAC3CC,aAAa,EAAE3B,gBAAgB,CAAC2B;MAClC,CAAC;MACDT,QAAQ,CAACW,aAAa,CAACD,cAAc,CAACN,UAAU,CAAC;MACjDJ,QAAQ,CAACY,eAAe,CAACF,cAAc,CAACF,YAAY,CAAC;MACrDR,QAAQ,CAACa,gBAAgB,CAACH,cAAc,CAACD,aAAa,CAAC;MACvDR,eAAe,CAACF,OAAO,GAAGjB,gBAAgB;IAC5C;EACF,CAAC,EAAE,CAACA,gBAAgB,EAAEkB,QAAQ,CAAC,CAAC;;EAEhC;EACApD,SAAS,CAAC,MAAM;IACd,IAAI,CAACmC,gBAAgB,EAAE;IAEvB,MAAM+B,WAAW,GAAGhB,WAAW,CAACiB,SAAS,CAAE9B,KAAK,IAAK;MACnDF,gBAAgB,CAAC;QACfqB,UAAU,EAAEnB,KAAK,CAACmB,UAAU;QAC5BI,YAAY,EAAEvB,KAAK,CAACuB,YAAY;QAChCC,aAAa,EAAExB,KAAK,CAACwB;MACvB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAOK,WAAW;EACpB,CAAC,EAAE,CAAC/B,gBAAgB,EAAEe,WAAW,CAAC,CAAC;;EAGnC;EACA,MAAMkB,iBAAiB,GAAGlE,WAAW,CAAC,MAAM;IAC1C,IAAI,CAAC+C,UAAU,CAACE,OAAO,EAAE;IAEzB,MAAMG,IAAI,GAAGL,UAAU,CAACE,OAAO,CAACI,kBAAkB,CAACH,QAAQ,CAACI,UAAU,CAAC;IACvEV,aAAa,CAACQ,IAAI,CAAC;EACrB,CAAC,EAAE,CAACR,aAAa,EAAEM,QAAQ,CAACI,UAAU,CAAC,CAAC;;EAExC;EACA,MAAMa,iBAAiB,GAAGtE,KAAK,CAACE,MAAM,CAACmD,QAAQ,CAACI,UAAU,CAAC;;EAE3D;EACAzD,KAAK,CAACC,SAAS,CAAC,MAAM;IACpB;IACA,IAAIqE,iBAAiB,CAAClB,OAAO,KAAKC,QAAQ,CAACI,UAAU,IAAIP,UAAU,CAACE,OAAO,EAAE;MAC3E,IAAI,CAACX,SAAS,EAAE;QACd;QACA,MAAMc,IAAI,GAAGL,UAAU,CAACE,OAAO,CAACI,kBAAkB,CAACH,QAAQ,CAACI,UAAU,CAAC;QACvEV,aAAa,CAACQ,IAAI,CAAC;MACrB,CAAC,MAAM;QACL;QACA,MAAMgB,WAAW,GAAGvD,wBAAwB,CAACqC,QAAQ,CAACI,UAAU,CAAC;;QAEjE;QACAP,UAAU,CAACE,OAAO,CAACoB,aAAa,CAAC,CAAC;;QAElC;QACAtB,UAAU,CAACE,OAAO,CAACqB,cAAc,CAC/BF,WAAW,EACV/B,QAAgB,IAAKS,WAAW,CAACT,QAAQ,CAAC,EAC3C,MAAMK,QAAQ,CAAC,CACjB,CAAC;;QAED;QACAI,WAAW,CAACsB,WAAW,CAAC;MAC1B;MACAD,iBAAiB,CAAClB,OAAO,GAAGC,QAAQ,CAACI,UAAU;IACjD;EACF,CAAC,EAAE,CAACJ,QAAQ,CAACI,UAAU,EAAEhB,SAAS,EAAEM,aAAa,EAAEE,WAAW,EAAEJ,QAAQ,CAAC,CAAC;;EAE1E;EACA7C,KAAK,CAACC,SAAS,CAAC,MAAM;IACpB,IAAIyC,QAAQ,IAAI,CAACD,SAAS,EAAE;MAC1B,IAAIE,OAAO,EAAE;QACX;QACA/B,SAAS,CAACC,WAAW,CAAC6D,aAAa,CAACC,QAAQ,EAAEtB,QAAQ,CAACQ,YAAY,CAAC;MACtE,CAAC,MAAM;QACL;QACAjD,SAAS,CAACC,WAAW,CAAC+D,OAAO,EAAEvB,QAAQ,CAACQ,YAAY,CAAC;MACvD;IACF;EACF,CAAC,EAAE,CAACnB,QAAQ,EAAEC,OAAO,EAAEF,SAAS,EAAEY,QAAQ,CAACQ,YAAY,CAAC,CAAC;;EAEzD;EACA5D,SAAS,CAAC,MAAM;IACd,IAAI4E,aAAoC,GAAG,IAAI;IAE/C,IAAIpC,SAAS,IAAID,QAAQ,GAAG,CAAC,EAAE;MAC7BqC,aAAa,GAAGC,WAAW,CAAC,MAAM;QAChC,MAAMC,OAAO,GAAGvC,QAAQ,GAAG,CAAC;QAC5B,IAAIuC,OAAO,IAAI,CAAC,EAAE;UAChB;UACA9B,WAAW,CAAC,CAAC,CAAC;UACdJ,QAAQ,CAAC,CAAC;QACZ,CAAC,MAAM;UACLI,WAAW,CAAC8B,OAAO,CAAC;QACtB;MACF,CAAC,EAAE,IAAI,CAAC;IACV;IAEA,OAAO,MAAM;MACX,IAAIF,aAAa,EAAE;QACjBG,aAAa,CAACH,aAAa,CAAC;MAC9B;IACF,CAAC;EACH,CAAC,EAAE,CAACpC,SAAS,EAAED,QAAQ,EAAES,WAAW,EAAEJ,QAAQ,CAAC,CAAC;;EAEhD;EACA,MAAMoC,gBAAgB,GAAG9E,WAAW,CAAC,MAAM;IACzC,IAAI,CAAC+C,UAAU,CAACE,OAAO,EAAE;;IAEzB;IACAiB,iBAAiB,CAAC,CAAC;;IAEnB;IACAzD,SAAS,CAACC,WAAW,CAAC6D,aAAa,CAACQ,KAAK,EAAE7B,QAAQ,CAACQ,YAAY,CAAC;;IAEjE;IACAjB,SAAS,CAAC,CAAC;;IAEX;IACA9B,UAAU,CAACC,UAAU,CAACoE,MAAM,EAAE9B,QAAQ,CAACS,aAAa,CAAC;EACvD,CAAC,EAAE,CAAClB,SAAS,EAAES,QAAQ,CAACQ,YAAY,EAAER,QAAQ,CAACS,aAAa,EAAEO,iBAAiB,CAAC,CAAC;;EAEjF;EACA,MAAMe,eAAe,GAAGjF,WAAW,CAAC,MAAM;IACxC,IAAI,CAAC+C,UAAU,CAACE,OAAO,EAAE;IAEzBF,UAAU,CAACE,OAAO,CAACoB,aAAa,CAAC,CAAC;IAClCtB,UAAU,CAACE,OAAO,CAACiC,cAAc,CAAC,CAAC;IACnCvC,SAAS,CAAC,CAAC;IACXuB,iBAAiB,CAAC,CAAC;EACrB,CAAC,EAAE,CAACvB,SAAS,EAAEuB,iBAAiB,CAAC,CAAC;;EAElC;EACA,MAAMiB,gBAAgB,GAAGnF,WAAW,CAAC,MAAM;IACzC,IAAI,CAAC+C,UAAU,CAACE,OAAO,EAAE;IAEzBF,UAAU,CAACE,OAAO,CAACoB,aAAa,CAAC,CAAC;IAClCtB,UAAU,CAACE,OAAO,CAACiC,cAAc,CAAC,CAAC;IACnCvC,SAAS,CAAC,CAAC;IACXuB,iBAAiB,CAAC,CAAC;EACrB,CAAC,EAAE,CAACvB,SAAS,EAAEuB,iBAAiB,CAAC,CAAC;;EAElC;EACA,MAAMkB,eAAe,GAAGpF,WAAW,CAAC,CAACqF,GAAW,EAAEC,GAAW,KAAK;IAChE,IAAI,CAACvC,UAAU,CAACE,OAAO,IAAI,CAACf,UAAU,EAAE;IAExC,MAAMqD,MAAM,GAAGrD,UAAU,CAACsD,OAAO,CAACH,GAAG,CAAC,GAAGC,GAAG,CAAC;IAC7C,IAAI,CAACC,MAAM,IAAIA,MAAM,CAACE,QAAQ,EAAE;;IAEhC;IACAhF,SAAS,CAACC,WAAW,CAAC6D,aAAa,CAACmB,GAAG,EAAExC,QAAQ,CAACQ,YAAY,CAAC;;IAE/D;IACAb,SAAS,CAACwC,GAAG,EAAEC,GAAG,CAAC;;IAEnB;IACA3E,UAAU,CAACC,UAAU,CAAC+E,KAAK,EAAEzC,QAAQ,CAACS,aAAa,CAAC;;IAEpD;EACF,CAAC,EAAE,CAACzB,UAAU,EAAEW,SAAS,EAAEK,QAAQ,CAACQ,YAAY,EAAER,QAAQ,CAACS,aAAa,CAAC,CAAC;;EAE1E;EACA,MAAMiC,aAAa,GAAG5F,WAAW,CAAC,MAAM;IACtC,IAAI,CAACkC,UAAU,EAAE,OAAO,EAAE;IAE1B,MAAM2D,cAAc,GAAGnE,KAAK,GAAG,IAAI;IACnC,MAAMoE,eAAe,GAAGnE,MAAM,GAAG,GAAG;IACpC,MAAMoE,OAAO,GAAGC,IAAI,CAACC,GAAG,CACtBJ,cAAc,GAAG3D,UAAU,CAACgE,IAAI,EAChCJ,eAAe,GAAG5D,UAAU,CAACgE,IAC/B,CAAC;IACD;IACA,OAAOF,IAAI,CAACG,GAAG,CAAC,EAAE,EAAEH,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEF,OAAO,GAAG,GAAG,CAAC,CAAC;EAClD,CAAC,EAAE,CAAC7D,UAAU,CAAC,CAAC;EAEhB,oBACEX,IAAA,CAAClB,sBAAsB;IAAC+F,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC9C9E,KAAA,CAACxB,IAAI;MAACmG,KAAK,EAAEC,MAAM,CAACG,aAAc;MAAAD,QAAA,gBAEhChF,IAAA,CAACT,cAAc;QACbY,KAAK,EAAEA,KAAM;QACbC,MAAM,EAAEA,MAAO;QACfW,SAAS,EAAEA;MAAU,CACtB,CAAC,eAGFf,IAAA,CAACN,UAAU;QACTmB,KAAK,EAAEA,KAAM;QACbC,QAAQ,EAAEA;MAAS,CACpB,CAAC,eAGFd,IAAA,CAACtB,IAAI;QAACmG,KAAK,EAAEC,MAAM,CAACI,QAAS;QAAAF,QAAA,EAC1BrE,UAAU,iBACTX,IAAA,CAACP,mBAAmB;UAClBoC,IAAI,EAAElB,UAAW;UACjBwE,UAAU,EAAEd,aAAa,CAAC,CAAE;UAC5Be,WAAW,EAAEvB,eAAgB;UAC7BzB,aAAa,EAAET,QAAQ,CAACS,aAAc;UACtCrB,SAAS,EAAEA;QAAU,CACtB;MACF,CAOG,CAAC,eAGPf,IAAA,CAACJ,iBAAiB;QAChBmB,SAAS,EAAEA,SAAU;QACrBC,QAAQ,EAAEA,QAAS;QACnBqE,WAAW,EAAE9B,gBAAiB;QAC9B+B,UAAU,EAAE5B,eAAgB;QAC5B6B,eAAe,EAAC,eAAe;QAC/BC,cAAc,EAAC,WAAW;QAC1BC,kBAAkB,EAAC,uBAAuB;QAC1CC,iBAAiB,EAAC,kBAAkB;QACpCC,gBAAgB,EAAC,SAAS;QAC1BC,eAAe,EAAC,SAAS;QACzBC,sBAAsB,EAAC,SAAS;QAChCC,qBAAqB,EAAC;MAAS,CAChC,CAAC,eAGF9F,IAAA,CAACL,aAAa;QACZoG,OAAO,EAAE/E,QAAS;QAClBH,KAAK,EAAEA,KAAM;QACbmF,WAAW,EAAEpC;MAAiB,CAC/B,CAAC,eAGF5D,IAAA,CAACnB,KAAK;QACJkH,OAAO,EAAExF,iBAAkB;QAC3B0F,aAAa,EAAC,OAAO;QACrBC,iBAAiB,EAAC,WAAW;QAC7BC,cAAc,EAAE3F,qBAAsB;QAAAwE,QAAA,eAEtChF,IAAA,CAACF,qBAAqB;UACpBsG,MAAM,EAAC,cAAc;UACrBC,OAAO,EAAE7F,qBAAqB,KAAK,MAAM,CAAC,CAAC,CAAE;UAC7C8F,aAAa,EAAE3E;QAAS,CACzB;MAAC,CACG,CAAC;IAAA,CACJ;EAAC,CACe,CAAC;AAE7B,CAAC;AAED,MAAMmD,MAAM,GAAGnG,UAAU,CAAC4H,MAAM,CAAC;EAC/BxB,SAAS,EAAE;IACTyB,IAAI,EAAE;EACR,CAAC;EACDvB,aAAa,EAAE;IACbuB,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE,SAAS,CAAE;EAC9B,CAAC;EACDvB,QAAQ,EAAE;IACRsB,IAAI,EAAE,CAAC;IACPE,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAEF,SAAStG,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","View","StyleSheet","Dimensions","GestureHandlerRootView","usePopitFidgetStore","PopitFidgetService","POPIT_FIDGET_GAME_CONFIG","GAME_IDS","playSound","GAME_SOUNDS","playHaptic","HapticType","GameBackground","FidgetGrid","FidgetGridComponent","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","jsx","_jsx","jsxs","_jsxs","width","height","get","PopitFidget","settings","onSettingsChange","fidgetGrid","state","score","timeLeft","isPlaying","gameOver","gameWon","startGame","stopGame","resetGame","setFidgetGrid","popBubble","setTimeLeft","serviceRef","difficulty","enableSounds","enableHaptics","current","grid","generateFidgetGrid","stopGameTimer","cleanup","service","generateNewFidget","prevDifficultyRef","handleDifficultyChange","newDuration","GAME_DURATION","startGameTimer","BUBBLE_POPPER","COMPLETE","TIME_UP","timerInterval","setInterval","newTime","clearInterval","startGameHandler","START","MEDIUM","stopGameHandler","resetGameHandler","handleBubblePop","row","col","bubble","bubbles","isPopped","POP","LIGHT","screenDimensions","bubbleSize","availableWidth","availableHeight","maxSize","Math","min","size","max","gameControlButtonProps","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","style","styles","container","children","gameContainer","gameArea","onBubblePop","hapticEnabled","gameId","POPIT_FIDGET","create","flex","backgroundColor","justifyContent","alignItems","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidget.tsx"],"mappings":"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","ignoreList":[]}
@@ -81,36 +81,33 @@ export const RAINBOW_COLORS = ['#E91E63',
81
81
  // Legacy bubble colors for backward compatibility
82
82
  export const BUBBLE_COLORS = RAINBOW_COLORS;
83
83
 
84
- // Popit Fidget Game Theme
84
+ // Popit Fidget Game Theme - Matches scoreboard purple
85
85
  export const POPIT_FIDGET_THEME = {
86
- backgroundColor: '#f0f8ff',
87
- // Alice blue
88
- headerBackgroundColor: 'rgba(106, 92, 206, 0.8)',
89
- // Purple with transparency
86
+ backgroundColor: '#fef7ff',
87
+ // Very light lavender to match game background
88
+ headerBackgroundColor: 'rgba(108, 92, 231, 0.9)',
89
+ // Purple header to match scoreboard
90
90
  headerTextColor: '#ffffff',
91
- sectionBackgroundColor: 'rgba(255, 255, 255, 0.3)',
92
- sectionTitleColor: '#1f2937',
93
- // Dark gray
94
- buttonSelectedColor: '#6c5ce7',
95
- // Purple
96
- buttonUnselectedColor: 'rgba(255, 255, 255, 0.4)',
91
+ sectionBackgroundColor: 'rgba(108, 92, 231, 0.4)',
92
+ // Match scoreboard transparency
93
+ sectionTitleColor: '#ffffff',
94
+ // White text on purple sections
95
+ buttonSelectedColor: '#9c27b0',
96
+ // Match start button purple
97
+ buttonUnselectedColor: 'rgba(255, 255, 255, 0.3)',
97
98
  buttonSelectedTextColor: '#ffffff',
98
99
  buttonUnselectedTextColor: '#1f2937',
99
- switchTrackColorFalse: '#a29bfe',
100
- switchTrackColorTrue: '#6c5ce7',
101
- switchThumbColor: '#fd79a8',
102
- // Pink
103
- infoTextColor: '#374151',
104
- // Gray
105
- resetButtonColor: '#e84393',
106
- // Pink
107
- resetButtonTextColor: '#ffffff'
100
+ switchTrackColorFalse: 'rgba(108, 92, 231, 0.5)',
101
+ switchTrackColorTrue: '#9c27b0',
102
+ // Match start button
103
+ switchThumbColor: '#ffffff',
104
+ infoTextColor: '#1f2937' // Dark text for readability
108
105
  };
109
106
 
110
107
  // Popit Fidget Difficulty Descriptions
111
108
  export const POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS = {
112
- easy: '60 seconds, smaller fidget grids, relaxing pace',
113
- medium: '120 seconds, medium grids, satisfying pops',
114
- hard: '180 seconds, large complex shapes, ultimate satisfaction!'
109
+ easy: 'Smaller fidget grids, relaxing pace',
110
+ medium: 'Medium grids, satisfying pops',
111
+ hard: 'Large complex shapes, ultimate satisfaction!'
115
112
  };
116
113
  //# sourceMappingURL=PopitFidgetConstants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["POPIT_FIDGET_GAME_CONFIG","GAME_DURATION","POINTS_PER_BUBBLE","COMPLETION_BONUS","TIME_BONUS_MULTIPLIER","BUBBLE_SIZE","ANIMATION_DURATION","PARTICLE_COUNT","PARTICLE_LIFETIME","GRID_SIZES","easy","medium","hard","POPIT_FIDGET_ANIMATION_CONFIG","POP_SCALE","POP_DURATION","FADE_DURATION","BOUNCE_SCALE","PARTICLE_VELOCITY","PARTICLE_GRAVITY","POPIT_FIDGET_COLORS","BACKGROUND","FIDGET_BORDER","FIDGET_SHADOW","SCORE","UI","POPPED_BUBBLE","PARTICLE_GLOW","FIDGET_BASE","BUBBLE_SHADOW","BUBBLE_HIGHLIGHT","RAINBOW_COLORS","BUBBLE_COLORS","POPIT_FIDGET_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","resetButtonColor","resetButtonTextColor","POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidgetConstants.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,wBAAwB,GAAG;EACtCC,aAAa,EAAE,GAAG;EAAE;EACpBC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAE,GAAG;EACrBC,qBAAqB,EAAE,CAAC;EACxBC,WAAW,EAAE,EAAE;EACfC,kBAAkB,EAAE,GAAG;EACvBC,cAAc,EAAE,CAAC;EAAE;EACnBC,iBAAiB,EAAE,GAAG;EACtB;EACAC,UAAU,EAAE;IACVC,IAAI,EAAE,CAAC;IAAK;IACZC,MAAM,EAAE,CAAC;IAAG;IACZC,IAAI,EAAE,CAAC,CAAK;EACd;AACF,CAAU;AAEV,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,SAAS,EAAE,GAAG;EACdC,YAAY,EAAE,GAAG;EACjBC,aAAa,EAAE,GAAG;EAClBC,YAAY,EAAE,GAAG;EACjBC,iBAAiB,EAAE,CAAC;EACpBC,gBAAgB,EAAE;AACpB,CAAU;AAEV,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,UAAU,EAAE,SAAS;EAAE;EACvBC,aAAa,EAAE,MAAM;EACrBC,aAAa,EAAE,iBAAiB;EAChCC,KAAK,EAAE,SAAS;EAChBC,EAAE,EAAE,SAAS;EACbC,aAAa,EAAE,SAAS;EACxBC,aAAa,EAAE,uBAAuB;EACtC;EACAC,WAAW,EAAE,SAAS;EACtBC,aAAa,EAAE,iBAAiB;EAChCC,gBAAgB,EAAE;AACpB,CAAU;;AAEV;AACA,OAAO,MAAMC,cAAc,GAAG,CAC5B,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS,CAAE;AAAA,CACH;;AAEV;AACA,OAAO,MAAMC,aAAa,GAAGD,cAAc;;AAE3C;AACA,OAAO,MAAME,kBAAqC,GAAG;EACnDC,eAAe,EAAE,SAAS;EAAE;EAC5BC,qBAAqB,EAAE,yBAAyB;EAAE;EAClDC,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,oCAAoC,GAAG;EAClDvC,IAAI,EAAE,iDAAiD;EACvDC,MAAM,EAAE,4CAA4C;EACpDC,IAAI,EAAE;AACR,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["POPIT_FIDGET_GAME_CONFIG","GAME_DURATION","POINTS_PER_BUBBLE","COMPLETION_BONUS","TIME_BONUS_MULTIPLIER","BUBBLE_SIZE","ANIMATION_DURATION","PARTICLE_COUNT","PARTICLE_LIFETIME","GRID_SIZES","easy","medium","hard","POPIT_FIDGET_ANIMATION_CONFIG","POP_SCALE","POP_DURATION","FADE_DURATION","BOUNCE_SCALE","PARTICLE_VELOCITY","PARTICLE_GRAVITY","POPIT_FIDGET_COLORS","BACKGROUND","FIDGET_BORDER","FIDGET_SHADOW","SCORE","UI","POPPED_BUBBLE","PARTICLE_GLOW","FIDGET_BASE","BUBBLE_SHADOW","BUBBLE_HIGHLIGHT","RAINBOW_COLORS","BUBBLE_COLORS","POPIT_FIDGET_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidgetConstants.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,wBAAwB,GAAG;EACtCC,aAAa,EAAE,GAAG;EAAE;EACpBC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAE,GAAG;EACrBC,qBAAqB,EAAE,CAAC;EACxBC,WAAW,EAAE,EAAE;EACfC,kBAAkB,EAAE,GAAG;EACvBC,cAAc,EAAE,CAAC;EAAE;EACnBC,iBAAiB,EAAE,GAAG;EACtB;EACAC,UAAU,EAAE;IACVC,IAAI,EAAE,CAAC;IAAK;IACZC,MAAM,EAAE,CAAC;IAAG;IACZC,IAAI,EAAE,CAAC,CAAK;EACd;AACF,CAAU;AAEV,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,SAAS,EAAE,GAAG;EACdC,YAAY,EAAE,GAAG;EACjBC,aAAa,EAAE,GAAG;EAClBC,YAAY,EAAE,GAAG;EACjBC,iBAAiB,EAAE,CAAC;EACpBC,gBAAgB,EAAE;AACpB,CAAU;AAEV,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,UAAU,EAAE,SAAS;EAAE;EACvBC,aAAa,EAAE,MAAM;EACrBC,aAAa,EAAE,iBAAiB;EAChCC,KAAK,EAAE,SAAS;EAChBC,EAAE,EAAE,SAAS;EACbC,aAAa,EAAE,SAAS;EACxBC,aAAa,EAAE,uBAAuB;EACtC;EACAC,WAAW,EAAE,SAAS;EACtBC,aAAa,EAAE,iBAAiB;EAChCC,gBAAgB,EAAE;AACpB,CAAU;;AAEV;AACA,OAAO,MAAMC,cAAc,GAAG,CAC5B,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS,CAAE;AAAA,CACH;;AAEV;AACA,OAAO,MAAMC,aAAa,GAAGD,cAAc;;AAE3C;AACA,OAAO,MAAME,kBAAqC,GAAG;EACnDC,eAAe,EAAE,SAAS;EAAE;EAC5BC,qBAAqB,EAAE,yBAAyB;EAAE;EAClDC,eAAe,EAAE,SAAS;EAC1BC,sBAAsB,EAAE,yBAAyB;EAAE;EACnDC,iBAAiB,EAAE,SAAS;EAAE;EAC9BC,mBAAmB,EAAE,SAAS;EAAE;EAChCC,qBAAqB,EAAE,0BAA0B;EACjDC,uBAAuB,EAAE,SAAS;EAClCC,yBAAyB,EAAE,SAAS;EACpCC,qBAAqB,EAAE,yBAAyB;EAChDC,oBAAoB,EAAE,SAAS;EAAE;EACjCC,gBAAgB,EAAE,SAAS;EAC3BC,aAAa,EAAE,SAAS,CAAE;AAC5B,CAAC;;AAED;AACA,OAAO,MAAMC,oCAAoC,GAAG;EAClDrC,IAAI,EAAE,qCAAqC;EAC3CC,MAAM,EAAE,+BAA+B;EACvCC,IAAI,EAAE;AACR,CAAU","ignoreList":[]}
@@ -15,8 +15,6 @@ export { GAME_CONFIG, ANIMATION_CONFIG, COLORS, BUBBLE_COLORS };
15
15
 
16
16
  export class PopitFidgetService {
17
17
  gameTimerRef = null;
18
- animationRef = null;
19
- particles = [];
20
18
  constructor() {}
21
19
 
22
20
  // Generate square fidget grid based on difficulty
@@ -73,35 +71,6 @@ export class PopitFidgetService {
73
71
  return RAINBOW_COLORS[colorIndex] || RAINBOW_COLORS[0];
74
72
  }
75
73
 
76
- // Pop bubble and create particle effect
77
- popBubble(bubble, onParticleCreated) {
78
- if (bubble.isPopped) return;
79
-
80
- // Create pop particles (reduced count for better performance)
81
- const particles = [];
82
- const particleCount = 4;
83
- for (let i = 0; i < particleCount; i++) {
84
- const angle = i / particleCount * Math.PI * 2;
85
- const velocity = 2 + Math.random() * 3;
86
- particles.push({
87
- id: `${bubble.id}-particle-${i}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
88
- position: {
89
- x: bubble.x,
90
- y: bubble.y
91
- },
92
- velocity: {
93
- x: Math.cos(angle) * velocity,
94
- y: Math.sin(angle) * velocity
95
- },
96
- color: bubble.color,
97
- size: 4 + Math.random() * 6,
98
- lifetime: 0,
99
- maxLifetime: 500 + Math.random() * 300
100
- });
101
- }
102
- onParticleCreated(particles);
103
- }
104
-
105
74
  // Check if all bubbles are popped
106
75
  checkAllBubblesPopped(grid) {
107
76
  for (let row = 0; row < grid.size; row++) {
@@ -155,37 +124,9 @@ export class PopitFidgetService {
155
124
  }
156
125
  }
157
126
 
158
- // Update particles animation
159
- updateParticles(deltaTime) {
160
- this.particles = this.particles.filter(particle => {
161
- particle.lifetime += deltaTime;
162
- particle.position.x += particle.velocity.x;
163
- particle.position.y += particle.velocity.y;
164
- particle.velocity.y += 0.2; // Gravity effect
165
-
166
- return particle.lifetime < particle.maxLifetime;
167
- });
168
- return this.particles;
169
- }
170
-
171
- // Add particles
172
- addParticles(newParticles) {
173
- this.particles.push(...newParticles);
174
- }
175
-
176
- // Clear particles
177
- clearParticles() {
178
- this.particles = [];
179
- }
180
-
181
127
  // Cleanup
182
128
  cleanup() {
183
129
  this.stopGameTimer();
184
- this.clearParticles();
185
- if (this.animationRef) {
186
- cancelAnimationFrame(this.animationRef);
187
- this.animationRef = null;
188
- }
189
130
  }
190
131
  }
191
132
  //# sourceMappingURL=PopitFidgetService.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Dimensions","POPIT_FIDGET_GAME_CONFIG","GAME_CONFIG","POPIT_FIDGET_ANIMATION_CONFIG","ANIMATION_CONFIG","POPIT_FIDGET_COLORS","COLORS","RAINBOW_COLORS","BUBBLE_COLORS","width","height","get","PopitFidgetService","gameTimerRef","animationRef","particles","constructor","generateFidgetGrid","difficulty","availableWidth","availableHeight","gridSize","GRID_SIZES","maxSize","Math","min","bubbleSize","max","spacing","gridWidth","gridHeight","bubbles","row","col","x","y","id","isPopped","color","getRainbowColorForPosition","animationProgress","size","centerX","centerY","totalRows","colorIndex","floor","length","popBubble","bubble","onParticleCreated","particleCount","i","angle","PI","velocity","random","push","Date","now","toString","substr","position","cos","sin","lifetime","maxLifetime","checkAllBubblesPopped","grid","calculateCompletionPercentage","totalBubbles","poppedBubbles","startGameTimer","duration","onTick","onComplete","stopGameTimer","timeLeft","setInterval","clearInterval","updateParticles","deltaTime","filter","particle","addParticles","newParticles","clearParticles","cleanup","cancelAnimationFrame"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidgetService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Dimensions","POPIT_FIDGET_GAME_CONFIG","GAME_CONFIG","POPIT_FIDGET_ANIMATION_CONFIG","ANIMATION_CONFIG","POPIT_FIDGET_COLORS","COLORS","RAINBOW_COLORS","BUBBLE_COLORS","width","height","get","PopitFidgetService","gameTimerRef","constructor","generateFidgetGrid","difficulty","availableWidth","availableHeight","gridSize","GRID_SIZES","maxSize","Math","min","bubbleSize","max","spacing","gridWidth","gridHeight","bubbles","row","col","x","y","id","isPopped","color","getRainbowColorForPosition","animationProgress","size","centerX","centerY","totalRows","colorIndex","floor","length","checkAllBubblesPopped","grid","bubble","calculateCompletionPercentage","totalBubbles","poppedBubbles","startGameTimer","duration","onTick","onComplete","stopGameTimer","timeLeft","setInterval","clearInterval","cleanup"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidgetService.ts"],"mappings":"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","ignoreList":[]}
@@ -14,7 +14,6 @@ export const usePopitFidgetStore = create()(subscribeWithSelector(immerMiddlewar
14
14
  gameOver: false,
15
15
  gameWon: false,
16
16
  fidgetGrid: null,
17
- particles: [],
18
17
  bubblesPopped: 0,
19
18
  totalBubbles: 0,
20
19
  bubbleStates: {},
@@ -29,7 +28,6 @@ export const usePopitFidgetStore = create()(subscribeWithSelector(immerMiddlewar
29
28
  draft.timeLeft = duration;
30
29
  draft.score = 0;
31
30
  draft.bubblesPopped = 0;
32
- draft.particles = [];
33
31
  });
34
32
  },
35
33
  stopGame: () => {
@@ -46,7 +44,6 @@ export const usePopitFidgetStore = create()(subscribeWithSelector(immerMiddlewar
46
44
  draft.gameOver = false;
47
45
  draft.gameWon = false;
48
46
  draft.fidgetGrid = null;
49
- draft.particles = [];
50
47
  draft.bubblesPopped = 0;
51
48
  draft.totalBubbles = 0;
52
49
  });
@@ -131,30 +128,6 @@ export const usePopitFidgetStore = create()(subscribeWithSelector(immerMiddlewar
131
128
  }
132
129
  });
133
130
  },
134
- setParticles: particles => {
135
- set(draft => {
136
- draft.particles = particles;
137
- });
138
- },
139
- addParticles: particles => {
140
- set(draft => {
141
- // Limit total particles to prevent memory issues and performance degradation
142
- const maxParticles = 50;
143
- const newParticles = [...draft.particles, ...particles];
144
-
145
- // If we exceed the limit, remove the oldest particles
146
- if (newParticles.length > maxParticles) {
147
- draft.particles = newParticles.slice(-maxParticles);
148
- } else {
149
- draft.particles = newParticles;
150
- }
151
- });
152
- },
153
- clearParticles: () => {
154
- set(draft => {
155
- draft.particles = [];
156
- });
157
- },
158
131
  checkGameWon: () => {
159
132
  const state = get();
160
133
  if (!state.fidgetGrid) return;