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
@@ -8,7 +8,8 @@ import { playHaptic, HapticType } from "../../../services/HapticsService.js";
8
8
  import { EnhancedBallComponent } from "./EnhancedBallComponent.js";
9
9
  import { WallComponent } from "./WallComponent.js";
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- export const EnhancedGameArea = ({
11
+ // Memoized EnhancedGameArea component to prevent unnecessary re-renders
12
+ export const EnhancedGameArea = /*#__PURE__*/React.memo(({
12
13
  gameState,
13
14
  gameConfig,
14
15
  walls,
@@ -32,12 +33,14 @@ export const EnhancedGameArea = ({
32
33
  React.useEffect(() => {
33
34
  wallsSharedValue.value = walls;
34
35
  }, [walls]);
35
- const triggerMoveHaptic = () => {
36
+
37
+ // Memoized haptic callback functions
38
+ const triggerMoveHaptic = React.useCallback(() => {
36
39
  playHaptic(HapticType.LIGHT, hapticEnabled);
37
- };
38
- const triggerCollisionHaptic = () => {
40
+ }, [hapticEnabled]);
41
+ const triggerCollisionHaptic = React.useCallback(() => {
39
42
  playHaptic(HapticType.MEDIUM, hapticEnabled);
40
- };
43
+ }, [hapticEnabled]);
41
44
 
42
45
  // Store the initial position when gesture starts
43
46
  const startPosition = useSharedValue({
@@ -52,7 +55,7 @@ export const EnhancedGameArea = ({
52
55
  const currentWalls = wallsSharedValue.value;
53
56
 
54
57
  // Use minimal margin to allow ball to fit better in maze paths
55
- const collisionMargin = 0.5;
58
+ const collisionMargin = 0.2; // Reduced from 0.5 for more precise collision
56
59
  const effectiveRadius = ballRadius + collisionMargin;
57
60
  for (let i = 0; i < currentWalls.length; i++) {
58
61
  const wall = currentWalls[i];
@@ -252,6 +255,7 @@ export const EnhancedGameArea = ({
252
255
  return /*#__PURE__*/_jsx(View, {
253
256
  style: [styles.marker, styles.endMarker, {
254
257
  left: endPos.x - 15,
258
+ // Half of 30px marker size
255
259
  top: endPos.y - 15
256
260
  }],
257
261
  children: /*#__PURE__*/_jsx(View, {
@@ -290,7 +294,7 @@ export const EnhancedGameArea = ({
290
294
  })]
291
295
  })
292
296
  });
293
- };
297
+ });
294
298
  const styles = StyleSheet.create({
295
299
  container: {
296
300
  backgroundColor: 'transparent',
@@ -314,6 +318,7 @@ const styles = StyleSheet.create({
314
318
  marker: {
315
319
  position: 'absolute',
316
320
  width: 30,
321
+ // Revert to original size for proper collision detection
317
322
  height: 30,
318
323
  borderRadius: 15,
319
324
  justifyContent: 'center',
@@ -330,10 +335,12 @@ const styles = StyleSheet.create({
330
335
  startMarker: {
331
336
  backgroundColor: '#4CAF50',
332
337
  borderWidth: 3,
338
+ // Revert to original border width
333
339
  borderColor: '#2E7D32'
334
340
  },
335
341
  startMarkerInner: {
336
342
  width: 12,
343
+ // Revert to original size
337
344
  height: 12,
338
345
  borderRadius: 6,
339
346
  backgroundColor: '#81C784'
@@ -341,10 +348,12 @@ const styles = StyleSheet.create({
341
348
  endMarker: {
342
349
  backgroundColor: '#FF5722',
343
350
  borderWidth: 3,
351
+ // Revert to original border width
344
352
  borderColor: '#D84315'
345
353
  },
346
354
  endMarkerInner: {
347
355
  width: 12,
356
+ // Revert to original size
348
357
  height: 12,
349
358
  borderRadius: 6,
350
359
  backgroundColor: '#FF8A65'
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","Gesture","GestureDetector","Animated","useSharedValue","useAnimatedStyle","runOnJS","withSpring","playHaptic","HapticType","EnhancedBallComponent","WallComponent","jsx","_jsx","jsxs","_jsxs","EnhancedGameArea","gameState","gameConfig","walls","onBallPositionChange","hapticEnabled","translateX","ballPosition","x","translateY","y","isDragging","wallsSharedValue","useEffect","value","triggerMoveHaptic","LIGHT","triggerCollisionHaptic","MEDIUM","startPosition","checkWallCollision","ballX","ballY","ballRadius","currentWalls","collisionMargin","effectiveRadius","i","length","wall","closestX","Math","max","min","width","closestY","height","distanceX","distanceY","distanceSquared","checkPathCollision","fromX","fromY","toX","toY","deltaX","deltaY","distance","sqrt","steps","ceil","t","checkX","checkY","panGesture","Pan","onStart","isPlaying","isPaused","onUpdate","event","newX","translationX","newY","translationY","BALL_SIZE","clampedX","GAME_AREA_WIDTH","clampedY","GAME_AREA_HEIGHT","currentX","currentY","movementDistance","finalX","finalY","hasCollision","foundValidPosition","horizontalOnlyX","horizontalOnlyY","horizontalDistance","abs","canSlideHorizontally","testX","verticalOnlyX","verticalOnlyY","verticalDistance","canSlideVertically","testY","onEnd","animatedBallStyle","transform","renderStartMarker","startPos","CELL_SIZE","style","styles","marker","startMarker","left","top","children","startMarkerInner","renderEndMarker","endPos","GRID_SIZE","endMarker","endMarkerInner","container","gameArea","gesture","ballContainer","position","size","isCompleted","create","backgroundColor","overflow","justifyContent","alignItems","borderRadius","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","borderWidth","borderColor"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/EnhancedGameArea.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","StyleSheet","Gesture","GestureDetector","Animated","useSharedValue","useAnimatedStyle","runOnJS","withSpring","playHaptic","HapticType","EnhancedBallComponent","WallComponent","jsx","_jsx","jsxs","_jsxs","EnhancedGameArea","memo","gameState","gameConfig","walls","onBallPositionChange","hapticEnabled","translateX","ballPosition","x","translateY","y","isDragging","wallsSharedValue","useEffect","value","triggerMoveHaptic","useCallback","LIGHT","triggerCollisionHaptic","MEDIUM","startPosition","checkWallCollision","ballX","ballY","ballRadius","currentWalls","collisionMargin","effectiveRadius","i","length","wall","closestX","Math","max","min","width","closestY","height","distanceX","distanceY","distanceSquared","checkPathCollision","fromX","fromY","toX","toY","deltaX","deltaY","distance","sqrt","steps","ceil","t","checkX","checkY","panGesture","Pan","onStart","isPlaying","isPaused","onUpdate","event","newX","translationX","newY","translationY","BALL_SIZE","clampedX","GAME_AREA_WIDTH","clampedY","GAME_AREA_HEIGHT","currentX","currentY","movementDistance","finalX","finalY","hasCollision","foundValidPosition","horizontalOnlyX","horizontalOnlyY","horizontalDistance","abs","canSlideHorizontally","testX","verticalOnlyX","verticalOnlyY","verticalDistance","canSlideVertically","testY","onEnd","animatedBallStyle","transform","renderStartMarker","startPos","CELL_SIZE","style","styles","marker","startMarker","left","top","children","startMarkerInner","renderEndMarker","endPos","GRID_SIZE","endMarker","endMarkerInner","container","gameArea","gesture","ballContainer","position","size","isCompleted","create","backgroundColor","overflow","justifyContent","alignItems","borderRadius","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","borderWidth","borderColor"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/EnhancedGameArea.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,8 @@ import React from 'react';
4
4
  import { View, Text, StyleSheet } from 'react-native';
5
5
  import { RESPONSIVE_SCOREBOARD_CONTAINER, RESPONSIVE_SCOREBOARD_FONTS } from "../../../shared/helpers/index.js";
6
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- export const ScoreBoard = ({
7
+ // Memoized ScoreBoard component to prevent unnecessary re-renders
8
+ export const ScoreBoard = /*#__PURE__*/React.memo(({
8
9
  gameState
9
10
  }) => {
10
11
  return /*#__PURE__*/_jsxs(View, {
@@ -29,16 +30,20 @@ export const ScoreBoard = ({
29
30
  })]
30
31
  })]
31
32
  });
32
- };
33
+ });
33
34
  const styles = StyleSheet.create({
34
35
  scoreBoard: {
35
36
  ...RESPONSIVE_SCOREBOARD_CONTAINER,
37
+ position: 'absolute',
38
+ top: 0,
39
+ left: 20,
40
+ right: 20,
41
+ zIndex: 100,
36
42
  flexDirection: 'row',
37
43
  justifyContent: 'space-between',
38
44
  alignItems: 'center',
39
45
  backgroundColor: 'rgba(139, 69, 19, 0.4)',
40
46
  // Semi-transparent brown for maze theme
41
- marginBottom: 20,
42
47
  borderWidth: 1,
43
48
  borderColor: 'rgba(255, 255, 255, 0.3)' // Subtle white border
44
49
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","StyleSheet","RESPONSIVE_SCOREBOARD_CONTAINER","RESPONSIVE_SCOREBOARD_FONTS","jsx","_jsx","jsxs","_jsxs","ScoreBoard","gameState","style","styles","scoreBoard","children","scoreSection","scoreLabel","scoreValue","score","timeValue","timeElapsed","create","flexDirection","justifyContent","alignItems","backgroundColor","marginBottom","borderWidth","borderColor","flex","fontSize","labelSize","fontWeight","color","valueSize","timeSize"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/ScoreBoard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAErD,SAASC,+BAA+B,EAAEC,2BAA2B,QAAQ,kCAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMvG,OAAO,MAAMC,UAAqC,GAAGA,CAAC;EACpDC;AACF,CAAC,KAAK;EACJ,oBACEF,KAAA,CAACR,IAAI;IAACW,KAAK,EAAEC,MAAM,CAACC,UAAW;IAAAC,QAAA,gBAC7BN,KAAA,CAACR,IAAI;MAACW,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BR,IAAA,CAACL,IAAI;QAACU,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAK,CAAM,CAAC,eAC5CR,IAAA,CAACL,IAAI;QAACU,KAAK,EAAEC,MAAM,CAACK,UAAW;QAAAH,QAAA,EAAEJ,SAAS,CAACQ;MAAK,CAAO,CAAC;IAAA,CACpD,CAAC,eACPV,KAAA,CAACR,IAAI;MAACW,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BR,IAAA,CAACL,IAAI;QAACU,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAI,CAAM,CAAC,eAC3CR,IAAA,CAACL,IAAI;QAACU,KAAK,EAAEC,MAAM,CAACO,SAAU;QAAAL,QAAA,EAAEJ,SAAS,CAACU;MAAW,CAAO,CAAC;IAAA,CACzD,CAAC;EAAA,CACH,CAAC;AAEX,CAAC;AAED,MAAMR,MAAM,GAAGV,UAAU,CAACmB,MAAM,CAAC;EAC/BR,UAAU,EAAE;IACV,GAAGV,+BAA+B;IAClCmB,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,wBAAwB;IAAE;IAC3CC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,0BAA0B,CAAE;EAC3C,CAAC;EACDb,YAAY,EAAE;IACZS,UAAU,EAAE,QAAQ;IACpBK,IAAI,EAAE;EACR,CAAC;EACDb,UAAU,EAAE;IACVc,QAAQ,EAAE1B,2BAA2B,CAAC2B,SAAS;IAC/CC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS;IAChBP,YAAY,EAAE;EAChB,CAAC;EACDT,UAAU,EAAE;IACVa,QAAQ,EAAE1B,2BAA2B,CAAC8B,SAAS;IAC/CF,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS,CAAE;EACpB,CAAC;EACDd,SAAS,EAAE;IACTW,QAAQ,EAAE1B,2BAA2B,CAAC+B,QAAQ;IAC9CH,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS,CAAE;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","RESPONSIVE_SCOREBOARD_CONTAINER","RESPONSIVE_SCOREBOARD_FONTS","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","gameState","style","styles","scoreBoard","children","scoreSection","scoreLabel","scoreValue","score","timeValue","timeElapsed","create","position","top","left","right","zIndex","flexDirection","justifyContent","alignItems","backgroundColor","borderWidth","borderColor","flex","fontSize","labelSize","fontWeight","color","marginBottom","valueSize","timeSize"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/ScoreBoard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAErD,SAASC,+BAA+B,EAAEC,2BAA2B,QAAQ,kCAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMvG;AACA,OAAO,MAAMC,UAAqC,gBAAGV,KAAK,CAACW,IAAI,CAAC,CAAC;EAC/DC;AACF,CAAC,KAAK;EACJ,oBACEH,KAAA,CAACR,IAAI;IAACY,KAAK,EAAEC,MAAM,CAACC,UAAW;IAAAC,QAAA,gBAC7BP,KAAA,CAACR,IAAI;MAACY,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BT,IAAA,CAACL,IAAI;QAACW,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAK,CAAM,CAAC,eAC5CT,IAAA,CAACL,IAAI;QAACW,KAAK,EAAEC,MAAM,CAACK,UAAW;QAAAH,QAAA,EAAEJ,SAAS,CAACQ;MAAK,CAAO,CAAC;IAAA,CACpD,CAAC,eACPX,KAAA,CAACR,IAAI;MAACY,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BT,IAAA,CAACL,IAAI;QAACW,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAI,CAAM,CAAC,eAC3CT,IAAA,CAACL,IAAI;QAACW,KAAK,EAAEC,MAAM,CAACO,SAAU;QAAAL,QAAA,EAAEJ,SAAS,CAACU;MAAW,CAAO,CAAC;IAAA,CACzD,CAAC;EAAA,CACH,CAAC;AAEX,CAAC,CAAC;AAEF,MAAMR,MAAM,GAAGX,UAAU,CAACoB,MAAM,CAAC;EAC/BR,UAAU,EAAE;IACV,GAAGX,+BAA+B;IAClCoB,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,EAAE;IACRC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,GAAG;IACXC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,wBAAwB;IAAE;IAC3CC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,0BAA0B,CAAE;EAC3C,CAAC;EACDjB,YAAY,EAAE;IACZc,UAAU,EAAE,QAAQ;IACpBI,IAAI,EAAE;EACR,CAAC;EACDjB,UAAU,EAAE;IACVkB,QAAQ,EAAE/B,2BAA2B,CAACgC,SAAS;IAC/CC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS;IAChBC,YAAY,EAAE;EAChB,CAAC;EACDrB,UAAU,EAAE;IACViB,QAAQ,EAAE/B,2BAA2B,CAACoC,SAAS;IAC/CH,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS,CAAE;EACpB,CAAC;EACDlB,SAAS,EAAE;IACTe,QAAQ,EAAE/B,2BAA2B,CAACqC,QAAQ;IAC9CJ,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS,CAAE;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -3,7 +3,8 @@
3
3
  import React from 'react';
4
4
  import { Canvas, Rect, LinearGradient, vec, Shadow, RoundedRect } from '@shopify/react-native-skia';
5
5
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
- export const WallComponent = ({
6
+ // Memoized WallComponent to prevent unnecessary re-renders
7
+ export const WallComponent = /*#__PURE__*/React.memo(({
7
8
  walls,
8
9
  width,
9
10
  height
@@ -86,5 +87,5 @@ export const WallComponent = ({
86
87
  },
87
88
  children: walls.map((wall, index) => renderWall(wall, index))
88
89
  });
89
- };
90
+ });
90
91
  //# sourceMappingURL=WallComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Canvas","Rect","LinearGradient","vec","Shadow","RoundedRect","jsx","_jsx","jsxs","_jsxs","WallComponent","walls","width","height","renderWall","wall","index","cornerRadius","shadowOffset","Fragment","children","x","y","r","start","end","type","colors","dx","dy","blur","color","Math","max","style","map"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/WallComponent.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Canvas","Rect","LinearGradient","vec","Shadow","RoundedRect","jsx","_jsx","jsxs","_jsxs","WallComponent","memo","walls","width","height","renderWall","wall","index","cornerRadius","shadowOffset","Fragment","children","x","y","r","start","end","type","colors","dx","dy","blur","color","Math","max","style","map"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/WallComponent.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,5 +5,4 @@ export { WallComponent } from "./WallComponent.js";
5
5
  export { EnhancedGameArea } from "./EnhancedGameArea.js";
6
6
  export { GameBackground } from "./GameBackground.js";
7
7
  export { ScoreBoard } from "./ScoreBoard.js";
8
- export { GameOverModal } from "./GameOverModal.js";
9
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["EnhancedBallComponent","WallComponent","EnhancedGameArea","GameBackground","ScoreBoard","GameOverModal"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/index.ts"],"mappings":";;AAAA,SAASA,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,aAAa,QAAQ,oBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["EnhancedBallComponent","WallComponent","EnhancedGameArea","GameBackground","ScoreBoard"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/index.ts"],"mappings":";;AAAA,SAASA,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,UAAU,QAAQ,iBAAc","ignoreList":[]}
@@ -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
  });