react-native-games 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/README.md +121 -130
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +111 -423
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +27 -28
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +42 -117
  7. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +12 -1
  9. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +102 -75
  11. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js +139 -30
  13. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  14. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +7 -6
  15. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  16. package/lib/module/games/balloon-blaster/components/index.js +0 -3
  17. package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
  18. package/lib/module/games/fruit-ninja/FruitNinja.js +94 -376
  19. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  20. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +19 -22
  21. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  22. package/lib/module/games/fruit-ninja/FruitNinjaService.js +30 -9
  23. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -1
  24. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +29 -4
  25. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  26. package/lib/module/games/fruit-ninja/components/GameArea.js +194 -29
  27. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
  28. package/lib/module/games/fruit-ninja/components/GameBackground.js +107 -190
  29. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
  30. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +9 -30
  31. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  32. package/lib/module/games/fruit-ninja/components/index.js +0 -3
  33. package/lib/module/games/fruit-ninja/components/index.js.map +1 -1
  34. package/lib/module/games/maze-runner/MazeRunner.js +106 -109
  35. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  36. package/lib/module/games/maze-runner/MazeRunnerConstants.js +19 -24
  37. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  38. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +5 -4
  39. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -1
  40. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +16 -7
  41. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  42. package/lib/module/games/maze-runner/components/ScoreBoard.js +8 -3
  43. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  44. package/lib/module/games/maze-runner/components/WallComponent.js +3 -2
  45. package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -1
  46. package/lib/module/games/maze-runner/components/index.js +0 -1
  47. package/lib/module/games/maze-runner/components/index.js.map +1 -1
  48. package/lib/module/games/popit-fidget/PopitFidget.js +113 -112
  49. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  50. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +20 -23
  51. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -1
  52. package/lib/module/games/popit-fidget/PopitFidgetService.js +0 -59
  53. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -1
  54. package/lib/module/games/popit-fidget/PopitFidgetStore.js +0 -27
  55. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
  56. package/lib/module/games/popit-fidget/components/BubbleComponent.js +24 -22
  57. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -1
  58. package/lib/module/games/popit-fidget/components/GameBackground.js +4 -1
  59. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -1
  60. package/lib/module/games/popit-fidget/components/ScoreBoard.js +9 -2
  61. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
  62. package/lib/module/games/popit-fidget/components/index.js +0 -2
  63. package/lib/module/games/popit-fidget/components/index.js.map +1 -1
  64. package/lib/module/games/space-fighter/SpaceFighter.js +121 -369
  65. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  66. package/lib/module/games/space-fighter/SpaceFighterConstants.js +21 -23
  67. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  68. package/lib/module/games/space-fighter/SpaceFighterService.js +30 -11
  69. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -1
  70. package/lib/module/games/space-fighter/SpaceFighterStore.js +54 -2
  71. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
  72. package/lib/module/games/space-fighter/components/AsteroidComponent.js +7 -5
  73. package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -1
  74. package/lib/module/games/space-fighter/components/GameArea.js +234 -14
  75. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
  76. package/lib/module/games/space-fighter/components/GameBackground.js +10 -65
  77. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -1
  78. package/lib/module/games/space-fighter/components/ScoreBoard.js +9 -7
  79. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
  80. package/lib/module/games/space-fighter/components/Spacecraft3D.js +72 -111
  81. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -1
  82. package/lib/module/games/space-fighter/components/SpacecraftPath.js +42 -27
  83. package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -1
  84. package/lib/module/games/space-fighter/components/index.js +0 -3
  85. package/lib/module/games/space-fighter/components/index.js.map +1 -1
  86. package/lib/module/games/whack-a-mole/WhackAMole.js +63 -73
  87. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  88. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +17 -19
  89. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  90. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +20 -7
  91. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -1
  92. package/lib/module/games/whack-a-mole/components/GameHole.js +2 -2
  93. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -1
  94. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +5 -1
  95. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  96. package/lib/module/games/whack-a-mole/components/index.js +0 -1
  97. package/lib/module/games/whack-a-mole/components/index.js.map +1 -1
  98. package/lib/module/services/GamesConstants.js +13 -21
  99. package/lib/module/services/GamesConstants.js.map +1 -1
  100. package/lib/module/services/GamesService.js +30 -26
  101. package/lib/module/services/GamesService.js.map +1 -1
  102. package/lib/module/services/SoundsService.js +21 -21
  103. package/lib/module/shared/helpers/AnimationFrame.js +120 -0
  104. package/lib/module/shared/helpers/AnimationFrame.js.map +1 -0
  105. package/lib/module/shared/helpers/AnimationTracker.js +89 -0
  106. package/lib/module/shared/helpers/AnimationTracker.js.map +1 -0
  107. package/lib/module/shared/helpers/ErrorHandler.js +269 -0
  108. package/lib/module/shared/helpers/ErrorHandler.js.map +1 -0
  109. package/lib/module/shared/helpers/GameControlButton.js +67 -58
  110. package/lib/module/shared/helpers/GameControlButton.js.map +1 -1
  111. package/lib/module/{games/whack-a-mole/components → shared/helpers}/GameOverModal.js +23 -13
  112. package/lib/module/shared/helpers/GameOverModal.js.map +1 -0
  113. package/lib/module/shared/helpers/GameSettingsModal.js +287 -0
  114. package/lib/module/shared/helpers/GameSettingsModal.js.map +1 -0
  115. package/lib/module/shared/helpers/ParticleBlast.js +133 -0
  116. package/lib/module/shared/helpers/ParticleBlast.js.map +1 -0
  117. package/lib/module/shared/helpers/index.js +7 -0
  118. package/lib/module/shared/helpers/index.js.map +1 -1
  119. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +2 -14
  120. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  121. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +8 -7
  122. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -1
  123. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +0 -2
  124. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  125. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  126. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  127. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +1 -15
  128. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  129. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +1 -7
  130. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  131. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -3
  132. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
  133. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +2 -14
  134. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  135. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +5 -5
  136. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -1
  137. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts +9 -1
  138. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -1
  139. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts +1 -0
  140. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -1
  141. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +1 -15
  142. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -1
  143. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
  144. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +1 -7
  145. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  146. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts +0 -3
  147. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -1
  148. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +2 -8
  149. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  150. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +4 -4
  151. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -1
  152. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -1
  153. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  154. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  155. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -1
  156. package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -1
  157. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
  158. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +2 -8
  159. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  160. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +4 -4
  161. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -1
  162. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +0 -21
  163. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -1
  164. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +1 -5
  165. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
  166. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -1
  167. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +2 -2
  168. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -1
  169. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -2
  170. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
  171. package/lib/typescript/src/games/popit-fidget/components/index.d.ts +0 -2
  172. package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -1
  173. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +3 -8
  174. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  175. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +4 -4
  176. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -1
  177. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -1
  178. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -1
  179. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +0 -1
  180. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -1
  181. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +1 -15
  182. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
  183. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -1
  184. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +1 -6
  185. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
  186. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -1
  187. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -1
  188. package/lib/typescript/src/games/space-fighter/components/index.d.ts +0 -3
  189. package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -1
  190. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +2 -11
  191. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  192. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +2 -2
  193. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -1
  194. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -1
  195. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts +0 -1
  196. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -1
  197. package/lib/typescript/src/services/GamesConstants.d.ts +47 -38
  198. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  199. package/lib/typescript/src/services/GamesService.d.ts +20 -3
  200. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  201. package/lib/typescript/src/services/SoundsService.d.ts +20 -20
  202. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts +41 -0
  203. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +1 -0
  204. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts +45 -0
  205. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +1 -0
  206. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts +124 -0
  207. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +1 -0
  208. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -1
  209. package/lib/typescript/src/{games/balloon-blaster/components → shared/helpers}/GameOverModal.d.ts +5 -0
  210. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +1 -0
  211. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts +9 -0
  212. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +1 -0
  213. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts +12 -0
  214. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +1 -0
  215. package/lib/typescript/src/shared/helpers/index.d.ts +9 -0
  216. package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -1
  217. package/package.json +1 -1
  218. package/lib/module/games/balloon-blaster/components/GameOverModal.js +0 -133
  219. package/lib/module/games/balloon-blaster/components/GameOverModal.js.map +0 -1
  220. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +0 -55
  221. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +0 -1
  222. package/lib/module/games/balloon-blaster/components/SliceTrail.js +0 -58
  223. package/lib/module/games/balloon-blaster/components/SliceTrail.js.map +0 -1
  224. package/lib/module/games/fruit-ninja/components/GameOverModal.js +0 -189
  225. package/lib/module/games/fruit-ninja/components/GameOverModal.js.map +0 -1
  226. package/lib/module/games/fruit-ninja/components/ParticleSystem.js +0 -52
  227. package/lib/module/games/fruit-ninja/components/ParticleSystem.js.map +0 -1
  228. package/lib/module/games/fruit-ninja/components/SliceTrail.js +0 -58
  229. package/lib/module/games/fruit-ninja/components/SliceTrail.js.map +0 -1
  230. package/lib/module/games/maze-runner/components/GameOverModal.js +0 -134
  231. package/lib/module/games/maze-runner/components/GameOverModal.js.map +0 -1
  232. package/lib/module/games/popit-fidget/components/GameOverModal.js +0 -132
  233. package/lib/module/games/popit-fidget/components/GameOverModal.js.map +0 -1
  234. package/lib/module/games/popit-fidget/components/ParticleSystem.js +0 -89
  235. package/lib/module/games/popit-fidget/components/ParticleSystem.js.map +0 -1
  236. package/lib/module/games/space-fighter/components/GameOverModal.js +0 -182
  237. package/lib/module/games/space-fighter/components/GameOverModal.js.map +0 -1
  238. package/lib/module/games/space-fighter/components/ParticleComponent.js +0 -34
  239. package/lib/module/games/space-fighter/components/ParticleComponent.js.map +0 -1
  240. package/lib/module/games/space-fighter/components/SettingsModal.js +0 -222
  241. package/lib/module/games/space-fighter/components/SettingsModal.js.map +0 -1
  242. package/lib/module/games/whack-a-mole/components/GameOverModal.js.map +0 -1
  243. package/lib/module/shared/settings/GameSettings.js +0 -295
  244. package/lib/module/shared/settings/GameSettings.js.map +0 -1
  245. package/lib/module/shared/settings/SettingsService.js +0 -125
  246. package/lib/module/shared/settings/SettingsService.js.map +0 -1
  247. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts.map +0 -1
  248. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts +0 -8
  249. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +0 -1
  250. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts +0 -11
  251. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts.map +0 -1
  252. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts +0 -9
  253. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts.map +0 -1
  254. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts +0 -8
  255. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts.map +0 -1
  256. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts +0 -11
  257. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts.map +0 -1
  258. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts +0 -11
  259. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts.map +0 -1
  260. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts +0 -9
  261. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts.map +0 -1
  262. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts +0 -9
  263. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts.map +0 -1
  264. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts +0 -9
  265. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts.map +0 -1
  266. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts +0 -8
  267. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts.map +0 -1
  268. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts +0 -9
  269. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts.map +0 -1
  270. package/lib/typescript/src/games/whack-a-mole/components/GameOverModal.d.ts +0 -9
  271. package/lib/typescript/src/games/whack-a-mole/components/GameOverModal.d.ts.map +0 -1
  272. package/lib/typescript/src/shared/settings/GameSettings.d.ts +0 -36
  273. package/lib/typescript/src/shared/settings/GameSettings.d.ts.map +0 -1
  274. package/lib/typescript/src/shared/settings/SettingsService.d.ts +0 -33
  275. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +0 -1
