react-native-games 0.3.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 (429) hide show
  1. package/README.md +134 -130
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +116 -343
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +182 -0
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -0
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +123 -101
  7. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +119 -92
  9. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +123 -113
  11. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js +137 -23
  13. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  14. package/lib/module/games/balloon-blaster/components/GameBackground.js +8 -83
  15. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  16. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +15 -22
  17. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  18. package/lib/module/games/balloon-blaster/components/index.js +0 -4
  19. package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
  20. package/lib/module/games/fruit-ninja/FruitNinja.js +143 -0
  21. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -0
  22. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +148 -0
  23. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -0
  24. package/lib/module/games/{fruit-slicer/FruitSlicerService.js → fruit-ninja/FruitNinjaService.js} +43 -21
  25. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -0
  26. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +191 -0
  27. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -0
  28. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.js +1 -1
  29. package/lib/module/games/fruit-ninja/components/FruitComponent.js.map +1 -0
  30. package/lib/module/games/fruit-ninja/components/GameArea.js +215 -0
  31. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -0
  32. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameBackground.js +250 -304
  33. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -0
  34. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.js +17 -47
  35. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -0
  36. package/lib/module/games/fruit-ninja/components/index.js +7 -0
  37. package/lib/module/games/fruit-ninja/components/index.js.map +1 -0
  38. package/lib/module/games/maze-runner/MazeRunner.js +184 -169
  39. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  40. package/lib/module/games/maze-runner/MazeRunnerConstants.js +100 -0
  41. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -0
  42. package/lib/module/games/maze-runner/MazeRunnerService.js +37 -14
  43. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  44. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +5 -4
  45. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -1
  46. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +20 -15
  47. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  48. package/lib/module/games/maze-runner/components/GameBackground.js +151 -192
  49. package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -1
  50. package/lib/module/games/maze-runner/components/ScoreBoard.js +15 -25
  51. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  52. package/lib/module/games/maze-runner/components/WallComponent.js +3 -2
  53. package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -1
  54. package/lib/module/games/maze-runner/components/index.js +0 -2
  55. package/lib/module/games/maze-runner/components/index.js.map +1 -1
  56. package/lib/module/games/popit-fidget/PopitFidget.js +294 -0
  57. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -0
  58. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +113 -0
  59. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -0
  60. package/lib/module/games/popit-fidget/PopitFidgetService.js +132 -0
  61. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -0
  62. package/lib/module/games/popit-fidget/PopitFidgetStore.js +163 -0
  63. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -0
  64. package/lib/module/games/popit-fidget/components/BubbleComponent.js +198 -0
  65. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -0
  66. package/lib/module/games/popit-fidget/components/FidgetGrid.js +165 -0
  67. package/lib/module/games/popit-fidget/components/FidgetGrid.js.map +1 -0
  68. package/lib/module/games/popit-fidget/components/GameBackground.js +177 -0
  69. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -0
  70. package/lib/module/games/popit-fidget/components/ScoreBoard.js +75 -0
  71. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -0
  72. package/lib/module/games/popit-fidget/components/index.js +7 -0
  73. package/lib/module/games/popit-fidget/components/index.js.map +1 -0
  74. package/lib/module/games/space-fighter/SpaceFighter.js +169 -0
  75. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -0
  76. package/lib/module/games/space-fighter/SpaceFighterConstants.js +108 -0
  77. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -0
  78. package/lib/module/games/{space-traveller/SpaceTravellerService.js → space-fighter/SpaceFighterService.js} +48 -21
  79. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -0
  80. package/lib/module/games/space-fighter/SpaceFighterStore.js +195 -0
  81. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -0
  82. package/lib/module/games/{space-traveller → space-fighter}/components/AsteroidComponent.js +7 -5
  83. package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -0
  84. package/lib/module/games/space-fighter/components/GameArea.js +295 -0
  85. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -0
  86. package/lib/module/games/{space-traveller → space-fighter}/components/GameBackground.js +10 -65
  87. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -0
  88. package/lib/module/games/{space-traveller → space-fighter}/components/ScoreBoard.js +20 -26
  89. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -0
  90. package/lib/module/games/{space-traveller → space-fighter}/components/Spacecraft3D.js +72 -111
  91. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -0
  92. package/lib/module/games/space-fighter/components/SpacecraftPath.js +52 -0
  93. package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -0
  94. package/lib/module/games/{space-traveller → space-fighter}/components/index.js +0 -4
  95. package/lib/module/games/space-fighter/components/index.js.map +1 -0
  96. package/lib/module/games/whack-a-mole/WhackAMole.js +263 -0
  97. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -0
  98. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +115 -0
  99. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -0
  100. package/lib/module/games/whack-a-mole/WhackAMoleService.js +120 -0
  101. package/lib/module/games/whack-a-mole/WhackAMoleService.js.map +1 -0
  102. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +172 -0
  103. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -0
  104. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameBackground.js +31 -91
  105. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -0
  106. package/lib/module/games/whack-a-mole/components/GameGrid.js +97 -0
  107. package/lib/module/games/whack-a-mole/components/GameGrid.js.map +1 -0
  108. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameHole.js +67 -54
  109. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -0
  110. package/lib/module/games/{cat-popper/components/CatCharacter.js → whack-a-mole/components/MoleCharacter.js} +75 -115
  111. package/lib/module/games/whack-a-mole/components/MoleCharacter.js.map +1 -0
  112. package/lib/module/games/{cat-popper → whack-a-mole}/components/ScoreBoard.js +13 -17
  113. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -0
  114. package/lib/module/games/{cat-popper → whack-a-mole}/components/index.js +1 -3
  115. package/lib/module/games/whack-a-mole/components/index.js.map +1 -0
  116. package/lib/module/index.js +4 -3
  117. package/lib/module/index.js.map +1 -1
  118. package/lib/module/services/GamesConstants.js +41 -519
  119. package/lib/module/services/GamesConstants.js.map +1 -1
  120. package/lib/module/services/GamesService.js +35 -23
  121. package/lib/module/services/GamesService.js.map +1 -1
  122. package/lib/module/services/HapticsService.js +77 -0
  123. package/lib/module/services/HapticsService.js.map +1 -0
  124. package/lib/module/services/SoundsService.js +171 -0
  125. package/lib/module/services/SoundsService.js.map +1 -0
  126. package/lib/module/shared/helpers/AnimationFrame.js +120 -0
  127. package/lib/module/shared/helpers/AnimationFrame.js.map +1 -0
  128. package/lib/module/shared/helpers/AnimationTracker.js +89 -0
  129. package/lib/module/shared/helpers/AnimationTracker.js.map +1 -0
  130. package/lib/module/shared/helpers/ErrorHandler.js +269 -0
  131. package/lib/module/shared/helpers/ErrorHandler.js.map +1 -0
  132. package/lib/module/shared/helpers/GameControlButton.js +219 -0
  133. package/lib/module/shared/helpers/GameControlButton.js.map +1 -0
  134. package/lib/module/{games/balloon-blaster/components → shared/helpers}/GameOverModal.js +25 -17
  135. package/lib/module/shared/helpers/GameOverModal.js.map +1 -0
  136. package/lib/module/shared/helpers/GameSettingsModal.js +287 -0
  137. package/lib/module/shared/helpers/GameSettingsModal.js.map +1 -0
  138. package/lib/module/shared/helpers/ParticleBlast.js +133 -0
  139. package/lib/module/shared/helpers/ParticleBlast.js.map +1 -0
  140. package/lib/module/shared/helpers/ResponsiveScoreBoard.js +81 -0
  141. package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +1 -0
  142. package/lib/module/shared/helpers/index.js +12 -0
  143. package/lib/module/shared/helpers/index.js.map +1 -0
  144. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +2 -14
  145. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  146. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +144 -0
  147. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -0
  148. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +1 -1
  149. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  150. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +12 -2
  151. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  152. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  153. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +1 -15
  154. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  155. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  156. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +1 -7
  157. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  158. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -4
  159. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
  160. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +4 -0
  161. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -0
  162. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +112 -0
  163. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -0
  164. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerService.d.ts → fruit-ninja/FruitNinjaService.d.ts} +13 -5
  165. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -0
  166. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerStore.d.ts → fruit-ninja/FruitNinjaStore.d.ts} +13 -4
  167. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -0
  168. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.d.ts +1 -1
  169. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts.map +1 -0
  170. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +3 -0
  171. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -0
  172. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -0
  173. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +3 -0
  174. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -0
  175. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts +5 -0
  176. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -0
  177. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +2 -16
  178. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  179. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +41 -0
  180. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -0
  181. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +4 -2
  182. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  183. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -1
  184. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  185. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +2 -1
  186. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -1
  187. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  188. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -1
  189. package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -2
  190. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
  191. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +5 -0
  192. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -0
  193. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +45 -0
  194. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -0
  195. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +33 -0
  196. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -0
  197. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +36 -0
  198. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -0
  199. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts +12 -0
  200. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -0
  201. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts +12 -0
  202. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts.map +1 -0
  203. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +9 -0
  204. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -0
  205. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +8 -0
  206. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -0
  207. package/lib/typescript/src/games/popit-fidget/components/index.d.ts +5 -0
  208. package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -0
  209. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +4 -0
  210. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -0
  211. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +71 -0
  212. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -0
  213. package/lib/typescript/src/games/{space-traveller/SpaceTravellerService.d.ts → space-fighter/SpaceFighterService.d.ts} +7 -4
  214. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -0
  215. package/lib/typescript/src/games/{space-traveller/SpaceTravellerStore.d.ts → space-fighter/SpaceFighterStore.d.ts} +12 -4
  216. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -0
  217. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +8 -0
  218. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -0
  219. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +3 -0
  220. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -0
  221. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -0
  222. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +3 -0
  223. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -0
  224. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/Spacecraft3D.d.ts +1 -1
  225. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -0
  226. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -0
  227. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/index.d.ts +0 -4
  228. package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -0
  229. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +4 -0
  230. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -0
  231. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +79 -0
  232. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -0
  233. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts +33 -0
  234. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts.map +1 -0
  235. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts +41 -0
  236. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -0
  237. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -0
  238. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameGrid.d.ts +2 -2
  239. package/lib/typescript/src/games/whack-a-mole/components/GameGrid.d.ts.map +1 -0
  240. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameHole.d.ts +3 -2
  241. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts.map +1 -0
  242. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts +7 -0
  243. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts.map +1 -0
  244. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -0
  245. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts +6 -0
  246. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -0
  247. package/lib/typescript/src/index.d.ts +4 -3
  248. package/lib/typescript/src/index.d.ts.map +1 -1
  249. package/lib/typescript/src/services/GamesConstants.d.ts +61 -340
  250. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  251. package/lib/typescript/src/services/GamesService.d.ts +21 -3
  252. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  253. package/lib/typescript/src/services/HapticsService.d.ts +16 -0
  254. package/lib/typescript/src/services/HapticsService.d.ts.map +1 -0
  255. package/lib/typescript/src/services/SoundsService.d.ts +154 -0
  256. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -0
  257. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts +41 -0
  258. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +1 -0
  259. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts +45 -0
  260. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +1 -0
  261. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts +124 -0
  262. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +1 -0
  263. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts +17 -0
  264. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -0
  265. package/lib/typescript/src/{games/cat-popper/components → shared/helpers}/GameOverModal.d.ts +5 -0
  266. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +1 -0
  267. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts +9 -0
  268. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +1 -0
  269. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts +12 -0
  270. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +1 -0
  271. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +42 -0
  272. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +1 -0
  273. package/lib/typescript/src/shared/helpers/index.d.ts +13 -0
  274. package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -0
  275. package/package.json +9 -6
  276. package/lib/module/games/balloon-blaster/components/GameControls.js +0 -229
  277. package/lib/module/games/balloon-blaster/components/GameControls.js.map +0 -1
  278. package/lib/module/games/balloon-blaster/components/GameOverModal.js.map +0 -1
  279. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +0 -52
  280. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +0 -1
  281. package/lib/module/games/balloon-blaster/components/SliceTrail.js +0 -58
  282. package/lib/module/games/balloon-blaster/components/SliceTrail.js.map +0 -1
  283. package/lib/module/games/cat-popper/CatPopper.js +0 -230
  284. package/lib/module/games/cat-popper/CatPopper.js.map +0 -1
  285. package/lib/module/games/cat-popper/CatPopperService.js +0 -100
  286. package/lib/module/games/cat-popper/CatPopperService.js.map +0 -1
  287. package/lib/module/games/cat-popper/CatPopperStore.js +0 -113
  288. package/lib/module/games/cat-popper/CatPopperStore.js.map +0 -1
  289. package/lib/module/games/cat-popper/components/CatCharacter.js.map +0 -1
  290. package/lib/module/games/cat-popper/components/GameBackground.js.map +0 -1
  291. package/lib/module/games/cat-popper/components/GameControls.js +0 -230
  292. package/lib/module/games/cat-popper/components/GameControls.js.map +0 -1
  293. package/lib/module/games/cat-popper/components/GameGrid.js +0 -66
  294. package/lib/module/games/cat-popper/components/GameGrid.js.map +0 -1
  295. package/lib/module/games/cat-popper/components/GameHole.js.map +0 -1
  296. package/lib/module/games/cat-popper/components/GameOverModal.js +0 -131
  297. package/lib/module/games/cat-popper/components/GameOverModal.js.map +0 -1
  298. package/lib/module/games/cat-popper/components/ScoreBoard.js.map +0 -1
  299. package/lib/module/games/cat-popper/components/index.js.map +0 -1
  300. package/lib/module/games/fruit-slicer/FruitSlicer.js +0 -411
  301. package/lib/module/games/fruit-slicer/FruitSlicer.js.map +0 -1
  302. package/lib/module/games/fruit-slicer/FruitSlicerService.js.map +0 -1
  303. package/lib/module/games/fruit-slicer/FruitSlicerStore.js +0 -156
  304. package/lib/module/games/fruit-slicer/FruitSlicerStore.js.map +0 -1
  305. package/lib/module/games/fruit-slicer/components/FruitComponent.js.map +0 -1
  306. package/lib/module/games/fruit-slicer/components/GameArea.js +0 -50
  307. package/lib/module/games/fruit-slicer/components/GameArea.js.map +0 -1
  308. package/lib/module/games/fruit-slicer/components/GameBackground.js.map +0 -1
  309. package/lib/module/games/fruit-slicer/components/GameControls.js +0 -230
  310. package/lib/module/games/fruit-slicer/components/GameControls.js.map +0 -1
  311. package/lib/module/games/fruit-slicer/components/GameOverModal.js +0 -189
  312. package/lib/module/games/fruit-slicer/components/GameOverModal.js.map +0 -1
  313. package/lib/module/games/fruit-slicer/components/ParticleSystem.js +0 -52
  314. package/lib/module/games/fruit-slicer/components/ParticleSystem.js.map +0 -1
  315. package/lib/module/games/fruit-slicer/components/ScoreBoard.js.map +0 -1
  316. package/lib/module/games/fruit-slicer/components/SliceTrail.js +0 -58
  317. package/lib/module/games/fruit-slicer/components/SliceTrail.js.map +0 -1
  318. package/lib/module/games/fruit-slicer/components/index.js +0 -11
  319. package/lib/module/games/fruit-slicer/components/index.js.map +0 -1
  320. package/lib/module/games/maze-runner/components/GameControls.js +0 -129
  321. package/lib/module/games/maze-runner/components/GameControls.js.map +0 -1
  322. package/lib/module/games/maze-runner/components/GameOverModal.js +0 -134
  323. package/lib/module/games/maze-runner/components/GameOverModal.js.map +0 -1
  324. package/lib/module/games/space-traveller/SpaceTraveller.js +0 -393
  325. package/lib/module/games/space-traveller/SpaceTraveller.js.map +0 -1
  326. package/lib/module/games/space-traveller/SpaceTravellerService.js.map +0 -1
  327. package/lib/module/games/space-traveller/SpaceTravellerStore.js +0 -139
  328. package/lib/module/games/space-traveller/SpaceTravellerStore.js.map +0 -1
  329. package/lib/module/games/space-traveller/components/AsteroidComponent.js.map +0 -1
  330. package/lib/module/games/space-traveller/components/GameArea.js +0 -75
  331. package/lib/module/games/space-traveller/components/GameArea.js.map +0 -1
  332. package/lib/module/games/space-traveller/components/GameBackground.js.map +0 -1
  333. package/lib/module/games/space-traveller/components/GameControls.js +0 -177
  334. package/lib/module/games/space-traveller/components/GameControls.js.map +0 -1
  335. package/lib/module/games/space-traveller/components/GameOverModal.js +0 -182
  336. package/lib/module/games/space-traveller/components/GameOverModal.js.map +0 -1
  337. package/lib/module/games/space-traveller/components/ParticleComponent.js +0 -34
  338. package/lib/module/games/space-traveller/components/ParticleComponent.js.map +0 -1
  339. package/lib/module/games/space-traveller/components/ScoreBoard.js.map +0 -1
  340. package/lib/module/games/space-traveller/components/SettingsModal.js +0 -222
  341. package/lib/module/games/space-traveller/components/SettingsModal.js.map +0 -1
  342. package/lib/module/games/space-traveller/components/Spacecraft3D.js.map +0 -1
  343. package/lib/module/games/space-traveller/components/SpacecraftPath.js +0 -37
  344. package/lib/module/games/space-traveller/components/SpacecraftPath.js.map +0 -1
  345. package/lib/module/games/space-traveller/components/index.js.map +0 -1
  346. package/lib/module/shared/settings/GameSettings.js +0 -295
  347. package/lib/module/shared/settings/GameSettings.js.map +0 -1
  348. package/lib/module/shared/settings/SettingsService.js +0 -119
  349. package/lib/module/shared/settings/SettingsService.js.map +0 -1
  350. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts +0 -10
  351. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts.map +0 -1
  352. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts +0 -9
  353. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts.map +0 -1
  354. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts +0 -8
  355. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +0 -1
  356. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts +0 -11
  357. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts.map +0 -1
  358. package/lib/typescript/src/games/cat-popper/CatPopper.d.ts +0 -13
  359. package/lib/typescript/src/games/cat-popper/CatPopper.d.ts.map +0 -1
  360. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts +0 -32
  361. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts.map +0 -1
  362. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts +0 -21
  363. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts.map +0 -1
  364. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts +0 -7
  365. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts.map +0 -1
  366. package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts.map +0 -1
  367. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts +0 -10
  368. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts.map +0 -1
  369. package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts.map +0 -1
  370. package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts.map +0 -1
  371. package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts.map +0 -1
  372. package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts.map +0 -1
  373. package/lib/typescript/src/games/cat-popper/components/index.d.ts +0 -8
  374. package/lib/typescript/src/games/cat-popper/components/index.d.ts.map +0 -1
  375. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts +0 -16
  376. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts.map +0 -1
  377. package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts.map +0 -1
  378. package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts.map +0 -1
  379. package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts.map +0 -1
  380. package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts +0 -17
  381. package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts.map +0 -1
  382. package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts.map +0 -1
  383. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts +0 -10
  384. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts.map +0 -1
  385. package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts +0 -9
  386. package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts.map +0 -1
  387. package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts +0 -8
  388. package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts.map +0 -1
  389. package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts +0 -9
  390. package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts.map +0 -1
  391. package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts +0 -11
  392. package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts.map +0 -1
  393. package/lib/typescript/src/games/fruit-slicer/components/index.d.ts +0 -9
  394. package/lib/typescript/src/games/fruit-slicer/components/index.d.ts.map +0 -1
  395. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts +0 -10
  396. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts.map +0 -1
  397. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts +0 -11
  398. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts.map +0 -1
  399. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts +0 -17
  400. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts.map +0 -1
  401. package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts.map +0 -1
  402. package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts.map +0 -1
  403. package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts +0 -9
  404. package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts.map +0 -1
  405. package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts +0 -17
  406. package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts.map +0 -1
  407. package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts.map +0 -1
  408. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts +0 -10
  409. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts.map +0 -1
  410. package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts +0 -9
  411. package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts.map +0 -1
  412. package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts +0 -8
  413. package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts.map +0 -1
  414. package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts +0 -8
  415. package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts.map +0 -1
  416. package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts +0 -9
  417. package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts.map +0 -1
  418. package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts.map +0 -1
  419. package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts.map +0 -1
  420. package/lib/typescript/src/games/space-traveller/components/index.d.ts.map +0 -1
  421. package/lib/typescript/src/shared/settings/GameSettings.d.ts +0 -36
  422. package/lib/typescript/src/shared/settings/GameSettings.d.ts.map +0 -1
  423. package/lib/typescript/src/shared/settings/SettingsService.d.ts +0 -32
  424. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +0 -1
  425. /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameBackground.d.ts +0 -0
  426. /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameBackground.d.ts +0 -0
  427. /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SpacecraftPath.d.ts +0 -0
  428. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/GameBackground.d.ts +0 -0
  429. /package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/ScoreBoard.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Dimensions","Canvas","LinearGradient","Rect","Circle","Path","Skia","vec","Group","Shadow","jsx","_jsx","jsxs","_jsxs","width","height","get","buttonAreaHeight","grassStartY","createStaticGrassPath","path","Make","segmentWidth","moveTo","i","x","y","Math","sin","controlX","controlY","cos","quadTo","lineTo","close","createStaticSunRays","Array","from","length","_","index","angle","radian","PI","isLongRay","rayLength","rayWidth","startDistance","startX","startY","endX","endY","rayPath","createStaticFlowerPositions","staticGrassPath","staticSunRays","flowerPositions","GameBackground","children","style","flex","position","top","left","right","bottom","start","end","colors","cx","cy","r","dx","dy","blur","color","map","ray","strokeWidth","opacity","grassHeight","grassType","bladePath","midHeight","grassClusterHeight","clusterPath","size","pos"],"sourceRoot":"../../../../../src","sources":["games/fruit-ninja/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,13 +2,14 @@
