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,172 @@
1
+ "use strict";
2
+
3
+ import { create } from 'zustand';
4
+ import { subscribeWithSelector } from 'zustand/middleware';
5
+ import { GAME_CONFIG } from "./WhackAMoleService.js";
6
+ import { immerMiddleware } from "../../services/GamesService.js";
7
+ const createInitialHoles = (gridSize = GAME_CONFIG.GRID_SIZE) => {
8
+ const totalHoles = gridSize * gridSize;
9
+ return Array.from({
10
+ length: totalHoles
11
+ }, (_, i) => ({
12
+ id: i,
13
+ isActive: false,
14
+ position: {
15
+ x: (i % gridSize - 1) * (GAME_CONFIG.HOLE_SIZE + 20),
16
+ y: Math.floor(i / gridSize - 1) * (GAME_CONFIG.HOLE_SIZE + 20),
17
+ z: 0
18
+ }
19
+ }));
20
+ };
21
+
22
+ // Optimized store with selective subscriptions for low-end devices
23
+ export const useWhackAMoleStore = create()(subscribeWithSelector(immerMiddleware((set, get) => ({
24
+ // Initial state
25
+ score: 0,
26
+ timeLeft: GAME_CONFIG.GAME_DURATION,
27
+ // Fixed duration regardless of difficulty
28
+ isPlaying: false,
29
+ gameOver: false,
30
+ holes: createInitialHoles(),
31
+ // Actions
32
+ startGame: (_gameDuration, gridSize) => {
33
+ // Always use fixed duration regardless of difficulty or passed duration
34
+ const duration = GAME_CONFIG.GAME_DURATION;
35
+ const grid = gridSize || GAME_CONFIG.GRID_SIZE;
36
+ set(draft => {
37
+ draft.score = 0;
38
+ draft.timeLeft = duration;
39
+ draft.isPlaying = true;
40
+ draft.gameOver = false;
41
+ draft.holes = createInitialHoles(grid);
42
+ });
43
+ },
44
+ stopGame: () => {
45
+ set(draft => {
46
+ draft.score = 0;
47
+ draft.timeLeft = GAME_CONFIG.GAME_DURATION; // Use constant for consistency
48
+ draft.isPlaying = false;
49
+ draft.gameOver = false;
50
+ });
51
+ },
52
+ resetGame: () => {
53
+ set(draft => {
54
+ draft.score = 0;
55
+ draft.timeLeft = GAME_CONFIG.GAME_DURATION; // Use constant for consistency
56
+ draft.isPlaying = false;
57
+ draft.gameOver = false;
58
+ draft.holes = createInitialHoles();
59
+ });
60
+ },
61
+ whackMole: (holeId, points = 1) => {
62
+ const {
63
+ holes,
64
+ isPlaying
65
+ } = get();
66
+ if (!isPlaying) return;
67
+
68
+ // Optimized: Use direct array access instead of find for better performance
69
+ if (holeId < 0 || holeId >= holes.length || !holes[holeId] || !holes[holeId].isActive) return;
70
+ set(draft => {
71
+ draft.score = draft.score + points;
72
+ // Optimized: Direct array access instead of find
73
+ if (draft.holes[holeId]) {
74
+ draft.holes[holeId].isActive = false;
75
+ }
76
+ });
77
+ },
78
+ updateScore: points => {
79
+ set(draft => {
80
+ draft.score = draft.score + points;
81
+ });
82
+ },
83
+ decrementTime: () => {
84
+ const currentState = get();
85
+ if (currentState.timeLeft <= 1) {
86
+ // Batch final state update to prevent multiple re-renders
87
+ set(draft => {
88
+ draft.timeLeft = 0;
89
+ draft.isPlaying = false;
90
+ draft.gameOver = true;
91
+ // Deactivate all holes when game ends
92
+ draft.holes.forEach(hole => {
93
+ hole.isActive = false;
94
+ });
95
+ });
96
+ } else {
97
+ // Only update time to minimize re-renders
98
+ set(draft => {
99
+ draft.timeLeft = currentState.timeLeft - 1;
100
+ });
101
+ }
102
+ },
103
+ setHoles: holes => {
104
+ set(draft => {
105
+ draft.holes = holes;
106
+ });
107
+ },
108
+ activateHole: holeId => {
109
+ // Optimized hole activation with direct array access
110
+ const state = get();
111
+ if (holeId >= 0 && holeId < state.holes.length && !state.holes[holeId].isActive) {
112
+ set(draft => {
113
+ if (draft.holes[holeId]) {
114
+ draft.holes[holeId].isActive = true;
115
+ }
116
+ });
117
+ }
118
+ },
119
+ deactivateHole: holeId => {
120
+ // Optimized hole deactivation with direct array access
121
+ const state = get();
122
+ if (holeId >= 0 && holeId < state.holes.length && state.holes[holeId].isActive) {
123
+ set(draft => {
124
+ if (draft.holes[holeId]) {
125
+ draft.holes[holeId].isActive = false;
126
+ }
127
+ });
128
+ }
129
+ },
130
+ // Batch operations for better performance
131
+ batchUpdateHoles: updates => {
132
+ const state = get();
133
+ const hasChanges = updates.some(update => update.holeId >= 0 && update.holeId < state.holes.length && state.holes[update.holeId].isActive !== update.isActive);
134
+ if (hasChanges) {
135
+ set(draft => {
136
+ updates.forEach(({
137
+ holeId,
138
+ isActive
139
+ }) => {
140
+ if (holeId >= 0 && holeId < draft.holes.length) {
141
+ if (draft.holes[holeId]) {
142
+ draft.holes[holeId].isActive = isActive;
143
+ }
144
+ }
145
+ });
146
+ });
147
+ }
148
+ }
149
+ }))));
150
+
151
+ // Optimized selectors for low-end devices - prevent unnecessary re-renders
152
+ export const useGameState = () => useWhackAMoleStore(state => ({
153
+ isPlaying: state.isPlaying,
154
+ gameOver: state.gameOver
155
+ }));
156
+ export const useScore = () => useWhackAMoleStore(state => state.score);
157
+ export const useTimeLeft = () => useWhackAMoleStore(state => state.timeLeft);
158
+
159
+ // Memoized active holes selector for better performance
160
+ export const useActiveHoles = () => useWhackAMoleStore(state => {
161
+ const activeHoles = [];
162
+ for (let i = 0; i < state.holes.length; i++) {
163
+ if (state.holes[i] && state.holes[i].isActive) {
164
+ activeHoles.push(state.holes[i]);
165
+ }
166
+ }
167
+ return activeHoles;
168
+ });
169
+
170
+ // Optimized hole selector with direct array access
171
+ export const useHoleById = holeId => useWhackAMoleStore(state => holeId >= 0 && holeId < state.holes.length ? state.holes[holeId] : undefined);
172
+ //# sourceMappingURL=WhackAMoleStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["create","subscribeWithSelector","GAME_CONFIG","immerMiddleware","createInitialHoles","gridSize","GRID_SIZE","totalHoles","Array","from","length","_","i","id","isActive","position","x","HOLE_SIZE","y","Math","floor","z","useWhackAMoleStore","set","get","score","timeLeft","GAME_DURATION","isPlaying","gameOver","holes","startGame","_gameDuration","duration","grid","draft","stopGame","resetGame","whackMole","holeId","points","updateScore","decrementTime","currentState","forEach","hole","setHoles","activateHole","state","deactivateHole","batchUpdateHoles","updates","hasChanges","some","update","useGameState","useScore","useTimeLeft","useActiveHoles","activeHoles","push","useHoleById","undefined"],"sourceRoot":"../../../../src","sources":["games/whack-a-mole/WhackAMoleStore.ts"],"mappings":"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","ignoreList":[]}
@@ -1,66 +1,29 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect } from 'react';
4
- import { Dimensions } from 'react-native';
3
+ import React from 'react';
4
+ import { View, Dimensions } from 'react-native';
5
5
  import { Canvas, LinearGradient, Rect, Circle, Path, Skia, vec, Group, Shadow } from '@shopify/react-native-skia';
