react-native-games 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/README.md +121 -130
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +121 -422
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +30 -31
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +52 -124
  7. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +12 -1
  9. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +102 -75
  11. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js +139 -30
  13. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  14. package/lib/module/games/balloon-blaster/components/GameBackground.js +2 -2
  15. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  16. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +7 -6
  17. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  18. package/lib/module/games/balloon-blaster/components/index.js +0 -3
  19. package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
  20. package/lib/module/games/fruit-ninja/FruitNinja.js +93 -376
  21. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  22. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +19 -22
  23. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  24. package/lib/module/games/fruit-ninja/FruitNinjaService.js +25 -8
  25. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -1
  26. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +29 -4
  27. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  28. package/lib/module/games/fruit-ninja/components/GameArea.js +194 -29
  29. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
  30. package/lib/module/games/fruit-ninja/components/GameBackground.js +107 -190
  31. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
  32. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +9 -30
  33. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  34. package/lib/module/games/fruit-ninja/components/index.js +0 -3
  35. package/lib/module/games/fruit-ninja/components/index.js.map +1 -1
  36. package/lib/module/games/maze-runner/MazeRunner.js +106 -109
  37. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  38. package/lib/module/games/maze-runner/MazeRunnerConstants.js +19 -24
  39. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  40. package/lib/module/games/maze-runner/MazeRunnerService.js +2 -1
  41. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  42. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +5 -4
  43. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -1
  44. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +32 -15
  45. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  46. package/lib/module/games/maze-runner/components/ScoreBoard.js +8 -3
  47. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  48. package/lib/module/games/maze-runner/components/WallComponent.js +3 -2
  49. package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -1
  50. package/lib/module/games/maze-runner/components/index.js +0 -1
  51. package/lib/module/games/maze-runner/components/index.js.map +1 -1
  52. package/lib/module/games/popit-fidget/PopitFidget.js +113 -112
  53. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  54. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +20 -23
  55. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -1
  56. package/lib/module/games/popit-fidget/PopitFidgetService.js +0 -59
  57. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -1
  58. package/lib/module/games/popit-fidget/PopitFidgetStore.js +0 -27
  59. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
  60. package/lib/module/games/popit-fidget/components/BubbleComponent.js +24 -22
  61. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -1
  62. package/lib/module/games/popit-fidget/components/GameBackground.js +4 -1
  63. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -1
  64. package/lib/module/games/popit-fidget/components/ScoreBoard.js +9 -2
  65. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
  66. package/lib/module/games/popit-fidget/components/index.js +0 -2
  67. package/lib/module/games/popit-fidget/components/index.js.map +1 -1
  68. package/lib/module/games/space-fighter/SpaceFighter.js +121 -369
  69. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  70. package/lib/module/games/space-fighter/SpaceFighterConstants.js +21 -23
  71. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  72. package/lib/module/games/space-fighter/SpaceFighterService.js +30 -11
  73. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -1
  74. package/lib/module/games/space-fighter/SpaceFighterStore.js +54 -2
  75. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
  76. package/lib/module/games/space-fighter/components/AsteroidComponent.js +7 -5
  77. package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -1
  78. package/lib/module/games/space-fighter/components/GameArea.js +234 -14
  79. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
  80. package/lib/module/games/space-fighter/components/GameBackground.js +10 -65
  81. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -1
  82. package/lib/module/games/space-fighter/components/ScoreBoard.js +9 -7
  83. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
  84. package/lib/module/games/space-fighter/components/Spacecraft3D.js +90 -250
  85. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -1
  86. package/lib/module/games/space-fighter/components/SpacecraftPath.js +42 -27
  87. package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -1
  88. package/lib/module/games/space-fighter/components/index.js +0 -3
  89. package/lib/module/games/space-fighter/components/index.js.map +1 -1
  90. package/lib/module/games/whack-a-mole/WhackAMole.js +63 -73
  91. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  92. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +17 -19
  93. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  94. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +20 -7
  95. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -1
  96. package/lib/module/games/whack-a-mole/components/GameHole.js +2 -2
  97. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -1
  98. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +5 -1
  99. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  100. package/lib/module/games/whack-a-mole/components/index.js +0 -1
  101. package/lib/module/games/whack-a-mole/components/index.js.map +1 -1
  102. package/lib/module/services/GamesConstants.js +13 -21
  103. package/lib/module/services/GamesConstants.js.map +1 -1
  104. package/lib/module/services/GamesService.js +30 -26
  105. package/lib/module/services/GamesService.js.map +1 -1
  106. package/lib/module/services/SoundsService.js +21 -21
  107. package/lib/module/shared/helpers/AnimationFrame.js +120 -0
  108. package/lib/module/shared/helpers/AnimationFrame.js.map +1 -0
  109. package/lib/module/shared/helpers/AnimationTracker.js +89 -0
  110. package/lib/module/shared/helpers/AnimationTracker.js.map +1 -0
  111. package/lib/module/shared/helpers/ErrorHandler.js +269 -0
  112. package/lib/module/shared/helpers/ErrorHandler.js.map +1 -0
  113. package/lib/module/shared/helpers/GameControlButton.js +67 -58
  114. package/lib/module/shared/helpers/GameControlButton.js.map +1 -1
  115. package/lib/module/{games/whack-a-mole/components → shared/helpers}/GameOverModal.js +23 -13
  116. package/lib/module/shared/helpers/GameOverModal.js.map +1 -0
  117. package/lib/module/shared/helpers/GameSettingsModal.js +287 -0
  118. package/lib/module/shared/helpers/GameSettingsModal.js.map +1 -0
  119. package/lib/module/shared/helpers/ParticleBlast.js +133 -0
  120. package/lib/module/shared/helpers/ParticleBlast.js.map +1 -0
  121. package/lib/module/shared/helpers/index.js +7 -0
  122. package/lib/module/shared/helpers/index.js.map +1 -1
  123. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +2 -14
  124. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  125. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +10 -9
  126. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -1
  127. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +0 -2
  128. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  129. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  130. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  131. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +1 -15
  132. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  133. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  134. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +1 -7
  135. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  136. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -3
  137. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
  138. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +2 -14
  139. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  140. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +5 -5
  141. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -1
  142. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts +8 -0
  143. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -1
  144. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts +1 -0
  145. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -1
  146. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +1 -15
  147. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -1
  148. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
  149. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +1 -7
  150. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  151. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts +0 -3
  152. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -1
  153. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +2 -8
  154. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  155. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +4 -4
  156. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -1
  157. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  158. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -1
  159. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  160. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  161. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -1
  162. package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -1
  163. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
  164. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +2 -8
  165. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  166. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +4 -4
  167. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -1
  168. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +0 -21
  169. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -1
  170. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +1 -5
  171. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
  172. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -1
  173. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +2 -2
  174. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -1
  175. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -2
  176. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
  177. package/lib/typescript/src/games/popit-fidget/components/index.d.ts +0 -2
  178. package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -1
  179. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +3 -8
  180. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  181. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +4 -4
  182. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -1
  183. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -1
  184. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -1
  185. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +0 -1
  186. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -1
  187. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +1 -15
  188. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
  189. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -1
  190. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +1 -6
  191. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
  192. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -1
  193. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -1
  194. package/lib/typescript/src/games/space-fighter/components/index.d.ts +0 -3
  195. package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -1
  196. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +2 -11
  197. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  198. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +2 -2
  199. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -1
  200. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -1
  201. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts +0 -1
  202. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -1
  203. package/lib/typescript/src/services/GamesConstants.d.ts +47 -38
  204. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  205. package/lib/typescript/src/services/GamesService.d.ts +20 -3
  206. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  207. package/lib/typescript/src/services/SoundsService.d.ts +20 -20
  208. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts +41 -0
  209. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +1 -0
  210. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts +45 -0
  211. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +1 -0
  212. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts +124 -0
  213. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +1 -0
  214. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -1
  215. package/lib/typescript/src/{games/balloon-blaster/components → shared/helpers}/GameOverModal.d.ts +5 -0
  216. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +1 -0
  217. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts +9 -0
  218. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +1 -0
  219. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts +12 -0
  220. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +1 -0
  221. package/lib/typescript/src/shared/helpers/index.d.ts +9 -0
  222. package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -1
  223. package/package.json +2 -2
  224. package/lib/module/games/balloon-blaster/components/GameOverModal.js +0 -133
  225. package/lib/module/games/balloon-blaster/components/GameOverModal.js.map +0 -1
  226. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +0 -55
  227. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +0 -1
  228. package/lib/module/games/balloon-blaster/components/SliceTrail.js +0 -58
  229. package/lib/module/games/balloon-blaster/components/SliceTrail.js.map +0 -1
  230. package/lib/module/games/fruit-ninja/components/GameOverModal.js +0 -189
  231. package/lib/module/games/fruit-ninja/components/GameOverModal.js.map +0 -1
  232. package/lib/module/games/fruit-ninja/components/ParticleSystem.js +0 -52
  233. package/lib/module/games/fruit-ninja/components/ParticleSystem.js.map +0 -1
  234. package/lib/module/games/fruit-ninja/components/SliceTrail.js +0 -58
  235. package/lib/module/games/fruit-ninja/components/SliceTrail.js.map +0 -1
  236. package/lib/module/games/maze-runner/components/GameOverModal.js +0 -134
  237. package/lib/module/games/maze-runner/components/GameOverModal.js.map +0 -1
  238. package/lib/module/games/popit-fidget/components/GameOverModal.js +0 -132
  239. package/lib/module/games/popit-fidget/components/GameOverModal.js.map +0 -1
  240. package/lib/module/games/popit-fidget/components/ParticleSystem.js +0 -89
  241. package/lib/module/games/popit-fidget/components/ParticleSystem.js.map +0 -1
  242. package/lib/module/games/space-fighter/components/GameOverModal.js +0 -182
  243. package/lib/module/games/space-fighter/components/GameOverModal.js.map +0 -1
  244. package/lib/module/games/space-fighter/components/ParticleComponent.js +0 -34
  245. package/lib/module/games/space-fighter/components/ParticleComponent.js.map +0 -1
  246. package/lib/module/games/space-fighter/components/SettingsModal.js +0 -222
  247. package/lib/module/games/space-fighter/components/SettingsModal.js.map +0 -1
  248. package/lib/module/games/whack-a-mole/components/GameOverModal.js.map +0 -1
  249. package/lib/module/shared/settings/GameSettings.js +0 -295
  250. package/lib/module/shared/settings/GameSettings.js.map +0 -1
  251. package/lib/module/shared/settings/SettingsService.js +0 -125
  252. package/lib/module/shared/settings/SettingsService.js.map +0 -1
  253. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts.map +0 -1
  254. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts +0 -8
  255. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +0 -1
  256. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts +0 -11
  257. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts.map +0 -1
  258. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts +0 -9
  259. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts.map +0 -1
  260. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts +0 -8
  261. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts.map +0 -1
  262. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts +0 -11
  263. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts.map +0 -1
  264. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts +0 -11
  265. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts.map +0 -1
  266. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts +0 -9
  267. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts.map +0 -1
  268. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts +0 -9
  269. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts.map +0 -1
  270. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts +0 -9
  271. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts.map +0 -1
  272. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts +0 -8
  273. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts.map +0 -1
  274. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts +0 -9
  275. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts.map +0 -1
  276. package/lib/typescript/src/games/whack-a-mole/components/GameOverModal.d.ts +0 -9
  277. package/lib/typescript/src/games/whack-a-mole/components/GameOverModal.d.ts.map +0 -1
  278. package/lib/typescript/src/shared/settings/GameSettings.d.ts +0 -36
  279. package/lib/typescript/src/shared/settings/GameSettings.d.ts.map +0 -1
  280. package/lib/typescript/src/shared/settings/SettingsService.d.ts +0 -33
  281. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +0 -1