2
2
 
3
3
  import React from 'react';
4
4
  import { View, Text, StyleSheet } from 'react-native';
5
- import { GAME_CONFIG } from "../FruitSlicerService.js";
5
+ import { GAME_CONFIG } from "../FruitNinjaService.js";
6
+ import { useFruitNinjaStore } from "../FruitNinjaStore.js";
7
+ import { RESPONSIVE_SCOREBOARD_CONTAINER, RESPONSIVE_SCOREBOARD_FONTS } from "../../../shared/helpers/index.js";
6
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- export const ScoreBoard = ({
8
- score,
9
- timeLeft,
10
- lives
11
- }) => {
9
+ export const ScoreBoard = /*#__PURE__*/React.memo(() => {
10
+ const score = useFruitNinjaStore(state => state.score);
11
+ const timeLeft = useFruitNinjaStore(state => state.timeLeft);
12
+ const lives = useFruitNinjaStore(state => state.lives);
12
13
  return /*#__PURE__*/_jsxs(View, {
13
14
  style: styles.scoreBoard,
14
15
  children: [/*#__PURE__*/_jsxs(View, {
@@ -39,52 +40,42 @@ export const ScoreBoard = ({
39
40
  children: Array.from({
40
41
  length: GAME_CONFIG.MAX_LIVES
41
42
  }).map((_, index) => /*#__PURE__*/_jsx(Text, {
42
- style: [styles.heartIcon, index < lives ? styles.heartActive : styles.heartInactive],
43
- children: "\u2665"
43
+ style: styles.heartIcon,
44
+ children: index < lives ? '❤️' : '🖤'
44
45
  }, index))
45
46
  })]
46
47
  })]
47
48
  });
48
- };
49
+ });
49
50
  const styles = StyleSheet.create({
50
51
  scoreBoard: {
52
+ ...RESPONSIVE_SCOREBOARD_CONTAINER,
51
53
  flexDirection: 'row',
52
54
  justifyContent: 'space-between',
53
55
  alignItems: 'center',
54
56
  backgroundColor: 'rgba(34, 139, 34, 0.3)',
55
57
  // More opaque forest green to stand out on garden background
56
- borderRadius: 16,
57
- padding: 20,
58
- margin: 20,
58
+ marginBottom: 20,
59
59
  borderWidth: 2,
60
- borderColor: 'rgba(255, 255, 255, 0.4)',
61
- // Slightly more visible white border
62
- shadowColor: '#000',
63
- shadowOffset: {
64
- width: 0,
65
- height: 4
66
- },
67
- shadowOpacity: 0.25,
68
- shadowRadius: 6,
69
- elevation: 8 // Higher elevation for better visibility on garden background
60
+ borderColor: 'rgba(255, 255, 255, 0.4)' // Slightly more visible white border
70
61
  },
71
62
  scoreSection: {
72
63
  alignItems: 'center',
73
64
  flex: 1
74
65
  },
75
66
  scoreLabel: {
76
- fontSize: 18,
67
+ fontSize: RESPONSIVE_SCOREBOARD_FONTS.labelSize,
77
68
  fontWeight: 'bold',
78
69
  color: '#ffffff',
79
70
  marginBottom: 4
80
71
  },
81
72
  scoreValue: {
82
- fontSize: 30,
73
+ fontSize: RESPONSIVE_SCOREBOARD_FONTS.valueSize,
83
74
  fontWeight: 'bold',
84
75
  color: '#92400e' // Brown color (matching WhackIt)
85
76
  },
86
77
  timeValue: {
87
- fontSize: 30,
78
+ fontSize: RESPONSIVE_SCOREBOARD_FONTS.timeSize,
88
79
  fontWeight: 'bold',
89
80
  color: '#92400e' // Brown color (matching WhackIt)
90
81
  },
@@ -94,28 +85,7 @@ const styles = StyleSheet.create({
94
85
  },
95
86
  heartIcon: {
96
87
  fontSize: 24,
97
- marginHorizontal: 3,
98
- fontWeight: 'bold'
99
- },
100
- heartActive: {
101
- color: '#ef4444',
102
- // Bright red hearts for available lives
103
- textShadowColor: 'rgba(0, 0, 0, 0.5)',
104
- textShadowOffset: {
105
- width: 1,
106
- height: 1
107
- },
108
- textShadowRadius: 2
109
- },
110
- heartInactive: {
111
- color: '#1f2937',
112
- // Dark black hearts for lost lives
113
- textShadowColor: 'rgba(255, 255, 255, 0.3)',
114
- textShadowOffset: {
115
- width: 1,
116
- height: 1
117
- },
118
- textShadowRadius: 1
88
+ marginHorizontal: 3
119
89
  }
120
90
  });
121
91
  //# sourceMappingURL=ScoreBoard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","GAME_CONFIG","useFruitNinjaStore","RESPONSIVE_SCOREBOARD_CONTAINER","RESPONSIVE_SCOREBOARD_FONTS","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","score","state","timeLeft","lives","style","styles","scoreBoard","children","scoreSection","scoreLabel","scoreValue","timeValue","livesRow","Array","from","length","MAX_LIVES","map","_","index","heartIcon","create","flexDirection","justifyContent","alignItems","backgroundColor","marginBottom","borderWidth","borderColor","flex","fontSize","labelSize","fontWeight","color","valueSize","timeSize","marginHorizontal"],"sourceRoot":"../../../../../src","sources":["games/fruit-ninja/components/ScoreBoard.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ export { ScoreBoard } from "./ScoreBoard.js";
4
+ export { FruitComponent } from "./FruitComponent.js";
5
+ export { GameArea } from "./GameArea.js";
6
+ export { GameBackground } from "./GameBackground.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScoreBoard","FruitComponent","GameArea","GameBackground"],"sourceRoot":"../../../../../src","sources":["games/fruit-ninja/components/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,cAAc,QAAQ,qBAAkB","ignoreList":[]}
@@ -1,87 +1,97 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState, useEffect, useCallback, useRef, useMemo } from 'react';
4
- import { View, StyleSheet, Modal } from 'react-native';
4
+ import { View, StyleSheet, Dimensions } from 'react-native';
5
5
  import { GestureHandlerRootView } from 'react-native-gesture-handler';