6
- import { useSharedValue, useAnimatedStyle, withRepeat, withTiming, withSequence, interpolate, Extrapolation } from 'react-native-reanimated';
7
- import Animated from 'react-native-reanimated';
8
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
7
  const {
10
8
  width,
11
9
  height
12
10
  } = Dimensions.get('window');
13
- export const GameBackground = ({
11
+ export const GameBackground = /*#__PURE__*/React.memo(({
14
12
  children
15
13
  }) => {
16
- // Animated values for dynamic background effects
17
- const grassWave = useSharedValue(0);
18
- const cloudFloat = useSharedValue(0);
19
- const sunGlow = useSharedValue(0);
20
- const sunRotation = useSharedValue(0);
21
- useEffect(() => {
22
- // Grass swaying animation
23
- grassWave.value = withRepeat(withSequence(withTiming(1, {
24
- duration: 3000
25
- }), withTiming(-1, {
26
- duration: 3000
27
- })), -1, false);
28
-
29
- // Cloud floating animation
30
- cloudFloat.value = withRepeat(withTiming(1, {
31
- duration: 8000
32
- }), -1, false);
33
-
34
- // Sun glow pulsing
35
- sunGlow.value = withRepeat(withSequence(withTiming(1, {
36
- duration: 2000
37
- }), withTiming(0.7, {
38
- duration: 2000
39
- })), -1, false);
40
-
41
- // Sun rotation animation (slow continuous rotation)
42
- sunRotation.value = withRepeat(withTiming(360, {
43
- duration: 30000
44
- }), -1, false);
45
- }, []);
46
- const animatedBackgroundStyle = useAnimatedStyle(() => {
47
- return {
48
- transform: [{
49
- translateY: interpolate(grassWave.value, [-1, 1], [-2, 2], Extrapolation.CLAMP)
50
- }]
51
- };
52
- });
53
-
54
- // Create grass path
14
+ // Create grass path - reduced to just button height area (120px from bottom)
15
+ const buttonAreaHeight = 250; // Height for button area
16
+ const grassStartY = height - buttonAreaHeight;
55
17
  const createGrassPath = (startX, segments = 8) => {
56
18
  const path = Skia.Path.Make();
57
19
  const segmentWidth = width / segments;
58
- path.moveTo(startX, height * 0.7);
20
+ path.moveTo(startX, grassStartY);
59
21
  for (let i = 0; i < segments; i++) {
60
22
  const x = startX + i * segmentWidth;
61
- const y = height * 0.7 + Math.sin(i * 0.5) * 10;
23
+ const y = grassStartY + Math.sin(i * 0.5) * 8; // Reduced wave amplitude
62
24
  const controlX = x + segmentWidth / 2;
63
- const controlY = y + Math.cos(i * 0.3) * 8;
25
+ const controlY = y + Math.cos(i * 0.3) * 6; // Reduced wave amplitude
26
+
64
27
  path.quadTo(controlX, controlY, x + segmentWidth, y);
65
28
  }
66
29
  path.lineTo(width, height);
@@ -69,10 +32,10 @@ export const GameBackground = ({
69
32
  return path;
70
33
  };
71
34
  const grassPath = createGrassPath(0);
72
- return /*#__PURE__*/_jsxs(Animated.View, {
73
- style: [{
35
+ return /*#__PURE__*/_jsxs(View, {
36
+ style: {
74
37
  flex: 1
75
- }, animatedBackgroundStyle],
38
+ },
76
39
  children: [/*#__PURE__*/_jsxs(Canvas, {
77
40
  style: {
78
41
  position: 'absolute',
@@ -83,24 +46,13 @@ export const GameBackground = ({
83
46
  x: 0,
84
47
  y: 0,
85
48
  width: width,
86
- height: height * 0.7,
49
+ height: grassStartY,
87
50
  children: /*#__PURE__*/_jsx(LinearGradient, {
88
51
  start: vec(0, 0),
89
- end: vec(0, height * 0.7),
52
+ end: vec(0, grassStartY),
90
53
  colors: ['#87CEEB', '#98D8E8', '#B0E0E6']
91
54
  })
92
55
  }), /*#__PURE__*/_jsxs(Group, {
93
- transform: [{
94
- translateX: width * 0.8
95
- }, {
96
- translateY: height * 0.15
97
- }, {
98
- rotate: sunRotation.value * Math.PI / 180
99
- }, {
100
- translateX: -width * 0.8
101
- }, {
102
- translateY: -height * 0.15
103
- }],
104
56
  children: [/*#__PURE__*/_jsxs(Circle, {
105
57
  cx: width * 0.8,
106
58
  cy: height * 0.15,
@@ -112,7 +64,7 @@ export const GameBackground = ({
112
64
  }), /*#__PURE__*/_jsx(Shadow, {
113
65
  dx: 0,
114
66
  dy: 0,
115
- blur: interpolate(sunGlow.value, [0.7, 1], [25, 40], Extrapolation.CLAMP),
67
+ blur: 30,
116
68
  color: "#FFD700"
117
69
  })]
118
70
  }), /*#__PURE__*/_jsx(Circle, {
@@ -145,7 +97,7 @@ export const GameBackground = ({
145
97
  style: "stroke",
146
98
  strokeWidth: rayWidth,
147
99
  color: "#FFD700",
148
- opacity: interpolate(sunGlow.value, [0.7, 1], [0.6, 0.9], Extrapolation.CLAMP)
100
+ opacity: 0.7
149
101
  }, index);
150
102
  }), /*#__PURE__*/_jsx(Circle, {
151
103
  cx: width * 0.8,
@@ -160,9 +112,6 @@ export const GameBackground = ({
160
112
  })]
161
113
  }), /*#__PURE__*/_jsxs(Group, {
162
114
  children: [/*#__PURE__*/_jsxs(Group, {
163
- transform: [{
164
- translateX: interpolate(cloudFloat.value, [0, 1], [-4, 4], Extrapolation.CLAMP)
165
- }],
166
115
  children: [/*#__PURE__*/_jsx(Circle, {
167
116
  cx: width * 0.12,
168
117
  cy: height * 0.24,
@@ -255,9 +204,6 @@ export const GameBackground = ({
255
204
  opacity: 0.25
256
205
  })]
257
206
  }), /*#__PURE__*/_jsxs(Group, {
258
- transform: [{
259
- translateX: interpolate(cloudFloat.value, [0, 1], [3, -3], Extrapolation.CLAMP)
260
- }],
261
207
  children: [/*#__PURE__*/_jsx(Circle, {
262
208
  cx: width * 0.62,
263
209
  cy: height * 0.27,
@@ -326,9 +272,6 @@ export const GameBackground = ({
326
272
  opacity: 0.30
327
273
  })]
328
274
  }), /*#__PURE__*/_jsxs(Group, {
329
- transform: [{
330
- translateX: interpolate(cloudFloat.value, [0, 1], [1.5, -1.5], Extrapolation.CLAMP)
331
- }],
332
275
  children: [/*#__PURE__*/_jsx(Circle, {
333
276
  cx: width * 0.84,
334
277
  cy: height * 0.19,
@@ -379,9 +322,6 @@ export const GameBackground = ({
379
322
  opacity: 0.20
380
323
  })]
381
324
  }), /*#__PURE__*/_jsxs(Group, {
382
- transform: [{
383
- translateX: interpolate(cloudFloat.value, [0, 1], [-2, 2], Extrapolation.CLAMP)
384
- }],
385
325
  children: [/*#__PURE__*/_jsx(Circle, {
386
326
  cx: width * 0.45,
387
327
  cy: height * 0.15,
@@ -422,19 +362,19 @@ export const GameBackground = ({
422
362
  })]
423
363
  }), /*#__PURE__*/_jsx(Rect, {
424
364
  x: 0,
425
- y: height * 0.7,
365
+ y: grassStartY,
426
366
  width: width,
427
- height: height * 0.3,
367
+ height: buttonAreaHeight,
428
368
  children: /*#__PURE__*/_jsx(LinearGradient, {
429
- start: vec(0, height * 0.7),
369
+ start: vec(0, grassStartY),
430
370
  end: vec(0, height),
431
371
  colors: ['#8B4513', '#A0522D', '#654321']
432
372
  })
433
373
  }), /*#__PURE__*/_jsxs(Path, {
434
374
  path: grassPath,
435
375
  children: [/*#__PURE__*/_jsx(LinearGradient, {
436
- start: vec(0, height * 0.65),
437
- end: vec(0, height * 0.75),
376
+ start: vec(0, grassStartY - 20),
377
+ end: vec(0, grassStartY + 20),
438
378
  colors: ['#32CD32', '#228B22', '#006400']
439
379
  }), /*#__PURE__*/_jsx(Shadow, {
440
380
  dx: 0,
@@ -447,13 +387,13 @@ export const GameBackground = ({
447
387
  }, (_, i) => {
448
388
  const x = width / 50 * i + Math.random() * 15;
449
389
  const grassHeight = 12 + Math.random() * 18;
450
- const swayAmount = Math.sin(grassWave.value * 0.5 + i * 0.3) * 2;
390
+ const swayAmount = 0; // No animation
451
391
  const grassType = Math.random();
452
392
  const bladePath = Skia.Path.Make();
453
- bladePath.moveTo(x, height * 0.7);
393
+ bladePath.moveTo(x, grassStartY);
454
394
  if (grassType < 0.4) {
455
395
  // Tall thin grass with slight curve
456
- bladePath.quadTo(x + swayAmount + 1, height * 0.7 - grassHeight * 0.6, x + swayAmount + Math.random() * 2 - 1, height * 0.7 - grassHeight);
396
+ bladePath.quadTo(x + swayAmount + 1, grassStartY - grassHeight * 0.6, x + swayAmount + Math.random() * 2 - 1, grassStartY - grassHeight);
457
397
  return /*#__PURE__*/_jsx(Path, {
458
398
  path: bladePath,
459
399
  style: "stroke",
@@ -463,7 +403,7 @@ export const GameBackground = ({
463
403
  }, `grass-${i}`);
464
404
  } else if (grassType < 0.7) {
465
405
  // Medium curved grass
466
- bladePath.quadTo(x + swayAmount + 2, height * 0.7 - grassHeight * 0.4, x + swayAmount + 3, height * 0.7 - grassHeight);
406
+ bladePath.quadTo(x + swayAmount + 2, grassStartY - grassHeight * 0.4, x + swayAmount + 3, grassStartY - grassHeight);
467
407
  return /*#__PURE__*/_jsx(Path, {
468
408
  path: bladePath,
469
409
  style: "stroke",
@@ -474,7 +414,7 @@ export const GameBackground = ({
474
414
  } else {
475
415
  // Short wide grass with multiple segments
476
416
  const midHeight = grassHeight * 0.5;
477
- bladePath.quadTo(x + swayAmount + 1, height * 0.7 - midHeight, x + swayAmount + 2, height * 0.7 - grassHeight);
417
+ bladePath.quadTo(x + swayAmount + 1, grassStartY - midHeight, x + swayAmount + 2, grassStartY - grassHeight);
478
418
  return /*#__PURE__*/_jsxs(Group, {
479
419
  children: [/*#__PURE__*/_jsx(Path, {
480
420
  path: bladePath,
@@ -484,7 +424,7 @@ export const GameBackground = ({
484
424
  opacity: 0.6 + Math.random() * 0.4
485
425
  }), Math.random() < 0.3 && /*#__PURE__*/_jsx(Circle, {
486
426
  cx: x + swayAmount + 2,
487
- cy: height * 0.7 - grassHeight,
427
+ cy: grassStartY - grassHeight,
488
428
  r: 0.8,
489
429
  color: "#22c55e",
490
430
  opacity: 0.8
@@ -495,7 +435,7 @@ export const GameBackground = ({
495
435
  length: 30
496
436
  }, (_, i) => {
497
437
  const x = Math.random() * width;
498
- const y = height * 0.68 + Math.random() * height * 0.04;
438
+ const y = grassStartY - 10 + Math.random() * 20; // Position around grass line
499
439
  const grassClusterHeight = 8 + Math.random() * 6;
500
440
  const clusterPath = Skia.Path.Make();
501
441
  clusterPath.moveTo(x, y);
@@ -515,7 +455,7 @@ export const GameBackground = ({
515
455
  length: 15
516
456
  }, (_, i) => {
517
457
  const x = Math.random() * width;
518
- const y = height * 0.75 + Math.random() * height * 0.2;
458
+ const y = grassStartY + 20 + Math.random() * (buttonAreaHeight - 40); // Keep within button area
519
459
  const size = 2 + Math.random() * 3;
520
460
  return /*#__PURE__*/_jsx(Circle, {
521
461
  cx: x,
@@ -527,5 +467,5 @@ export const GameBackground = ({
527
467
  })]
528
468
  }), children]
529
469
  });
530
- };
470
+ });
531
471
  //# sourceMappingURL=GameBackground.js.map
@@ -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","GameBackground","memo","children","buttonAreaHeight","grassStartY","createGrassPath","startX","segments","path","Make","segmentWidth","moveTo","i","x","y","Math","sin","controlX","controlY","cos","quadTo","lineTo","close","grassPath","style","flex","position","start","end","colors","cx","cy","r","dx","dy","blur","color","Array","from","length","_","index","angle","radian","PI","isLongRay","rayLength","rayWidth","startDistance","startY","endX","endY","rayPath","strokeWidth","opacity","random","grassHeight","swayAmount","grassType","bladePath","midHeight","grassClusterHeight","clusterPath","size"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo } from 'react';
4
+ import { View, StyleSheet, Dimensions } from 'react-native';
5
+ import { GAME_CONFIG } from "../WhackAMoleService.js";
6
+ import { GameHole } from "./GameHole.js";
7
+
8
+ // Highly optimized GameHole that only re-renders when its specific hole changes
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ const MemoizedGameHole = /*#__PURE__*/React.memo(GameHole, (prevProps, nextProps) => {
11
+ // Only re-render if this specific hole's state changes
12
+ return prevProps.hole.id === nextProps.hole.id && prevProps.hole.isActive === nextProps.hole.isActive && prevProps.moleAnimation === nextProps.moleAnimation && prevProps.hitAnimation === nextProps.hitAnimation && prevProps.onPress === nextProps.onPress && prevProps.holeSize === nextProps.holeSize;
13
+ });
14
+ export const GameGrid = /*#__PURE__*/React.memo(({
15
+ holes,
16
+ moleAnimations,
17
+ hitAnimations,
18
+ onHolePress,
19
+ gridSize = 3
20
+ }) => {
21
+ // Calculate responsive dimensions with maximum width for tablets
22
+ const responsiveDimensions = useMemo(() => {
23
+ const {
24
+ width: screenWidth
25
+ } = Dimensions.get('window');
26
+
27
+ // Maximum container width for tablets (600px max)
28
+ const maxContainerWidth = Math.min(screenWidth * 0.9, 600);
29
+
30
+ // Calculate hole size based on grid size and container width
31
+ const availableWidth = maxContainerWidth - gridSize * 8; // Account for gaps
32
+ const maxHoleSize = availableWidth / gridSize;
33
+
34
+ // Use smaller of calculated size or original size, with minimum of 60px
35
+ const holeSize = Math.max(Math.min(maxHoleSize, GAME_CONFIG.HOLE_SIZE), 60);
36
+ return {
37
+ containerWidth: maxContainerWidth,
38
+ holeSize,
39
+ gridWidth: gridSize * (holeSize + 8) // Account for gaps
40
+ };
41
+ }, [gridSize]);
42
+
43
+ // Memoize style calculations to prevent re-computation on every render
44
+ const gridStyle = useMemo(() => ({
45
+ width: responsiveDimensions.gridWidth,
46
+ maxWidth: responsiveDimensions.containerWidth
47
+ }), [responsiveDimensions]);
48
+ const paddingStyle = useMemo(() => gridSize === 4 ? styles.smallPadding : styles.largePadding, [gridSize]);
49
+ const gapStyle = useMemo(() => gridSize === 4 ? styles.smallGap : styles.largeGap, [gridSize]);
50
+ return /*#__PURE__*/_jsx(View, {
51
+ style: [styles.gameArea, paddingStyle],
52
+ children: /*#__PURE__*/_jsx(View, {
53
+ style: [styles.gameGrid, gapStyle, gridStyle],
54
+ children: holes.map((hole, index) => {
55
+ const moleAnimation = moleAnimations[index];
56
+ const hitAnimation = hitAnimations[index];
57
+ if (!moleAnimation || !hitAnimation) {
58
+ return null;
59
+ }
60
+ return /*#__PURE__*/_jsx(MemoizedGameHole, {
61
+ hole: hole,
62
+ moleAnimation: moleAnimation,
63
+ hitAnimation: hitAnimation,
64
+ onPress: onHolePress,
65
+ holeSize: responsiveDimensions.holeSize
66
+ }, hole.id);
67
+ })
68
+ })
69
+ });
70
+ });
71
+ const styles = StyleSheet.create({
72
+ gameArea: {
73
+ flex: 1,
74
+ justifyContent: 'center',
75
+ alignItems: 'center'
76
+ },
77
+ smallPadding: {
78
+ paddingHorizontal: 16,
79
+ paddingVertical: 20
80
+ },
81
+ largePadding: {
82
+ paddingVertical: 20
83
+ },
84
+ gameGrid: {
85
+ flexDirection: 'row',
86
+ flexWrap: 'wrap',
87
+ justifyContent: 'center',
88
+ alignItems: 'center'
89
+ },
90
+ smallGap: {
91
+ gap: 4
92
+ },
93
+ largeGap: {
94
+ gap: 8
95
+ }
96
+ });
97
+ //# sourceMappingURL=GameGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","View","StyleSheet","Dimensions","GAME_CONFIG","GameHole","jsx","_jsx","MemoizedGameHole","memo","prevProps","nextProps","hole","id","isActive","moleAnimation","hitAnimation","onPress","holeSize","GameGrid","holes","moleAnimations","hitAnimations","onHolePress","gridSize","responsiveDimensions","width","screenWidth","get","maxContainerWidth","Math","min","availableWidth","maxHoleSize","max","HOLE_SIZE","containerWidth","gridWidth","gridStyle","maxWidth","paddingStyle","styles","smallPadding","largePadding","gapStyle","smallGap","largeGap","style","gameArea","children","gameGrid","map","index","create","flex","justifyContent","alignItems","paddingHorizontal","paddingVertical","flexDirection","flexWrap","gap"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/GameGrid.tsx"],"mappings":"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","ignoreList":[]}