react-native-games 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/README.md +134 -130
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +116 -343
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +182 -0
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -0
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +123 -101
  7. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +119 -92
  9. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +123 -113
  11. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js +137 -23
  13. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  14. package/lib/module/games/balloon-blaster/components/GameBackground.js +8 -83
  15. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  16. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +15 -22
  17. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  18. package/lib/module/games/balloon-blaster/components/index.js +0 -4
  19. package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
  20. package/lib/module/games/fruit-ninja/FruitNinja.js +143 -0
  21. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -0
  22. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +148 -0
  23. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -0
  24. package/lib/module/games/{fruit-slicer/FruitSlicerService.js → fruit-ninja/FruitNinjaService.js} +43 -21
  25. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -0
  26. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +191 -0
  27. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -0
  28. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.js +1 -1
  29. package/lib/module/games/fruit-ninja/components/FruitComponent.js.map +1 -0
  30. package/lib/module/games/fruit-ninja/components/GameArea.js +215 -0
  31. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -0
  32. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameBackground.js +250 -304
  33. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -0
  34. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.js +17 -47
  35. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -0
  36. package/lib/module/games/fruit-ninja/components/index.js +7 -0
  37. package/lib/module/games/fruit-ninja/components/index.js.map +1 -0
  38. package/lib/module/games/maze-runner/MazeRunner.js +184 -169
  39. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  40. package/lib/module/games/maze-runner/MazeRunnerConstants.js +100 -0
  41. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -0
  42. package/lib/module/games/maze-runner/MazeRunnerService.js +37 -14
  43. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  44. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +5 -4
  45. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -1
  46. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +20 -15
  47. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  48. package/lib/module/games/maze-runner/components/GameBackground.js +151 -192
  49. package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -1
  50. package/lib/module/games/maze-runner/components/ScoreBoard.js +15 -25
  51. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  52. package/lib/module/games/maze-runner/components/WallComponent.js +3 -2
  53. package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -1
  54. package/lib/module/games/maze-runner/components/index.js +0 -2
  55. package/lib/module/games/maze-runner/components/index.js.map +1 -1
  56. package/lib/module/games/popit-fidget/PopitFidget.js +294 -0
  57. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -0
  58. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +113 -0
  59. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -0
  60. package/lib/module/games/popit-fidget/PopitFidgetService.js +132 -0
  61. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -0
  62. package/lib/module/games/popit-fidget/PopitFidgetStore.js +163 -0
  63. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -0
  64. package/lib/module/games/popit-fidget/components/BubbleComponent.js +198 -0
  65. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -0
  66. package/lib/module/games/popit-fidget/components/FidgetGrid.js +165 -0
  67. package/lib/module/games/popit-fidget/components/FidgetGrid.js.map +1 -0
  68. package/lib/module/games/popit-fidget/components/GameBackground.js +177 -0
  69. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -0
  70. package/lib/module/games/popit-fidget/components/ScoreBoard.js +75 -0
  71. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -0
  72. package/lib/module/games/popit-fidget/components/index.js +7 -0
  73. package/lib/module/games/popit-fidget/components/index.js.map +1 -0
  74. package/lib/module/games/space-fighter/SpaceFighter.js +169 -0
  75. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -0
  76. package/lib/module/games/space-fighter/SpaceFighterConstants.js +108 -0
  77. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -0
  78. package/lib/module/games/{space-traveller/SpaceTravellerService.js → space-fighter/SpaceFighterService.js} +48 -21
  79. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -0
  80. package/lib/module/games/space-fighter/SpaceFighterStore.js +195 -0
  81. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -0
  82. package/lib/module/games/{space-traveller → space-fighter}/components/AsteroidComponent.js +7 -5
  83. package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -0
  84. package/lib/module/games/space-fighter/components/GameArea.js +295 -0
  85. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -0
  86. package/lib/module/games/{space-traveller → space-fighter}/components/GameBackground.js +10 -65
  87. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -0
  88. package/lib/module/games/{space-traveller → space-fighter}/components/ScoreBoard.js +20 -26
  89. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -0
  90. package/lib/module/games/{space-traveller → space-fighter}/components/Spacecraft3D.js +72 -111
  91. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -0
  92. package/lib/module/games/space-fighter/components/SpacecraftPath.js +52 -0
  93. package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -0
  94. package/lib/module/games/{space-traveller → space-fighter}/components/index.js +0 -4
  95. package/lib/module/games/space-fighter/components/index.js.map +1 -0
  96. package/lib/module/games/whack-a-mole/WhackAMole.js +263 -0
  97. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -0
  98. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +115 -0
  99. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -0
  100. package/lib/module/games/whack-a-mole/WhackAMoleService.js +120 -0
  101. package/lib/module/games/whack-a-mole/WhackAMoleService.js.map +1 -0
  102. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +172 -0
  103. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -0
  104. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameBackground.js +31 -91
  105. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -0
  106. package/lib/module/games/whack-a-mole/components/GameGrid.js +97 -0
  107. package/lib/module/games/whack-a-mole/components/GameGrid.js.map +1 -0
  108. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameHole.js +67 -54
  109. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -0
  110. package/lib/module/games/{cat-popper/components/CatCharacter.js → whack-a-mole/components/MoleCharacter.js} +75 -115
  111. package/lib/module/games/whack-a-mole/components/MoleCharacter.js.map +1 -0
  112. package/lib/module/games/{cat-popper → whack-a-mole}/components/ScoreBoard.js +13 -17
  113. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -0
  114. package/lib/module/games/{cat-popper → whack-a-mole}/components/index.js +1 -3
  115. package/lib/module/games/whack-a-mole/components/index.js.map +1 -0
  116. package/lib/module/index.js +4 -3
  117. package/lib/module/index.js.map +1 -1
  118. package/lib/module/services/GamesConstants.js +41 -519
  119. package/lib/module/services/GamesConstants.js.map +1 -1
  120. package/lib/module/services/GamesService.js +35 -23
  121. package/lib/module/services/GamesService.js.map +1 -1
  122. package/lib/module/services/HapticsService.js +77 -0
  123. package/lib/module/services/HapticsService.js.map +1 -0
  124. package/lib/module/services/SoundsService.js +171 -0
  125. package/lib/module/services/SoundsService.js.map +1 -0
  126. package/lib/module/shared/helpers/AnimationFrame.js +120 -0
  127. package/lib/module/shared/helpers/AnimationFrame.js.map +1 -0
  128. package/lib/module/shared/helpers/AnimationTracker.js +89 -0
  129. package/lib/module/shared/helpers/AnimationTracker.js.map +1 -0
  130. package/lib/module/shared/helpers/ErrorHandler.js +269 -0
  131. package/lib/module/shared/helpers/ErrorHandler.js.map +1 -0
  132. package/lib/module/shared/helpers/GameControlButton.js +219 -0
  133. package/lib/module/shared/helpers/GameControlButton.js.map +1 -0
  134. package/lib/module/{games/balloon-blaster/components → shared/helpers}/GameOverModal.js +25 -17
  135. package/lib/module/shared/helpers/GameOverModal.js.map +1 -0
  136. package/lib/module/shared/helpers/GameSettingsModal.js +287 -0
  137. package/lib/module/shared/helpers/GameSettingsModal.js.map +1 -0
  138. package/lib/module/shared/helpers/ParticleBlast.js +133 -0
  139. package/lib/module/shared/helpers/ParticleBlast.js.map +1 -0
  140. package/lib/module/shared/helpers/ResponsiveScoreBoard.js +81 -0
  141. package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +1 -0
  142. package/lib/module/shared/helpers/index.js +12 -0
  143. package/lib/module/shared/helpers/index.js.map +1 -0
  144. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +2 -14
  145. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  146. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +144 -0
  147. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -0
  148. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +1 -1
  149. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  150. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +12 -2
  151. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  152. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  153. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +1 -15
  154. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  155. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  156. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +1 -7
  157. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  158. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -4
  159. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
  160. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +4 -0
  161. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -0
  162. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +112 -0
  163. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -0
  164. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerService.d.ts → fruit-ninja/FruitNinjaService.d.ts} +13 -5
  165. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -0
  166. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerStore.d.ts → fruit-ninja/FruitNinjaStore.d.ts} +13 -4
  167. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -0
  168. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.d.ts +1 -1
  169. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts.map +1 -0
  170. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +3 -0
  171. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -0
  172. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -0
  173. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +3 -0
  174. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -0
  175. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts +5 -0
  176. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -0
  177. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +2 -16
  178. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  179. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +41 -0
  180. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -0
  181. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +4 -2
  182. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  183. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -1
  184. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  185. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +2 -1
  186. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -1
  187. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  188. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -1
  189. package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -2
  190. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
  191. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +5 -0
  192. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -0
  193. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +45 -0
  194. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -0
  195. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +33 -0
  196. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -0
  197. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +36 -0
  198. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -0
  199. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts +12 -0
  200. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -0
  201. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts +12 -0
  202. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts.map +1 -0
  203. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +9 -0
  204. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -0
  205. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +8 -0
  206. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -0
  207. package/lib/typescript/src/games/popit-fidget/components/index.d.ts +5 -0
  208. package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -0
  209. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +4 -0
  210. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -0
  211. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +71 -0
  212. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -0
  213. package/lib/typescript/src/games/{space-traveller/SpaceTravellerService.d.ts → space-fighter/SpaceFighterService.d.ts} +7 -4
  214. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -0
  215. package/lib/typescript/src/games/{space-traveller/SpaceTravellerStore.d.ts → space-fighter/SpaceFighterStore.d.ts} +12 -4
  216. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -0
  217. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +8 -0
  218. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -0
  219. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +3 -0
  220. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -0
  221. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -0
  222. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +3 -0
  223. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -0
  224. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/Spacecraft3D.d.ts +1 -1
  225. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -0
  226. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -0
  227. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/index.d.ts +0 -4
  228. package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -0
  229. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +4 -0
  230. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -0
  231. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +79 -0
  232. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -0
  233. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts +33 -0
  234. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts.map +1 -0
  235. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts +41 -0
  236. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -0
  237. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -0
  238. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameGrid.d.ts +2 -2
  239. package/lib/typescript/src/games/whack-a-mole/components/GameGrid.d.ts.map +1 -0
  240. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameHole.d.ts +3 -2
  241. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts.map +1 -0
  242. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts +7 -0
  243. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts.map +1 -0
  244. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -0
  245. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts +6 -0
  246. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -0
  247. package/lib/typescript/src/index.d.ts +4 -3
  248. package/lib/typescript/src/index.d.ts.map +1 -1
  249. package/lib/typescript/src/services/GamesConstants.d.ts +61 -340
  250. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  251. package/lib/typescript/src/services/GamesService.d.ts +21 -3
  252. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  253. package/lib/typescript/src/services/HapticsService.d.ts +16 -0
  254. package/lib/typescript/src/services/HapticsService.d.ts.map +1 -0
  255. package/lib/typescript/src/services/SoundsService.d.ts +154 -0
  256. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -0
  257. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts +41 -0
  258. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +1 -0
  259. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts +45 -0
  260. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +1 -0
  261. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts +124 -0
  262. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +1 -0
  263. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts +17 -0
  264. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -0
  265. package/lib/typescript/src/{games/cat-popper/components → shared/helpers}/GameOverModal.d.ts +5 -0
  266. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +1 -0
  267. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts +9 -0
  268. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +1 -0
  269. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts +12 -0
  270. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +1 -0
  271. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +42 -0
  272. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +1 -0
  273. package/lib/typescript/src/shared/helpers/index.d.ts +13 -0
  274. package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -0
  275. package/package.json +9 -6
  276. package/lib/module/games/balloon-blaster/components/GameControls.js +0 -229
  277. package/lib/module/games/balloon-blaster/components/GameControls.js.map +0 -1
  278. package/lib/module/games/balloon-blaster/components/GameOverModal.js.map +0 -1
  279. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +0 -52
  280. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +0 -1
  281. package/lib/module/games/balloon-blaster/components/SliceTrail.js +0 -58
  282. package/lib/module/games/balloon-blaster/components/SliceTrail.js.map +0 -1
  283. package/lib/module/games/cat-popper/CatPopper.js +0 -230
  284. package/lib/module/games/cat-popper/CatPopper.js.map +0 -1
  285. package/lib/module/games/cat-popper/CatPopperService.js +0 -100
  286. package/lib/module/games/cat-popper/CatPopperService.js.map +0 -1
  287. package/lib/module/games/cat-popper/CatPopperStore.js +0 -113
  288. package/lib/module/games/cat-popper/CatPopperStore.js.map +0 -1
  289. package/lib/module/games/cat-popper/components/CatCharacter.js.map +0 -1
  290. package/lib/module/games/cat-popper/components/GameBackground.js.map +0 -1
  291. package/lib/module/games/cat-popper/components/GameControls.js +0 -230
  292. package/lib/module/games/cat-popper/components/GameControls.js.map +0 -1
  293. package/lib/module/games/cat-popper/components/GameGrid.js +0 -66
  294. package/lib/module/games/cat-popper/components/GameGrid.js.map +0 -1
  295. package/lib/module/games/cat-popper/components/GameHole.js.map +0 -1
  296. package/lib/module/games/cat-popper/components/GameOverModal.js +0 -131
  297. package/lib/module/games/cat-popper/components/GameOverModal.js.map +0 -1
  298. package/lib/module/games/cat-popper/components/ScoreBoard.js.map +0 -1
  299. package/lib/module/games/cat-popper/components/index.js.map +0 -1
  300. package/lib/module/games/fruit-slicer/FruitSlicer.js +0 -411
  301. package/lib/module/games/fruit-slicer/FruitSlicer.js.map +0 -1
  302. package/lib/module/games/fruit-slicer/FruitSlicerService.js.map +0 -1
  303. package/lib/module/games/fruit-slicer/FruitSlicerStore.js +0 -156
  304. package/lib/module/games/fruit-slicer/FruitSlicerStore.js.map +0 -1
  305. package/lib/module/games/fruit-slicer/components/FruitComponent.js.map +0 -1
  306. package/lib/module/games/fruit-slicer/components/GameArea.js +0 -50
  307. package/lib/module/games/fruit-slicer/components/GameArea.js.map +0 -1
  308. package/lib/module/games/fruit-slicer/components/GameBackground.js.map +0 -1
  309. package/lib/module/games/fruit-slicer/components/GameControls.js +0 -230
  310. package/lib/module/games/fruit-slicer/components/GameControls.js.map +0 -1
  311. package/lib/module/games/fruit-slicer/components/GameOverModal.js +0 -189
  312. package/lib/module/games/fruit-slicer/components/GameOverModal.js.map +0 -1
  313. package/lib/module/games/fruit-slicer/components/ParticleSystem.js +0 -52
  314. package/lib/module/games/fruit-slicer/components/ParticleSystem.js.map +0 -1
  315. package/lib/module/games/fruit-slicer/components/ScoreBoard.js.map +0 -1
  316. package/lib/module/games/fruit-slicer/components/SliceTrail.js +0 -58
  317. package/lib/module/games/fruit-slicer/components/SliceTrail.js.map +0 -1
  318. package/lib/module/games/fruit-slicer/components/index.js +0 -11
  319. package/lib/module/games/fruit-slicer/components/index.js.map +0 -1
  320. package/lib/module/games/maze-runner/components/GameControls.js +0 -129
  321. package/lib/module/games/maze-runner/components/GameControls.js.map +0 -1
  322. package/lib/module/games/maze-runner/components/GameOverModal.js +0 -134
  323. package/lib/module/games/maze-runner/components/GameOverModal.js.map +0 -1
  324. package/lib/module/games/space-traveller/SpaceTraveller.js +0 -393
  325. package/lib/module/games/space-traveller/SpaceTraveller.js.map +0 -1
  326. package/lib/module/games/space-traveller/SpaceTravellerService.js.map +0 -1
  327. package/lib/module/games/space-traveller/SpaceTravellerStore.js +0 -139
  328. package/lib/module/games/space-traveller/SpaceTravellerStore.js.map +0 -1
  329. package/lib/module/games/space-traveller/components/AsteroidComponent.js.map +0 -1
  330. package/lib/module/games/space-traveller/components/GameArea.js +0 -75
  331. package/lib/module/games/space-traveller/components/GameArea.js.map +0 -1
  332. package/lib/module/games/space-traveller/components/GameBackground.js.map +0 -1
  333. package/lib/module/games/space-traveller/components/GameControls.js +0 -177
  334. package/lib/module/games/space-traveller/components/GameControls.js.map +0 -1
  335. package/lib/module/games/space-traveller/components/GameOverModal.js +0 -182
  336. package/lib/module/games/space-traveller/components/GameOverModal.js.map +0 -1
  337. package/lib/module/games/space-traveller/components/ParticleComponent.js +0 -34
  338. package/lib/module/games/space-traveller/components/ParticleComponent.js.map +0 -1
  339. package/lib/module/games/space-traveller/components/ScoreBoard.js.map +0 -1
  340. package/lib/module/games/space-traveller/components/SettingsModal.js +0 -222
  341. package/lib/module/games/space-traveller/components/SettingsModal.js.map +0 -1
  342. package/lib/module/games/space-traveller/components/Spacecraft3D.js.map +0 -1
  343. package/lib/module/games/space-traveller/components/SpacecraftPath.js +0 -37
  344. package/lib/module/games/space-traveller/components/SpacecraftPath.js.map +0 -1
  345. package/lib/module/games/space-traveller/components/index.js.map +0 -1
  346. package/lib/module/shared/settings/GameSettings.js +0 -295
  347. package/lib/module/shared/settings/GameSettings.js.map +0 -1
  348. package/lib/module/shared/settings/SettingsService.js +0 -119
  349. package/lib/module/shared/settings/SettingsService.js.map +0 -1
  350. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts +0 -10
  351. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts.map +0 -1
  352. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts +0 -9
  353. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts.map +0 -1
  354. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts +0 -8
  355. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +0 -1
  356. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts +0 -11
  357. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts.map +0 -1
  358. package/lib/typescript/src/games/cat-popper/CatPopper.d.ts +0 -13
  359. package/lib/typescript/src/games/cat-popper/CatPopper.d.ts.map +0 -1
  360. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts +0 -32
  361. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts.map +0 -1
  362. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts +0 -21
  363. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts.map +0 -1
  364. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts +0 -7
  365. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts.map +0 -1
  366. package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts.map +0 -1
  367. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts +0 -10
  368. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts.map +0 -1
  369. package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts.map +0 -1
  370. package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts.map +0 -1
  371. package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts.map +0 -1
  372. package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts.map +0 -1
  373. package/lib/typescript/src/games/cat-popper/components/index.d.ts +0 -8
  374. package/lib/typescript/src/games/cat-popper/components/index.d.ts.map +0 -1
  375. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts +0 -16
  376. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts.map +0 -1
  377. package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts.map +0 -1
  378. package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts.map +0 -1
  379. package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts.map +0 -1
  380. package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts +0 -17
  381. package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts.map +0 -1
  382. package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts.map +0 -1
  383. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts +0 -10
  384. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts.map +0 -1
  385. package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts +0 -9
  386. package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts.map +0 -1
  387. package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts +0 -8
  388. package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts.map +0 -1
  389. package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts +0 -9
  390. package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts.map +0 -1
  391. package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts +0 -11
  392. package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts.map +0 -1
  393. package/lib/typescript/src/games/fruit-slicer/components/index.d.ts +0 -9
  394. package/lib/typescript/src/games/fruit-slicer/components/index.d.ts.map +0 -1
  395. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts +0 -10
  396. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts.map +0 -1
  397. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts +0 -11
  398. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts.map +0 -1
  399. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts +0 -17
  400. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts.map +0 -1
  401. package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts.map +0 -1
  402. package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts.map +0 -1
  403. package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts +0 -9
  404. package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts.map +0 -1
  405. package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts +0 -17
  406. package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts.map +0 -1
  407. package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts.map +0 -1
  408. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts +0 -10
  409. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts.map +0 -1
  410. package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts +0 -9
  411. package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts.map +0 -1
  412. package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts +0 -8
  413. package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts.map +0 -1
  414. package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts +0 -8
  415. package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts.map +0 -1
  416. package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts +0 -9
  417. package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts.map +0 -1
  418. package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts.map +0 -1
  419. package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts.map +0 -1
  420. package/lib/typescript/src/games/space-traveller/components/index.d.ts.map +0 -1
  421. package/lib/typescript/src/shared/settings/GameSettings.d.ts +0 -36
  422. package/lib/typescript/src/shared/settings/GameSettings.d.ts.map +0 -1
  423. package/lib/typescript/src/shared/settings/SettingsService.d.ts +0 -32
  424. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +0 -1
  425. /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameBackground.d.ts +0 -0
  426. /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameBackground.d.ts +0 -0
  427. /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SpacecraftPath.d.ts +0 -0
  428. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/GameBackground.d.ts +0 -0
  429. /package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/ScoreBoard.d.ts +0 -0
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Optimized animation frame utility for smooth game object cleanup and updates
3
+ * Uses requestAnimationFrame instead of setInterval for better performance
4
+ */
5
+ export declare class AnimationFrameManager {
6
+ private animationId;
7
+ private isRunning;
8
+ private callback;
9
+ private interval;
10
+ private lastTime;
11
+ constructor(callback: () => void, interval?: number);
12
+ /**
13
+ * Start the animation frame loop
14
+ */
15
+ start(): void;
16
+ /**
17
+ * Stop the animation frame loop
18
+ */
19
+ stop(): void;
20
+ /**
21
+ * Internal animation frame loop
22
+ */
23
+ private loop;
24
+ /**
25
+ * Update the callback function
26
+ */
27
+ updateCallback(callback: () => void): void;
28
+ /**
29
+ * Update the interval
30
+ */
31
+ updateInterval(interval: number): void;
32
+ }
33
+ /**
34
+ * React hook for using optimized animation frame cleanup
35
+ */
36
+ export declare function useAnimationFrame(callback: () => void, interval?: number, dependencies?: React.DependencyList): void;
37
+ /**
38
+ * React hook for creating a reusable animation frame manager
39
+ */
40
+ export declare function useAnimationFrameManager(interval?: number): AnimationFrameManager;
41
+ //# sourceMappingURL=AnimationFrame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationFrame.d.ts","sourceRoot":"","sources":["../../../../../src/shared/helpers/AnimationFrame.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAK;gBAET,QAAQ,EAAE,MAAM,IAAI,EAAE,QAAQ,GAAE,MAAY;IAKxD;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,OAAO,CAAC,IAAI,CAYV;IAEF;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAI1C;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAGvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,IAAI,EACpB,QAAQ,GAAE,MAAY,EACtB,YAAY,GAAE,KAAK,CAAC,cAAmB,GACtC,IAAI,CA+BN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,GAAE,MAAY,GACrB,qBAAqB,CAgBvB"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Animation state interface for tracking game object animations
3
+ */
4
+ export interface AnimationState {
5
+ scale: number;
6
+ opacity: number;
7
+ rotation?: number;
8
+ translateX?: number;
9
+ translateY?: number;
10
+ }
11
+ /**
12
+ * Default animation state values
13
+ */
14
+ export declare const DEFAULT_ANIMATION_STATE: AnimationState;
15
+ /**
16
+ * Animation tracker class for managing game object animations
17
+ * Extends Map to maintain compatibility with existing game services
18
+ */
19
+ export declare class AnimationTracker extends Map<string, AnimationState> {
20
+ constructor();
21
+ /**
22
+ * Override set to merge with default animation state
23
+ */
24
+ set(id: string, state: Partial<AnimationState>): this;
25
+ /**
26
+ * Initialize animation for object if it doesn't exist
27
+ */
28
+ initialize(id: string, initialState?: Partial<AnimationState>): AnimationState;
29
+ /**
30
+ * Update multiple objects at once
31
+ */
32
+ updateBatch(updates: Array<{
33
+ id: string;
34
+ state: Partial<AnimationState>;
35
+ }>): void;
36
+ }
37
+ /**
38
+ * React hook for creating and managing animation trackers
39
+ */
40
+ export declare function useAnimationTracker(): AnimationTracker;
41
+ /**
42
+ * React hook for creating multiple animation trackers
43
+ */
44
+ export declare function useAnimationTrackers<T extends Record<string, any>>(trackerNames: (keyof T)[]): Record<keyof T, AnimationTracker>;
45
+ //# sourceMappingURL=AnimationTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationTracker.d.ts","sourceRoot":"","sources":["../../../../../src/shared/helpers/AnimationTracker.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAMrC,CAAC;AAEF;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;;IAK/D;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAOrD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAS9E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,CAAC,GAAG,IAAI;CAKlF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChE,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GACxB,MAAM,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CASnC"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Error types for game-specific error handling
3
+ */
4
+ export declare enum GameErrorType {
5
+ INITIALIZATION_ERROR = "INITIALIZATION_ERROR",
6
+ ANIMATION_ERROR = "ANIMATION_ERROR",
7
+ STORAGE_ERROR = "STORAGE_ERROR",
8
+ SOUND_ERROR = "SOUND_ERROR",
9
+ HAPTIC_ERROR = "HAPTIC_ERROR",
10
+ GESTURE_ERROR = "GESTURE_ERROR",
11
+ PERFORMANCE_ERROR = "PERFORMANCE_ERROR",
12
+ NETWORK_ERROR = "NETWORK_ERROR",
13
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
14
+ }
15
+ /**
16
+ * Game error interface
17
+ */
18
+ export interface GameError {
19
+ type: GameErrorType;
20
+ message: string;
21
+ gameId?: string;
22
+ timestamp: number;
23
+ stack?: string;
24
+ context?: Record<string, any>;
25
+ }
26
+ /**
27
+ * Error handler configuration
28
+ */
29
+ export interface ErrorHandlerConfig {
30
+ enableLogging: boolean;
31
+ enableConsoleOutput: boolean;
32
+ maxErrorHistory: number;
33
+ enableCrashRecovery: boolean;
34
+ onError?: (error: GameError) => void;
35
+ }
36
+ /**
37
+ * Default error handler configuration
38
+ */
39
+ export declare const DEFAULT_ERROR_CONFIG: ErrorHandlerConfig;
40
+ /**
41
+ * Game error handler class
42
+ */
43
+ export declare class GameErrorHandler {
44
+ private config;
45
+ private errorHistory;
46
+ private errorCounts;
47
+ constructor(config?: Partial<ErrorHandlerConfig>);
48
+ /**
49
+ * Handle a game error
50
+ */
51
+ handleError(type: GameErrorType, message: string, gameId?: string, context?: Record<string, any>): void;
52
+ /**
53
+ * Wrap a function with error handling
54
+ */
55
+ wrapFunction<T extends (...args: any[]) => any>(fn: T, errorType: GameErrorType, gameId?: string): T;
56
+ /**
57
+ * Safe execution with error recovery
58
+ */
59
+ safeExecute<T>(fn: () => T, fallback: T, errorType: GameErrorType, gameId?: string): T;
60
+ /**
61
+ * Safe async execution with error recovery
62
+ */
63
+ safeExecuteAsync<T>(fn: () => Promise<T>, fallback: T, errorType: GameErrorType, gameId?: string): Promise<T>;
64
+ /**
65
+ * Get error statistics
66
+ */
67
+ getErrorStats(): {
68
+ totalErrors: number;
69
+ errorsByType: Record<GameErrorType, number>;
70
+ recentErrors: GameError[];
71
+ };
72
+ /**
73
+ * Clear error history
74
+ */
75
+ clearHistory(): void;
76
+ /**
77
+ * Update configuration
78
+ */
79
+ updateConfig(config: Partial<ErrorHandlerConfig>): void;
80
+ /**
81
+ * Log error to console
82
+ */
83
+ private logError;
84
+ }
85
+ /**
86
+ * Global error handler instance
87
+ */
88
+ export declare const globalErrorHandler: GameErrorHandler;
89
+ /**
90
+ * React hook for error handling in game components
91
+ */
92
+ export declare function useGameErrorHandler(gameId: string, config?: Partial<ErrorHandlerConfig>): {
93
+ handleError: (type: GameErrorType, message: string, context?: Record<string, any>) => void;
94
+ wrapFunction: <T extends (...args: any[]) => any>(fn: T, errorType: GameErrorType) => T;
95
+ safeExecute: <T>(fn: () => T, fallback: T, errorType: GameErrorType) => T;
96
+ safeExecuteAsync: <T>(fn: () => Promise<T>, fallback: T, errorType: GameErrorType) => Promise<T>;
97
+ errorStats: ReturnType<GameErrorHandler['getErrorStats']>;
98
+ };
99
+ /**
100
+ * Error boundary utility for wrapping functions with error handling
101
+ */
102
+ export declare function withErrorHandling<T extends (...args: any[]) => any>(fn: T, gameId: string, errorType?: GameErrorType): T;
103
+ /**
104
+ * Utility functions for common error scenarios
105
+ */
106
+ export declare const ErrorUtils: {
107
+ /**
108
+ * Handle animation errors safely
109
+ */
110
+ safeAnimate: (animationFn: () => void, gameId: string, fallback?: () => void) => void;
111
+ /**
112
+ * Handle sound errors safely
113
+ */
114
+ safePlaySound: (soundFn: () => void, gameId: string) => void;
115
+ /**
116
+ * Handle haptic errors safely
117
+ */
118
+ safeHaptic: (hapticFn: () => void, gameId: string) => void;
119
+ /**
120
+ * Handle gesture errors safely
121
+ */
122
+ safeGesture: (gestureFn: () => void, gameId: string) => void;
123
+ };
124
+ //# sourceMappingURL=ErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorHandler.d.ts","sourceRoot":"","sources":["../../../../../src/shared/helpers/ErrorHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ export interface GameControlButtonProps {
3
+ isPlaying: boolean;
4
+ gameOver: boolean;
5
+ onStartGame: () => void;
6
+ onStopGame: () => void;
7
+ startButtonText?: string;
8
+ stopButtonText?: string;
9
+ startButtonSubtext?: string;
10
+ stopButtonSubtext?: string;
11
+ startButtonColor?: string;
12
+ stopButtonColor?: string;
13
+ startButtonBorderColor?: string;
14
+ stopButtonBorderColor?: string;
15
+ }
16
+ export declare const GameControlButton: React.FC<GameControlButtonProps>;
17
+ //# sourceMappingURL=GameControlButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameControlButton.d.ts","sourceRoot":"","sources":["../../../../../src/shared/helpers/GameControlButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAG1D,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA4I7D,CAAC"}
@@ -3,6 +3,11 @@ interface GameOverModalProps {
3
3
  isVisible: boolean;
4
4
  score: number;
5
5
  onPlayAgain: () => void;
6
+ buttonText?: string;
7
+ primaryColor?: string;
8
+ borderColor?: string;
9
+ buttonColor?: string;
10
+ buttonBorderColor?: string;
6
11
  }