@@ -1,24 +1,20 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect, useRef, useCallback } from 'react';
4
- import { View, StyleSheet, Modal } from 'react-native';
3
+ import React, { useEffect, useRef, useCallback, useMemo } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
5
  import { useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
6
6
  import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
7
7
  import { useWhackAMoleStore } from "./WhackAMoleStore.js";
8
8
  import { createWhackAMoleService, ANIMATION_CONFIG, GAME_CONFIG } from "./WhackAMoleService.js";
9
- import { ScoreBoard, GameGrid, GameOverModal, GameBackground } from "./components/index.js";
10
- import { GameControlButton } from "../../shared/helpers/index.js";
11
- import { GameSettings } from "../../shared/settings/GameSettings.js";
12
- import { createGameSettingsStore } from "../../shared/settings/SettingsService.js";
9
+ import { ScoreBoard, GameGrid, GameBackground } from "./components/index.js";
10
+ import { GameControlButton, GameOverModal } from "../../shared/helpers/index.js";
11
+ import { GameSettingsModal } from "../../shared/helpers/GameSettingsModal.js";
13
12
  import { WHACK_A_MOLE_CONSTANTS } from "./WhackAMoleConstants.js";
13
+ import { GAME_IDS } from "../../services/GamesService.js";
14
14
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
- // Constants now imported from centralized GamesConstants.ts
16
-
17
15
  export const WhackAMole = ({
18
- settings: externalSettings,
19
- onSettingsChange,
20
- showSettingsModal = false,
21
- onToggleSettingsModal
16
+ settings,
17
+ onSettingsChange
22
18
  }) => {
23
19
  // Use optimized selectors to minimize re-renders while keeping all functionality
24
20
  const {
@@ -37,14 +33,11 @@ export const WhackAMole = ({
37
33
  setHoles
38
34
  } = useWhackAMoleStore();
39
35
 
40
- // Create unified game settings store
41
- const useSettings = React.useMemo(() => {
42
- return createGameSettingsStore(externalSettings, onSettingsChange);
43
- }, []); // Empty dependency array - create store only once
44
-
45
- const settings = useSettings();
46
- const difficulty = useSettings(state => state.difficulty);
47
- const soundEnabled = useSettings(state => state.soundEnabled);
36
+ // Use settings from props with fallback to defaults
37
+ const {
38
+ difficulty,
39
+ enableSounds
40
+ } = settings;
48
41
  // Fixed game duration regardless of difficulty - configurable via constants
49
42
  const gameDuration = GAME_CONFIG.GAME_DURATION;
50
43
 
@@ -62,25 +55,8 @@ export const WhackAMole = ({
62
55
  pointsPerMole
63
56
  } = gameConstants;
64
57
 
65
- // Track previous settings to prevent infinite loops
66
- const prevSettingsRef = React.useRef(externalSettings);
67
-
68
- // Update settings when external settings change (only if actually different)
69
- React.useEffect(() => {
70
- if (!externalSettings) return;
71
- const prev = prevSettingsRef.current;
72
- if (!prev) {
73
- settings.updateSettings(externalSettings);
74
- prevSettingsRef.current = externalSettings;
75
- return;
76
- }
77
- const hasChanged = prev.difficulty !== externalSettings.difficulty || prev.soundEnabled !== externalSettings.soundEnabled || prev.hapticEnabled !== externalSettings.hapticEnabled;
78
- if (hasChanged) {
79
- settings.updateSettings(externalSettings);
80
- prevSettingsRef.current = externalSettings;
81
- }
82
- }, [externalSettings, settings]);
83
- const createHolesForGrid = size => {
58
+ // Memoize hole creation to prevent recreation on every render
59
+ const createHolesForGrid = useCallback(size => {
84
60
  const totalHoles = size * size;
85
61
  return Array.from({
86
62
  length: totalHoles
@@ -93,7 +69,7 @@ export const WhackAMole = ({
93
69
  z: 0
94
70
  }
95
71
  }));
96
- };
72
+ }, []);
97
73
 
98
74
  // Track previous difficulty to detect changes during gameplay
99
75
  const prevDifficultyRef = React.useRef(difficulty);
@@ -103,6 +79,8 @@ export const WhackAMole = ({
103
79
  setHoles(newHoles);
104
80
  }
105
81
  }, [gridSize, isPlaying, gameOver, setHoles]);
82
+
83
+ // Create animations at top level (cannot be memoized due to Rules of Hooks)
106
84
  const maxHoles = 16;
107
85
  const moleAnimations = useRef(Array.from({
108
86
  length: maxHoles
@@ -110,13 +88,15 @@ export const WhackAMole = ({
110
88
  const hitAnimations = useRef(Array.from({
111
89
  length: maxHoles
112
90
  }, () => useSharedValue(0))).current;
113
- const gameService = useRef(createWhackAMoleService(moleAnimations, hitAnimations)).current;
91
+
92
+ // Memoize game service to prevent recreation
93
+ const gameService = useMemo(() => createWhackAMoleService(moleAnimations, hitAnimations), [moleAnimations, hitAnimations]);
114
94
  const playHitSound = useCallback(() => {
115
- playSound(GAME_SOUNDS.WHACK_A_MOLE.HIT, soundEnabled);
116
- }, [soundEnabled]);
95
+ playSound(GAME_SOUNDS.WHACK_A_MOLE.HIT, enableSounds);
96
+ }, [enableSounds]);
117
97
  const playMissSound = useCallback(() => {
118
- playSound(GAME_SOUNDS.WHACK_A_MOLE.MISS, soundEnabled);
119
- }, [soundEnabled]);
98
+ playSound(GAME_SOUNDS.WHACK_A_MOLE.MISS, enableSounds);
99
+ }, [enableSounds]);
120
100
 
121
101
  // Optimized mole spawning with efficient hole selection and preserved animations
122
102
  const spawnMole = useCallback(() => {
@@ -195,9 +175,38 @@ export const WhackAMole = ({
195
175
  }, [gameOver, isPlaying]);
196
176
  useEffect(() => {
197
177
  return () => {
198
- gameService.cleanup();
178
+ // Fully reset game when unmounting (navigate back)
179
+ handleResetGame();
199
180
  };
200
- }, []);
181
+ }, [handleResetGame]);
182
+
183
+ // Memoize game control button props to prevent unnecessary re-renders
184
+ const gameControlButtonProps = useMemo(() => ({
185
+ isPlaying,
186
+ gameOver,
187
+ onStartGame: handleStartGame,
188
+ onStopGame: handleStopGame,
189
+ startButtonText: "START WHACKING",
190
+ stopButtonText: "STOP GAME",
191
+ startButtonSubtext: "Whack moles to score!",
192
+ stopButtonSubtext: "End current game",
193
+ startButtonColor: "#10b981",
194
+ stopButtonColor: "#dc2626",
195
+ startButtonBorderColor: "#34d399",
196
+ stopButtonBorderColor: "#f87171"
197
+ }), [isPlaying, gameOver, handleStartGame, handleStopGame]);
198
+
199
+ // Memoize game over modal props to prevent unnecessary re-renders
200
+ const gameOverModalProps = useMemo(() => ({
201
+ isVisible: gameOver,
202
+ score,
203
+ onPlayAgain: handleResetGame,
204
+ buttonText: "Whack Again!",
205
+ primaryColor: "rgba(22, 101, 52, 0.85)",
206
+ borderColor: "rgba(22, 101, 52, 0.95)",
207
+ buttonColor: "#10b981",
208
+ buttonBorderColor: "#34d399"
209
+ }), [gameOver, score, handleResetGame]);
201
210
 
202
211
  // Optimized difficulty change handling with preserved animations
203
212
  React.useEffect(() => {
@@ -230,32 +239,13 @@ export const WhackAMole = ({
230
239
  onHolePress: handleWhackMole,
231
240
  gridSize: gridSize
232
241
  }), /*#__PURE__*/_jsx(GameControlButton, {
233
- isPlaying: isPlaying,
234
- gameOver: gameOver,
235
- onStartGame: handleStartGame,
236
- onStopGame: handleStopGame,
237
- startButtonText: "START WHACKING",
238
- stopButtonText: "STOP GAME",
239
- startButtonSubtext: "Whack moles to score!",
240
- stopButtonSubtext: "End current game",
241
- startButtonColor: "#10b981",
242
- stopButtonColor: "#dc2626",
243
- startButtonBorderColor: "#34d399",
244
- stopButtonBorderColor: "#f87171"
242
+ ...gameControlButtonProps
245
243
  }), /*#__PURE__*/_jsx(GameOverModal, {
246
- isVisible: gameOver,
247
- score: score,
248
- onPlayAgain: handleResetGame
249
- }), /*#__PURE__*/_jsx(Modal, {
250
- visible: showSettingsModal,
251
- animationType: "slide",
252
- presentationStyle: "pageSheet",
253
- onRequestClose: onToggleSettingsModal,
254
- children: /*#__PURE__*/_jsx(GameSettings, {
255
- gameId: "whack-a-mole",
256
- onClose: onToggleSettingsModal || (() => {}),
257
- settingsStore: settings
258
- })
244
+ ...gameOverModalProps
245
+ }), /*#__PURE__*/_jsx(GameSettingsModal, {
246
+ gameId: GAME_IDS.WHACK_A_MOLE,
247
+ settings: settings,
248
+ onSettingsChange: onSettingsChange
259
249
  })]
260
250
  })
261
251
  });
@@ -267,7 +257,7 @@ const styles = StyleSheet.create({
267
257
  // Let GameBackground show through
268
258
  paddingTop: 0,
269
259
  paddingHorizontal: 20,
270
- paddingBottom: 20
260
+ paddingBottom: 0
271
261
  }
272
262
  });
273
263
  //# sourceMappingURL=WhackAMole.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useCallback","View","StyleSheet","Modal","useSharedValue","withSpring","withTiming","playSound","GAME_SOUNDS","useWhackAMoleStore","createWhackAMoleService","ANIMATION_CONFIG","GAME_CONFIG","ScoreBoard","GameGrid","GameOverModal","GameBackground","GameControlButton","GameSettings","createGameSettingsStore","WHACK_A_MOLE_CONSTANTS","jsx","_jsx","jsxs","_jsxs","WhackAMole","settings","externalSettings","onSettingsChange","showSettingsModal","onToggleSettingsModal","score","timeLeft","isPlaying","gameOver","holes","startGame","stopGame","resetGame","whackMole","decrementTime","activateHole","deactivateHole","setHoles","useSettings","useMemo","difficulty","state","soundEnabled","gameDuration","GAME_DURATION","gameConstants","moleSpawnInterval","moleVisibleDuration","gridSize","pointsPerMole","prevSettingsRef","prev","current","updateSettings","hasChanged","hapticEnabled","createHolesForGrid","size","totalHoles","Array","from","length","_","i","id","isActive","position","x","HOLE_SIZE","y","Math","floor","z","prevDifficultyRef","newHoles","maxHoles","moleAnimations","hitAnimations","gameService","playHitSound","WHACK_A_MOLE","HIT","playMissSound","MISS","spawnMole","currentHoles","getState","availableHoles","push","spawnRandomMole","holeId","value","MOLE_SPRING","currentState","handleStartGame","resetAnimations","startGameTimer","startMoleSpawning","handleStopGame","cleanup","handleWhackMole","HIT_TIMING","finished","handleResetGame","requestAnimationFrame","children","style","styles","container","onHolePress","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","isVisible","onPlayAgain","visible","animationType","presentationStyle","onRequestClose","gameId","onClose","settingsStore","create","flex","backgroundColor","paddingTop","paddingHorizontal","paddingBottom"],"sourceRoot":"../../../../src","sources":["games/whack-a-mole/WhackAMole.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","View","StyleSheet","useSharedValue","withSpring","withTiming","playSound","GAME_SOUNDS","useWhackAMoleStore","createWhackAMoleService","ANIMATION_CONFIG","GAME_CONFIG","ScoreBoard","GameGrid","GameBackground","GameControlButton","GameOverModal","GameSettingsModal","WHACK_A_MOLE_CONSTANTS","GAME_IDS","jsx","_jsx","jsxs","_jsxs","WhackAMole","settings","onSettingsChange","score","timeLeft","isPlaying","gameOver","holes","startGame","stopGame","resetGame","whackMole","decrementTime","activateHole","deactivateHole","setHoles","difficulty","enableSounds","gameDuration","GAME_DURATION","gameConstants","moleSpawnInterval","moleVisibleDuration","gridSize","pointsPerMole","createHolesForGrid","size","totalHoles","Array","from","length","_","i","id","isActive","position","x","HOLE_SIZE","y","Math","floor","z","prevDifficultyRef","newHoles","maxHoles","moleAnimations","current","hitAnimations","gameService","playHitSound","WHACK_A_MOLE","HIT","playMissSound","MISS","spawnMole","currentHoles","getState","availableHoles","push","spawnRandomMole","holeId","value","MOLE_SPRING","currentState","handleStartGame","resetAnimations","startGameTimer","startMoleSpawning","handleStopGame","cleanup","handleWhackMole","HIT_TIMING","finished","handleResetGame","gameControlButtonProps","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","requestAnimationFrame","children","style","styles","container","onHolePress","gameId","create","flex","backgroundColor","paddingTop","paddingHorizontal","paddingBottom"],"sourceRoot":"../../../../src","sources":["games/whack-a-mole/WhackAMole.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { Dimensions } from 'react-native';
4
+ // Memoize screen dimensions for better performance
4
5
  const {
5
6
  width
6
7
  } = Dimensions.get('window');
@@ -82,36 +83,33 @@ export const WHACK_A_MOLE_COLORS = {
82
83
  BUTTON_BORDER: '#66BB6A'
83
84
  };
84
85
 
85
- // Whack A Mole Game Theme
86
+ // Whack A Mole Game Theme - Matches scoreboard green with sky blue background like Fruit Ninja
86
87
  export const WHACK_A_MOLE_THEME = {
87
88
  backgroundColor: '#87CEEB',
88
- // Sky blue
89
- headerBackgroundColor: 'rgba(20, 83, 45, 0.8)',
90
- // Green with transparency
89
+ // Sky blue background like Fruit Ninja
90
+ headerBackgroundColor: 'rgba(22, 101, 52, 0.9)',
91
+ // Green header to match scoreboard
91
92
  headerTextColor: '#ffffff',
92
- sectionBackgroundColor: 'rgba(255, 255, 255, 0.2)',
93
- sectionTitleColor: '#1f2937',
94
- // Dark gray
95
- buttonSelectedColor: '#22c55e',
96
- // Green
93
+ sectionBackgroundColor: 'rgba(22, 101, 52, 0.4)',
94
+ // Match scoreboard transparency
95
+ sectionTitleColor: '#ffffff',
96
+ // White text on green sections
97
+ buttonSelectedColor: '#166534',
98
+ // Darker green for better contrast
97
99
  buttonUnselectedColor: 'rgba(255, 255, 255, 0.3)',
98
100
  buttonSelectedTextColor: '#ffffff',
99
101
  buttonUnselectedTextColor: '#1f2937',
100
- switchTrackColorFalse: '#16a34a',
101
- switchTrackColorTrue: '#22c55e',
102
- switchThumbColor: '#fbbf24',
103
- // Amber
104
- infoTextColor: '#374151',
105
- // Gray
106
- resetButtonColor: '#ef4444',
107
- // Red
108
- resetButtonTextColor: '#ffffff'
102
+ switchTrackColorFalse: 'rgba(22, 101, 52, 0.5)',
103
+ switchTrackColorTrue: '#166534',
104
+ // Darker green for better contrast
105
+ switchThumbColor: '#ffffff',
106
+ infoTextColor: '#1f2937' // Dark text for readability on sky blue background
109
107
  };
110
108
 
111
109
  // Whack A Mole Difficulty Descriptions
112
110
  export const WHACK_A_MOLE_DIFFICULTY_DESCRIPTIONS = {
113
111
  easy: 'Moles appear slower and stay longer',
114
- medium: 'Balanced gameplay',
112
+ medium: 'Balanced mole speed and timing',
115
113
  hard: 'Fast moles, quick reflexes needed!'
116
114
  };
117
115
  //# sourceMappingURL=WhackAMoleConstants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Dimensions","width","get","WHACK_A_MOLE_CONSTANTS","moleSpawnInterval","easy","medium","hard","moleAppearDuration","moleVisibleDuration","gridSize","pointsPerMole","WHACK_A_MOLE_GAME_CONFIG","GRID_SIZE","HOLE_SIZE","MOLE_APPEAR_DURATION","MOLE_DISAPPEAR_DURATION","GAME_DURATION","INITIAL_SPAWN_DELAY","MAX_SPAWN_INTERVAL","WHACK_A_MOLE_ANIMATION_CONFIG","MOLE_SPRING","damping","stiffness","HOLE_SPRING","HIT_TIMING","duration","WHACK_A_MOLE_COLORS","BACKGROUND","SCORE_BOARD","HOLE","HOLE_BORDER","HOLE_SHADOW","MOLE_SHADOW","SCORE","SCORE_TEXT","TIMER_TEXT","UI","BUTTON_ACTIVE","BUTTON_INACTIVE","TEXT_PRIMARY","TEXT_SECONDARY","WHITE","START_BUTTON","HIT_EFFECT_OUTER","HIT_EFFECT_INNER","GAME_OVER_OVERLAY","BUTTON_BORDER","WHACK_A_MOLE_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","resetButtonColor","resetButtonTextColor","WHACK_A_MOLE_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/whack-a-mole/WhackAMoleConstants.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Dimensions","width","get","WHACK_A_MOLE_CONSTANTS","moleSpawnInterval","easy","medium","hard","moleAppearDuration","moleVisibleDuration","gridSize","pointsPerMole","WHACK_A_MOLE_GAME_CONFIG","GRID_SIZE","HOLE_SIZE","MOLE_APPEAR_DURATION","MOLE_DISAPPEAR_DURATION","GAME_DURATION","INITIAL_SPAWN_DELAY","MAX_SPAWN_INTERVAL","WHACK_A_MOLE_ANIMATION_CONFIG","MOLE_SPRING","damping","stiffness","HOLE_SPRING","HIT_TIMING","duration","WHACK_A_MOLE_COLORS","BACKGROUND","SCORE_BOARD","HOLE","HOLE_BORDER","HOLE_SHADOW","MOLE_SHADOW","SCORE","SCORE_TEXT","TIMER_TEXT","UI","BUTTON_ACTIVE","BUTTON_INACTIVE","TEXT_PRIMARY","TEXT_SECONDARY","WHITE","START_BUTTON","HIT_EFFECT_OUTER","HIT_EFFECT_INNER","GAME_OVER_OVERLAY","BUTTON_BORDER","WHACK_A_MOLE_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","WHACK_A_MOLE_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/whack-a-mole/WhackAMoleConstants.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAGzC;AACA,MAAM;EAAEC;AAAM,CAAC,GAAGD,UAAU,CAACE,GAAG,CAAC,QAAQ,CAAC;;AAE1C;AACA,OAAO,MAAMC,sBAAsB,GAAG;EACpCC,iBAAiB,EAAE;IACjBC,IAAI,EAAE,IAAI;IACVC,MAAM,EAAE,IAAI;IACZC,IAAI,EAAE;EACR,CAAC;EACDC,kBAAkB,EAAE;IAClBH,IAAI,EAAE,IAAI;IACVC,MAAM,EAAE,IAAI;IACZC,IAAI,EAAE;EACR,CAAC;EACDE,mBAAmB,EAAE;IACnBJ,IAAI,EAAE,IAAI;IACVC,MAAM,EAAE,IAAI;IACZC,IAAI,EAAE;EACR,CAAC;EACDG,QAAQ,EAAE;IACRL,IAAI,EAAE,CAAC;IACPC,MAAM,EAAE,CAAC;IACTC,IAAI,EAAE;EACR,CAAC;EACDI,aAAa,EAAE;IACbN,IAAI,EAAE,EAAE;IACRC,MAAM,EAAE,EAAE;IACVC,IAAI,EAAE;EACR;AACF,CAAU;AAEV,OAAO,MAAMK,wBAAwB,GAAG;EACtCC,SAAS,EAAE,CAAC;EACZC,SAAS,EAAEb,KAAK,GAAG,IAAI;EACvBc,oBAAoB,EAAE,IAAI;EAAE;EAC5BC,uBAAuB,EAAE,GAAG;EAAE;EAC9BC,aAAa,EAAE,EAAE;EAAE;EACnBC,mBAAmB,EAAE,IAAI;EAAE;EAC3BC,kBAAkB,EAAE,IAAI,CAAC;AAC3B,CAAU;AAEV,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,WAAW,EAAE;IACXC,OAAO,EAAE,EAAE;IACXC,SAAS,EAAE;EACb,CAAC;EACDC,WAAW,EAAE;IACXF,OAAO,EAAE,EAAE;IACXC,SAAS,EAAE;EACb,CAAC;EACDE,UAAU,EAAE;IACVC,QAAQ,EAAE;EACZ;AACF,CAAU;AAEV,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,UAAU,EAAE,SAAS;EACrBC,WAAW,EAAE,SAAS;EACtBC,IAAI,EAAE,SAAS;EACfC,WAAW,EAAE,SAAS;EACtBC,WAAW,EAAE,SAAS;EACtBC,WAAW,EAAE,iBAAiB;EAC9BC,KAAK,EAAE,SAAS;EAChBC,UAAU,EAAE,SAAS;EACrBC,UAAU,EAAE,SAAS;EACrBC,EAAE,EAAE,SAAS;EACbC,aAAa,EAAE,SAAS;EACxBC,eAAe,EAAE,SAAS;EAC1BC,YAAY,EAAE,SAAS;EACvBC,cAAc,EAAE,SAAS;EACzBC,KAAK,EAAE,SAAS;EAChBC,YAAY,EAAE,SAAS;EACvBC,gBAAgB,EAAE,SAAS;EAC3BC,gBAAgB,EAAE,SAAS;EAC3BC,iBAAiB,EAAE,qBAAqB;EACxCC,aAAa,EAAE;AACjB,CAAU;;AAEV;AACA,OAAO,MAAMC,kBAAqC,GAAG;EACnDC,eAAe,EAAE,SAAS;EAAE;EAC5BC,qBAAqB,EAAE,wBAAwB;EAAE;EACjDC,eAAe,EAAE,SAAS;EAC1BC,sBAAsB,EAAE,wBAAwB;EAAE;EAClDC,iBAAiB,EAAE,SAAS;EAAE;EAC9BC,mBAAmB,EAAE,SAAS;EAAE;EAChCC,qBAAqB,EAAE,0BAA0B;EACjDC,uBAAuB,EAAE,SAAS;EAClCC,yBAAyB,EAAE,SAAS;EACpCC,qBAAqB,EAAE,wBAAwB;EAC/CC,oBAAoB,EAAE,SAAS;EAAE;EACjCC,gBAAgB,EAAE,SAAS;EAC3BC,aAAa,EAAE,SAAS,CAAE;AAC5B,CAAC;;AAED;AACA,OAAO,MAAMC,oCAAoC,GAAG;EAClDzD,IAAI,EAAE,qCAAqC;EAC3CC,MAAM,EAAE,gCAAgC;EACxCC,IAAI,EAAE;AACR,CAAU","ignoreList":[]}
@@ -64,13 +64,14 @@ export const useWhackAMoleStore = create()(subscribeWithSelector(immerMiddleware
64
64
  isPlaying
65
65
  } = get();
66
66
  if (!isPlaying) return;
67
- const hole = holes.find(h => h.id === holeId);
68
- if (!hole || !hole.isActive) 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;
69
70
  set(draft => {
70
71
  draft.score = draft.score + points;
71
- const holeToUpdate = draft.holes.find(h => h.id === holeId);
72
- if (holeToUpdate) {
73
- holeToUpdate.isActive = false;
72
+ // Optimized: Direct array access instead of find
73
+ if (draft.holes[holeId]) {
74
+ draft.holes[holeId].isActive = false;
74
75
  }
75
76
  });
76
77
  },
@@ -154,6 +155,18 @@ export const useGameState = () => useWhackAMoleStore(state => ({
154
155
  }));
155
156
  export const useScore = () => useWhackAMoleStore(state => state.score);
156
157
  export const useTimeLeft = () => useWhackAMoleStore(state => state.timeLeft);
157
- export const useActiveHoles = () => useWhackAMoleStore(state => state.holes.filter(hole => hole.isActive));
158
- export const useHoleById = holeId => useWhackAMoleStore(state => state.holes.find(hole => hole.id === holeId));
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);
159
172
  //# sourceMappingURL=WhackAMoleStore.js.map
@@ -1 +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","hole","find","h","holeToUpdate","updateScore","decrementTime","currentState","forEach","setHoles","activateHole","state","deactivateHole","batchUpdateHoles","updates","hasChanges","some","update","useGameState","useScore","useTimeLeft","useActiveHoles","filter","useHoleById"],"sourceRoot":"../../../../src","sources":["games/whack-a-mole/WhackAMoleStore.ts"],"mappings":"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","ignoreList":[]}
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":[]}
@@ -76,7 +76,7 @@ export const GameHole = /*#__PURE__*/React.memo(({
76
76
 
77
77
  // Optimized hit handler with memoized hole state check
78
78
  const handlePress = useCallback(() => {
79
- // Only trigger whack animation if mole is active
79
+ // Only trigger whack animation if mole is active (optimized check)
80
80
  if (hole.isActive || moleAnimation.value > 0) {
81
81
  // Whack animation sequence - constrained to hole area
82
82
  whackScale.value = withSequence(withSpring(1.3, {
@@ -121,7 +121,7 @@ export const GameHole = /*#__PURE__*/React.memo(({
121
121
  // No mole present, just trigger normal hit
122
122
  onPress(hole.id);
123
123
  }
124
- }, [hole.id, hole.isActive, onPress]);
124
+ }, [hole.id, hole.isActive, onPress, moleAnimation]);
125
125
  return /*#__PURE__*/_jsxs(TouchableOpacity, {
126
126
  style: holeContainerStyle,
127
127
  onPress: handlePress,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","View","TouchableOpacity","StyleSheet","Animated","useSharedValue","useAnimatedStyle","withSpring","withSequence","withTiming","interpolate","Extrapolation","Canvas","SkiaCanvas","Circle","Group","GAME_CONFIG","COLORS","MoleCharacter","jsx","_jsx","jsxs","_jsxs","GameHole","memo","hole","moleAnimation","hitAnimation","onPress","holeSize","HOLE_SIZE","whackScale","whackRotation","whackBounce","animationConstants","translateYRange","scaleRange","maxTranslateY","moleStyle","translateY","value","CLAMP","emergenceScale","bounceY","finalTranslateY","Math","max","transform","scale","rotate","opacity","hitStyle","holeContainerStyle","styles","holeContainer","width","height","holeStyle","hitEffectContainerStyle","hitEffectContainer","moleContainerStyle","moleContainer","bottom","zIndex","handlePress","isActive","damping","stiffness","duration","setTimeout","id","style","activeOpacity","children","cx","cy","r","color","HIT_EFFECT_OUTER","HIT_EFFECT_INNER","size","create","justifyContent","alignItems","position","backgroundColor","borderWidth","borderColor","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","pointerEvents"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/GameHole.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","View","TouchableOpacity","StyleSheet","Animated","useSharedValue","useAnimatedStyle","withSpring","withSequence","withTiming","interpolate","Extrapolation","Canvas","SkiaCanvas","Circle","Group","GAME_CONFIG","COLORS","MoleCharacter","jsx","_jsx","jsxs","_jsxs","GameHole","memo","hole","moleAnimation","hitAnimation","onPress","holeSize","HOLE_SIZE","whackScale","whackRotation","whackBounce","animationConstants","translateYRange","scaleRange","maxTranslateY","moleStyle","translateY","value","CLAMP","emergenceScale","bounceY","finalTranslateY","Math","max","transform","scale","rotate","opacity","hitStyle","holeContainerStyle","styles","holeContainer","width","height","holeStyle","hitEffectContainerStyle","hitEffectContainer","moleContainerStyle","moleContainer","bottom","zIndex","handlePress","isActive","damping","stiffness","duration","setTimeout","id","style","activeOpacity","children","cx","cy","r","color","HIT_EFFECT_OUTER","HIT_EFFECT_INNER","size","create","justifyContent","alignItems","position","backgroundColor","borderWidth","borderColor","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","pointerEvents"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/GameHole.tsx"],"mappings":"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","ignoreList":[]}
@@ -34,6 +34,11 @@ export const ScoreBoard = /*#__PURE__*/React.memo(({
34
34
  const styles = StyleSheet.create({
35
35
  scoreBoard: {
36
36
  ...RESPONSIVE_SCOREBOARD_CONTAINER,
37
+ position: 'absolute',
38
+ top: 0,
39
+ left: 20,
40
+ right: 20,
41
+ zIndex: 100,
37
42
  flexDirection: 'row',
38
43
  justifyContent: 'space-between',
39
44
  alignItems: 'center',
@@ -41,7 +46,6 @@ const styles = StyleSheet.create({
41
46
  // Semi-transparent green
42
47
  borderRadius: 16,
43
48
  padding: 20,
44
- marginBottom: 20,
45
49
  borderWidth: 1,
46
50
  borderColor: 'rgba(255, 255, 255, 0.3)' // Subtle white border
47
51
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","StyleSheet","RESPONSIVE_SCOREBOARD_CONTAINER","RESPONSIVE_SCOREBOARD_FONTS","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","score","timeLeft","style","styles","scoreBoard","children","scoreSection","scoreLabel","scoreValue","timeValue","create","flexDirection","justifyContent","alignItems","backgroundColor","borderRadius","padding","marginBottom","borderWidth","borderColor","flex","fontSize","labelSize","fontWeight","color","valueSize","timeSize"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/ScoreBoard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SAASC,+BAA+B,EAAEC,2BAA2B,QAAQ,kCAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOvG,OAAO,MAAMC,UAAqC,gBAAGV,KAAK,CAACW,IAAI,CAAC,CAAC;EAAEC,KAAK;EAAEC;AAAS,CAAC,KAAK;EACvF,oBACEJ,KAAA,CAACR,IAAI;IAACa,KAAK,EAAEC,MAAM,CAACC,UAAW;IAAAC,QAAA,gBAC7BR,KAAA,CAACR,IAAI;MAACa,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BV,IAAA,CAACL,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAK,CAAM,CAAC,eAC5CV,IAAA,CAACL,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACK,UAAW;QAAAH,QAAA,EAAEL;MAAK,CAAO,CAAC;IAAA,CAC1C,CAAC,eACPH,KAAA,CAACR,IAAI;MAACa,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BV,IAAA,CAACL,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAI,CAAM,CAAC,eAC3CV,IAAA,CAACL,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACM,SAAU;QAAAJ,QAAA,EAAEJ;MAAQ,CAAO,CAAC;IAAA,CAC5C,CAAC;EAAA,CACH,CAAC;AAEX,CAAC,CAAC;AAEF,MAAME,MAAM,GAAGZ,UAAU,CAACmB,MAAM,CAAC;EAC/BN,UAAU,EAAE;IACV,GAAGZ,+BAA+B;IAClCmB,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,wBAAwB;IAAE;IAC3CC,YAAY,EAAE,EAAE;IAChBC,OAAO,EAAE,EAAE;IACXC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,0BAA0B,CAAE;EAC3C,CAAC;EACDb,YAAY,EAAE;IACZO,UAAU,EAAE,QAAQ;IACpBO,IAAI,EAAE;EACR,CAAC;EACDb,UAAU,EAAE;IACVc,QAAQ,EAAE5B,2BAA2B,CAAC6B,SAAS;IAC/CC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS;IAChBP,YAAY,EAAE;EAChB,CAAC;EACDT,UAAU,EAAE;IACVa,QAAQ,EAAE5B,2BAA2B,CAACgC,SAAS;IAC/CF,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE;EACT,CAAC;EACDf,SAAS,EAAE;IACTY,QAAQ,EAAE5B,2BAA2B,CAACiC,QAAQ;IAC9CH,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","RESPONSIVE_SCOREBOARD_CONTAINER","RESPONSIVE_SCOREBOARD_FONTS","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","score","timeLeft","style","styles","scoreBoard","children","scoreSection","scoreLabel","scoreValue","timeValue","create","position","top","left","right","zIndex","flexDirection","justifyContent","alignItems","backgroundColor","borderRadius","padding","borderWidth","borderColor","flex","fontSize","labelSize","fontWeight","color","marginBottom","valueSize","timeSize"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/ScoreBoard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SAASC,+BAA+B,EAAEC,2BAA2B,QAAQ,kCAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOvG,OAAO,MAAMC,UAAqC,gBAAGV,KAAK,CAACW,IAAI,CAAC,CAAC;EAAEC,KAAK;EAAEC;AAAS,CAAC,KAAK;EACvF,oBACEJ,KAAA,CAACR,IAAI;IAACa,KAAK,EAAEC,MAAM,CAACC,UAAW;IAAAC,QAAA,gBAC7BR,KAAA,CAACR,IAAI;MAACa,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BV,IAAA,CAACL,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAK,CAAM,CAAC,eAC5CV,IAAA,CAACL,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACK,UAAW;QAAAH,QAAA,EAAEL;MAAK,CAAO,CAAC;IAAA,CAC1C,CAAC,eACPH,KAAA,CAACR,IAAI;MAACa,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BV,IAAA,CAACL,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAI,CAAM,CAAC,eAC3CV,IAAA,CAACL,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACM,SAAU;QAAAJ,QAAA,EAAEJ;MAAQ,CAAO,CAAC;IAAA,CAC5C,CAAC;EAAA,CACH,CAAC;AAEX,CAAC,CAAC;AAEF,MAAME,MAAM,GAAGZ,UAAU,CAACmB,MAAM,CAAC;EAC/BN,UAAU,EAAE;IACV,GAAGZ,+BAA+B;IAClCmB,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,EAAE;IACRC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,GAAG;IACXC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,wBAAwB;IAAE;IAC3CC,YAAY,EAAE,EAAE;IAChBC,OAAO,EAAE,EAAE;IACXC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,0BAA0B,CAAE;EAC3C,CAAC;EACDjB,YAAY,EAAE;IACZY,UAAU,EAAE,QAAQ;IACpBM,IAAI,EAAE;EACR,CAAC;EACDjB,UAAU,EAAE;IACVkB,QAAQ,EAAEhC,2BAA2B,CAACiC,SAAS;IAC/CC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS;IAChBC,YAAY,EAAE;EAChB,CAAC;EACDrB,UAAU,EAAE;IACViB,QAAQ,EAAEhC,2BAA2B,CAACqC,SAAS;IAC/CH,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE;EACT,CAAC;EACDnB,SAAS,EAAE;IACTgB,QAAQ,EAAEhC,2BAA2B,CAACsC,QAAQ;IAC9CJ,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
@@ -3,7 +3,6 @@
3
3
  export { ScoreBoard } from "./ScoreBoard.js";
4
4
  export { GameHole } from "./GameHole.js";
5
5
  export { GameGrid } from "./GameGrid.js";
6
- export { GameOverModal } from "./GameOverModal.js";
7
6
  export { MoleCharacter } from "./MoleCharacter.js";
8
7
  export { GameBackground } from "./GameBackground.js";
9
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ScoreBoard","GameHole","GameGrid","GameOverModal","MoleCharacter","GameBackground"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,cAAc,QAAQ,qBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["ScoreBoard","GameHole","GameGrid","MoleCharacter","GameBackground"],"sourceRoot":"../../../../../src","sources":["games/whack-a-mole/components/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,cAAc,QAAQ,qBAAkB","ignoreList":[]}
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import { gamesList } from "./GamesService.js";
3
+ import { gamesList, GAME_IDS } from "./GamesService.js";
4
4
  import { BALLOON_BLASTER_THEME, BALLOON_BLASTER_DIFFICULTY_DESCRIPTIONS } from "../games/balloon-blaster/BalloonBlasterConstants.js";
5
5
  import { FRUIT_NINJA_THEME, FRUIT_NINJA_DIFFICULTY_DESCRIPTIONS } from "../games/fruit-ninja/FruitNinjaConstants.js";
6
6
  import { MAZE_RUNNER_THEME, MAZE_RUNNER_DIFFICULTY_DESCRIPTIONS } from "../games/maze-runner/MazeRunnerConstants.js";
7
7
  import { WHACK_A_MOLE_THEME, WHACK_A_MOLE_DIFFICULTY_DESCRIPTIONS } from "../games/whack-a-mole/WhackAMoleConstants.js";
8
8
  import { SPACE_FIGHTER_THEME, SPACE_FIGHTER_DIFFICULTY_DESCRIPTIONS } from "../games/space-fighter/SpaceFighterConstants.js";
9
9
  import { POPIT_FIDGET_THEME, POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS } from "../games/popit-fidget/PopitFidgetConstants.js";
10
-
11
10
  // Game Theme Constants - imported from individual game constants files
12
11
  export const GAME_THEMES = {
13
12
  balloonBlaster: BALLOON_BLASTER_THEME,
@@ -28,13 +27,6 @@ export const GAME_DIFFICULTY_DESCRIPTIONS = {
28
27
  popitFidget: POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS
29
28
  };
30
29
 
31
- // Game Duration Constants
32
- export const GAME_DURATIONS = {
33
- EASY: 60,
34
- MEDIUM: 120,
35
- HARD: 180
36
- };
37
-
38
30
  // Difficulty Levels
39
31
  export const DIFFICULTY_LEVELS = ['easy', 'medium', 'hard'];
40
32
  // Game Names
@@ -48,17 +40,17 @@ export const GAME_NAMES = {
48
40
  // Helper functions to get game-specific data
49
41
  export const getGameTheme = gameId => {
50
42
  switch (gameId) {
51
- case 'balloon-blaster':
43
+ case GAME_IDS.BALLOON_BLASTER:
52
44
  return GAME_THEMES.balloonBlaster;
53
- case 'fruit-ninja':
45
+ case GAME_IDS.FRUIT_NINJA:
54
46
  return GAME_THEMES.fruitNinja;
55
- case 'maze-runner':
47
+ case GAME_IDS.MAZE_RUNNER:
56
48
  return GAME_THEMES.mazeRunner;
57
- case 'whack-a-mole':
49
+ case GAME_IDS.WHACK_A_MOLE:
58
50
  return GAME_THEMES.whackAMole;
59
- case 'space-fighter':
51
+ case GAME_IDS.SPACE_FIGHTER:
60
52
  return GAME_THEMES.spaceFighter;
61
- case 'popit-fidget':
53
+ case GAME_IDS.POPIT_FIDGET:
62
54
  return GAME_THEMES.popitFidget;
63
55
  default:
64
56
  return GAME_THEMES.balloonBlaster;
@@ -67,17 +59,17 @@ export const getGameTheme = gameId => {
67
59
  };
68
60
  export const getGameDifficultyDescriptions = gameId => {
69
61
  switch (gameId) {
70
- case 'balloon-blaster':
62
+ case GAME_IDS.BALLOON_BLASTER:
71
63
  return GAME_DIFFICULTY_DESCRIPTIONS.balloonBlaster;
72
- case 'fruit-ninja':
64
+ case GAME_IDS.FRUIT_NINJA:
73
65
  return GAME_DIFFICULTY_DESCRIPTIONS.fruitNinja;
74
- case 'maze-runner':
66
+ case GAME_IDS.MAZE_RUNNER:
75
67
  return GAME_DIFFICULTY_DESCRIPTIONS.mazeRunner;
76
- case 'whack-a-mole':
68
+ case GAME_IDS.WHACK_A_MOLE:
77
69
  return GAME_DIFFICULTY_DESCRIPTIONS.whackAMole;
78
- case 'space-fighter':
70
+ case GAME_IDS.SPACE_FIGHTER:
79
71
  return GAME_DIFFICULTY_DESCRIPTIONS.spaceFighter;
80
- case 'popit-fidget':
72
+ case GAME_IDS.POPIT_FIDGET:
81
73
  return GAME_DIFFICULTY_DESCRIPTIONS.popitFidget;
82
74
  default:
83
75
  return GAME_DIFFICULTY_DESCRIPTIONS.balloonBlaster;