6
- import * as Speech from 'expo-speech';
7
- import * as Haptics from 'expo-haptics';
6
+ import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
7
+ import { playHaptic, HapticType } from "../../services/HapticsService.js";
8
8
  import { MazeRunnerService } from "./MazeRunnerService.js";
9
- // Define game-specific types and constants locally
10
-
11
- const DEFAULT_MAZE_RUNNER_SETTINGS = {
12
- difficulty: 'medium',
13
- gameDuration: 120,
14
- soundEnabled: true,
15
- hapticEnabled: true,
16
- gridSize: 10,
17
- showHints: false
18
- };
19
- const DIFFICULTY_CONFIG = {
20
- easy: {
21
- gridSize: 8,
22
- timeBonus: 1.5,
23
- scoreMultiplier: 1.0,
24
- hintAvailable: true,
25
- gameDuration: 60
26
- },
27
- medium: {
28
- gridSize: 10,
29
- timeBonus: 1.2,
30
- scoreMultiplier: 1.2,
31
- hintAvailable: false,
32
- gameDuration: 120
33
- },
34
- hard: {
35
- gridSize: 12,
36
- timeBonus: 1.0,
37
- scoreMultiplier: 1.5,
38
- hintAvailable: false,
39
- gameDuration: 180
40
- }
41
- };
42
- import { GameBackground, ScoreBoard, GameControls, EnhancedGameArea, GameOverModal } from "./components/index.js";
43
- import { GameSettings } from "../../shared/settings/GameSettings.js";
44
- import { createGameSettingsStore } from "../../shared/settings/SettingsService.js";
9
+ import { DEFAULT_MAZE_RUNNER_SETTINGS, MAZE_RUNNER_DIFFICULTY_CONFIG } from "./MazeRunnerConstants.js";
10
+ import { GameBackground, ScoreBoard, EnhancedGameArea } from "./components/index.js";
11
+ import { GameControlButton, GameOverModal } from "../../shared/helpers/index.js";
12
+ import { GameSettingsModal } from "../../shared/helpers/index.js";
13
+ import { GAME_IDS } from "../../services/GamesService.js";
14
+
15
+ // Optimized hook to handle responsive dimensions with memoization
45
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ const useResponsiveDimensions = () => {
18
+ const [dimensions, setDimensions] = useState(() => {
19
+ const {
20
+ width,
21
+ height
22
+ } = Dimensions.get('window');
23
+ return {
24
+ width,
25
+ height
26
+ };
27
+ });
28
+ useEffect(() => {
29
+ const handleDimensionChange = ({
30
+ window
31
+ }) => {
32
+ setDimensions(prev => {
33
+ // Only update if dimensions actually changed to prevent unnecessary re-renders
34
+ if (prev.width !== window.width || prev.height !== window.height) {
35
+ return {
36
+ width: window.width,
37
+ height: window.height
38
+ };
39
+ }
40
+ return prev;
41
+ });
42
+ };
43
+ const subscription = Dimensions.addEventListener('change', handleDimensionChange);
44
+ return () => subscription?.remove();
45
+ }, []);
46
+ return dimensions;
47
+ };
46
48
  export const MazeRunner = ({
47
- settings: externalSettings,
48
- onSettingsChange,
49
- showSettingsModal = false,
50
- onToggleSettingsModal
49
+ settings,
50
+ onSettingsChange
51
51
  }) => {
52
- // Create unified game settings store
53
- const settingsStore = useMemo(() => {
54
- const defaultSettings = {
55
- ...DEFAULT_MAZE_RUNNER_SETTINGS,
56
- ...externalSettings
52
+ // Use responsive dimensions hook inside the component
53
+ const {
54
+ width: screenWidth,
55
+ height: screenHeight
56
+ } = useResponsiveDimensions();
57
+
58
+ // Memoize responsive game area dimensions calculation
59
+ const responsiveDimensions = useMemo(() => {
60
+ // Reserve space for scoreboard (~80px), control button (~100px), and padding (~40px)
61
+ const reservedHeight = 220;
62
+ const availableHeight = screenHeight - reservedHeight;
63
+ const availableWidth = screenWidth - 40; // 20px padding on each side
64
+
65
+ // Use the smaller dimension to ensure the maze fits on screen
66
+ const maxDimension = Math.min(availableWidth, availableHeight);
67
+
68
+ // Ensure minimum size for playability and maximum size for tablets
69
+ const gameAreaSize = Math.max(300, Math.min(maxDimension, 600));
70
+ return {
71
+ width: gameAreaSize,
72
+ height: gameAreaSize
57
73
  };
74
+ }, [screenWidth, screenHeight]);
58
75
 
59
- // Wrapper function to handle the callback type mismatch
60
- const handleSettingsChange = onSettingsChange ? newSettings => {
61
- const mazeRunnerSettings = {
62
- ...DEFAULT_MAZE_RUNNER_SETTINGS,
63
- ...externalSettings,
64
- difficulty: newSettings.difficulty,
65
- soundEnabled: newSettings.soundEnabled,
66
- hapticEnabled: newSettings.hapticEnabled,
67
- gameDuration: newSettings.gameDuration
68
- };
69
- onSettingsChange(mazeRunnerSettings);
70
- } : undefined;
71
- return createGameSettingsStore(defaultSettings, handleSettingsChange);
72
- }, [externalSettings, onSettingsChange]);
73
-
74
- // Game service
75
- const [gameService] = useState(() => {
76
+ // Memoized game service initialization to prevent recreation
77
+ const gameService = useMemo(() => {
76
78
  const currentSettings = {
77
79
  ...DEFAULT_MAZE_RUNNER_SETTINGS,
78
- ...externalSettings
80
+ ...settings
79
81
  };
80
- return new MazeRunnerService(currentSettings.gridSize, 350,
81
- // gameAreaWidth
82
- 500 // gameAreaHeight
82
+ // Calculate initial dimensions for service creation
83
+ const {
84
+ width: initialWidth,
85
+ height: initialHeight
86
+ } = Dimensions.get('window');
87
+ const reservedHeight = 220;
88
+ const availableHeight = initialHeight - reservedHeight;
89
+ const availableWidth = initialWidth - 40;
90
+ const maxDimension = Math.min(availableWidth, availableHeight);
91
+ const gameAreaSize = Math.max(300, Math.min(maxDimension, 600));
92
+ return new MazeRunnerService(currentSettings.gridSize, gameAreaSize, gameAreaSize, currentSettings.gameDuration // Pass game duration for countdown timer
83
93
  );
84
- });
94
+ }, []); // Empty dependency array to create only once
85
95
 
86
96
  // Game state
87
97
  const [gameState, setGameState] = useState(gameService.getGameState());
@@ -89,93 +99,105 @@ export const MazeRunner = ({
89
99
  const [walls, setWalls] = useState(() => gameService.getWalls());
90
100
  const completionHandledRef = useRef(false);
91
101
 
92
- // Settings
93
- const settings = settingsStore();
102
+ // Settings are already available from the global store hook above
103
+
104
+ // Memoize game config (updates when dimensions change)
105
+ const gameConfig = useMemo(() => gameService.getGameConfig(), [gameService, responsiveDimensions]);
106
+
107
+ // Memoize game control button props to prevent unnecessary re-renders
108
+ const gameControlButtonProps = useMemo(() => ({
109
+ isPlaying: gameState.isPlaying,
110
+ gameOver: gameState.isCompleted || gameState.gameOver,
111
+ startButtonText: "START MAZE",
112
+ stopButtonText: "STOP GAME",
113
+ startButtonSubtext: "Navigate the maze!",
114
+ stopButtonSubtext: "End current game",
115
+ startButtonColor: "#8b4513",
116
+ stopButtonColor: "#dc2626",
117
+ startButtonBorderColor: "#cd853f",
118
+ stopButtonBorderColor: "#f87171"
119
+ }), [gameState.isPlaying, gameState.isCompleted, gameState.gameOver]);
94
120
 
95
- // Memoize game config (this doesn't change)
96
- const gameConfig = useMemo(() => gameService.getGameConfig(), [gameService]);
121
+ // Memoize game over modal props to prevent unnecessary re-renders
122
+ const gameOverModalProps = useMemo(() => ({
123
+ isVisible: showGameOverModal,
124
+ score: gameState.score,
125
+ buttonText: gameState.isCompleted ? "Navigate Again!" : "Try Again!",
126
+ primaryColor: "rgba(139, 69, 19, 0.8)",
127
+ borderColor: "rgba(139, 69, 19, 0.9)",
128
+ buttonColor: "#8b4513",
129
+ buttonBorderColor: "#cd853f"
130
+ }), [showGameOverModal, gameState.score, gameState.isCompleted]);
97
131
 
98
132
  // Generate new maze on component mount
99
133
  useEffect(() => {
100
134
  gameService.resetGame(); // Generate fresh maze on launch
101
135
  }, [gameService]);
102
136
 
103
- // Update game service when settings change
137
+ // Update game service when settings change or screen dimensions change
104
138
  useEffect(() => {
105
- const gridSize = DIFFICULTY_CONFIG[settings.difficulty].gridSize;
106
- const gameDuration = settings.gameDuration;
107
- gameService.updateSettings(gridSize, gameDuration);
108
- }, [settings.difficulty, settings.gameDuration, gameService]);
139
+ const difficultyConfig = MAZE_RUNNER_DIFFICULTY_CONFIG[settings.difficulty];
140
+ const gridSize = difficultyConfig.gridSize;
141
+ const gameDuration = difficultyConfig.gameDuration; // Get from difficulty config
109
142
 
110
- // Set up game state change callback
111
- useEffect(() => {
112
- const handleStateChange = newState => {
113
- setGameState(prevState => {
114
- // Handle game completion (only once per level)
115
- if (newState.isCompleted && !completionHandledRef.current) {
116
- completionHandledRef.current = true;
117
- handleGameCompleted();
118
- // Show game over modal immediately when maze is completed
119
- setTimeout(() => {
120
- setShowGameOverModal(true);
121
- }, 500); // Short delay to let completion animation/feedback finish
122
- }
143
+ gameService.updateSettings(gridSize, gameDuration, responsiveDimensions.width, responsiveDimensions.height);
144
+ }, [settings.difficulty, gameService, responsiveDimensions]);
123
145
 
124
- // Handle game over (if you want to show modal after certain time)
125
- if (!newState.isPlaying && prevState.isPlaying && !newState.isCompleted) {
126
- setTimeout(() => {
127
- setShowGameOverModal(true);
128
- }, 1000);
129
- }
130
- return newState;
131
- });
146
+ // Memoized state change callback to prevent recreation
147
+ const handleStateChange = useCallback(newState => {
148
+ setGameState(prevState => {
149
+ // Handle game completion (only once per level)
150
+ if (newState.isCompleted && !completionHandledRef.current) {
151
+ completionHandledRef.current = true;
152
+ handleGameCompleted();
153
+ // Show game over modal immediately when maze is completed
154
+ setTimeout(() => {
155
+ setShowGameOverModal(true);
156
+ }, 500); // Short delay to let completion animation/feedback finish
157
+ }
132
158
 
133
- // Update walls whenever game state changes (maze might have been regenerated)
134
- setWalls(gameService.getWalls());
135
- };
159
+ // Handle game over (if you want to show modal after certain time)
160
+ if (!newState.isPlaying && prevState.isPlaying && !newState.isCompleted) {
161
+ setTimeout(() => {
162
+ setShowGameOverModal(true);
163
+ }, 1000);
164
+ }
165
+ return newState;
166
+ });
167
+
168
+ // Update walls whenever game state changes (maze might have been regenerated)
169
+ setWalls(gameService.getWalls());
170
+ }, [gameService]);
171
+
172
+ // Set up game state change callback
173
+ useEffect(() => {
136
174
  gameService.setGameStateChangeCallback(handleStateChange);
137
175
  return () => {
176
+ // Fully reset game when unmounting (navigate back)
177
+ try {
178
+ gameService.stopGame();
179
+ } catch {}
180
+ try {
181
+ gameService.resetGame();
182
+ } catch {}
138
183
  gameService.cleanup();
139
184
  };
140
- }, []); // Empty dependency array to prevent re-runs
141
-
185
+ }, [gameService, handleStateChange]);
142
186
  const handleGameCompleted = useCallback(() => {
143
- if (settings.soundEnabled) {
144
- Speech.speak('Congratulations! Maze completed!', {
145
- language: 'en',
146
- pitch: 1.2,
147
- rate: 0.8
148
- });
149
- }
150
- if (settings.hapticEnabled) {
151
- Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success);
152
- }
153
- }, [settings.soundEnabled, settings.hapticEnabled]);
187
+ playSound(GAME_SOUNDS.MAZE_RUNNER.COMPLETE, settings.enableSounds);
188
+ playHaptic(HapticType.SUCCESS, settings.enableHaptics);
189
+ }, [settings.enableSounds, settings.enableHaptics]);
154
190
  const handleStartGame = useCallback(() => {
155
191
  completionHandledRef.current = false; // Reset completion flag
156
192
  gameService.startGame();
157
193
  setShowGameOverModal(false);
158
- if (settings.soundEnabled) {
159
- Speech.speak('Maze started! Navigate to the exit!', {
160
- language: 'en',
161
- pitch: 1.0,
162
- rate: 0.9
163
- });
164
- }
165
- if (settings.hapticEnabled) {
166
- Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Medium);
167
- }
168
- }, [gameService, settings.soundEnabled, settings.hapticEnabled]);
194
+ playSound(GAME_SOUNDS.MAZE_RUNNER.START, settings.enableSounds);
195
+ playHaptic(HapticType.MEDIUM, settings.enableHaptics);
196
+ }, [gameService, settings.enableSounds, settings.enableHaptics]);
169
197
  const handleStopGame = useCallback(() => {
170
198
  gameService.stopGame();
171
- if (settings.soundEnabled) {
172
- Speech.speak('Game stopped', {
173
- language: 'en',
174
- pitch: 1.0,
175
- rate: 1.0
176
- });
177
- }
178
- }, [gameService, settings.soundEnabled]);
199
+ playSound(GAME_SOUNDS.MAZE_RUNNER.STOP, settings.enableSounds);
200
+ }, [gameService, settings.enableSounds]);
179
201
  const handleBallPositionChange = useCallback(position => {
180
202
  return gameService.updateBallPosition(position);
181
203
  }, [gameService]);