7
12
  export declare const GameOverModal: React.FC<GameOverModalProps>;
8
13
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameOverModal.d.ts","sourceRoot":"","sources":["../../../../../src/shared/helpers/GameOverModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,kBAAkB;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgDrD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { type GameSettings } from '../../services/GamesService';
3
+ export interface GameSettingsProps {
4
+ gameId: string;
5
+ settings: GameSettings;
6
+ onSettingsChange?: (settings: GameSettings) => void;
7
+ }
8
+ export declare const GameSettingsModal: React.FC<GameSettingsProps>;
9
+ //# sourceMappingURL=GameSettingsModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameSettingsModal.d.ts","sourceRoot":"","sources":["../../../../../src/shared/helpers/GameSettingsModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAuIzD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ interface ParticleBlastProps {
3
+ x: number;
4
+ y: number;
5
+ particleCount?: number;
6
+ colors?: string[];
7
+ duration?: number;
8
+ onComplete?: () => void;
9
+ }
10
+ export declare const ParticleBlast: React.FC<ParticleBlastProps>;
11
+ export {};
12
+ //# sourceMappingURL=ParticleBlast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParticleBlast.d.ts","sourceRoot":"","sources":["../../../../../src/shared/helpers/ParticleBlast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD,UAAU,kBAAkB;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAyHtD,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Enhanced responsive dimensions for scoreboard optimization
3
+ * Provides better tablet support with dynamic sizing
4
+ */
5
+ export declare const getResponsiveScoreBoardDimensions: () => {
6
+ containerWidth: number;
7
+ isTablet: boolean;
8
+ isLargeTablet: boolean;
9
+ padding: number;
10
+ fontSize: {
11
+ label: number;
12
+ value: number;
13
+ time: number;
14
+ };
15
+ borderRadius: number;
16
+ };
17
+ /**
18
+ * Shared responsive styling for ScoreBoard components across all games
19
+ * Provides consistent maxWidth and centering for mobile/tablet optimization
20
+ */
21
+ export declare const createResponsiveScoreBoardStyle: (gameSpecificStyle: any) => Readonly<any>;
22
+ /**
23
+ * Enhanced responsive container style that can be applied to any ScoreBoard
24
+ * Now includes dynamic sizing based on screen dimensions
25
+ */
26
+ export declare const RESPONSIVE_SCOREBOARD_CONTAINER: {
27
+ maxWidth: number;
28
+ alignSelf: "center";
29
+ width: "100%";
30
+ padding: number;
31
+ borderRadius: number;
32
+ marginTop: number;
33
+ };
34
+ /**
35
+ * Responsive font sizes for scoreboard text elements
36
+ */
37
+ export declare const RESPONSIVE_SCOREBOARD_FONTS: {
38
+ labelSize: number;
39
+ valueSize: number;
40
+ timeSize: number;
41
+ };
42
+ //# sourceMappingURL=ResponsiveScoreBoard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsiveScoreBoard.d.ts","sourceRoot":"","sources":["../../../../../src/shared/helpers/ResponsiveScoreBoard.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;CAsB7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,GAAI,mBAAmB,GAAG,kBAcrE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B;;;;;;;CAWxC,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;CAQpC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export { GameControlButton } from './GameControlButton';
2
+ export type { GameControlButtonProps } from './GameControlButton';
3
+ export { createResponsiveScoreBoardStyle, RESPONSIVE_SCOREBOARD_CONTAINER, RESPONSIVE_SCOREBOARD_FONTS, getResponsiveScoreBoardDimensions } from './ResponsiveScoreBoard';
4
+ export { ParticleBlast } from './ParticleBlast';
5
+ export { GameOverModal } from './GameOverModal';
6
+ export { GameSettingsModal } from './GameSettingsModal';
7
+ export { AnimationTracker, useAnimationTracker, useAnimationTrackers, DEFAULT_ANIMATION_STATE } from './AnimationTracker';
8
+ export type { AnimationState } from './AnimationTracker';
9
+ export { AnimationFrameManager, useAnimationFrame, useAnimationFrameManager } from './AnimationFrame';
10
+ export { GameErrorHandler, useGameErrorHandler, withErrorHandling, ErrorUtils, globalErrorHandler, DEFAULT_ERROR_CONFIG } from './ErrorHandler';
11
+ export { GameErrorType } from './ErrorHandler';
12
+ export type { GameError, ErrorHandlerConfig } from './ErrorHandler';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,2BAA2B,EAC3B,iCAAiC,EAClC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACtG,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-games",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Free games for your react native projects.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -51,17 +51,16 @@
51
51
  "url": "git+https://github.com/ursnj/react-native-games.git"