@@ -3,13 +3,13 @@
3
3
  import React from 'react';
4
4
  import { View, Text, StyleSheet } from 'react-native';
5
5
  import { GAME_CONFIG } from "../FruitNinjaService.js";
6
+ import { useFruitNinjaStore } from "../FruitNinjaStore.js";
6
7
  import { RESPONSIVE_SCOREBOARD_CONTAINER, RESPONSIVE_SCOREBOARD_FONTS } from "../../../shared/helpers/index.js";
7
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
- export const ScoreBoard = ({
9
- score,
10
- timeLeft,
11
- lives
12
- }) => {
9
+ export const ScoreBoard = /*#__PURE__*/React.memo(() => {
10
+ const score = useFruitNinjaStore(state => state.score);
11
+ const timeLeft = useFruitNinjaStore(state => state.timeLeft);
12
+ const lives = useFruitNinjaStore(state => state.lives);
13
13
  return /*#__PURE__*/_jsxs(View, {
14
14
  style: styles.scoreBoard,
15
15
  children: [/*#__PURE__*/_jsxs(View, {
@@ -40,13 +40,13 @@ export const ScoreBoard = ({
40
40
  children: Array.from({
41
41
  length: GAME_CONFIG.MAX_LIVES
42
42
  }).map((_, index) => /*#__PURE__*/_jsx(Text, {
43
- style: [styles.heartIcon, index < lives ? styles.heartActive : styles.heartInactive],
44
- children: "\u2665"
43
+ style: styles.heartIcon,
44
+ children: index < lives ? '❤️' : '🖤'
45
45
  }, index))
46
46
  })]
47
47
  })]
48
48
  });
49
- };
49
+ });
50
50
  const styles = StyleSheet.create({
51
51
  scoreBoard: {
52
52
  ...RESPONSIVE_SCOREBOARD_CONTAINER,
@@ -85,28 +85,7 @@ const styles = StyleSheet.create({
85
85
  },
86
86
  heartIcon: {
87
87
  fontSize: 24,
88
- marginHorizontal: 3,
89
- fontWeight: 'bold'
90
- },
91
- heartActive: {
92
- color: '#ef4444',
93
- // Bright red hearts for available lives
94
- textShadowColor: 'rgba(0, 0, 0, 0.5)',
95
- textShadowOffset: {
96
- width: 1,
97
- height: 1
98
- },
99
- textShadowRadius: 2
100
- },
101
- heartInactive: {
102
- color: '#1f2937',
103
- // Dark black hearts for lost lives
104
- textShadowColor: 'rgba(255, 255, 255, 0.3)',
105
- textShadowOffset: {
106
- width: 1,
107
- height: 1
108
- },
109
- textShadowRadius: 1
88
+ marginHorizontal: 3
110
89
  }
111
90
  });
112
91
  //# sourceMappingURL=ScoreBoard.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","StyleSheet","GAME_CONFIG","RESPONSIVE_SCOREBOARD_CONTAINER","RESPONSIVE_SCOREBOARD_FONTS","jsx","_jsx","jsxs","_jsxs","ScoreBoard","score","timeLeft","lives","style","styles","scoreBoard","children","scoreSection","scoreLabel","scoreValue","timeValue","livesRow","Array","from","length","MAX_LIVES","map","_","index","heartIcon","heartActive","heartInactive","create","flexDirection","justifyContent","alignItems","backgroundColor","marginBottom","borderWidth","borderColor","flex","fontSize","labelSize","fontWeight","color","valueSize","timeSize","marginHorizontal","textShadowColor","textShadowOffset","width","height","textShadowRadius"],"sourceRoot":"../../../../../src","sources":["games/fruit-ninja/components/ScoreBoard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SAASC,WAAW,QAAQ,yBAAsB;AAClD,SAASC,+BAA+B,EAAEC,2BAA2B,QAAQ,kCAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQvG,OAAO,MAAMC,UAAqC,GAAGA,CAAC;EAAEC,KAAK;EAAEC,QAAQ;EAAEC;AAAM,CAAC,KAAK;EACnF,oBACEJ,KAAA,CAACT,IAAI;IAACc,KAAK,EAAEC,MAAM,CAACC,UAAW;IAAAC,QAAA,gBAC7BR,KAAA,CAACT,IAAI;MAACc,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BV,IAAA,CAACN,IAAI;QAACa,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAK,CAAM,CAAC,eAC5CV,IAAA,CAACN,IAAI;QAACa,KAAK,EAAEC,MAAM,CAACK,UAAW;QAAAH,QAAA,EAAEN;MAAK,CAAO,CAAC;IAAA,CAC1C,CAAC,eAEPF,KAAA,CAACT,IAAI;MAACc,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BV,IAAA,CAACN,IAAI;QAACa,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAI,CAAM,CAAC,eAC3CV,IAAA,CAACN,IAAI;QAACa,KAAK,EAAEC,MAAM,CAACM,SAAU;QAAAJ,QAAA,EAAEL;MAAQ,CAAO,CAAC;IAAA,CAC5C,CAAC,eAEPH,KAAA,CAACT,IAAI;MAACc,KAAK,EAAEC,MAAM,CAACG,YAAa;MAAAD,QAAA,gBAC/BV,IAAA,CAACN,IAAI;QAACa,KAAK,EAAEC,MAAM,CAACI,UAAW;QAAAF,QAAA,EAAC;MAAK,CAAM,CAAC,eAC5CV,IAAA,CAACP,IAAI;QAACc,KAAK,EAAEC,MAAM,CAACO,QAAS;QAAAL,QAAA,EAC1BM,KAAK,CAACC,IAAI,CAAC;UAAEC,MAAM,EAAEtB,WAAW,CAACuB;QAAU,CAAC,CAAC,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,kBAC1DtB,IAAA,CAACN,IAAI;UAAaa,KAAK,EAAE,CAACC,MAAM,CAACe,SAAS,EAAED,KAAK,GAAGhB,KAAK,GAAGE,MAAM,CAACgB,WAAW,GAAGhB,MAAM,CAACiB,aAAa,CAAE;UAAAf,QAAA,EAAC;QAExG,GAFWY,KAEL,CACP;MAAC,CACE,CAAC;IAAA,CACH,CAAC;EAAA,CAEH,CAAC;AAEX,CAAC;AAED,MAAMd,MAAM,GAAGb,UAAU,CAAC+B,MAAM,CAAC;EAC/BjB,UAAU,EAAE;IACV,GAAGZ,+BAA+B;IAClC8B,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,wBAAwB;IAAE;IAC3CC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,0BAA0B,CAAE;EAC3C,CAAC;EACDtB,YAAY,EAAE;IACZkB,UAAU,EAAE,QAAQ;IACpBK,IAAI,EAAE;EACR,CAAC;EACDtB,UAAU,EAAE;IACVuB,QAAQ,EAAErC,2BAA2B,CAACsC,SAAS;IAC/CC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS;IAChBP,YAAY,EAAE;EAChB,CAAC;EACDlB,UAAU,EAAE;IACVsB,QAAQ,EAAErC,2BAA2B,CAACyC,SAAS;IAC/CF,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS,CAAC;EACnB,CAAC;EACDxB,SAAS,EAAE;IACTqB,QAAQ,EAAErC,2BAA2B,CAAC0C,QAAQ;IAC9CH,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,SAAS,CAAC;EACnB,CAAC;EACDvB,QAAQ,EAAE;IACRY,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDL,SAAS,EAAE;IACTY,QAAQ,EAAE,EAAE;IACZM,gBAAgB,EAAE,CAAC;IACnBJ,UAAU,EAAE;EACd,CAAC;EACDb,WAAW,EAAE;IACXc,KAAK,EAAE,SAAS;IAAE;IAClBI,eAAe,EAAE,oBAAoB;IACrCC,gBAAgB,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACzCC,gBAAgB,EAAE;EACpB,CAAC;EACDrB,aAAa,EAAE;IACba,KAAK,EAAE,SAAS;IAAE;IAClBI,eAAe,EAAE,0BAA0B;IAC3CC,gBAAgB,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACzCC,gBAAgB,EAAE;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","GAME_CONFIG","useFruitNinjaStore","RESPONSIVE_SCOREBOARD_CONTAINER","RESPONSIVE_SCOREBOARD_FONTS","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","score","state","timeLeft","lives","style","styles","scoreBoard","children","scoreSection","scoreLabel","scoreValue","timeValue","livesRow","Array","from","length","MAX_LIVES","map","_","index","heartIcon","create","flexDirection","justifyContent","alignItems","backgroundColor","marginBottom","borderWidth","borderColor","flex","fontSize","labelSize","fontWeight","color","valueSize","timeSize","marginHorizontal"],"sourceRoot":"../../../../../src","sources":["games/fruit-ninja/components/ScoreBoard.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,9 +2,6 @@
2
2
 
3
3
  export { ScoreBoard } from "./ScoreBoard.js";
4
4
  export { FruitComponent } from "./FruitComponent.js";
5
- export { SliceTrail } from "./SliceTrail.js";
6
- export { ParticleSystem } from "./ParticleSystem.js";
7
5
  export { GameArea } from "./GameArea.js";
8
- export { GameOverModal } from "./GameOverModal.js";
9
6
  export { GameBackground } from "./GameBackground.js";
10
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ScoreBoard","FruitComponent","SliceTrail","ParticleSystem","GameArea","GameOverModal","GameBackground"],"sourceRoot":"../../../../../src","sources":["games/fruit-ninja/components/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,cAAc,QAAQ,qBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["ScoreBoard","FruitComponent","GameArea","GameBackground"],"sourceRoot":"../../../../../src","sources":["games/fruit-ninja/components/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,cAAc,QAAQ,qBAAkB","ignoreList":[]}
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState, useEffect, useCallback, useRef, useMemo } from 'react';
4
- import { View, StyleSheet, Modal, Dimensions } from 'react-native';
4
+ import { View, StyleSheet, Dimensions } from 'react-native';
5
5
  import { GestureHandlerRootView } from 'react-native-gesture-handler';
6
6
  import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
7
7
  import { playHaptic, HapticType } from "../../services/HapticsService.js";
8
8
  import { MazeRunnerService } from "./MazeRunnerService.js";
9
9
  import { DEFAULT_MAZE_RUNNER_SETTINGS, MAZE_RUNNER_DIFFICULTY_CONFIG } from "./MazeRunnerConstants.js";
10
- import { GameBackground, ScoreBoard, EnhancedGameArea, GameOverModal } from "./components/index.js";
11
- import { GameControlButton } from "../../shared/helpers/index.js";
12
- import { GameSettings } from "../../shared/settings/GameSettings.js";
13
- import { createGameSettingsStore } from "../../shared/settings/SettingsService.js";
10
+ import { GameBackground, ScoreBoard, EnhancedGameArea } from "./components/index.js";
11
+ import { GameControlButton, GameOverModal } from "../../shared/helpers/index.js";
12
+ import { GameSettingsModal } from "../../shared/helpers/index.js";
13
+ import { GAME_IDS } from "../../services/GamesService.js";
14
14
 
15
- // Hook to handle responsive dimensions
15
+ // Optimized hook to handle responsive dimensions with memoization
16
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
17
  const useResponsiveDimensions = () => {
18
18
  const [dimensions, setDimensions] = useState(() => {
@@ -26,23 +26,28 @@ const useResponsiveDimensions = () => {
26
26
  };
27
27
  });
28
28
  useEffect(() => {
29
- const subscription = Dimensions.addEventListener('change', ({
29
+ const handleDimensionChange = ({
30
30
  window
31
31
  }) => {
32
- setDimensions({
33
- width: window.width,
34
- height: window.height
32
+ setDimensions(prev => {
33
+ // Only update if dimensions actually changed to prevent unnecessary re-renders
34
+ if (prev.width !== window.width || prev.height !== window.height) {
35
+ return {
36
+ width: window.width,
37
+ height: window.height
38
+ };
39
+ }
40
+ return prev;
35
41
  });
36
- });
42
+ };
43
+ const subscription = Dimensions.addEventListener('change', handleDimensionChange);
37
44
  return () => subscription?.remove();
38
45
  }, []);
39
46
  return dimensions;
40
47
  };
41
48
  export const MazeRunner = ({
42
- settings: externalSettings,
43
- onSettingsChange,
44
- showSettingsModal = false,
45
- onToggleSettingsModal
49
+ settings,
50
+ onSettingsChange
46
51
  }) => {
47
52
  // Use responsive dimensions hook inside the component
48
53
  const {
@@ -50,28 +55,6 @@ export const MazeRunner = ({
50
55
  height: screenHeight
51
56
  } = useResponsiveDimensions();
52
57
 
53
- // Create unified game settings store
54
- const settingsStore = useMemo(() => {
55
- const defaultSettings = {
56
- ...DEFAULT_MAZE_RUNNER_SETTINGS,
57
- ...externalSettings
58
- };
59
-
60
- // Wrapper function to handle the callback type mismatch
61
- const handleSettingsChange = onSettingsChange ? newSettings => {
62
- const mazeRunnerSettings = {
63
- ...DEFAULT_MAZE_RUNNER_SETTINGS,
64
- ...externalSettings,
65
- difficulty: newSettings.difficulty,
66
- soundEnabled: newSettings.soundEnabled,
67
- hapticEnabled: newSettings.hapticEnabled,
68
- gameDuration: newSettings.gameDuration
69
- };
70
- onSettingsChange(mazeRunnerSettings);
71
- } : undefined;
72
- return createGameSettingsStore(defaultSettings, handleSettingsChange);
73
- }, [externalSettings, onSettingsChange]);
74
-
75
58
  // Memoize responsive game area dimensions calculation
76
59
  const responsiveDimensions = useMemo(() => {
77
60
  // Reserve space for scoreboard (~80px), control button (~100px), and padding (~40px)
@@ -90,11 +73,11 @@ export const MazeRunner = ({
90
73
  };
91
74
  }, [screenWidth, screenHeight]);
92
75
 
93
- // Game service with initial responsive dimensions
94
- const [gameService] = useState(() => {
76
+ // Memoized game service initialization to prevent recreation
77
+ const gameService = useMemo(() => {
95
78
  const currentSettings = {
96
79
  ...DEFAULT_MAZE_RUNNER_SETTINGS,
97
- ...externalSettings
80
+ ...settings
98
81
  };
99
82
  // Calculate initial dimensions for service creation
100
83
  const {
@@ -108,7 +91,7 @@ export const MazeRunner = ({
108
91
  const gameAreaSize = Math.max(300, Math.min(maxDimension, 600));
109
92
  return new MazeRunnerService(currentSettings.gridSize, gameAreaSize, gameAreaSize, currentSettings.gameDuration // Pass game duration for countdown timer
110
93
  );
111
- });
94
+ }, []); // Empty dependency array to create only once
112
95
 
113
96
  // Game state
114
97
  const [gameState, setGameState] = useState(gameService.getGameState());
@@ -116,12 +99,36 @@ export const MazeRunner = ({
116
99
  const [walls, setWalls] = useState(() => gameService.getWalls());
117
100
  const completionHandledRef = useRef(false);
118
101
 
119
- // Settings
120
- const settings = settingsStore();
102
+ // Settings are already available from the global store hook above
121
103
 
122
104
  // Memoize game config (updates when dimensions change)
123
105
  const gameConfig = useMemo(() => gameService.getGameConfig(), [gameService, responsiveDimensions]);
124
106
 
107
+ // Memoize game control button props to prevent unnecessary re-renders
108
+ const gameControlButtonProps = useMemo(() => ({
109
+ isPlaying: gameState.isPlaying,
110
+ gameOver: gameState.isCompleted || gameState.gameOver,
111
+ startButtonText: "START MAZE",
112
+ stopButtonText: "STOP GAME",
113
+ startButtonSubtext: "Navigate the maze!",
114
+ stopButtonSubtext: "End current game",
115
+ startButtonColor: "#8b4513",
116
+ stopButtonColor: "#dc2626",
117
+ startButtonBorderColor: "#cd853f",
118
+ stopButtonBorderColor: "#f87171"
119
+ }), [gameState.isPlaying, gameState.isCompleted, gameState.gameOver]);
120
+
121
+ // Memoize game over modal props to prevent unnecessary re-renders
122
+ const gameOverModalProps = useMemo(() => ({
123
+ isVisible: showGameOverModal,
124
+ score: gameState.score,
125
+ buttonText: gameState.isCompleted ? "Navigate Again!" : "Try Again!",
126
+ primaryColor: "rgba(139, 69, 19, 0.8)",
127
+ borderColor: "rgba(139, 69, 19, 0.9)",
128
+ buttonColor: "#8b4513",
129
+ buttonBorderColor: "#cd853f"
130
+ }), [showGameOverModal, gameState.score, gameState.isCompleted]);
131
+
125
132
  // Generate new maze on component mount
126
133
  useEffect(() => {
127
134
  gameService.resetGame(); // Generate fresh maze on launch
@@ -129,58 +136,68 @@ export const MazeRunner = ({
129
136
 
130
137
  // Update game service when settings change or screen dimensions change
131
138
  useEffect(() => {
132
- const gridSize = MAZE_RUNNER_DIFFICULTY_CONFIG[settings.difficulty].gridSize;
133
- const gameDuration = settings.gameDuration;
139
+ const difficultyConfig = MAZE_RUNNER_DIFFICULTY_CONFIG[settings.difficulty];
140
+ const gridSize = difficultyConfig.gridSize;
141
+ const gameDuration = difficultyConfig.gameDuration; // Get from difficulty config
142
+
134
143
  gameService.updateSettings(gridSize, gameDuration, responsiveDimensions.width, responsiveDimensions.height);
135
- }, [settings.difficulty, settings.gameDuration, gameService, responsiveDimensions]);
144
+ }, [settings.difficulty, gameService, responsiveDimensions]);
136
145
 
137
- // Set up game state change callback
138
- useEffect(() => {
139
- const handleStateChange = newState => {
140
- setGameState(prevState => {
141
- // Handle game completion (only once per level)
142
- if (newState.isCompleted && !completionHandledRef.current) {
143
- completionHandledRef.current = true;
144
- handleGameCompleted();
145
- // Show game over modal immediately when maze is completed
146
- setTimeout(() => {
147
- setShowGameOverModal(true);
148
- }, 500); // Short delay to let completion animation/feedback finish
149
- }
146
+ // Memoized state change callback to prevent recreation
147
+ const handleStateChange = useCallback(newState => {
148
+ setGameState(prevState => {
149
+ // Handle game completion (only once per level)
150
+ if (newState.isCompleted && !completionHandledRef.current) {
151
+ completionHandledRef.current = true;
152
+ handleGameCompleted();
153
+ // Show game over modal immediately when maze is completed
154
+ setTimeout(() => {
155
+ setShowGameOverModal(true);
156
+ }, 500); // Short delay to let completion animation/feedback finish
157
+ }
150
158
 
151
- // Handle game over (if you want to show modal after certain time)
152
- if (!newState.isPlaying && prevState.isPlaying && !newState.isCompleted) {
153
- setTimeout(() => {
154
- setShowGameOverModal(true);
155
- }, 1000);
156
- }
157
- return newState;
158
- });
159
+ // Handle game over (if you want to show modal after certain time)
160
+ if (!newState.isPlaying && prevState.isPlaying && !newState.isCompleted) {
161
+ setTimeout(() => {
162
+ setShowGameOverModal(true);
163
+ }, 1000);
164
+ }
165
+ return newState;
166
+ });
159
167
 
160
- // Update walls whenever game state changes (maze might have been regenerated)
161
- setWalls(gameService.getWalls());
162
- };
168
+ // Update walls whenever game state changes (maze might have been regenerated)
169
+ setWalls(gameService.getWalls());
170
+ }, [gameService]);
171
+
172
+ // Set up game state change callback
173
+ useEffect(() => {
163
174
  gameService.setGameStateChangeCallback(handleStateChange);
164
175
  return () => {
176
+ // Fully reset game when unmounting (navigate back)
177
+ try {
178
+ gameService.stopGame();
179
+ } catch {}
180
+ try {
181
+ gameService.resetGame();
182
+ } catch {}
165
183
  gameService.cleanup();
166
184
  };
167
- }, []); // Empty dependency array to prevent re-runs
168
-
185
+ }, [gameService, handleStateChange]);
169
186
  const handleGameCompleted = useCallback(() => {
170
- playSound(GAME_SOUNDS.MAZE_RUNNER.COMPLETE, settings.soundEnabled);
171
- playHaptic(HapticType.SUCCESS, settings.hapticEnabled);
172
- }, [settings.soundEnabled, settings.hapticEnabled]);
187
+ playSound(GAME_SOUNDS.MAZE_RUNNER.COMPLETE, settings.enableSounds);
188
+ playHaptic(HapticType.SUCCESS, settings.enableHaptics);
189
+ }, [settings.enableSounds, settings.enableHaptics]);
173
190
  const handleStartGame = useCallback(() => {
174
191
  completionHandledRef.current = false; // Reset completion flag
175
192
  gameService.startGame();
176
193
  setShowGameOverModal(false);
177
- playSound(GAME_SOUNDS.MAZE_RUNNER.START, settings.soundEnabled);
178
- playHaptic(HapticType.MEDIUM, settings.hapticEnabled);
179
- }, [gameService, settings.soundEnabled, settings.hapticEnabled]);
194
+ playSound(GAME_SOUNDS.MAZE_RUNNER.START, settings.enableSounds);
195
+ playHaptic(HapticType.MEDIUM, settings.enableHaptics);
196
+ }, [gameService, settings.enableSounds, settings.enableHaptics]);
180
197
  const handleStopGame = useCallback(() => {
181
198
  gameService.stopGame();
182
- playSound(GAME_SOUNDS.MAZE_RUNNER.STOP, settings.soundEnabled);
183
- }, [gameService, settings.soundEnabled]);
199
+ playSound(GAME_SOUNDS.MAZE_RUNNER.STOP, settings.enableSounds);
200
+ }, [gameService, settings.enableSounds]);
184
201
  const handleBallPositionChange = useCallback(position => {
185
202
  return gameService.updateBallPosition(position);
186
203
  }, [gameService]);
@@ -189,9 +206,6 @@ export const MazeRunner = ({
189
206
  setShowGameOverModal(false);
190
207
  gameService.resetGame(); // Reset without auto-starting
191
208
  }, [gameService]);
192
- const handleCloseGameOverModal = useCallback(() => {
193
- setShowGameOverModal(false);
194
- }, []);
195
209
  return /*#__PURE__*/_jsx(GestureHandlerRootView, {
196
210
  style: styles.container,
197
211
  children: /*#__PURE__*/_jsxs(View, {
@@ -208,36 +222,19 @@ export const MazeRunner = ({
208
222
  gameConfig: gameConfig,
209
223
  walls: walls,
210
224
  onBallPositionChange: handleBallPositionChange,
211
- hapticEnabled: settings.hapticEnabled
225
+ hapticEnabled: settings.enableHaptics
212
226
  })
213
227
  }), /*#__PURE__*/_jsx(GameControlButton, {
214
- isPlaying: gameState.isPlaying,
215
- gameOver: gameState.isCompleted || gameState.gameOver,
228
+ ...gameControlButtonProps,
216
229
  onStartGame: handleStartGame,
217
- onStopGame: handleStopGame,
218
- startButtonText: "START MAZE",
219
- stopButtonText: "STOP GAME",
220
- startButtonSubtext: "Navigate the maze!",
221
- stopButtonSubtext: "End current game",
222
- startButtonColor: "#8b4513",
223
- stopButtonColor: "#dc2626",
224
- startButtonBorderColor: "#cd853f",
225
- stopButtonBorderColor: "#f87171"
230
+ onStopGame: handleStopGame
226
231
  }), /*#__PURE__*/_jsx(GameOverModal, {
227
- visible: showGameOverModal,
228
- gameState: gameState,
229
- onPlayAgain: handlePlayAgain,
230
- onClose: handleCloseGameOverModal
231
- }), /*#__PURE__*/_jsx(Modal, {
232
- visible: showSettingsModal,
233
- animationType: "slide",
234
- presentationStyle: "pageSheet",
235
- onRequestClose: onToggleSettingsModal,
236
- children: /*#__PURE__*/_jsx(GameSettings, {
237
- gameId: "maze-runner",
238
- onClose: onToggleSettingsModal || (() => {}),
239
- settingsStore: settingsStore()
240
- })
232
+ ...gameOverModalProps,
233
+ onPlayAgain: handlePlayAgain
234
+ }), /*#__PURE__*/_jsx(GameSettingsModal, {
235
+ gameId: GAME_IDS.MAZE_RUNNER,
236
+ settings: settings,
237
+ onSettingsChange: onSettingsChange
241
238
  })]
242
239
  })
243
240
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useCallback","useRef","useMemo","View","StyleSheet","Modal","Dimensions","GestureHandlerRootView","playSound","GAME_SOUNDS","playHaptic","HapticType","MazeRunnerService","DEFAULT_MAZE_RUNNER_SETTINGS","MAZE_RUNNER_DIFFICULTY_CONFIG","GameBackground","ScoreBoard","EnhancedGameArea","GameOverModal","GameControlButton","GameSettings","createGameSettingsStore","jsx","_jsx","jsxs","_jsxs","useResponsiveDimensions","dimensions","setDimensions","width","height","get","subscription","addEventListener","window","remove","MazeRunner","settings","externalSettings","onSettingsChange","showSettingsModal","onToggleSettingsModal","screenWidth","screenHeight","settingsStore","defaultSettings","handleSettingsChange","newSettings","mazeRunnerSettings","difficulty","soundEnabled","hapticEnabled","gameDuration","undefined","responsiveDimensions","reservedHeight","availableHeight","availableWidth","maxDimension","Math","min","gameAreaSize","max","gameService","currentSettings","initialWidth","initialHeight","gridSize","gameState","setGameState","getGameState","showGameOverModal","setShowGameOverModal","walls","setWalls","getWalls","completionHandledRef","gameConfig","getGameConfig","resetGame","updateSettings","handleStateChange","newState","prevState","isCompleted","current","handleGameCompleted","setTimeout","isPlaying","setGameStateChangeCallback","cleanup","MAZE_RUNNER","COMPLETE","SUCCESS","handleStartGame","startGame","START","MEDIUM","handleStopGame","stopGame","STOP","handleBallPositionChange","position","updateBallPosition","handlePlayAgain","handleCloseGameOverModal","style","styles","container","children","gameContainer","gameAreaContainer","onBallPositionChange","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","visible","onPlayAgain","onClose","animationType","presentationStyle","onRequestClose","gameId","create","flex","justifyContent","alignItems","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../../src","sources":["games/maze-runner/MazeRunner.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,MAAM,EAAEC,OAAO,QAAQ,OAAO;AAChF,SAASC,IAAI,EAAEC,UAAU,EAAEC,KAAK,EAAEC,UAAU,QAAQ,cAAc;AAClE,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,SAAS,EAAEC,WAAW,QAAQ,iCAA8B;AACrE,SAASC,UAAU,EAAEC,UAAU,QAAQ,kCAA+B;AACtE,SAASC,iBAAiB,QAAuC,wBAAqB;AACtF,SAEEC,4BAA4B,EAC5BC,6BAA6B,QACxB,0BAAuB;AAC9B,SACEC,cAAc,EACdC,UAAU,EACVC,gBAAgB,EAChBC,aAAa,QACR,uBAAc;AACrB,SAASC,iBAAiB,QAAQ,+BAAsB;AACxD,SAASC,YAAY,QAAQ,uCAAoC;AACjE,SAASC,uBAAuB,QAAQ,0CAAuC;;AAE/E;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;EACpC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG9B,QAAQ,CAAC,MAAM;IACjD,MAAM;MAAE+B,KAAK;MAAEC;IAAO,CAAC,GAAGxB,UAAU,CAACyB,GAAG,CAAC,QAAQ,CAAC;IAClD,OAAO;MAAEF,KAAK;MAAEC;IAAO,CAAC;EAC1B,CAAC,CAAC;EAEF/B,SAAS,CAAC,MAAM;IACd,MAAMiC,YAAY,GAAG1B,UAAU,CAAC2B,gBAAgB,CAAC,QAAQ,EAAE,CAAC;MAAEC;IAAsD,CAAC,KAAK;MACxHN,aAAa,CAAC;QAAEC,KAAK,EAAEK,MAAM,CAACL,KAAK;QAAEC,MAAM,EAAEI,MAAM,CAACJ;MAAO,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEF,OAAO,MAAME,YAAY,EAAEG,MAAM,CAAC,CAAC;EACrC,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOR,UAAU;AACnB,CAAC;AASD,OAAO,MAAMS,UAAqC,GAAGA,CAAC;EACpDC,QAAQ,EAAEC,gBAAgB;EAC1BC,gBAAgB;EAChBC,iBAAiB,GAAG,KAAK;EACzBC;AACF,CAAC,KAAK;EACJ;EACA,MAAM;IAAEZ,KAAK,EAAEa,WAAW;IAAEZ,MAAM,EAAEa;EAAa,CAAC,GAAGjB,uBAAuB,CAAC,CAAC;;EAE9E;EACA,MAAMkB,aAAa,GAAG1C,OAAO,CAAC,MAAM;IAClC,MAAM2C,eAAe,GAAG;MAAE,GAAGhC,4BAA4B;MAAE,GAAGyB;IAAiB,CAAC;;IAEhF;IACA,MAAMQ,oBAAoB,GAAGP,gBAAgB,GAAIQ,WAAgB,IAAK;MACpE,MAAMC,kBAAsC,GAAG;QAC7C,GAAGnC,4BAA4B;QAC/B,GAAGyB,gBAAgB;QACnBW,UAAU,EAAEF,WAAW,CAACE,UAAU;QAClCC,YAAY,EAAEH,WAAW,CAACG,YAAY;QACtCC,aAAa,EAAEJ,WAAW,CAACI,aAAa;QACxCC,YAAY,EAAEL,WAAW,CAACK;MAC5B,CAAC;MACDb,gBAAgB,CAACS,kBAAkB,CAAC;IACtC,CAAC,GAAGK,SAAS;IAEb,OAAOhC,uBAAuB,CAACwB,eAAe,EAAEC,oBAAoB,CAAC;EACvE,CAAC,EAAE,CAACR,gBAAgB,EAAEC,gBAAgB,CAAC,CAAC;;EAExC;EACA,MAAMe,oBAAoB,GAAGpD,OAAO,CAAC,MAAM;IACzC;IACA,MAAMqD,cAAc,GAAG,GAAG;IAC1B,MAAMC,eAAe,GAAGb,YAAY,GAAGY,cAAc;IACrD,MAAME,cAAc,GAAGf,WAAW,GAAG,EAAE,CAAC,CAAC;;IAEzC;IACA,MAAMgB,YAAY,GAAGC,IAAI,CAACC,GAAG,CAACH,cAAc,EAAED,eAAe,CAAC;;IAE9D;IACA,MAAMK,YAAY,GAAGF,IAAI,CAACG,GAAG,CAAC,GAAG,EAAEH,IAAI,CAACC,GAAG,CAACF,YAAY,EAAE,GAAG,CAAC,CAAC;IAE/D,OAAO;MACL7B,KAAK,EAAEgC,YAAY;MACnB/B,MAAM,EAAE+B;IACV,CAAC;EACH,CAAC,EAAE,CAACnB,WAAW,EAAEC,YAAY,CAAC,CAAC;;EAE/B;EACA,MAAM,CAACoB,WAAW,CAAC,GAAGjE,QAAQ,CAAC,MAAM;IACnC,MAAMkE,eAAe,GAAG;MAAE,GAAGnD,4BAA4B;MAAE,GAAGyB;IAAiB,CAAC;IAChF;IACA,MAAM;MAAET,KAAK,EAAEoC,YAAY;MAAEnC,MAAM,EAAEoC;IAAc,CAAC,GAAG5D,UAAU,CAACyB,GAAG,CAAC,QAAQ,CAAC;IAC/E,MAAMwB,cAAc,GAAG,GAAG;IAC1B,MAAMC,eAAe,GAAGU,aAAa,GAAGX,cAAc;IACtD,MAAME,cAAc,GAAGQ,YAAY,GAAG,EAAE;IACxC,MAAMP,YAAY,GAAGC,IAAI,CAACC,GAAG,CAACH,cAAc,EAAED,eAAe,CAAC;IAC9D,MAAMK,YAAY,GAAGF,IAAI,CAACG,GAAG,CAAC,GAAG,EAAEH,IAAI,CAACC,GAAG,CAACF,YAAY,EAAE,GAAG,CAAC,CAAC;IAE/D,OAAO,IAAI9C,iBAAiB,CAC1BoD,eAAe,CAACG,QAAQ,EACxBN,YAAY,EACZA,YAAY,EACZG,eAAe,CAACZ,YAAY,CAAC;IAC/B,CAAC;EACH,CAAC,CAAC;;EAEF;EACA,MAAM,CAACgB,SAAS,EAAEC,YAAY,CAAC,GAAGvE,QAAQ,CAAYiE,WAAW,CAACO,YAAY,CAAC,CAAC,CAAC;EACjF,MAAM,CAACC,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG1E,QAAQ,CAAC,KAAK,CAAC;EACjE,MAAM,CAAC2E,KAAK,EAAEC,QAAQ,CAAC,GAAG5E,QAAQ,CAAC,MAAMiE,WAAW,CAACY,QAAQ,CAAC,CAAC,CAAC;EAChE,MAAMC,oBAAoB,GAAG3E,MAAM,CAAC,KAAK,CAAC;;EAE1C;EACA,MAAMoC,QAAQ,GAAGO,aAAa,CAAC,CAAC;;EAEhC;EACA,MAAMiC,UAAU,GAAG3E,OAAO,CAAC,MAAM6D,WAAW,CAACe,aAAa,CAAC,CAAC,EAAE,CAACf,WAAW,EAAET,oBAAoB,CAAC,CAAC;;EAElG;EACAvD,SAAS,CAAC,MAAM;IACdgE,WAAW,CAACgB,SAAS,CAAC,CAAC,CAAC,CAAC;EAC3B,CAAC,EAAE,CAAChB,WAAW,CAAC,CAAC;;EAEjB;EACAhE,SAAS,CAAC,MAAM;IACd,MAAMoE,QAAQ,GAAGrD,6BAA6B,CAACuB,QAAQ,CAACY,UAAU,CAAC,CAACkB,QAAQ;IAC5E,MAAMf,YAAY,GAAGf,QAAQ,CAACe,YAAY;IAE1CW,WAAW,CAACiB,cAAc,CAACb,QAAQ,EAAEf,YAAY,EAAEE,oBAAoB,CAACzB,KAAK,EAAEyB,oBAAoB,CAACxB,MAAM,CAAC;EAC7G,CAAC,EAAE,CAACO,QAAQ,CAACY,UAAU,EAAEZ,QAAQ,CAACe,YAAY,EAAEW,WAAW,EAAET,oBAAoB,CAAC,CAAC;;EAEnF;EACAvD,SAAS,CAAC,MAAM;IACd,MAAMkF,iBAAiB,GAAIC,QAAmB,IAAK;MACjDb,YAAY,CAACc,SAAS,IAAI;QACxB;QACA,IAAID,QAAQ,CAACE,WAAW,IAAI,CAACR,oBAAoB,CAACS,OAAO,EAAE;UACzDT,oBAAoB,CAACS,OAAO,GAAG,IAAI;UACnCC,mBAAmB,CAAC,CAAC;UACrB;UACAC,UAAU,CAAC,MAAM;YACff,oBAAoB,CAAC,IAAI,CAAC;UAC5B,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACX;;QAEA;QACA,IAAI,CAACU,QAAQ,CAACM,SAAS,IAAIL,SAAS,CAACK,SAAS,IAAI,CAACN,QAAQ,CAACE,WAAW,EAAE;UACvEG,UAAU,CAAC,MAAM;YACff,oBAAoB,CAAC,IAAI,CAAC;UAC5B,CAAC,EAAE,IAAI,CAAC;QACV;QAEA,OAAOU,QAAQ;MACjB,CAAC,CAAC;;MAEF;MACAR,QAAQ,CAACX,WAAW,CAACY,QAAQ,CAAC,CAAC,CAAC;IAClC,CAAC;IAEDZ,WAAW,CAAC0B,0BAA0B,CAACR,iBAAiB,CAAC;IAEzD,OAAO,MAAM;MACXlB,WAAW,CAAC2B,OAAO,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;;EAER,MAAMJ,mBAAmB,GAAGtF,WAAW,CAAC,MAAM;IAC5CQ,SAAS,CAACC,WAAW,CAACkF,WAAW,CAACC,QAAQ,EAAEvD,QAAQ,CAACa,YAAY,CAAC;IAClExC,UAAU,CAACC,UAAU,CAACkF,OAAO,EAAExD,QAAQ,CAACc,aAAa,CAAC;EACxD,CAAC,EAAE,CAACd,QAAQ,CAACa,YAAY,EAAEb,QAAQ,CAACc,aAAa,CAAC,CAAC;EAEnD,MAAM2C,eAAe,GAAG9F,WAAW,CAAC,MAAM;IACxC4E,oBAAoB,CAACS,OAAO,GAAG,KAAK,CAAC,CAAC;IACtCtB,WAAW,CAACgC,SAAS,CAAC,CAAC;IACvBvB,oBAAoB,CAAC,KAAK,CAAC;IAE3BhE,SAAS,CAACC,WAAW,CAACkF,WAAW,CAACK,KAAK,EAAE3D,QAAQ,CAACa,YAAY,CAAC;IAC/DxC,UAAU,CAACC,UAAU,CAACsF,MAAM,EAAE5D,QAAQ,CAACc,aAAa,CAAC;EACvD,CAAC,EAAE,CAACY,WAAW,EAAE1B,QAAQ,CAACa,YAAY,EAAEb,QAAQ,CAACc,aAAa,CAAC,CAAC;EAGhE,MAAM+C,cAAc,GAAGlG,WAAW,CAAC,MAAM;IACvC+D,WAAW,CAACoC,QAAQ,CAAC,CAAC;IAEtB3F,SAAS,CAACC,WAAW,CAACkF,WAAW,CAACS,IAAI,EAAE/D,QAAQ,CAACa,YAAY,CAAC;EAChE,CAAC,EAAE,CAACa,WAAW,EAAE1B,QAAQ,CAACa,YAAY,CAAC,CAAC;EAGxC,MAAMmD,wBAAwB,GAAGrG,WAAW,CAAEsG,QAAkB,IAAc;IAC5E,OAAOvC,WAAW,CAACwC,kBAAkB,CAACD,QAAQ,CAAC;EACjD,CAAC,EAAE,CAACvC,WAAW,CAAC,CAAC;EAEjB,MAAMyC,eAAe,GAAGxG,WAAW,CAAC,MAAM;IACxC4E,oBAAoB,CAACS,OAAO,GAAG,KAAK,CAAC,CAAC;IACtCb,oBAAoB,CAAC,KAAK,CAAC;IAC3BT,WAAW,CAACgB,SAAS,CAAC,CAAC,CAAC,CAAC;EAC3B,CAAC,EAAE,CAAChB,WAAW,CAAC,CAAC;EAEjB,MAAM0C,wBAAwB,GAAGzG,WAAW,CAAC,MAAM;IACjDwE,oBAAoB,CAAC,KAAK,CAAC;EAC7B,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEjD,IAAA,CAAChB,sBAAsB;IAACmG,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC9CpF,KAAA,CAACtB,IAAI;MAACuG,KAAK,EAAEC,MAAM,CAACG,aAAc;MAAAD,QAAA,gBAEhCtF,IAAA,CAACR,cAAc;QAACc,KAAK,EAAEa,WAAY;QAACZ,MAAM,EAAEa;MAAa,CAAE,CAAC,eAG5DpB,IAAA,CAACP,UAAU;QACToD,SAAS,EAAEA;MAAU,CACtB,CAAC,eAEF7C,IAAA,CAACpB,IAAI;QAACuG,KAAK,EAAEC,MAAM,CAACI,iBAAkB;QAAAF,QAAA,eACpCtF,IAAA,CAACN,gBAAgB;UACfmD,SAAS,EAAEA,SAAU;UACrBS,UAAU,EAAEA,UAAW;UACvBJ,KAAK,EAAEA,KAAM;UACbuC,oBAAoB,EAAEX,wBAAyB;UAC/ClD,aAAa,EAAEd,QAAQ,CAACc;QAAc,CACvC;MAAC,CACE,CAAC,eAEP5B,IAAA,CAACJ,iBAAiB;QAChBqE,SAAS,EAAEpB,SAAS,CAACoB,SAAU;QAC/ByB,QAAQ,EAAE7C,SAAS,CAACgB,WAAW,IAAIhB,SAAS,CAAC6C,QAAS;QACtDC,WAAW,EAAEpB,eAAgB;QAC7BqB,UAAU,EAAEjB,cAAe;QAC3BkB,eAAe,EAAC,YAAY;QAC5BC,cAAc,EAAC,WAAW;QAC1BC,kBAAkB,EAAC,oBAAoB;QACvCC,iBAAiB,EAAC,kBAAkB;QACpCC,gBAAgB,EAAC,SAAS;QAC1BC,eAAe,EAAC,SAAS;QACzBC,sBAAsB,EAAC,SAAS;QAChCC,qBAAqB,EAAC;MAAS,CAChC,CAAC,eAGFpG,IAAA,CAACL,aAAa;QACZ0G,OAAO,EAAErD,iBAAkB;QAC3BH,SAAS,EAAEA,SAAU;QACrByD,WAAW,EAAErB,eAAgB;QAC7BsB,OAAO,EAAErB;MAAyB,CACnC,CAAC,eAGFlF,IAAA,CAAClB,KAAK;QACJuH,OAAO,EAAEpF,iBAAkB;QAC3BuF,aAAa,EAAC,OAAO;QACrBC,iBAAiB,EAAC,WAAW;QAC7BC,cAAc,EAAExF,qBAAsB;QAAAoE,QAAA,eAEtCtF,IAAA,CAACH,YAAY;UACX8G,MAAM,EAAC,aAAa;UACpBJ,OAAO,EAAErF,qBAAqB,KAAK,MAAM,CAAC,CAAC,CAAE;UAC7CG,aAAa,EAAEA,aAAa,CAAC;QAAE,CAChC;MAAC,CACG,CAAC;IAAA,CACJ;EAAC,CACe,CAAC;AAE7B,CAAC;AAED,MAAM+D,MAAM,GAAGvG,UAAU,CAAC+H,MAAM,CAAC;EAC/BvB,SAAS,EAAE;IACTwB,IAAI,EAAE;EACR,CAAC;EACDtB,aAAa,EAAE;IACbsB,IAAI,EAAE;EACR,CAAC;EACDrB,iBAAiB,EAAE;IACjBqB,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useEffect","useCallback","useRef","useMemo","View","StyleSheet","Dimensions","GestureHandlerRootView","playSound","GAME_SOUNDS","playHaptic","HapticType","MazeRunnerService","DEFAULT_MAZE_RUNNER_SETTINGS","MAZE_RUNNER_DIFFICULTY_CONFIG","GameBackground","ScoreBoard","EnhancedGameArea","GameControlButton","GameOverModal","GameSettingsModal","GAME_IDS","jsx","_jsx","jsxs","_jsxs","useResponsiveDimensions","dimensions","setDimensions","width","height","get","handleDimensionChange","window","prev","subscription","addEventListener","remove","MazeRunner","settings","onSettingsChange","screenWidth","screenHeight","responsiveDimensions","reservedHeight","availableHeight","availableWidth","maxDimension","Math","min","gameAreaSize","max","gameService","currentSettings","initialWidth","initialHeight","gridSize","gameDuration","gameState","setGameState","getGameState","showGameOverModal","setShowGameOverModal","walls","setWalls","getWalls","completionHandledRef","gameConfig","getGameConfig","gameControlButtonProps","isPlaying","gameOver","isCompleted","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","gameOverModalProps","isVisible","score","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","resetGame","difficultyConfig","difficulty","updateSettings","handleStateChange","newState","prevState","current","handleGameCompleted","setTimeout","setGameStateChangeCallback","stopGame","cleanup","MAZE_RUNNER","COMPLETE","enableSounds","SUCCESS","enableHaptics","handleStartGame","startGame","START","MEDIUM","handleStopGame","STOP","handleBallPositionChange","position","updateBallPosition","handlePlayAgain","style","styles","container","children","gameContainer","gameAreaContainer","onBallPositionChange","hapticEnabled","onStartGame","onStopGame","onPlayAgain","gameId","create","flex","justifyContent","alignItems","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../../src","sources":["games/maze-runner/MazeRunner.tsx"],"mappings":"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","ignoreList":[]}
@@ -34,39 +34,34 @@ export const MAZE_RUNNER_DIFFICULTY_CONFIG = {
34
34
  }
35
35
  };
36
36
 
37
- // Maze Runner Game Theme
37
+ // Maze Runner Game Theme - Matches scoreboard brown
38
38
  export const MAZE_RUNNER_THEME = {
39
- backgroundColor: '#87CEEB',
40
- // Sky blue
41
- headerBackgroundColor: 'rgba(20, 83, 45, 0.8)',
42
- // Green with transparency
39
+ backgroundColor: '#f5f5dc',
40
+ // Beige background to match maze theme
41
+ headerBackgroundColor: 'rgba(139, 69, 19, 0.9)',
42
+ // Brown header to match scoreboard
43
43
  headerTextColor: '#ffffff',
44
- sectionBackgroundColor: 'rgba(255, 255, 255, 0.2)',
45
- sectionTitleColor: '#1f2937',
46
- // Dark gray
47
- buttonSelectedColor: '#22c55e',
48
- // Green
44
+ sectionBackgroundColor: 'rgba(139, 69, 19, 0.4)',
45
+ // Match scoreboard transparency
46
+ sectionTitleColor: '#ffffff',
47
+ // White text on brown sections
48
+ buttonSelectedColor: '#8b4513',
49
+ // Match start button brown
49
50
  buttonUnselectedColor: 'rgba(255, 255, 255, 0.3)',
50
51
  buttonSelectedTextColor: '#ffffff',
51
52
  buttonUnselectedTextColor: '#1f2937',
52
- switchTrackColorFalse: '#8B4513',
53
- // Brown theme for maze
54
- switchTrackColorTrue: '#D2691E',
55
- // Orange brown
56
- switchThumbColor: '#fbbf24',
57
- // Amber
58
- infoTextColor: '#374151',
59
- // Gray
60
- resetButtonColor: '#ef4444',
61
- // Red
62
- resetButtonTextColor: '#ffffff'
53
+ switchTrackColorFalse: 'rgba(139, 69, 19, 0.5)',
54
+ switchTrackColorTrue: '#8b4513',
55
+ // Match start button
56
+ switchThumbColor: '#ffffff',
57
+ infoTextColor: '#1f2937' // Dark text for readability
63
58
  };
64
59
 
65
60
  // Maze Runner Difficulty Descriptions
66
61
  export const MAZE_RUNNER_DIFFICULTY_DESCRIPTIONS = {
67
- easy: '60 seconds, 8x8 grid, more forgiving',
68
- medium: '120 seconds, 10x10 grid, balanced challenge',
69
- hard: '180 seconds, 12x12 grid, maximum challenge!'
62
+ easy: 'Small maze, more forgiving maze',
63
+ medium: 'Balanced maze, balanced challenge',
64
+ hard: 'Complex maze, maximum challenge!'
70
65
  };
71
66
 
72
67
  // Vibrant color palette for Maze Runner background (inspired by adventure themes)
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_MAZE_RUNNER_SETTINGS","difficulty","gameDuration","soundEnabled","hapticEnabled","gridSize","showHints","MAZE_RUNNER_DIFFICULTY_CONFIG","easy","timeBonus","scoreMultiplier","hintAvailable","medium","hard","MAZE_RUNNER_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","resetButtonColor","resetButtonTextColor","MAZE_RUNNER_DIFFICULTY_DESCRIPTIONS","MAZE_ADVENTURE_COLORS"],"sourceRoot":"../../../../src","sources":["games/maze-runner/MazeRunnerConstants.ts"],"mappings":";;AAEA;;AAUA,OAAO,MAAMA,4BAAgD,GAAG;EAC9DC,UAAU,EAAE,QAAQ;EACpBC,YAAY,EAAE,GAAG;EACjBC,YAAY,EAAE,IAAI;EAClBC,aAAa,EAAE,IAAI;EACnBC,QAAQ,EAAE,EAAE;EACZC,SAAS,EAAE;AACb,CAAC;AAED,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,IAAI,EAAE;IACJH,QAAQ,EAAE,CAAC;IACXI,SAAS,EAAE,GAAG;IACdC,eAAe,EAAE,GAAG;IACpBC,aAAa,EAAE,IAAI;IACnBT,YAAY,EAAE;EAChB,CAAC;EACDU,MAAM,EAAE;IACNP,QAAQ,EAAE,EAAE;IACZI,SAAS,EAAE,GAAG;IACdC,eAAe,EAAE,GAAG;IACpBC,aAAa,EAAE,KAAK;IACpBT,YAAY,EAAE;EAChB,CAAC;EACDW,IAAI,EAAE;IACJR,QAAQ,EAAE,EAAE;IACZI,SAAS,EAAE,GAAG;IACdC,eAAe,EAAE,GAAG;IACpBC,aAAa,EAAE,KAAK;IACpBT,YAAY,EAAE;EAChB;AACF,CAAU;;AAEV;AACA,OAAO,MAAMY,iBAAoC,GAAG;EAClDC,eAAe,EAAE,SAAS;EAAE;EAC5BC,qBAAqB,EAAE,uBAAuB;EAAE;EAChDC,eAAe,EAAE,SAAS;EAC1BC,sBAAsB,EAAE,0BAA0B;EAClDC,iBAAiB,EAAE,SAAS;EAAE;EAC9BC,mBAAmB,EAAE,SAAS;EAAE;EAChCC,qBAAqB,EAAE,0BAA0B;EACjDC,uBAAuB,EAAE,SAAS;EAClCC,yBAAyB,EAAE,SAAS;EACpCC,qBAAqB,EAAE,SAAS;EAAE;EAClCC,oBAAoB,EAAE,SAAS;EAAE;EACjCC,gBAAgB,EAAE,SAAS;EAAE;EAC7BC,aAAa,EAAE,SAAS;EAAE;EAC1BC,gBAAgB,EAAE,SAAS;EAAE;EAC7BC,oBAAoB,EAAE;AACxB,CAAC;;AAED;AACA,OAAO,MAAMC,mCAAmC,GAAG;EACjDtB,IAAI,EAAE,sCAAsC;EAC5CI,MAAM,EAAE,6CAA6C;EACrDC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA,OAAO,MAAMkB,qBAAqB,GAAG,CACnC,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS,CAAE;AAAA,CACH","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_MAZE_RUNNER_SETTINGS","difficulty","gameDuration","soundEnabled","hapticEnabled","gridSize","showHints","MAZE_RUNNER_DIFFICULTY_CONFIG","easy","timeBonus","scoreMultiplier","hintAvailable","medium","hard","MAZE_RUNNER_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","MAZE_RUNNER_DIFFICULTY_DESCRIPTIONS","MAZE_ADVENTURE_COLORS"],"sourceRoot":"../../../../src","sources":["games/maze-runner/MazeRunnerConstants.ts"],"mappings":";;AAEA;;AAUA,OAAO,MAAMA,4BAAgD,GAAG;EAC9DC,UAAU,EAAE,QAAQ;EACpBC,YAAY,EAAE,GAAG;EACjBC,YAAY,EAAE,IAAI;EAClBC,aAAa,EAAE,IAAI;EACnBC,QAAQ,EAAE,EAAE;EACZC,SAAS,EAAE;AACb,CAAC;AAED,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,IAAI,EAAE;IACJH,QAAQ,EAAE,CAAC;IACXI,SAAS,EAAE,GAAG;IACdC,eAAe,EAAE,GAAG;IACpBC,aAAa,EAAE,IAAI;IACnBT,YAAY,EAAE;EAChB,CAAC;EACDU,MAAM,EAAE;IACNP,QAAQ,EAAE,EAAE;IACZI,SAAS,EAAE,GAAG;IACdC,eAAe,EAAE,GAAG;IACpBC,aAAa,EAAE,KAAK;IACpBT,YAAY,EAAE;EAChB,CAAC;EACDW,IAAI,EAAE;IACJR,QAAQ,EAAE,EAAE;IACZI,SAAS,EAAE,GAAG;IACdC,eAAe,EAAE,GAAG;IACpBC,aAAa,EAAE,KAAK;IACpBT,YAAY,EAAE;EAChB;AACF,CAAU;;AAEV;AACA,OAAO,MAAMY,iBAAoC,GAAG;EAClDC,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,mCAAmC,GAAG;EACjDpB,IAAI,EAAE,iCAAiC;EACvCI,MAAM,EAAE,mCAAmC;EAC3CC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA,OAAO,MAAMgB,qBAAqB,GAAG,CACnC,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS;AAAE;AACX,SAAS,CAAE;AAAA,CACH","ignoreList":[]}
@@ -5,7 +5,8 @@ import { Canvas, Circle, RadialGradient, vec, Shadow } from '@shopify/react-nati
5
5
  import { useSharedValue, useAnimatedStyle, withRepeat, withTiming, withSequence } from 'react-native-reanimated';
6
6
  import Animated from 'react-native-reanimated';
7
7
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
- export const EnhancedBallComponent = ({
8
+ // Memoized EnhancedBallComponent to prevent unnecessary re-renders
9
+ export const EnhancedBallComponent = /*#__PURE__*/React.memo(({
9
10
  position,
10
11
  size,
11
12
  isDragging,
@@ -31,9 +32,9 @@ export const EnhancedBallComponent = ({
31
32
  }, []);
32
33
  React.useEffect(() => {
33
34
  if (isDragging) {
34
- pulseScale.value = withTiming(1.2, {
35
+ pulseScale.value = withTiming(1.05, {
35
36
  duration: 200
36
- });
37
+ }); // Reduced from 1.2 to 1.05 for subtle effect
37
38
  } else {
38
39
  pulseScale.value = withTiming(1, {
39
40
  duration: 200
@@ -145,5 +146,5 @@ export const EnhancedBallComponent = ({
145
146
  })]
146
147
  })
147
148
  });
148
- };
149
+ });
149
150
  //# sourceMappingURL=EnhancedBallComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Canvas","Circle","RadialGradient","vec","Shadow","useSharedValue","useAnimatedStyle","withRepeat","withTiming","withSequence","Animated","jsx","_jsx","jsxs","_jsxs","EnhancedBallComponent","position","size","isDragging","isCompleted","rotation","glowIntensity","pulseScale","completionGlow","useEffect","value","duration","animatedStyle","scale","rotationDegrees","left","x","top","y","width","height","transform","rotate","canvasSize","ballRadius","centerX","centerY","View","style","children","cx","cy","r","opacity","c","colors","dx","dy","blur","color","strokeWidth"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/EnhancedBallComponent.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Canvas","Circle","RadialGradient","vec","Shadow","useSharedValue","useAnimatedStyle","withRepeat","withTiming","withSequence","Animated","jsx","_jsx","jsxs","_jsxs","EnhancedBallComponent","memo","position","size","isDragging","isCompleted","rotation","glowIntensity","pulseScale","completionGlow","useEffect","value","duration","animatedStyle","scale","rotationDegrees","left","x","top","y","width","height","transform","rotate","canvasSize","ballRadius","centerX","centerY","View","style","children","cx","cy","r","opacity","c","colors","dx","dy","blur","color","strokeWidth"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/EnhancedBallComponent.tsx"],"mappings":"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","ignoreList":[]}