@@ -184,45 +206,35 @@ export const MazeRunner = ({
184
206
  setShowGameOverModal(false);
185
207
  gameService.resetGame(); // Reset without auto-starting
186
208
  }, [gameService]);
187
- const handleCloseGameOverModal = useCallback(() => {
188
- setShowGameOverModal(false);
189
- }, []);
190
209
  return /*#__PURE__*/_jsx(GestureHandlerRootView, {
191
210
  style: styles.container,
192
211
  children: /*#__PURE__*/_jsxs(View, {
193
- style: styles.container,
194
- children: [/*#__PURE__*/_jsxs(GameBackground, {
195
- children: [/*#__PURE__*/_jsx(ScoreBoard, {
196
- gameState: gameState
197
- }), /*#__PURE__*/_jsx(View, {
198
- style: styles.gameAreaContainer,
199
- children: /*#__PURE__*/_jsx(EnhancedGameArea, {
200
- gameState: gameState,
201
- gameConfig: gameConfig,
202
- walls: walls,
203
- onBallPositionChange: handleBallPositionChange,
204
- hapticEnabled: settings.hapticEnabled
205
- })
206
- }), /*#__PURE__*/_jsx(GameControls, {
212
+ style: styles.gameContainer,
213
+ children: [/*#__PURE__*/_jsx(GameBackground, {
214
+ width: screenWidth,
215
+ height: screenHeight
216
+ }), /*#__PURE__*/_jsx(ScoreBoard, {
217
+ gameState: gameState
218
+ }), /*#__PURE__*/_jsx(View, {
219
+ style: styles.gameAreaContainer,
220
+ children: /*#__PURE__*/_jsx(EnhancedGameArea, {
207
221
  gameState: gameState,
208
- onStartGame: handleStartGame,
209
- onStopGame: handleStopGame
210
- })]
211
- }), /*#__PURE__*/_jsx(GameOverModal, {
212
- visible: showGameOverModal,
213
- gameState: gameState,
214
- onPlayAgain: handlePlayAgain,
215
- onClose: handleCloseGameOverModal
216
- }), /*#__PURE__*/_jsx(Modal, {
217
- visible: showSettingsModal,
218
- animationType: "slide",
219
- presentationStyle: "pageSheet",
220
- onRequestClose: onToggleSettingsModal,
221
- children: /*#__PURE__*/_jsx(GameSettings, {
222
- gameId: "maze-runner",
223
- onClose: onToggleSettingsModal || (() => {}),
224
- settingsStore: settingsStore()
222
+ gameConfig: gameConfig,
223
+ walls: walls,
224
+ onBallPositionChange: handleBallPositionChange,
225
+ hapticEnabled: settings.enableHaptics
225
226
  })
227
+ }), /*#__PURE__*/_jsx(GameControlButton, {
228
+ ...gameControlButtonProps,
229
+ onStartGame: handleStartGame,
230
+ onStopGame: handleStopGame
231
+ }), /*#__PURE__*/_jsx(GameOverModal, {
232
+ ...gameOverModalProps,
233
+ onPlayAgain: handlePlayAgain
234
+ }), /*#__PURE__*/_jsx(GameSettingsModal, {
235
+ gameId: GAME_IDS.MAZE_RUNNER,
236
+ settings: settings,
237
+ onSettingsChange: onSettingsChange
226
238
  })]
227
239
  })
228
240
  });
@@ -231,6 +243,9 @@ const styles = StyleSheet.create({
231
243
  container: {
232
244
  flex: 1
233
245
  },
246
+ gameContainer: {
247
+ flex: 1
248
+ },
234
249
  gameAreaContainer: {
235
250
  flex: 1,
236
251
  justifyContent: 'center',