52
52
  },
53
53
  "author": "Niranjan Devasani <niranjan.devasani@gmail.com> (https://github.com/ursnj)",
54
- "license": "SEE LICENSE IN LICENSE",
54
+ "license": "CUSTOM",
55
55
  "bugs": {
56
- "url": "https://github.com/ursnj/react-native-games/issues"
56
+ "url": "https://github.com/ursnj/nayan-ui/issues"
57
57
  },
58
- "homepage": "https://github.com/ursnj/react-native-games#readme",
58
+ "homepage": "https://www.nayanui.com/games",
59
59
  "publishConfig": {
60
60
  "registry": "https://registry.npmjs.org/"
61
61
  },
62
62
  "dependencies": {
63
- "expo-haptics": "^15.0.7",
64
- "expo-speech": "^14.0.7",
63
+ "immer": "^10.1.3",
65
64
  "zustand": "^5.0.8"
66
65
  },
67
66
  "devDependencies": {
@@ -69,6 +68,8 @@
69
68
  "@shopify/react-native-skia": "^2.2.14",
70
69
  "@types/react": "^19.1.12",
71
70
  "del-cli": "^6.0.0",
71
+ "expo-haptics": "^15.0.7",
72
+ "expo-speech": "^14.0.7",
72
73
  "prettier": "^3.6.2",
73
74
  "react": "19.1.0",
74
75
  "react-native": "0.81.4",
@@ -80,6 +81,8 @@
80
81
  },
81
82
  "peerDependencies": {
82
83
  "@shopify/react-native-skia": "*",
84
+ "expo-haptics": "*",
85
+ "expo-speech": "*",
83
86
  "react": "*",
84
87
  "react-native": "*",
85
88
  "react-native-gesture-handler": "*",
@@ -1,229 +0,0 @@
1
- "use strict";
2
-
3
- import React, { useRef, useEffect } from 'react';
4
- import { View, TouchableOpacity, Text, StyleSheet, Animated } from 'react-native';
5
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
- export const GameControls = ({
7
- isPlaying,
8
- gameOver,
9
- onStartGame,
10
- onStopGame
11
- }) => {
12
- const scaleAnim = useRef(new Animated.Value(1)).current;
13
- const pulseAnim = useRef(new Animated.Value(1)).current;
14
- const glowAnim = useRef(new Animated.Value(0)).current;
15
-
16
- // Pulse animation for start button
17
- useEffect(() => {
18
- if (!isPlaying && !gameOver) {
19
- const pulseAnimation = Animated.loop(Animated.sequence([Animated.timing(pulseAnim, {
20
- toValue: 1.05,
21
- duration: 1000,
22
- useNativeDriver: true
23
- }), Animated.timing(pulseAnim, {
24
- toValue: 1,
25
- duration: 1000,
26
- useNativeDriver: true
27
- })]));
28
- pulseAnimation.start();
29
- return () => pulseAnimation.stop();
30
- }
31
- return () => {};
32
- }, [isPlaying, gameOver, pulseAnim]);
33
-
34
- // Glow animation for stop button
35
- useEffect(() => {
36
- if (isPlaying) {
37
- const glowAnimation = Animated.loop(Animated.sequence([Animated.timing(glowAnim, {
38
- toValue: 1,
39
- duration: 800,
40
- useNativeDriver: false
41
- }), Animated.timing(glowAnim, {
42
- toValue: 0,
43
- duration: 800,
44
- useNativeDriver: false
45
- })]));
46
- glowAnimation.start();
47
- return () => glowAnimation.stop();
48
- }
49
- return () => {};
50
- }, [isPlaying, glowAnim]);
51
- const handlePressIn = () => {
52
- Animated.spring(scaleAnim, {
53
- toValue: 0.95,
54
- useNativeDriver: true
55
- }).start();
56
- };
57
- const handlePressOut = () => {
58
- Animated.spring(scaleAnim, {
59
- toValue: 1,
60
- friction: 3,
61
- tension: 40,
62
- useNativeDriver: true
63
- }).start();
64
- };
65
- const glowColor = glowAnim.interpolate({
66
- inputRange: [0, 1],
67
- outputRange: ['rgba(239, 68, 68, 0.3)', 'rgba(239, 68, 68, 0.8)']
68
- });
69
- return /*#__PURE__*/_jsxs(View, {
70
- style: styles.gameControls,
71
- children: [!isPlaying && !gameOver && /*#__PURE__*/_jsx(Animated.View, {
72
- style: [{
73
- transform: [{
74
- scale: pulseAnim
75
- }]
76
- }],
77
- children: /*#__PURE__*/_jsx(TouchableOpacity, {
78
- style: [styles.startButton],
79
- onPress: onStartGame,
80
- onPressIn: handlePressIn,
81
- onPressOut: handlePressOut,
82
- activeOpacity: 0.8,
83
- children: /*#__PURE__*/_jsxs(Animated.View, {
84
- style: [styles.buttonContent, {
85
- transform: [{
86
- scale: scaleAnim
87
- }]
88
- }],
89
- children: [/*#__PURE__*/_jsx(Text, {
90
- style: styles.startButtonText,
91
- children: "START POPPING"
92
- }), /*#__PURE__*/_jsx(Text, {
93
- style: styles.buttonSubtext,
94
- children: "Pop balloons to score!"
95
- })]
96
- })
97
- })
98
- }), isPlaying && /*#__PURE__*/_jsx(Animated.View, {
99
- style: [styles.stopButtonContainer, {
100
- shadowColor: glowColor
101
- }],
102
- children: /*#__PURE__*/_jsx(TouchableOpacity, {
103
- style: [styles.stopButton],
104
- onPress: onStopGame,
105
- onPressIn: handlePressIn,
106
- onPressOut: handlePressOut,
107
- activeOpacity: 0.8,
108
- children: /*#__PURE__*/_jsxs(Animated.View, {
109
- style: [styles.buttonContent, {
110
- transform: [{
111
- scale: scaleAnim
112
- }]
113
- }],
114
- children: [/*#__PURE__*/_jsx(Text, {
115
- style: styles.stopButtonText,
116
- children: "STOP GAME"
117
- }), /*#__PURE__*/_jsx(Text, {
118
- style: styles.buttonSubtext,
119
- children: "End current game"
120
- })]
121
- })
122
- })
123
- })]
124
- });
125
- };
126
- const styles = StyleSheet.create({
127
- gameControls: {
128
- justifyContent: 'center',
129
- alignItems: 'center',
130
- paddingVertical: 20,
131
- paddingHorizontal: 20
132
- },
133
- startButton: {
134
- backgroundColor: '#3b82f6',
135
- // Blue for balloon theme
136
- paddingHorizontal: 32,
137
- paddingVertical: 20,
138
- borderRadius: 30,
139
- shadowColor: '#3b82f6',
140
- shadowOffset: {
141
- width: 0,
142
- height: 8
143
- },
144
- shadowOpacity: 0.4,
145
- shadowRadius: 12,
146
- elevation: 8,
147
- justifyContent: 'center',
148
- alignItems: 'center',
149
- minHeight: 70,
150
- minWidth: 200,
151
- borderWidth: 3,
152
- borderColor: '#60a5fa',
153
- // Light blue border
154
- position: 'relative',
155
- overflow: 'hidden'
156
- },
157
- stopButton: {
158
- backgroundColor: '#dc2626',
159
- // Red
160
- paddingHorizontal: 32,
161
- paddingVertical: 20,
162
- borderRadius: 30,
163
- shadowColor: '#dc2626',
164
- shadowOffset: {
165
- width: 0,
166
- height: 8
167
- },
168
- shadowOpacity: 0.4,
169
- shadowRadius: 12,
170
- elevation: 8,
171
- justifyContent: 'center',
172
- alignItems: 'center',
173
- minHeight: 70,
174
- minWidth: 200,
175
- borderWidth: 3,
176
- borderColor: '#f87171',
177
- // Light red border
178
- position: 'relative',
179
- overflow: 'hidden'
180
- },
181
- stopButtonContainer: {
182
- shadowOffset: {
183
- width: 0,
184
- height: 0
185
- },
186
- shadowOpacity: 0.6,
187
- shadowRadius: 20,
188
- elevation: 10
189
- },
190
- buttonContent: {
191
- alignItems: 'center',
192
- justifyContent: 'center'
193
- },
194
- startButtonText: {
195
- fontSize: 20,
196
- fontWeight: '800',
197
- color: '#ffffff',
198
- textAlign: 'center',
199
- textShadowColor: 'rgba(0, 0, 0, 0.3)',
200
- textShadowOffset: {
201
- width: 1,
202
- height: 1
203
- },
204
- textShadowRadius: 2,
205
- letterSpacing: 1
206
- },
207
- stopButtonText: {
208
- fontSize: 20,
209
- fontWeight: '800',
210
- color: '#ffffff',
211
- textAlign: 'center',
212
- textShadowColor: 'rgba(0, 0, 0, 0.3)',
213
- textShadowOffset: {
214
- width: 1,
215
- height: 1
216
- },
217
- textShadowRadius: 2,
218
- letterSpacing: 1
219
- },
220
- buttonSubtext: {
221
- fontSize: 12,
222
- fontWeight: '600',
223
- color: 'rgba(255, 255, 255, 0.8)',
224
- textAlign: 'center',
225
- marginTop: 4,
226
- letterSpacing: 0.5
227
- }
228
- });
229
- //# sourceMappingURL=GameControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useRef","useEffect","View","TouchableOpacity","Text","StyleSheet","Animated","jsx","_jsx","jsxs","_jsxs","GameControls","isPlaying","gameOver","onStartGame","onStopGame","scaleAnim","Value","current","pulseAnim","glowAnim","pulseAnimation","loop","sequence","timing","toValue","duration","useNativeDriver","start","stop","glowAnimation","handlePressIn","spring","handlePressOut","friction","tension","glowColor","interpolate","inputRange","outputRange","style","styles","gameControls","children","transform","scale","startButton","onPress","onPressIn","onPressOut","activeOpacity","buttonContent","startButtonText","buttonSubtext","stopButtonContainer","shadowColor","stopButton","stopButtonText","create","justifyContent","alignItems","paddingVertical","paddingHorizontal","backgroundColor","borderRadius","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","minHeight","minWidth","borderWidth","borderColor","position","overflow","fontSize","fontWeight","color","textAlign","textShadowColor","textShadowOffset","textShadowRadius","letterSpacing","marginTop"],"sourceRoot":"../../../../../src","sources":["games/balloon-blaster/components/GameControls.tsx"],"mappings":"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","ignoreList":[]}