react-native-games 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -1
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  3. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  5. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  7. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  9. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  11. package/lib/module/games/balloon-blaster/components/GameArea.js +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  13. package/lib/module/games/balloon-blaster/components/GameBackground.js +1 -1
  14. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  15. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +1 -1
  16. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  17. package/lib/module/games/balloon-blaster/components/index.js +1 -1
  18. package/lib/module/games/bike-racing/BikeRacing.js +1 -1
  19. package/lib/module/games/bike-racing/BikeRacing.js.map +1 -1
  20. package/lib/module/games/bike-racing/BikeRacingConstants.js +1 -1
  21. package/lib/module/games/bike-racing/BikeRacingService.js +1 -1
  22. package/lib/module/games/bike-racing/BikeRacingService.js.map +1 -1
  23. package/lib/module/games/bike-racing/BikeRacingStore.js +1 -1
  24. package/lib/module/games/bike-racing/BikeRacingStore.js.map +1 -1
  25. package/lib/module/games/bike-racing/components/BikeComponent.js +1 -1
  26. package/lib/module/games/bike-racing/components/BikeComponent.js.map +1 -1
  27. package/lib/module/games/bike-racing/components/GameBackground.js +1 -1
  28. package/lib/module/games/bike-racing/components/GameBackground.js.map +1 -1
  29. package/lib/module/games/bike-racing/components/ScoreBoard.js +1 -1
  30. package/lib/module/games/bike-racing/components/ScoreBoard.js.map +1 -1
  31. package/lib/module/games/bike-racing/components/index.js +1 -1
  32. package/lib/module/games/bike-racing/index.js +1 -1
  33. package/lib/module/games/block-blast/BlockBlast.js +1 -1
  34. package/lib/module/games/block-blast/BlockBlast.js.map +1 -1
  35. package/lib/module/games/block-blast/BlockBlastConstants.js +1 -1
  36. package/lib/module/games/block-blast/BlockBlastConstants.js.map +1 -1
  37. package/lib/module/games/block-blast/BlockBlastService.js +1 -1
  38. package/lib/module/games/block-blast/BlockBlastService.js.map +1 -1
  39. package/lib/module/games/block-blast/BlockBlastStore.js +1 -1
  40. package/lib/module/games/block-blast/BlockBlastStore.js.map +1 -1
  41. package/lib/module/games/block-blast/components/BlastAnimation.js +1 -0
  42. package/lib/module/games/block-blast/components/BlastAnimation.js.map +1 -0
  43. package/lib/module/games/block-blast/components/BlockPieceComponent.js +1 -1
  44. package/lib/module/games/block-blast/components/BlockPieceComponent.js.map +1 -1
  45. package/lib/module/games/block-blast/components/GameArea.js +1 -1
  46. package/lib/module/games/block-blast/components/GameArea.js.map +1 -1
  47. package/lib/module/games/block-blast/components/GameBackground.js +1 -1
  48. package/lib/module/games/block-blast/components/GameBackground.js.map +1 -1
  49. package/lib/module/games/block-blast/components/GridComponent.js +1 -1
  50. package/lib/module/games/block-blast/components/GridComponent.js.map +1 -1
  51. package/lib/module/games/block-blast/components/ScoreBoard.js +1 -1
  52. package/lib/module/games/block-blast/components/index.js +1 -1
  53. package/lib/module/games/block-blast/index.js +1 -1
  54. package/lib/module/games/bubble-shooter/BubbleShooter.js +1 -1
  55. package/lib/module/games/bubble-shooter/BubbleShooter.js.map +1 -1
  56. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js +1 -1
  57. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js.map +1 -1
  58. package/lib/module/games/bubble-shooter/BubbleShooterService.js +1 -1
  59. package/lib/module/games/bubble-shooter/BubbleShooterService.js.map +1 -1
  60. package/lib/module/games/bubble-shooter/BubbleShooterStore.js +1 -1
  61. package/lib/module/games/bubble-shooter/BubbleShooterStore.js.map +1 -1
  62. package/lib/module/games/bubble-shooter/components/GameArea.js +1 -1
  63. package/lib/module/games/bubble-shooter/components/GameArea.js.map +1 -1
  64. package/lib/module/games/bubble-shooter/components/GameBackground.js +1 -1
  65. package/lib/module/games/bubble-shooter/components/GameBackground.js.map +1 -1
  66. package/lib/module/games/bubble-shooter/components/ScoreBoard.js +1 -1
  67. package/lib/module/games/bubble-shooter/components/ScoreBoard.js.map +1 -1
  68. package/lib/module/games/bubble-shooter/components/index.js +1 -1
  69. package/lib/module/games/bubble-shooter/index.js +1 -1
  70. package/lib/module/games/candy-crush/CandyCrush.js +1 -1
  71. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -1
  72. package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -1
  73. package/lib/module/games/candy-crush/CandyCrushService.js +1 -1
  74. package/lib/module/games/candy-crush/CandyCrushStore.js +1 -1
  75. package/lib/module/games/candy-crush/CandyCrushStore.js.map +1 -1
  76. package/lib/module/games/candy-crush/components/BlastAnimation.js +1 -0
  77. package/lib/module/games/candy-crush/components/BlastAnimation.js.map +1 -0
  78. package/lib/module/games/candy-crush/components/CandyItem.js +1 -1
  79. package/lib/module/games/candy-crush/components/CandyItem.js.map +1 -1
  80. package/lib/module/games/candy-crush/components/GameBackground.js +1 -1
  81. package/lib/module/games/candy-crush/components/GameGrid.js +1 -1
  82. package/lib/module/games/candy-crush/components/GameGrid.js.map +1 -1
  83. package/lib/module/games/candy-crush/components/ScoreBoard.js +1 -1
  84. package/lib/module/games/candy-crush/components/index.js +1 -1
  85. package/lib/module/games/candy-crush/components/index.js.map +1 -1
  86. package/lib/module/games/candy-crush/index.js +1 -1
  87. package/lib/module/games/car-racing/CarRacing.js +1 -1
  88. package/lib/module/games/car-racing/CarRacing.js.map +1 -1
  89. package/lib/module/games/car-racing/CarRacingConstants.js +1 -1
  90. package/lib/module/games/car-racing/CarRacingService.js +1 -1
  91. package/lib/module/games/car-racing/CarRacingService.js.map +1 -1
  92. package/lib/module/games/car-racing/CarRacingStore.js +1 -1
  93. package/lib/module/games/car-racing/CarRacingStore.js.map +1 -1
  94. package/lib/module/games/car-racing/components/CarComponent.js +1 -1
  95. package/lib/module/games/car-racing/components/CarComponent.js.map +1 -1
  96. package/lib/module/games/car-racing/components/GameBackground.js +1 -1
  97. package/lib/module/games/car-racing/components/GameBackground.js.map +1 -1
  98. package/lib/module/games/car-racing/components/ScoreBoard.js +1 -1
  99. package/lib/module/games/car-racing/components/ScoreBoard.js.map +1 -1
  100. package/lib/module/games/car-racing/components/index.js +1 -1
  101. package/lib/module/games/colors-sort/ColorsSort.js +1 -1
  102. package/lib/module/games/colors-sort/ColorsSort.js.map +1 -1
  103. package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -1
  104. package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -1
  105. package/lib/module/games/colors-sort/ColorsSortService.js +1 -1
  106. package/lib/module/games/colors-sort/ColorsSortStore.js +1 -1
  107. package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -1
  108. package/lib/module/games/colors-sort/components/ColorContainer.js +1 -1
  109. package/lib/module/games/colors-sort/components/ColorContainer.js.map +1 -1
  110. package/lib/module/games/colors-sort/components/GameBackground.js +1 -1
  111. package/lib/module/games/colors-sort/components/GameBackground.js.map +1 -1
  112. package/lib/module/games/colors-sort/components/ScoreBoard.js +1 -1
  113. package/lib/module/games/colors-sort/components/ScoreBoard.js.map +1 -1
  114. package/lib/module/games/colors-sort/components/index.js +1 -1
  115. package/lib/module/games/dino-jump/DinoJump.js +1 -1
  116. package/lib/module/games/dino-jump/DinoJump.js.map +1 -1
  117. package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -1
  118. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -1
  119. package/lib/module/games/dino-jump/DinoJumpService.js +1 -1
  120. package/lib/module/games/dino-jump/DinoJumpService.js.map +1 -1
  121. package/lib/module/games/dino-jump/DinoJumpStore.js +1 -1
  122. package/lib/module/games/dino-jump/DinoJumpStore.js.map +1 -1
  123. package/lib/module/games/dino-jump/components/DinoSprite.js +1 -1
  124. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -1
  125. package/lib/module/games/dino-jump/components/GameArea.js +1 -1
  126. package/lib/module/games/dino-jump/components/GameBackground.js +1 -1
  127. package/lib/module/games/dino-jump/components/GameBackground.js.map +1 -1
  128. package/lib/module/games/dino-jump/components/ObstacleSprite.js +1 -1
  129. package/lib/module/games/dino-jump/components/ObstacleSprite.js.map +1 -1
  130. package/lib/module/games/dino-jump/components/ScoreBoard.js +1 -1
  131. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -1
  132. package/lib/module/games/dino-jump/components/StarSprite.js +1 -1
  133. package/lib/module/games/dino-jump/components/index.js +1 -1
  134. package/lib/module/games/flappy-bird/FlappyBird.js +1 -1
  135. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -1
  136. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -1
  137. package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -1
  138. package/lib/module/games/flappy-bird/FlappyBirdStore.js +1 -1
  139. package/lib/module/games/flappy-bird/FlappyBirdStore.js.map +1 -1
  140. package/lib/module/games/flappy-bird/components/Bird.js +1 -1
  141. package/lib/module/games/flappy-bird/components/Bird.js.map +1 -1
  142. package/lib/module/games/flappy-bird/components/GameArea.js +1 -1
  143. package/lib/module/games/flappy-bird/components/GameArea.js.map +1 -1
  144. package/lib/module/games/flappy-bird/components/GameBackground.js +1 -1
  145. package/lib/module/games/flappy-bird/components/GameBackground.js.map +1 -1
  146. package/lib/module/games/flappy-bird/components/Pipes.js +1 -1
  147. package/lib/module/games/flappy-bird/components/Pipes.js.map +1 -1
  148. package/lib/module/games/flappy-bird/components/ScoreBoard.js +1 -1
  149. package/lib/module/games/flappy-bird/components/ScoreBoard.js.map +1 -1
  150. package/lib/module/games/flappy-bird/components/index.js +1 -1
  151. package/lib/module/games/fruit-merger/FruitMerger.js +1 -1
  152. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -1
  153. package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -1
  154. package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -1
  155. package/lib/module/games/fruit-merger/FruitMergerService.js +1 -1
  156. package/lib/module/games/fruit-merger/FruitMergerStore.js +1 -1
  157. package/lib/module/games/fruit-merger/FruitMergerStore.js.map +1 -1
  158. package/lib/module/games/fruit-merger/components/FruitItem.js +1 -1
  159. package/lib/module/games/fruit-merger/components/FruitItem.js.map +1 -1
  160. package/lib/module/games/fruit-merger/components/GameArea.js +1 -1
  161. package/lib/module/games/fruit-merger/components/GameArea.js.map +1 -1
  162. package/lib/module/games/fruit-merger/components/GameBackground.js +1 -1
  163. package/lib/module/games/fruit-merger/components/GameBackground.js.map +1 -1
  164. package/lib/module/games/fruit-merger/components/ScoreBoard.js +1 -1
  165. package/lib/module/games/fruit-merger/components/index.js +1 -1
  166. package/lib/module/games/fruit-ninja/FruitNinja.js +1 -1
  167. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  168. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -1
  169. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  170. package/lib/module/games/fruit-ninja/FruitNinjaService.js +1 -1
  171. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -1
  172. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -1
  173. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  174. package/lib/module/games/fruit-ninja/components/FruitComponent.js +1 -1
  175. package/lib/module/games/fruit-ninja/components/FruitComponent.js.map +1 -1
  176. package/lib/module/games/fruit-ninja/components/GameArea.js +1 -1
  177. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
  178. package/lib/module/games/fruit-ninja/components/GameBackground.js +1 -1
  179. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
  180. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +1 -1
  181. package/lib/module/games/fruit-ninja/components/index.js +1 -1
  182. package/lib/module/games/game-2048/Game2048.js +1 -1
  183. package/lib/module/games/game-2048/Game2048.js.map +1 -1
  184. package/lib/module/games/game-2048/Game2048Constants.js +1 -1
  185. package/lib/module/games/game-2048/Game2048Service.js +1 -1
  186. package/lib/module/games/game-2048/Game2048Store.js +1 -1
  187. package/lib/module/games/game-2048/Game2048Store.js.map +1 -1
  188. package/lib/module/games/game-2048/components/GameBackground.js +1 -1
  189. package/lib/module/games/game-2048/components/GameBackground.js.map +1 -1
  190. package/lib/module/games/game-2048/components/GameGrid.js +1 -1
  191. package/lib/module/games/game-2048/components/GameGrid.js.map +1 -1
  192. package/lib/module/games/game-2048/components/GameTile.js +1 -1
  193. package/lib/module/games/game-2048/components/GameTile.js.map +1 -1
  194. package/lib/module/games/game-2048/components/ScoreBoard.js +1 -1
  195. package/lib/module/games/game-2048/components/ScoreBoard.js.map +1 -1
  196. package/lib/module/games/game-2048/components/index.js +1 -1
  197. package/lib/module/games/maze-runner/MazeRunner.js +1 -1
  198. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  199. package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -1
  200. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  201. package/lib/module/games/maze-runner/MazeRunnerService.js +1 -1
  202. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  203. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +1 -1
  204. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -1
  205. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +1 -1
  206. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  207. package/lib/module/games/maze-runner/components/GameBackground.js +1 -1
  208. package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -1
  209. package/lib/module/games/maze-runner/components/ScoreBoard.js +1 -1
  210. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  211. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +1 -1
  212. package/lib/module/games/maze-runner/components/StaticGameBackground.js +1 -1
  213. package/lib/module/games/maze-runner/components/WallComponent.js +1 -1
  214. package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -1
  215. package/lib/module/games/maze-runner/components/index.js +1 -1
  216. package/lib/module/games/perfect-circle/PerfectCircle.js +1 -1
  217. package/lib/module/games/perfect-circle/PerfectCircle.js.map +1 -1
  218. package/lib/module/games/perfect-circle/PerfectCircleConstants.js +1 -1
  219. package/lib/module/games/perfect-circle/PerfectCircleConstants.js.map +1 -1
  220. package/lib/module/games/perfect-circle/PerfectCircleService.js +1 -1
  221. package/lib/module/games/perfect-circle/PerfectCircleService.js.map +1 -1
  222. package/lib/module/games/perfect-circle/PerfectCircleStore.js +1 -1
  223. package/lib/module/games/perfect-circle/PerfectCircleStore.js.map +1 -1
  224. package/lib/module/games/perfect-circle/components/DrawingCanvas.js +1 -1
  225. package/lib/module/games/perfect-circle/components/DrawingCanvas.js.map +1 -1
  226. package/lib/module/games/perfect-circle/components/GameBackground.js +1 -1
  227. package/lib/module/games/perfect-circle/components/GameBackground.js.map +1 -1
  228. package/lib/module/games/perfect-circle/components/ScoreBoard.js +1 -1
  229. package/lib/module/games/perfect-circle/index.js +1 -1
  230. package/lib/module/games/popit-fidget/PopitFidget.js +1 -1
  231. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  232. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -1
  233. package/lib/module/games/popit-fidget/PopitFidgetService.js +1 -1
  234. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -1
  235. package/lib/module/games/popit-fidget/PopitFidgetStore.js +1 -1
  236. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
  237. package/lib/module/games/popit-fidget/components/BubbleComponent.js +1 -1
  238. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -1
  239. package/lib/module/games/popit-fidget/components/FidgetGrid.js +1 -1
  240. package/lib/module/games/popit-fidget/components/FidgetGrid.js.map +1 -1
  241. package/lib/module/games/popit-fidget/components/GameBackground.js +1 -1
  242. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -1
  243. package/lib/module/games/popit-fidget/components/ScoreBoard.js +1 -1
  244. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
  245. package/lib/module/games/popit-fidget/components/index.js +1 -1
  246. package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -1
  247. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -1
  248. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -1
  249. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +1 -1
  250. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +1 -1
  251. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js.map +1 -1
  252. package/lib/module/games/sliding-numbers/components/GameBackground.js +1 -1
  253. package/lib/module/games/sliding-numbers/components/GameBackground.js.map +1 -1
  254. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +1 -1
  255. package/lib/module/games/sliding-numbers/components/NumbersGrid.js.map +1 -1
  256. package/lib/module/games/sliding-numbers/components/NumbersTile.js +1 -1
  257. package/lib/module/games/sliding-numbers/components/NumbersTile.js.map +1 -1
  258. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +1 -1
  259. package/lib/module/games/sliding-numbers/components/ScoreBoard.js.map +1 -1
  260. package/lib/module/games/sliding-numbers/components/index.js +1 -1
  261. package/lib/module/games/snake/Snake.js +1 -1
  262. package/lib/module/games/snake/Snake.js.map +1 -1
  263. package/lib/module/games/snake/SnakeConstants.js +1 -1
  264. package/lib/module/games/snake/SnakeService.js +1 -1
  265. package/lib/module/games/snake/SnakeStore.js +1 -1
  266. package/lib/module/games/snake/SnakeStore.js.map +1 -1
  267. package/lib/module/games/snake/components/GameBackground.js +1 -1
  268. package/lib/module/games/snake/components/GameBackground.js.map +1 -1
  269. package/lib/module/games/snake/components/GameGrid.js +1 -1
  270. package/lib/module/games/snake/components/GameGrid.js.map +1 -1
  271. package/lib/module/games/snake/components/ScoreBoard.js +1 -1
  272. package/lib/module/games/snake/components/index.js +1 -1
  273. package/lib/module/games/snake/index.js +1 -1
  274. package/lib/module/games/space-fighter/SpaceFighter.js +1 -1
  275. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  276. package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -1
  277. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  278. package/lib/module/games/space-fighter/SpaceFighterService.js +1 -1
  279. package/lib/module/games/space-fighter/SpaceFighterStore.js +1 -1
  280. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
  281. package/lib/module/games/space-fighter/components/AsteroidComponent.js +1 -1
  282. package/lib/module/games/space-fighter/components/GameArea.js +1 -1
  283. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
  284. package/lib/module/games/space-fighter/components/GameBackground.js +1 -1
  285. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -1
  286. package/lib/module/games/space-fighter/components/ScoreBoard.js +1 -1
  287. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
  288. package/lib/module/games/space-fighter/components/Spacecraft3D.js +1 -1
  289. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -1
  290. package/lib/module/games/space-fighter/components/SpacecraftPath.js +1 -1
  291. package/lib/module/games/space-fighter/components/index.js +1 -1
  292. package/lib/module/games/whack-a-mole/WhackAMole.js +1 -1
  293. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  294. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -1
  295. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  296. package/lib/module/games/whack-a-mole/WhackAMoleService.js +1 -1
  297. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -1
  298. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -1
  299. package/lib/module/games/whack-a-mole/components/GameBackground.js +1 -1
  300. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -1
  301. package/lib/module/games/whack-a-mole/components/GameGrid.js +1 -1
  302. package/lib/module/games/whack-a-mole/components/GameHole.js +1 -1
  303. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -1
  304. package/lib/module/games/whack-a-mole/components/MoleCharacter.js +1 -1
  305. package/lib/module/games/whack-a-mole/components/MoleCharacter.js.map +1 -1
  306. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +1 -1
  307. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  308. package/lib/module/games/whack-a-mole/components/index.js +1 -1
  309. package/lib/module/helpers/AbstractFruits.js +1 -0
  310. package/lib/module/helpers/AbstractFruits.js.map +1 -0
  311. package/lib/module/helpers/AnimationFrame.js +1 -1
  312. package/lib/module/helpers/AnimationTracker.js +1 -1
  313. package/lib/module/helpers/ErrorHandler.js +1 -1
  314. package/lib/module/helpers/GameControlButton.js +1 -1
  315. package/lib/module/helpers/GameControlButton.js.map +1 -1
  316. package/lib/module/helpers/GameOverModal.js +1 -1
  317. package/lib/module/helpers/GameSettingsModal.js +1 -1
  318. package/lib/module/helpers/ParticleBlast.js +1 -1
  319. package/lib/module/helpers/ScoreBoardContainer.js +1 -1
  320. package/lib/module/helpers/ScoreBoardContainer.js.map +1 -1
  321. package/lib/module/helpers/index.js +1 -1
  322. package/lib/module/helpers/index.js.map +1 -1
  323. package/lib/module/index.js +1 -1
  324. package/lib/module/services/GamesConstants.js +1 -1
  325. package/lib/module/services/GamesService.js +1 -1
  326. package/lib/module/services/GamesService.js.map +1 -1
  327. package/lib/module/services/HapticsService.js +1 -1
  328. package/lib/module/services/ScoringService.js +1 -1
  329. package/lib/module/services/SoundsService.js +1 -1
  330. package/lib/module/services/UtilsService.js +1 -1
  331. package/lib/module/services/UtilsService.js.map +1 -1
  332. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  333. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +5 -1
  334. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -1
  335. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  336. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  337. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  338. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  339. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  340. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  341. package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts.map +1 -1
  342. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts +6 -2
  343. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts.map +1 -1
  344. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts +9 -0
  345. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts.map +1 -1
  346. package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts.map +1 -1
  347. package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts.map +1 -1
  348. package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts.map +1 -1
  349. package/lib/typescript/src/games/block-blast/BlockBlast.d.ts.map +1 -1
  350. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts +2 -2
  351. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts.map +1 -1
  352. package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts.map +1 -1
  353. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts +13 -1
  354. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts.map +1 -1
  355. package/lib/typescript/src/games/block-blast/components/BlastAnimation.d.ts +12 -0
  356. package/lib/typescript/src/games/block-blast/components/BlastAnimation.d.ts.map +1 -0
  357. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts +1 -4
  358. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts.map +1 -1
  359. package/lib/typescript/src/games/block-blast/components/GameArea.d.ts.map +1 -1
  360. package/lib/typescript/src/games/block-blast/components/GameBackground.d.ts.map +1 -1
  361. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts +4 -2
  362. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts.map +1 -1
  363. package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts.map +1 -1
  364. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts +12 -6
  365. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts.map +1 -1
  366. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts +1 -0
  367. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts.map +1 -1
  368. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts +5 -1
  369. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts.map +1 -1
  370. package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts.map +1 -1
  371. package/lib/typescript/src/games/bubble-shooter/components/GameBackground.d.ts.map +1 -1
  372. package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts.map +1 -1
  373. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +1 -1
  374. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts +8 -0
  375. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts.map +1 -1
  376. package/lib/typescript/src/games/candy-crush/components/BlastAnimation.d.ts +16 -0
  377. package/lib/typescript/src/games/candy-crush/components/BlastAnimation.d.ts.map +1 -0
  378. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts.map +1 -1
  379. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts.map +1 -1
  380. package/lib/typescript/src/games/candy-crush/components/index.d.ts +1 -0
  381. package/lib/typescript/src/games/candy-crush/components/index.d.ts.map +1 -1
  382. package/lib/typescript/src/games/car-racing/CarRacing.d.ts.map +1 -1
  383. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts +6 -2
  384. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts.map +1 -1
  385. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts +9 -0
  386. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts.map +1 -1
  387. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts +0 -1
  388. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts.map +1 -1
  389. package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts.map +1 -1
  390. package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts.map +1 -1
  391. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -1
  392. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts +1 -0
  393. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts.map +1 -1
  394. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts +5 -1
  395. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -1
  396. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts +1 -1
  397. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts.map +1 -1
  398. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts.map +1 -1
  399. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -1
  400. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +9 -7
  401. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts.map +1 -1
  402. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +1 -1
  403. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +1 -0
  404. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts.map +1 -1
  405. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -1
  406. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts.map +1 -1
  407. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts.map +1 -1
  408. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts.map +1 -1
  409. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -1
  410. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts +6 -0
  411. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -1
  412. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +8 -4
  413. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts.map +1 -1
  414. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts.map +1 -1
  415. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts.map +1 -1
  416. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts.map +1 -1
  417. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts.map +1 -1
  418. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts.map +1 -1
  419. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -1
  420. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts +21 -20
  421. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -1
  422. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts.map +1 -1
  423. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts +1 -2
  424. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts.map +1 -1
  425. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts.map +1 -1
  426. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts.map +1 -1
  427. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +15 -45
  428. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -1
  429. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts +9 -33
  430. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -1
  431. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts +0 -11
  432. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -1
  433. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts +0 -1
  434. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts.map +1 -1
  435. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -1
  436. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
  437. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -1
  438. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +20 -0
  439. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts.map +1 -1
  440. package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts.map +1 -1
  441. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts.map +1 -1
  442. package/lib/typescript/src/games/game-2048/components/GameTile.d.ts.map +1 -1
  443. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  444. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +2 -2
  445. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  446. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts +1 -1
  447. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -1
  448. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  449. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +1 -1
  450. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -1
  451. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +1 -0
  452. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  453. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts +1 -1
  454. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -1
  455. package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts.map +1 -1
  456. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts +1 -0
  457. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts.map +1 -1
  458. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts +5 -3
  459. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts.map +1 -1
  460. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts +16 -0
  461. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts.map +1 -1
  462. package/lib/typescript/src/games/perfect-circle/components/GameBackground.d.ts.map +1 -1
  463. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  464. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +2 -2
  465. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +4 -2
  466. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
  467. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -1
  468. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts.map +1 -1
  469. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -1
  470. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -1
  471. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
  472. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -1
  473. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts +1 -1
  474. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts +10 -0
  475. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts.map +1 -1
  476. package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts.map +1 -1
  477. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts.map +1 -1
  478. package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts.map +1 -1
  479. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts.map +1 -1
  480. package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -1
  481. package/lib/typescript/src/games/snake/SnakeStore.d.ts +16 -0
  482. package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -1
  483. package/lib/typescript/src/games/snake/components/GameBackground.d.ts.map +1 -1
  484. package/lib/typescript/src/games/snake/components/GameGrid.d.ts.map +1 -1
  485. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  486. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +4 -4
  487. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
  488. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -1
  489. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
  490. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -1
  491. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  492. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +8 -3
  493. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -1
  494. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -1
  495. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -1
  496. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts.map +1 -1
  497. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts.map +1 -1
  498. package/lib/typescript/src/helpers/AbstractFruits.d.ts +207 -0
  499. package/lib/typescript/src/helpers/AbstractFruits.d.ts.map +1 -0
  500. package/lib/typescript/src/helpers/GameControlButton.d.ts +4 -7
  501. package/lib/typescript/src/helpers/GameControlButton.d.ts.map +1 -1
  502. package/lib/typescript/src/helpers/ParticleBlast.d.ts +1 -1
  503. package/lib/typescript/src/helpers/ParticleBlast.d.ts.map +1 -1
  504. package/lib/typescript/src/helpers/index.d.ts +1 -0
  505. package/lib/typescript/src/helpers/index.d.ts.map +1 -1
  506. package/lib/typescript/src/services/UtilsService.d.ts +2 -0
  507. package/lib/typescript/src/services/UtilsService.d.ts.map +1 -1
  508. package/package.json +7 -3
@@ -1 +1 @@
1
- "use strict";import{useCallback,useRef}from 'react';export let GameErrorType = function(GameErrorType){GameErrorType["INITIALIZATION_ERROR"] = "INITIALIZATION_ERROR";GameErrorType["ANIMATION_ERROR"] = "ANIMATION_ERROR";GameErrorType["STORAGE_ERROR"] = "STORAGE_ERROR";GameErrorType["SOUND_ERROR"] = "SOUND_ERROR";GameErrorType["HAPTIC_ERROR"] = "HAPTIC_ERROR";GameErrorType["GESTURE_ERROR"] = "GESTURE_ERROR";GameErrorType["PERFORMANCE_ERROR"] = "PERFORMANCE_ERROR";GameErrorType["NETWORK_ERROR"] = "NETWORK_ERROR";GameErrorType["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";return GameErrorType;}({});export const DEFAULT_ERROR_CONFIG ={enableLogging:__DEV__,enableConsoleOutput:__DEV__,maxErrorHistory:50,enableCrashRecovery:true};export class GameErrorHandler{errorHistory = [];errorCounts = new Map();constructor(config ={}){this.config ={...DEFAULT_ERROR_CONFIG,...config};}handleError(type,message,gameId,context){const error ={type,message,gameId,timestamp:Date.now(),stack:new Error().stack,context};this.errorHistory.push(error);if(this.errorHistory.length > this.config.maxErrorHistory){this.errorHistory.shift();}const currentCount = this.errorCounts.get(type)|| 0;this.errorCounts.set(type,currentCount + 1);if(this.config.enableLogging && this.config.enableConsoleOutput){this.logError(error);}if(this.config.onError){try{this.config.onError(error);}catch(handlerError){console.error('Error in custom error handler:',handlerError);}}}wrapFunction(fn,errorType,gameId){return(...args)=>{try{const result = fn(...args);if(result && typeof result.catch === 'function'){return result.catch(error =>{this.handleError(errorType,error.message || 'Async function error',gameId,{functionName:fn.name,args});throw error;});}return result;}catch(error){this.handleError(errorType,error instanceof Error ? error.message:'Unknown error',gameId,{functionName:fn.name,args});throw error;}};}safeExecute(fn,fallback,errorType,gameId){try{return fn();}catch(error){this.handleError(errorType,error instanceof Error ? error.message:'Safe execution failed',gameId,{fallback});return fallback;}}async safeExecuteAsync(fn,fallback,errorType,gameId){try{return await fn();}catch(error){this.handleError(errorType,error instanceof Error ? error.message:'Safe async execution failed',gameId,{fallback});return fallback;}}getErrorStats(){const errorsByType ={};for(const [type,count] of this.errorCounts.entries()){errorsByType[type] = count;}return{totalErrors:this.errorHistory.length,errorsByType,recentErrors:this.errorHistory.slice(-10)};}clearHistory(){this.errorHistory = [];this.errorCounts.clear();}updateConfig(config){this.config ={...this.config,...config};}logError(error){const prefix = error.gameId ? `[${error.gameId}]`:'[Game]';console.error(`${prefix}${error.type}:${error.message}`,{timestamp:new Date(error.timestamp).toISOString(),context:error.context,stack:error.stack});}}export const globalErrorHandler = new GameErrorHandler();export function useGameErrorHandler(gameId,config ={}){const handlerRef = useRef(null);if(!handlerRef.current){handlerRef.current = new GameErrorHandler(config);}const handleError = useCallback((type,message,context)=>{handlerRef.current?.handleError(type,message,gameId,context);},[gameId]);const wrapFunction = useCallback((fn,errorType)=>{return handlerRef.current?.wrapFunction(fn,errorType,gameId)|| fn;},[gameId]);const safeExecute = useCallback((fn,fallback,errorType)=>{return handlerRef.current?.safeExecute(fn,fallback,errorType,gameId)|| fallback;},[gameId]);const safeExecuteAsync = useCallback((fn,fallback,errorType)=>{return handlerRef.current?.safeExecuteAsync(fn,fallback,errorType,gameId)|| Promise.resolve(fallback);},[gameId]);return{handleError,wrapFunction,safeExecute,safeExecuteAsync,errorStats:handlerRef.current?.getErrorStats()||{totalErrors:0,errorsByType:{},recentErrors:[]}};}export function withErrorHandling(fn,gameId,errorType = GameErrorType.UNKNOWN_ERROR){return globalErrorHandler.wrapFunction(fn,errorType,gameId);}export const ErrorUtils ={safeAnimate:(animationFn,gameId,fallback)=>{globalErrorHandler.safeExecute(animationFn,fallback ? fallback():undefined,GameErrorType.ANIMATION_ERROR,gameId);},safePlaySound:(soundFn,gameId)=>{globalErrorHandler.safeExecute(soundFn,undefined,GameErrorType.SOUND_ERROR,gameId);},safeHaptic:(hapticFn,gameId)=>{globalErrorHandler.safeExecute(hapticFn,undefined,GameErrorType.HAPTIC_ERROR,gameId);},safeGesture:(gestureFn,gameId)=>{globalErrorHandler.safeExecute(gestureFn,undefined,GameErrorType.GESTURE_ERROR,gameId);}};
1
+ "use strict";import{useCallback as r,useRef as e}from"react";export let GameErrorType=function(r){return r.INITIALIZATION_ERROR="INITIALIZATION_ERROR",r.ANIMATION_ERROR="ANIMATION_ERROR",r.STORAGE_ERROR="STORAGE_ERROR",r.SOUND_ERROR="SOUND_ERROR",r.HAPTIC_ERROR="HAPTIC_ERROR",r.GESTURE_ERROR="GESTURE_ERROR",r.PERFORMANCE_ERROR="PERFORMANCE_ERROR",r.NETWORK_ERROR="NETWORK_ERROR",r.UNKNOWN_ERROR="UNKNOWN_ERROR",r}({});export const DEFAULT_ERROR_CONFIG={enableLogging:__DEV__,enableConsoleOutput:__DEV__,maxErrorHistory:50,enableCrashRecovery:!0};export class GameErrorHandler{errorHistory=[];errorCounts=new Map;constructor(r={}){this.config={...DEFAULT_ERROR_CONFIG,...r}}handleError(r,e,t,o){const a={type:r,message:e,gameId:t,timestamp:Date.now(),stack:Error().stack,context:o};this.errorHistory.push(a),this.errorHistory.length>this.config.maxErrorHistory&&this.errorHistory.shift();const n=this.errorCounts.get(r)||0;if(this.errorCounts.set(r,n+1),this.config.enableLogging&&this.config.enableConsoleOutput&&this.logError(a),this.config.onError)try{this.config.onError(a)}catch(r){}}wrapFunction(r,e,t){return(...o)=>{try{const a=r(...o);return a&&"function"==typeof a.catch?a.catch(a=>{throw this.handleError(e,a.message||"Async function error",t,{functionName:r.name,args:o}),a}):a}catch(a){throw this.handleError(e,a instanceof Error?a.message:"Unknown error",t,{functionName:r.name,args:o}),a}}}safeExecute(r,e,t,o){try{return r()}catch(r){return this.handleError(t,r instanceof Error?r.message:"Safe execution failed",o,{fallback:e}),e}}async safeExecuteAsync(r,e,t,o){try{return await r()}catch(r){return this.handleError(t,r instanceof Error?r.message:"Safe async execution failed",o,{fallback:e}),e}}getErrorStats(){const r={};for(const[e,t]of this.errorCounts.entries())r[e]=t;return{totalErrors:this.errorHistory.length,errorsByType:r,recentErrors:this.errorHistory.slice(-10)}}clearHistory(){this.errorHistory=[],this.errorCounts.clear()}updateConfig(r){this.config={...this.config,...r}}logError(r){r.gameId&&r.gameId}}export const globalErrorHandler=new GameErrorHandler;export function useGameErrorHandler(t,o={}){const a=e(null);return a.current||(a.current=new GameErrorHandler(o)),{handleError:r((r,e,o)=>{a.current?.handleError(r,e,t,o)},[t]),wrapFunction:r((r,e)=>a.current?.wrapFunction(r,e,t)||r,[t]),safeExecute:r((r,e,o)=>a.current?.safeExecute(r,e,o,t)||e,[t]),safeExecuteAsync:r((r,e,o)=>a.current?.safeExecuteAsync(r,e,o,t)||Promise.resolve(e),[t]),errorStats:a.current?.getErrorStats()||{totalErrors:0,errorsByType:{},recentErrors:[]}}}export function withErrorHandling(r,e,t=GameErrorType.UNKNOWN_ERROR){return globalErrorHandler.wrapFunction(r,t,e)}export const ErrorUtils={safeAnimate:(r,e,t)=>{globalErrorHandler.safeExecute(r,t?t():void 0,GameErrorType.ANIMATION_ERROR,e)},safePlaySound:(r,e)=>{globalErrorHandler.safeExecute(r,void 0,GameErrorType.SOUND_ERROR,e)},safeHaptic:(r,e)=>{globalErrorHandler.safeExecute(r,void 0,GameErrorType.HAPTIC_ERROR,e)},safeGesture:(r,e)=>{globalErrorHandler.safeExecute(r,void 0,GameErrorType.GESTURE_ERROR,e)}};
@@ -1 +1 @@
1
- "use strict";import React,{useRef,useEffect,useMemo}from 'react';import{View,TouchableOpacity,Text,StyleSheet,Animated}from 'react-native';import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const GameControlButton = React.memo(({isPlaying,gameOver,onStartGame,onStopGame,startButtonText = 'START GAME',stopButtonText = 'STOP GAME',startButtonSubtext = 'Begin playing!',stopButtonSubtext = 'End current game',startButtonColor = '#10b981',stopButtonColor = '#dc2626',startButtonBorderColor = '#34d399',stopButtonBorderColor = '#f87171'})=>{const scaleAnim = useRef(new Animated.Value(1)).current;const pulseAnim = useRef(new Animated.Value(1)).current;const glowAnim = useRef(new Animated.Value(0)).current;useEffect(()=>{if(!isPlaying){const pulseAnimation = Animated.loop(Animated.sequence([Animated.timing(pulseAnim,{toValue:1.05,duration:1000,useNativeDriver:true}),Animated.timing(pulseAnim,{toValue:1,duration:1000,useNativeDriver:true})]));pulseAnimation.start();return()=> pulseAnimation.stop();}return()=>{};},[isPlaying,gameOver,pulseAnim]);useEffect(()=>{if(isPlaying){const glowAnimation = Animated.loop(Animated.sequence([Animated.timing(glowAnim,{toValue:1,duration:800,useNativeDriver:false}),Animated.timing(glowAnim,{toValue:0,duration:800,useNativeDriver:false})]));glowAnimation.start();return()=> glowAnimation.stop();}return()=>{};},[isPlaying,glowAnim]);const handlePressIn =()=>{Animated.spring(scaleAnim,{toValue:0.95,useNativeDriver:true}).start();};const handlePressOut =()=>{Animated.spring(scaleAnim,{toValue:1,friction:3,tension:40,useNativeDriver:true}).start();};const glowColor = useMemo(()=> glowAnim.interpolate({inputRange:[0,1],outputRange:[`${stopButtonColor}30`,`${stopButtonColor}CC`]}),[glowAnim,stopButtonColor]);return _jsx(View,{style:styles.controlButtonContainer,children:_jsxs(View,{style:styles.gameControls,children:[!isPlaying && _jsx(Animated.View,{style:[{transform:[{scale:pulseAnim}]}],children:_jsx(TouchableOpacity,{style:[styles.button,styles.startButton,{backgroundColor:startButtonColor,borderColor:startButtonBorderColor}],onPress:onStartGame,onPressIn:handlePressIn,onPressOut:handlePressOut,activeOpacity:0.8,children:_jsxs(Animated.View,{style:[styles.buttonContent,{transform:[{scale:scaleAnim}]}],children:[_jsx(Text,{style:styles.buttonText,children:startButtonText}),_jsx(Text,{style:styles.buttonSubtext,children:startButtonSubtext})]})})}),isPlaying && _jsx(Animated.View,{style:[styles.stopButtonContainer,{shadowColor:glowColor}],children:_jsx(TouchableOpacity,{style:[styles.button,styles.stopButton,{backgroundColor:stopButtonColor,borderColor:stopButtonBorderColor}],onPress:onStopGame,onPressIn:handlePressIn,onPressOut:handlePressOut,activeOpacity:0.8,children:_jsxs(Animated.View,{style:[styles.buttonContent,{transform:[{scale:scaleAnim}]}],children:[_jsx(Text,{style:styles.buttonText,children:stopButtonText}),_jsx(Text,{style:styles.buttonSubtext,children:stopButtonSubtext})]})})})]})});});const styles = StyleSheet.create({controlButtonContainer:{position:'absolute',bottom:0,left:20,right:20,zIndex:100,pointerEvents:'box-none'},gameControls:{justifyContent:'center',alignItems:'center',paddingVertical:20,paddingHorizontal:20},button:{paddingHorizontal:32,paddingVertical:20,borderRadius:30,shadowColor:'#000',shadowOffset:{width:0,height:8},shadowOpacity:0.4,shadowRadius:12,elevation:8,justifyContent:'center',alignItems:'center',minHeight:70,minWidth:200,borderWidth:3,position:'relative',overflow:'hidden'},startButton:{},stopButton:{},stopButtonContainer:{shadowOffset:{width:0,height:0},shadowOpacity:0.6,shadowRadius:20,elevation:10},buttonContent:{alignItems:'center',justifyContent:'center'},buttonText:{fontSize:20,fontWeight:'800',color:'#ffffff',textAlign:'center',textShadowColor:'rgba(0,0,0,0.3)',textShadowOffset:{width:1,height:1},textShadowRadius:2,letterSpacing:1},buttonSubtext:{fontSize:12,fontWeight:'600',color:'rgba(255,255,255,0.8)',textAlign:'center',marginTop:4,letterSpacing:0.5}});
1
+ "use strict";import t,{useRef as e,useEffect as o,useMemo as r}from"react";import{View as n,TouchableOpacity as i,Text as a,StyleSheet as s,Animated as l}from"react-native";import d,{Path as c}from"react-native-svg";import{jsx as h,jsxs as f}from"react/jsx-runtime";const u=({size:t=24,color:e="#ffffff"})=>h(d,{width:t,height:t,viewBox:"0 0 512 512",fill:"none",children:h(c,{d:"M464 80H400V64a32 32 0 00-32-32H144a32 32 0 00-32 32v16H48a16 16 0 00-16 16v64c0 53 43 96 96 96h2.72A144.4 144.4 0 00208 336.13V368h-64a48 48 0 00-48 48v32a16 16 0 0016 16h288a16 16 0 0016-16v-32a48 48 0 00-48-48h-64v-31.87A144.4 144.4 0 00381.28 256H384c53 0 96-43 96-96V96a16 16 0 00-16-16zM128 208c-35.29 0-64-28.71-64-64v-48h48v48a144.76 144.76 0 0018.71 70.09A95.57 95.57 0 01128 208zm320-64c0 35.29-28.71 64-64 64a95.57 95.57 0 01-2.71 6.09A144.76 144.76 0 00400 144V96h48z",fill:e})}),g=({size:t=24,color:e="#ffffff"})=>h(d,{width:t,height:t,viewBox:"0 0 512 512",fill:"none",children:h(c,{d:"M58.79 439.13A16 16 0 0148 424c0-73.1 14.68-131.56 43.65-173.77 35-51 90.21-78.46 164.35-81.87V88a16 16 0 0127.05-11.57l176 168a16 16 0 010 23.14l-176 168A16 16 0 01256 424v-79.77c-68.22.93-119.16 18.37-151.66 52.11-26.48 27.5-42.34 64.79-42.34 106.66a16 16 0 01-3.21-64.87z",fill:e})});export const GameControlButton=t.memo(({isPlaying:t,gameOver:s,onStartGame:d,onStopGame:c,onShare:p,onShowLeaderboard:b,startButtonSubtext:m="Begin playing!",buttonColor:w="#10b981",buttonBorderColor:y="#34d399"})=>{const C=e(new l.Value(1)).current,x=e(new l.Value(1)).current,O=e(new l.Value(0)).current;o(()=>{if(!t){const t=l.loop(l.sequence([l.timing(x,{toValue:1.05,duration:1e3,useNativeDriver:!0}),l.timing(x,{toValue:1,duration:1e3,useNativeDriver:!0})]));return t.start(),()=>t.stop()}return()=>{}},[t,s,x]),o(()=>{if(t){const t=l.loop(l.sequence([l.timing(O,{toValue:1,duration:800,useNativeDriver:!1}),l.timing(O,{toValue:0,duration:800,useNativeDriver:!1})]));return t.start(),()=>t.stop()}return()=>{}},[t,O]);const S=()=>{l.spring(C,{toValue:.95,useNativeDriver:!0}).start()},z=()=>{l.spring(C,{toValue:1,friction:3,tension:40,useNativeDriver:!0}).start()},V=r(()=>O.interpolate({inputRange:[0,1],outputRange:[w+"30",w+"CC"]}),[O,w]);return h(n,{style:v.controlButtonContainer,collapsable:!1,children:f(n,{style:v.gameControls,collapsable:!1,children:[b&&h(i,{style:[v.iconButton,{backgroundColor:w,borderColor:y}],onPress:b,activeOpacity:.8,children:h(u,{size:24,color:"#ffffff"})}),!t&&h(l.View,{style:[v.mainButtonWrapper,{transform:[{scale:x}]}],children:h(i,{style:[v.button,v.startButton,{backgroundColor:w,borderColor:y}],onPress:d,onPressIn:S,onPressOut:z,activeOpacity:.8,children:f(l.View,{style:[v.buttonContent,{transform:[{scale:C}]}],children:[h(a,{style:v.buttonText,numberOfLines:1,children:"START GAME"}),h(a,{style:v.buttonSubtext,numberOfLines:1,children:m})]})})}),t&&h(l.View,{style:[v.mainButtonWrapper,v.stopButtonContainer,{shadowColor:V}],children:h(i,{style:[v.button,v.stopButton,{backgroundColor:w,borderColor:y}],onPress:c,onPressIn:S,onPressOut:z,activeOpacity:.8,children:f(l.View,{style:[v.buttonContent,{transform:[{scale:C}]}],children:[h(a,{style:v.buttonText,children:"STOP GAME"}),h(a,{style:v.buttonSubtext,children:"Stop current game"})]})})}),p&&h(i,{style:[v.iconButton,{backgroundColor:w,borderColor:y}],onPress:p,activeOpacity:.8,children:h(g,{size:24,color:"#ffffff"})})]})})});const v=s.create({controlButtonContainer:{position:"absolute",bottom:0,left:0,right:0,zIndex:100,pointerEvents:"box-none"},gameControls:{flexDirection:"row",justifyContent:"center",alignItems:"center",paddingVertical:20,paddingHorizontal:16,gap:20},iconButton:{width:56,height:56,borderRadius:28,justifyContent:"center",alignItems:"center",borderWidth:3,shadowColor:"#000",shadowOffset:{width:0,height:4},shadowOpacity:.3,shadowRadius:8,elevation:6},mainButtonWrapper:{maxWidth:"50%",flex:1},button:{paddingHorizontal:24,paddingVertical:16,borderRadius:30,shadowColor:"#000",shadowOffset:{width:0,height:8},shadowOpacity:.4,shadowRadius:12,elevation:8,justifyContent:"center",alignItems:"center",minHeight:60,borderWidth:3,position:"relative",overflow:"hidden"},startButton:{},stopButton:{},stopButtonContainer:{shadowOffset:{width:0,height:0},shadowOpacity:.6,shadowRadius:20,elevation:10},buttonContent:{alignItems:"center",justifyContent:"center"},buttonText:{fontSize:16,fontWeight:"800",color:"#ffffff",textAlign:"center",textShadowColor:"rgba(0, 0, 0, 0.3)",textShadowOffset:{width:1,height:1},textShadowRadius:2,letterSpacing:1},buttonSubtext:{fontSize:10,fontWeight:"600",color:"rgba(255, 255, 255, 0.8)",textAlign:"center",marginTop:2,letterSpacing:.5}});
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","useEffect","useMemo","View","TouchableOpacity","Text","StyleSheet","Animated","jsx","_jsx","jsxs","_jsxs","GameControlButton","memo","isPlaying","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","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","controlButtonContainer","children","gameControls","transform","scale","button","startButton","backgroundColor","borderColor","onPress","onPressIn","onPressOut","activeOpacity","buttonContent","buttonText","buttonSubtext","stopButtonContainer","shadowColor","stopButton","create","position","bottom","left","right","zIndex","pointerEvents","justifyContent","alignItems","paddingVertical","paddingHorizontal","borderRadius","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","minHeight","minWidth","borderWidth","overflow","fontSize","fontWeight","color","textAlign","textShadowColor","textShadowOffset","textShadowRadius","letterSpacing","marginTop"],"sourceRoot":"../../../src","sources":["helpers/GameControlButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useRef","useEffect","useMemo","View","TouchableOpacity","Text","StyleSheet","Animated","Svg","Path","jsx","_jsx","jsxs","_jsxs","TrophyIcon","size","color","width","height","viewBox","fill","children","d","ShareIcon","GameControlButton","memo","isPlaying","gameOver","onStartGame","onStopGame","onShare","onShowLeaderboard","startButtonSubtext","buttonColor","buttonBorderColor","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","controlButtonContainer","collapsable","gameControls","iconButton","backgroundColor","borderColor","onPress","activeOpacity","mainButtonWrapper","transform","scale","button","startButton","onPressIn","onPressOut","buttonContent","buttonText","numberOfLines","buttonSubtext","stopButtonContainer","shadowColor","stopButton","create","position","bottom","left","right","zIndex","pointerEvents","flexDirection","justifyContent","alignItems","paddingVertical","paddingHorizontal","gap","borderRadius","borderWidth","shadowOffset","shadowOpacity","shadowRadius","elevation","maxWidth","flex","minHeight","overflow","fontSize","fontWeight","textAlign","textShadowColor","textShadowOffset","textShadowRadius","letterSpacing","marginTop"],"sourceRoot":"../../../src","sources":["helpers/GameControlButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{View,TouchableOpacity,Text,StyleSheet,Modal}from 'react-native';import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const GameOverModal = React.memo(({isVisible,score,onPlayAgain,buttonText = "Play Again",primaryColor = "rgba(59,130,246,0.8)",borderColor = "rgba(59,130,246,0.9)",buttonColor = "#10b981",buttonBorderColor = "#34d399",buttonTextColor = "#ffffff",scoreLabel = "Final Score",scoreFormatter})=>{const displayScore = scoreFormatter ? scoreFormatter(score):score.toString();return _jsx(Modal,{visible:isVisible,animationType:"fade",transparent:true,onRequestClose:onPlayAgain,children:_jsx(View,{style:styles.gameOverOverlay,children:_jsx(View,{style:[styles.gameOverModal,{backgroundColor:primaryColor,borderColor:borderColor}],children:_jsxs(View,{style:styles.modalContent,children:[_jsx(Text,{style:styles.gameOverTitle,children:"Game Over!"}),_jsxs(View,{style:[styles.finalScoreContainer,{backgroundColor:'rgba(255,255,255,0.2)'}],children:[_jsx(Text,{style:styles.finalScoreLabel,children:scoreLabel}),_jsx(Text,{style:styles.finalScoreValue,children:displayScore})]}),_jsx(View,{style:styles.playAgainContainer,children:_jsx(TouchableOpacity,{style:[styles.playAgainButton,{backgroundColor:buttonColor,borderColor:buttonBorderColor}],onPress:onPlayAgain,activeOpacity:0.8,children:_jsx(Text,{style:[styles.buttonText,{color:buttonTextColor}],children:buttonText})})})]})})})});});const styles = StyleSheet.create({gameOverOverlay:{flex:1,justifyContent:'center',alignItems:'center',backgroundColor:'rgba(0,0,0,0.8)'},gameOverModal:{borderRadius:24,minWidth:'80%',elevation:12},modalContent:{padding:40,alignItems:'center'},gameOverTitle:{fontSize:30,fontWeight:'bold',color:'#ffffff',marginBottom:32,textAlign:'center'},finalScoreContainer:{alignItems:'center',marginBottom:32,borderRadius:16,padding:20,minWidth:150},finalScoreLabel:{fontSize:18,color:'#ffffff',fontWeight:'bold',marginBottom:8},finalScoreValue:{fontSize:48,color:'#facc15',fontWeight:'bold',textAlign:'center'},playAgainContainer:{alignItems:'center'},playAgainButton:{paddingHorizontal:40,paddingVertical:20,borderRadius:24,shadowColor:'#000',shadowOffset:{width:0,height:2},shadowOpacity:0.25,shadowRadius:3.84,elevation:5,borderWidth:2},buttonText:{fontSize:18,fontWeight:'bold',color:'#ffffff',textAlign:'center',lineHeight:24}});
1
+ "use strict";import e from"react";import{View as o,TouchableOpacity as t,Text as r,StyleSheet as n,Modal as i}from"react-native";import{jsx as a,jsxs as l}from"react/jsx-runtime";export const GameOverModal=e.memo(({isVisible:e,score:n,onPlayAgain:c,buttonText:s="Play Again",primaryColor:f="rgba(59, 130, 246, 0.8)",borderColor:g="rgba(59, 130, 246, 0.9)",buttonColor:b="#10b981",buttonBorderColor:m="#34d399",buttonTextColor:h="#ffffff",scoreLabel:u="Final Score",scoreFormatter:y})=>{const C=y?y(n):n.toString();return a(i,{visible:e,animationType:"fade",transparent:!0,onRequestClose:c,children:a(o,{style:d.gameOverOverlay,children:a(o,{style:[d.gameOverModal,{backgroundColor:f,borderColor:g}],children:l(o,{style:d.modalContent,children:[a(r,{style:d.gameOverTitle,children:"Game Over!"}),l(o,{style:[d.finalScoreContainer,{backgroundColor:"rgba(255, 255, 255,0.2)"}],children:[a(r,{style:d.finalScoreLabel,children:u}),a(r,{style:d.finalScoreValue,children:C})]}),a(o,{style:d.playAgainContainer,children:a(t,{style:[d.playAgainButton,{backgroundColor:b,borderColor:m}],onPress:c,activeOpacity:.8,children:a(r,{style:[d.buttonText,{color:h}],children:s})})})]})})})})});const d=n.create({gameOverOverlay:{flex:1,justifyContent:"center",alignItems:"center",backgroundColor:"rgba(0, 0, 0, 0.8)"},gameOverModal:{borderRadius:24,minWidth:"80%",elevation:12},modalContent:{padding:40,alignItems:"center"},gameOverTitle:{fontSize:30,fontWeight:"bold",color:"#ffffff",marginBottom:32,textAlign:"center"},finalScoreContainer:{alignItems:"center",marginBottom:32,borderRadius:16,padding:20,minWidth:150},finalScoreLabel:{fontSize:18,color:"#ffffff",fontWeight:"bold",marginBottom:8},finalScoreValue:{fontSize:48,color:"#facc15",fontWeight:"bold",textAlign:"center"},playAgainContainer:{alignItems:"center"},playAgainButton:{paddingHorizontal:40,paddingVertical:20,borderRadius:24,shadowColor:"#000",shadowOffset:{width:0,height:2},shadowOpacity:.25,shadowRadius:3.84,elevation:5,borderWidth:2},buttonText:{fontSize:18,fontWeight:"bold",color:"#ffffff",textAlign:"center",lineHeight:24}});
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{View,Text,ScrollView,TouchableOpacity,Switch,StyleSheet,Modal}from 'react-native';import{getGameTheme,getGameDifficultyDescriptions,getGameTitle}from "../services/GamesConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const GameSettingsModal =({gameId,settings,onSettingsChange =()=> undefined})=>{const theme = getGameTheme(gameId);const difficultyDescriptions = getGameDifficultyDescriptions(gameId);const title = `${getGameTitle(gameId)}Settings`;const{isVisible,difficulty,enableSounds,enableHaptics}= settings;const handleDifficultyChange = newDifficulty =>{onSettingsChange({...settings,difficulty:newDifficulty});};const handleSoundToggle = enabled =>{onSettingsChange({...settings,enableSounds:enabled});};const handleHapticToggle = enabled =>{onSettingsChange({...settings,enableHaptics:enabled});};const handleOnClose =()=>{onSettingsChange({...settings,isVisible:false});};return _jsx(Modal,{visible:isVisible,animationType:"fade",transparent:true,onRequestClose:handleOnClose,children:_jsx(View,{style:styles.overlay,children:_jsxs(View,{style:[styles.container,{backgroundColor:theme.backgroundColor}],children:[_jsxs(View,{style:[styles.header,{backgroundColor:theme.headerBackgroundColor}],children:[_jsx(Text,{style:[styles.headerTitle,{color:theme.headerTextColor}],children:title}),_jsx(TouchableOpacity,{onPress:handleOnClose,style:styles.closeButton,children:_jsx(Text,{style:[styles.closeButtonText,{color:theme.headerTextColor}],children:"\u2715"})})]}),_jsxs(ScrollView,{style:styles.scrollView,contentContainerStyle:styles.scrollContent,children:[_jsxs(View,{style:[styles.section,{backgroundColor:theme.sectionBackgroundColor}],children:[_jsx(Text,{style:[styles.sectionTitle,{color:theme.sectionTitleColor}],children:"Difficulty Level"}),_jsx(View,{style:styles.difficultyRow,children:['easy','medium','hard'].map(level => _jsx(TouchableOpacity,{onPress:()=> handleDifficultyChange(level),style:[styles.difficultyButton,{backgroundColor:difficulty === level ? theme.buttonSelectedColor:theme.buttonUnselectedColor}],children:_jsx(Text,{style:[styles.buttonText,styles.capitalize,{color:difficulty === level ? theme.buttonSelectedTextColor:theme.buttonUnselectedTextColor}],children:level})},level))}),_jsx(View,{style:styles.infoBox,children:_jsxs(Text,{style:[styles.infoText,{color:theme.infoTextColor}],children:[_jsx(Text,{style:styles.boldText,children:"Easy:"})," ",typeof difficultyDescriptions.easy === 'string' ? difficultyDescriptions.easy:difficultyDescriptions.easy.description,'\n',_jsx(Text,{style:styles.boldText,children:"Medium:"})," ",typeof difficultyDescriptions.medium === 'string' ? difficultyDescriptions.medium:difficultyDescriptions.medium.description,'\n',_jsx(Text,{style:styles.boldText,children:"Hard:"})," ",typeof difficultyDescriptions.hard === 'string' ? difficultyDescriptions.hard:difficultyDescriptions.hard.description]})})]}),_jsx(View,{style:[styles.section,{backgroundColor:theme.sectionBackgroundColor}],children:_jsxs(View,{style:styles.toggleContainer,children:[_jsxs(View,{children:[_jsx(Text,{style:[styles.toggleTitle,{color:theme.sectionTitleColor}],children:"Sound Effects"}),_jsx(Text,{style:[styles.toggleSubtitle,{color:theme.infoTextColor}],children:"Play sounds during gameplay"})]}),_jsx(Switch,{value:enableSounds,onValueChange:handleSoundToggle,trackColor:{false:theme.switchTrackColorFalse,true:theme.switchTrackColorTrue},thumbColor:theme.switchThumbColor})]})}),_jsx(View,{style:[styles.section,{backgroundColor:theme.sectionBackgroundColor}],children:_jsxs(View,{style:styles.toggleContainer,children:[_jsxs(View,{children:[_jsx(Text,{style:[styles.toggleTitle,{color:theme.sectionTitleColor}],children:"Haptic Feedback"}),_jsx(Text,{style:[styles.toggleSubtitle,{color:theme.infoTextColor}],children:"Vibration feedback for interactions"})]}),_jsx(Switch,{value:enableHaptics,onValueChange:handleHapticToggle,trackColor:{false:theme.switchTrackColorFalse,true:theme.switchTrackColorTrue},thumbColor:theme.switchThumbColor})]})})]})]})})});};const styles = StyleSheet.create({overlay:{flex:1,backgroundColor:'rgba(0,0,0,0.8)',justifyContent:'center',alignItems:'center',padding:20},container:{width:'95%',maxWidth:600,maxHeight:'95%',minHeight:'60%',borderRadius:10,overflow:'hidden'},header:{flexDirection:'row',justifyContent:'space-between',alignItems:'center',padding:10,paddingHorizontal:16},headerTitle:{fontSize:20,fontWeight:'semibold'},closeButton:{padding:8},closeButtonText:{fontSize:18,fontWeight:'semibold'},scrollView:{flex:1,padding:10},scrollContent:{flexGrow:1,paddingBottom:20},section:{borderRadius:12,padding:16,marginBottom:16},sectionTitle:{fontSize:16,fontWeight:'semibold',marginBottom:10},difficultyRow:{flexDirection:'row',justifyContent:'space-between',marginBottom:12},difficultyButton:{flex:1,paddingVertical:12,paddingHorizontal:8,borderRadius:8,marginHorizontal:4,alignItems:'center'},buttonText:{fontSize:16,fontWeight:'600'},capitalize:{textTransform:'capitalize'},infoBox:{backgroundColor:'rgba(255,255,255,0.1)',borderRadius:8,padding:12},infoText:{fontSize:14,lineHeight:20},boldText:{fontWeight:'semibold'},toggleContainer:{flexDirection:'row',justifyContent:'space-between',alignItems:'center'},toggleTitle:{fontSize:16,fontWeight:'semibold'},toggleSubtitle:{fontSize:14,marginTop:2}});
1
+ "use strict";import e from"react";import{View as t,Text as o,ScrollView as n,TouchableOpacity as i,Switch as l,StyleSheet as r,Modal as s}from"react-native";import{getGameTheme as a,getGameDifficultyDescriptions as d,getGameTitle as c}from"../services/GamesConstants.js";import{jsx as g,jsxs as f}from"react/jsx-runtime";export const GameSettingsModal=({gameId:e,settings:r,onSettingsChange:u=()=>{}})=>{const y=a(e),m=d(e),b=c(e)+" Settings",{isVisible:p,difficulty:C,enableSounds:x,enableHaptics:S}=r,k=()=>{u({...r,isVisible:!1})};return g(s,{visible:p,animationType:"fade",transparent:!0,onRequestClose:k,children:g(t,{style:h.overlay,children:f(t,{style:[h.container,{backgroundColor:y.backgroundColor}],children:[f(t,{style:[h.header,{backgroundColor:y.headerBackgroundColor}],children:[g(o,{style:[h.headerTitle,{color:y.headerTextColor}],children:b}),g(i,{onPress:k,style:h.closeButton,children:g(o,{style:[h.closeButtonText,{color:y.headerTextColor}],children:"\u2715"})})]}),f(n,{style:h.scrollView,contentContainerStyle:h.scrollContent,children:[f(t,{style:[h.section,{backgroundColor:y.sectionBackgroundColor}],children:[g(o,{style:[h.sectionTitle,{color:y.sectionTitleColor}],children:"Difficulty Level"}),g(t,{style:h.difficultyRow,children:["easy","medium","hard"].map(e=>g(i,{onPress:()=>{return t=e,void u({...r,difficulty:t});var t},style:[h.difficultyButton,{backgroundColor:C===e?y.buttonSelectedColor:y.buttonUnselectedColor}],children:g(o,{style:[h.buttonText,h.capitalize,{color:C===e?y.buttonSelectedTextColor:y.buttonUnselectedTextColor}],children:e})},e))}),g(t,{style:h.infoBox,children:f(o,{style:[h.infoText,{color:y.infoTextColor}],children:[g(o,{style:h.boldText,children:"Easy:"})," ","string"==typeof m.easy?m.easy:m.easy.description,"\n",g(o,{style:h.boldText,children:"Medium:"})," ","string"==typeof m.medium?m.medium:m.medium.description,"\n",g(o,{style:h.boldText,children:"Hard:"})," ","string"==typeof m.hard?m.hard:m.hard.description]})})]}),g(t,{style:[h.section,{backgroundColor:y.sectionBackgroundColor}],children:f(t,{style:h.toggleContainer,children:[f(t,{children:[g(o,{style:[h.toggleTitle,{color:y.sectionTitleColor}],children:"Sound Effects"}),g(o,{style:[h.toggleSubtitle,{color:y.infoTextColor}],children:"Play sounds during gameplay"})]}),g(l,{value:x,onValueChange:e=>{u({...r,enableSounds:e})},trackColor:{false:y.switchTrackColorFalse,true:y.switchTrackColorTrue},thumbColor:y.switchThumbColor})]})}),g(t,{style:[h.section,{backgroundColor:y.sectionBackgroundColor}],children:f(t,{style:h.toggleContainer,children:[f(t,{children:[g(o,{style:[h.toggleTitle,{color:y.sectionTitleColor}],children:"Haptic Feedback"}),g(o,{style:[h.toggleSubtitle,{color:y.infoTextColor}],children:"Vibration feedback for interactions"})]}),g(l,{value:S,onValueChange:e=>{u({...r,enableHaptics:e})},trackColor:{false:y.switchTrackColorFalse,true:y.switchTrackColorTrue},thumbColor:y.switchThumbColor})]})})]})]})})})};const h=r.create({overlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.8)",justifyContent:"center",alignItems:"center",padding:20},container:{width:"95%",maxWidth:600,maxHeight:"95%",minHeight:"60%",borderRadius:10,overflow:"hidden"},header:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",padding:10,paddingHorizontal:16},headerTitle:{fontSize:20,fontWeight:"semibold"},closeButton:{padding:8},closeButtonText:{fontSize:18,fontWeight:"semibold"},scrollView:{flex:1,padding:10},scrollContent:{flexGrow:1,paddingBottom:20},section:{borderRadius:12,padding:16,marginBottom:16},sectionTitle:{fontSize:16,fontWeight:"semibold",marginBottom:10},difficultyRow:{flexDirection:"row",justifyContent:"space-between",marginBottom:12},difficultyButton:{flex:1,paddingVertical:12,paddingHorizontal:8,borderRadius:8,marginHorizontal:4,alignItems:"center"},buttonText:{fontSize:16,fontWeight:"600"},capitalize:{textTransform:"capitalize"},infoBox:{backgroundColor:"rgba(255, 255, 255, 0.1)",borderRadius:8,padding:12},infoText:{fontSize:14,lineHeight:20},boldText:{fontWeight:"semibold"},toggleContainer:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},toggleTitle:{fontSize:16,fontWeight:"semibold"},toggleSubtitle:{fontSize:14,marginTop:2}});
@@ -1 +1 @@
1
- "use strict";import React,{useEffect,useState}from 'react';import{View,Dimensions,StyleSheet}from 'react-native';import{jsx as _jsx}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');export const ParticleBlast = React.memo(({x,y,particleCount = 8,colors = ['#FF6B6B','#4ECDC4','#45B7D1','#96CEB4','#FFEAA7','#DDA0DD','#FF9F43','#A55EEA'],duration = 1000,onComplete})=>{const [particles,setParticles] = useState([]);const [isComplete,setIsComplete] = useState(false);useEffect(()=>{const initialParticles = [];for(let i = 0;i < particleCount;i++){const angle = i / particleCount * Math.PI * 2;const speed = 4 + Math.random()* 3;initialParticles.push({id:`particle_${i}_${Date.now()}`,x:x,y:y,vx:Math.cos(angle)* speed,vy:Math.sin(angle)* speed - 2,color:colors[i % colors.length] || '#FF6B6B',size:6 + Math.random()* 8,alpha:1,lifetime:0,maxLifetime:duration});}setParticles(initialParticles);const animationInterval = setInterval(()=>{setParticles(prevParticles =>{const updatedParticles = prevParticles.map(particle =>{const newLifetime = particle.lifetime + 16;if(newLifetime >= particle.maxLifetime){return null;}const newX = particle.x + particle.vx;const newY = particle.y + particle.vy;const newVy = particle.vy + 0.1;const alpha = Math.max(0.3,1 - newLifetime / particle.maxLifetime);return{...particle,x:newX,y:newY,vy:newVy,alpha,lifetime:newLifetime};}).filter(Boolean);if(updatedParticles.length === 0){setIsComplete(true);}return updatedParticles;});},16);const cleanup = setTimeout(()=>{clearInterval(animationInterval);setParticles([]);setIsComplete(true);},duration + 100);return()=>{clearInterval(animationInterval);clearTimeout(cleanup);};},[]);useEffect(()=>{if(isComplete && onComplete){onComplete();}},[isComplete,onComplete]);if(particles.length === 0)return null;return _jsx(View,{style:[styles.container,{width,height}],children:particles.map(particle =>{const particleSize = Math.max(4,particle.size);return _jsx(View,{style:[styles.particle,{left:particle.x - particleSize / 2,top:particle.y - particleSize / 2,width:particleSize,height:particleSize,backgroundColor:particle.color,opacity:particle.alpha,borderRadius:particleSize / 2}]},particle.id);})});});ParticleBlast.displayName = 'ParticleBlast';const styles = StyleSheet.create({container:{position:'absolute',top:0,left:0,pointerEvents:'none'},particle:{position:'absolute'}});
1
+ "use strict";import t,{useEffect as e,useState as o}from"react";import{View as r,Dimensions as a,StyleSheet as i}from"react-native";import{jsx as n}from"react/jsx-runtime";const{width:l,height:s}=a.get("window");export const ParticleBlast=t.memo(({x:t,y:a,particleCount:i=8,colors:h=["#FF6B6B","#4ECDC4","#45B7D1","#96CEB4","#FFEAA7","#DDA0DD","#FF9F43","#A55EEA"],duration:u=1e3,onComplete:p})=>{const[m,d]=o([]),[f,B]=o(!1);return e(()=>{const e=[];for(let o=0;i>o;o++){const r=o/i*Math.PI*2,n=4+3*Math.random();e.push({id:`particle_${o}_${Date.now()}`,x:t,y:a,vx:Math.cos(r)*n,vy:Math.sin(r)*n-2,color:h[o%h.length]||"#FF6B6B",size:6+8*Math.random(),alpha:1,lifetime:0,maxLifetime:u})}d(e);const o=setInterval(()=>{d(t=>{const e=t.map(t=>{const e=t.lifetime+16;if(e>=t.maxLifetime)return null;const o=t.x+t.vx,r=t.y+t.vy,a=t.vy+.1,i=Math.max(.3,1-e/t.maxLifetime);return{...t,x:o,y:r,vy:a,alpha:i,lifetime:e}}).filter(Boolean);return 0===e.length&&B(!0),e})},16),r=setTimeout(()=>{clearInterval(o),d([]),B(!0)},u+100);return()=>{clearInterval(o),clearTimeout(r)}},[]),e(()=>{f&&p&&p()},[f,p]),0===m.length?null:n(r,{style:[c.container,{width:l,height:s}],children:m.map(t=>{const e=Math.max(4,t.size);return n(r,{style:[c.particle,{left:t.x-e/2,top:t.y-e/2,width:e,height:e,backgroundColor:t.color,opacity:t.alpha,borderRadius:e/2}]},t.id)})})});ParticleBlast.displayName="ParticleBlast";const c=i.create({container:{position:"absolute",top:0,left:0,pointerEvents:"none"},particle:{position:"absolute"}});
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{View}from 'react-native';import{jsx as _jsx}from "react/jsx-runtime";export const ScoreBoardContainer = React.memo(({children,offset = 0,backgroundColor = 'rgba(0,0,0,0.7)',borderColor = 'rgba(255,255,255,0.3)'})=>{const wrapperStyle = React.useMemo(()=>({position:'absolute',top:0,left:0,right:0,zIndex:10,alignItems:'center',paddingHorizontal:15,marginTop:offset > 0 ? offset + 30:15}),[offset]);const containerStyle = React.useMemo(()=>({maxWidth:600,width:'100%',backgroundColor,borderColor,borderWidth:2,padding:15,borderRadius:15}),[backgroundColor,borderColor]);return _jsx(View,{style:wrapperStyle,children:_jsx(View,{style:containerStyle,children:children})});});ScoreBoardContainer.displayName = 'ScoreBoardContainer';
1
+ "use strict";import r from"react";import{View as o}from"react-native";import{jsx as e}from"react/jsx-runtime";export const ScoreBoardContainer=r.memo(({children:t,offset:a=0,backgroundColor:i="rgba(0, 0, 0, 0.7)",borderColor:n="rgba(255, 255, 255, 0.3)"})=>{const d=r.useMemo(()=>({position:"absolute",top:0,left:0,right:0,zIndex:10,alignItems:"center",paddingHorizontal:15,marginTop:a>0?a+30:15}),[a]),l=r.useMemo(()=>({maxWidth:600,width:"100%",backgroundColor:i,borderColor:n,borderWidth:2,padding:15,borderRadius:15}),[i,n]);return e(o,{style:d,collapsable:!1,children:e(o,{style:l,collapsable:!1,children:t})})});ScoreBoardContainer.displayName="ScoreBoardContainer";
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","jsx","_jsx","ScoreBoardContainer","memo","children","offset","backgroundColor","borderColor","wrapperStyle","useMemo","position","top","left","right","zIndex","alignItems","paddingHorizontal","marginTop","containerStyle","maxWidth","width","borderWidth","padding","borderRadius","style","displayName"],"sourceRoot":"../../../src","sources":["helpers/ScoreBoardContainer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASpC,OAAO,MAAMC,mBAAuD,gBAAGJ,KAAK,CAACK,IAAI,CAAC,CAAC;EACjFC,QAAQ;EACRC,MAAM,GAAG,CAAC;EACVC,eAAe,GAAG,oBAAoB;EACtCC,WAAW,GAAG;AAChB,CAAC,KAAK;EACJ;EACA,MAAMC,YAAY,GAAGV,KAAK,CAACW,OAAO,CAAC,OAAO;IACxCC,QAAQ,EAAE,UAAmB;IAC7BC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAiB;IAC7BC,iBAAiB,EAAE,EAAE;IACrBC,SAAS,EAAEZ,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAG,EAAE,GAAG;EACxC,CAAC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;;EAEb;EACA,MAAMa,cAAc,GAAGpB,KAAK,CAACW,OAAO,CAAC,OAAO;IAC1CU,QAAQ,EAAE,GAAG;IACbC,KAAK,EAAE,MAAM;IACbd,eAAe;IACfC,WAAW;IACXc,WAAW,EAAE,CAAC;IACdC,OAAO,EAAE,EAAE;IACXC,YAAY,EAAE;EAChB,CAAC,CAAC,EAAE,CAACjB,eAAe,EAAEC,WAAW,CAAC,CAAC;EAEnC,oBACEN,IAAA,CAACF,IAAI;IAACyB,KAAK,EAAEhB,YAAa;IAAAJ,QAAA,eACxBH,IAAA,CAACF,IAAI;MAACyB,KAAK,EAAEN,cAAe;MAAAd,QAAA,EACzBA;IAAQ,CACL;EAAC,CACH,CAAC;AAEX,CAAC,CAAC;AAEFF,mBAAmB,CAACuB,WAAW,GAAG,qBAAqB","ignoreList":[]}
1
+ {"version":3,"names":["React","View","jsx","_jsx","ScoreBoardContainer","memo","children","offset","backgroundColor","borderColor","wrapperStyle","useMemo","position","top","left","right","zIndex","alignItems","paddingHorizontal","marginTop","containerStyle","maxWidth","width","borderWidth","padding","borderRadius","style","collapsable","displayName"],"sourceRoot":"../../../src","sources":["helpers/ScoreBoardContainer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASpC,OAAO,MAAMC,mBAAuD,gBAAGJ,KAAK,CAACK,IAAI,CAAC,CAAC;EACjFC,QAAQ;EACRC,MAAM,GAAG,CAAC;EACVC,eAAe,GAAG,oBAAoB;EACtCC,WAAW,GAAG;AAChB,CAAC,KAAK;EACJ;EACA,MAAMC,YAAY,GAAGV,KAAK,CAACW,OAAO,CAAC,OAAO;IACxCC,QAAQ,EAAE,UAAmB;IAC7BC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAiB;IAC7BC,iBAAiB,EAAE,EAAE;IACrBC,SAAS,EAAEZ,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAG,EAAE,GAAG;EACxC,CAAC,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;;EAEb;EACA,MAAMa,cAAc,GAAGpB,KAAK,CAACW,OAAO,CAAC,OAAO;IAC1CU,QAAQ,EAAE,GAAG;IACbC,KAAK,EAAE,MAAM;IACbd,eAAe;IACfC,WAAW;IACXc,WAAW,EAAE,CAAC;IACdC,OAAO,EAAE,EAAE;IACXC,YAAY,EAAE;EAChB,CAAC,CAAC,EAAE,CAACjB,eAAe,EAAEC,WAAW,CAAC,CAAC;EAEnC,oBACEN,IAAA,CAACF,IAAI;IAACyB,KAAK,EAAEhB,YAAa;IAACiB,WAAW,EAAE,KAAM;IAAArB,QAAA,eAC5CH,IAAA,CAACF,IAAI;MAACyB,KAAK,EAAEN,cAAe;MAACO,WAAW,EAAE,KAAM;MAAArB,QAAA,EAC7CA;IAAQ,CACL;EAAC,CACH,CAAC;AAEX,CAAC,CAAC;AAEFF,mBAAmB,CAACwB,WAAW,GAAG,qBAAqB","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";export{GameControlButton}from "./GameControlButton.js";export{ScoreBoardContainer}from "./ScoreBoardContainer.js";export{ParticleBlast}from "./ParticleBlast.js";export{GameOverModal}from "./GameOverModal.js";export{GameSettingsModal}from "./GameSettingsModal.js";export{AnimationTracker,useAnimationTracker,useAnimationTrackers,DEFAULT_ANIMATION_STATE}from "./AnimationTracker.js";export{AnimationFrameManager,useAnimationFrame,useAnimationFrameManager}from "./AnimationFrame.js";export{GameErrorHandler,useGameErrorHandler,withErrorHandling,ErrorUtils,globalErrorHandler,DEFAULT_ERROR_CONFIG}from "./ErrorHandler.js";export{GameErrorType}from "./ErrorHandler.js";
1
+ "use strict";export{GameControlButton}from"./GameControlButton.js";export{ScoreBoardContainer}from"./ScoreBoardContainer.js";export{ParticleBlast}from"./ParticleBlast.js";export{GameOverModal}from"./GameOverModal.js";export{GameSettingsModal}from"./GameSettingsModal.js";export{AnimationTracker,useAnimationTracker,useAnimationTrackers,DEFAULT_ANIMATION_STATE}from"./AnimationTracker.js";export{AnimationFrameManager,useAnimationFrame,useAnimationFrameManager}from"./AnimationFrame.js";export{GameErrorHandler,useGameErrorHandler,withErrorHandling,ErrorUtils,globalErrorHandler,DEFAULT_ERROR_CONFIG}from"./ErrorHandler.js";export{GameErrorType}from"./ErrorHandler.js";export*from"./AbstractFruits.js";
@@ -1 +1 @@
1
- {"version":3,"names":["GameControlButton","ScoreBoardContainer","ParticleBlast","GameOverModal","GameSettingsModal","AnimationTracker","useAnimationTracker","useAnimationTrackers","DEFAULT_ANIMATION_STATE","AnimationFrameManager","useAnimationFrame","useAnimationFrameManager","GameErrorHandler","useGameErrorHandler","withErrorHandling","ErrorUtils","globalErrorHandler","DEFAULT_ERROR_CONFIG","GameErrorType"],"sourceRoot":"../../../src","sources":["helpers/index.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,wBAAqB;AAEvD,SAASC,mBAAmB,QAAQ,0BAAuB;AAE3D,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SACEC,gBAAgB,EAChBC,mBAAmB,EACnBC,oBAAoB,EACpBC,uBAAuB,QAClB,uBAAoB;AAE3B,SAASC,qBAAqB,EAAEC,iBAAiB,EAAEC,wBAAwB,QAAQ,qBAAkB;AACrG,SACEC,gBAAgB,EAChBC,mBAAmB,EACnBC,iBAAiB,EACjBC,UAAU,EACVC,kBAAkB,EAClBC,oBAAoB,QACf,mBAAgB;AACvB,SAASC,aAAa,QAAQ,mBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["GameControlButton","ScoreBoardContainer","ParticleBlast","GameOverModal","GameSettingsModal","AnimationTracker","useAnimationTracker","useAnimationTrackers","DEFAULT_ANIMATION_STATE","AnimationFrameManager","useAnimationFrame","useAnimationFrameManager","GameErrorHandler","useGameErrorHandler","withErrorHandling","ErrorUtils","globalErrorHandler","DEFAULT_ERROR_CONFIG","GameErrorType"],"sourceRoot":"../../../src","sources":["helpers/index.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,wBAAqB;AAEvD,SAASC,mBAAmB,QAAQ,0BAAuB;AAE3D,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SACEC,gBAAgB,EAChBC,mBAAmB,EACnBC,oBAAoB,EACpBC,uBAAuB,QAClB,uBAAoB;AAE3B,SAASC,qBAAqB,EAAEC,iBAAiB,EAAEC,wBAAwB,QAAQ,qBAAkB;AACrG,SACEC,gBAAgB,EAChBC,mBAAmB,EACnBC,iBAAiB,EACjBC,UAAU,EACVC,kBAAkB,EAClBC,oBAAoB,QACf,mBAAgB;AACvB,SAASC,aAAa,QAAQ,mBAAgB;AAE9C,cAAc,qBAAkB","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";export * from "./games/balloon-blaster/BalloonBlaster.js";export * from "./games/popit-fidget/PopitFidget.js";export * from "./games/whack-a-mole/WhackAMole.js";export * from "./games/fruit-ninja/FruitNinja.js";export * from "./games/maze-runner/MazeRunner.js";export * from "./games/space-fighter/SpaceFighter.js";export * from "./games/sliding-numbers/SlidingNumbers.js";export * from "./games/game-2048/Game2048.js";export * from "./games/dino-jump/DinoJump.js";export * from "./games/colors-sort/ColorsSort.js";export * from "./games/fruit-merger/FruitMerger.js";export * from "./games/flappy-bird/FlappyBird.js";export * from "./games/candy-crush/CandyCrush.js";export * from "./games/snake/Snake.js";export * from "./games/car-racing/CarRacing.js";export * from "./games/bike-racing/BikeRacing.js";export * from "./games/block-blast/BlockBlast.js";export * from "./games/bubble-shooter/BubbleShooter.js";export * from "./games/perfect-circle/PerfectCircle.js";export * from "./services/GamesService.js";export * from "./services/UtilsService.js";
1
+ "use strict";export*from"./games/balloon-blaster/BalloonBlaster.js";export*from"./games/popit-fidget/PopitFidget.js";export*from"./games/whack-a-mole/WhackAMole.js";export*from"./games/fruit-ninja/FruitNinja.js";export*from"./games/maze-runner/MazeRunner.js";export*from"./games/space-fighter/SpaceFighter.js";export*from"./games/sliding-numbers/SlidingNumbers.js";export*from"./games/game-2048/Game2048.js";export*from"./games/dino-jump/DinoJump.js";export*from"./games/colors-sort/ColorsSort.js";export*from"./games/fruit-merger/FruitMerger.js";export*from"./games/flappy-bird/FlappyBird.js";export*from"./games/candy-crush/CandyCrush.js";export*from"./games/snake/Snake.js";export*from"./games/car-racing/CarRacing.js";export*from"./games/bike-racing/BikeRacing.js";export*from"./games/block-blast/BlockBlast.js";export*from"./games/bubble-shooter/BubbleShooter.js";export*from"./games/perfect-circle/PerfectCircle.js";export*from"./services/GamesService.js";export*from"./services/UtilsService.js";
@@ -1 +1 @@
1
- "use strict";import{GAME_IDS}from "./UtilsService.js";import{BALLOON_BLASTER_THEME,BALLOON_BLASTER_DIFFICULTY_DESCRIPTIONS}from "../games/balloon-blaster/BalloonBlasterConstants.js";import{FRUIT_NINJA_THEME,FRUIT_NINJA_DIFFICULTY_DESCRIPTIONS}from "../games/fruit-ninja/FruitNinjaConstants.js";import{MAZE_RUNNER_THEME,MAZE_RUNNER_DIFFICULTY_DESCRIPTIONS}from "../games/maze-runner/MazeRunnerConstants.js";import{WHACK_A_MOLE_THEME,WHACK_A_MOLE_DIFFICULTY_DESCRIPTIONS}from "../games/whack-a-mole/WhackAMoleConstants.js";import{SPACE_FIGHTER_THEME,SPACE_FIGHTER_DIFFICULTY_DESCRIPTIONS}from "../games/space-fighter/SpaceFighterConstants.js";import{POPIT_FIDGET_THEME,POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS}from "../games/popit-fidget/PopitFidgetConstants.js";import{SLIDING_NUMBERS_THEME,SLIDING_NUMBERS_DIFFICULTY_DESCRIPTIONS}from "../games/sliding-numbers/SlidingNumbersConstants.js";import{GAME_2048_THEME,GAME_2048_DIFFICULTY_DESCRIPTIONS}from "../games/game-2048/Game2048Constants.js";import{DINO_JUMP_THEME,DINO_JUMP_DIFFICULTY_DESCRIPTIONS}from "../games/dino-jump/DinoJumpConstants.js";import{COLORS_SORT_THEME,COLORS_SORT_DIFFICULTY_DESCRIPTIONS}from "../games/colors-sort/ColorsSortConstants.js";import{FRUIT_MERGER_THEME,FRUIT_MERGER_DIFFICULTY_DESCRIPTIONS}from "../games/fruit-merger/FruitMergerConstants.js";import{FLAPPY_BIRD_THEME,FLAPPY_BIRD_DIFFICULTY_DESCRIPTIONS}from "../games/flappy-bird/FlappyBirdConstants.js";import{CANDY_CRUSH_THEME,CANDY_CRUSH_DIFFICULTY_DESCRIPTIONS}from "../games/candy-crush/CandyCrushConstants.js";import{SNAKE_THEME,SNAKE_DIFFICULTY_DESCRIPTIONS}from "../games/snake/SnakeConstants.js";import{CAR_RACING_THEME,CAR_RACING_DIFFICULTY_DESCRIPTIONS}from "../games/car-racing/CarRacingConstants.js";import{BIKE_RACING_THEME,BIKE_RACING_DIFFICULTY_DESCRIPTIONS}from "../games/bike-racing/BikeRacingConstants.js";import{BLOCK_BLAST_THEME,BLOCK_BLAST_DIFFICULTY_DESCRIPTIONS}from "../games/block-blast/BlockBlastConstants.js";import{BUBBLE_SHOOTER_THEME,BUBBLE_SHOOTER_DIFFICULTY_DESCRIPTIONS}from "../games/bubble-shooter/BubbleShooterConstants.js";import{PERFECT_CIRCLE_THEME,PERFECT_CIRCLE_DIFFICULTY_DESCRIPTIONS}from "../games/perfect-circle/PerfectCircleConstants.js";export const GAME_THEMES ={balloonBlaster:BALLOON_BLASTER_THEME,fruitNinja:FRUIT_NINJA_THEME,mazeRunner:MAZE_RUNNER_THEME,whackAMole:WHACK_A_MOLE_THEME,spaceFighter:SPACE_FIGHTER_THEME,popitFidget:POPIT_FIDGET_THEME,slidingNumbers:SLIDING_NUMBERS_THEME,game2048:GAME_2048_THEME,dinoJump:DINO_JUMP_THEME,colorsSort:COLORS_SORT_THEME,fruitMerger:FRUIT_MERGER_THEME,flappyBird:FLAPPY_BIRD_THEME,candyCrush:CANDY_CRUSH_THEME,snake:SNAKE_THEME,carRacing:CAR_RACING_THEME,bikeRacing:BIKE_RACING_THEME,blockBlast:BLOCK_BLAST_THEME,bubbleShooter:BUBBLE_SHOOTER_THEME,perfectCircle:PERFECT_CIRCLE_THEME};export const GAME_DIFFICULTY_DESCRIPTIONS ={balloonBlaster:BALLOON_BLASTER_DIFFICULTY_DESCRIPTIONS,fruitNinja:FRUIT_NINJA_DIFFICULTY_DESCRIPTIONS,mazeRunner:MAZE_RUNNER_DIFFICULTY_DESCRIPTIONS,whackAMole:WHACK_A_MOLE_DIFFICULTY_DESCRIPTIONS,spaceFighter:SPACE_FIGHTER_DIFFICULTY_DESCRIPTIONS,popitFidget:POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS,slidingNumbers:SLIDING_NUMBERS_DIFFICULTY_DESCRIPTIONS,game2048:GAME_2048_DIFFICULTY_DESCRIPTIONS,dinoJump:DINO_JUMP_DIFFICULTY_DESCRIPTIONS,colorsSort:COLORS_SORT_DIFFICULTY_DESCRIPTIONS,fruitMerger:FRUIT_MERGER_DIFFICULTY_DESCRIPTIONS,flappyBird:FLAPPY_BIRD_DIFFICULTY_DESCRIPTIONS,candyCrush:CANDY_CRUSH_DIFFICULTY_DESCRIPTIONS,snake:SNAKE_DIFFICULTY_DESCRIPTIONS,carRacing:CAR_RACING_DIFFICULTY_DESCRIPTIONS,bikeRacing:BIKE_RACING_DIFFICULTY_DESCRIPTIONS,blockBlast:BLOCK_BLAST_DIFFICULTY_DESCRIPTIONS,bubbleShooter:BUBBLE_SHOOTER_DIFFICULTY_DESCRIPTIONS,perfectCircle:PERFECT_CIRCLE_DIFFICULTY_DESCRIPTIONS};export const DIFFICULTY_LEVELS = ['easy','medium','hard'];export const GAME_NAMES ={BALLOON_BLASTER:'balloonBlaster',FRUIT_SLICER:'fruitSlicer',MAZE_RUNNER:'mazeRunner',CAT_POPPER:'catPopper',SPACE_TRAVELLER:'spaceTraveller'};export const getGameTheme = gameId =>{switch(gameId){case GAME_IDS.BALLOON_BLASTER:return GAME_THEMES.balloonBlaster;case GAME_IDS.FRUIT_NINJA:return GAME_THEMES.fruitNinja;case GAME_IDS.MAZE_RUNNER:return GAME_THEMES.mazeRunner;case GAME_IDS.WHACK_A_MOLE:return GAME_THEMES.whackAMole;case GAME_IDS.SPACE_FIGHTER:return GAME_THEMES.spaceFighter;case GAME_IDS.POPIT_FIDGET:return GAME_THEMES.popitFidget;case GAME_IDS.SLIDING_NUMBERS:return GAME_THEMES.slidingNumbers;case GAME_IDS.GAME_2048:return GAME_THEMES.game2048;case GAME_IDS.DINO_JUMP:return GAME_THEMES.dinoJump;case GAME_IDS.COLORS_SORT:return GAME_THEMES.colorsSort;case GAME_IDS.FRUIT_MERGER:return GAME_THEMES.fruitMerger;case GAME_IDS.FLAPPY_BIRD:return GAME_THEMES.flappyBird;case GAME_IDS.CANDY_CRUSH:return GAME_THEMES.candyCrush;case GAME_IDS.SNAKE:return GAME_THEMES.snake;case GAME_IDS.CAR_RACING:return GAME_THEMES.carRacing;case GAME_IDS.BIKE_RACING:return GAME_THEMES.bikeRacing;case GAME_IDS.BLOCK_BLAST:return GAME_THEMES.blockBlast;case GAME_IDS.BUBBLE_SHOOTER:return GAME_THEMES.bubbleShooter;case GAME_IDS.PERFECT_CIRCLE:return GAME_THEMES.perfectCircle;default:return GAME_THEMES.balloonBlaster;}};export const getGameDifficultyDescriptions = gameId =>{switch(gameId){case GAME_IDS.BALLOON_BLASTER:return GAME_DIFFICULTY_DESCRIPTIONS.balloonBlaster;case GAME_IDS.FRUIT_NINJA:return GAME_DIFFICULTY_DESCRIPTIONS.fruitNinja;case GAME_IDS.MAZE_RUNNER:return GAME_DIFFICULTY_DESCRIPTIONS.mazeRunner;case GAME_IDS.WHACK_A_MOLE:return GAME_DIFFICULTY_DESCRIPTIONS.whackAMole;case GAME_IDS.SPACE_FIGHTER:return GAME_DIFFICULTY_DESCRIPTIONS.spaceFighter;case GAME_IDS.POPIT_FIDGET:return GAME_DIFFICULTY_DESCRIPTIONS.popitFidget;case GAME_IDS.SLIDING_NUMBERS:return GAME_DIFFICULTY_DESCRIPTIONS.slidingNumbers;case GAME_IDS.GAME_2048:return GAME_DIFFICULTY_DESCRIPTIONS.game2048;case GAME_IDS.DINO_JUMP:return GAME_DIFFICULTY_DESCRIPTIONS.dinoJump;case GAME_IDS.COLORS_SORT:return GAME_DIFFICULTY_DESCRIPTIONS.colorsSort;case GAME_IDS.FRUIT_MERGER:return GAME_DIFFICULTY_DESCRIPTIONS.fruitMerger;case GAME_IDS.FLAPPY_BIRD:return GAME_DIFFICULTY_DESCRIPTIONS.flappyBird;case GAME_IDS.CANDY_CRUSH:return GAME_DIFFICULTY_DESCRIPTIONS.candyCrush;case GAME_IDS.SNAKE:return GAME_DIFFICULTY_DESCRIPTIONS.snake;case GAME_IDS.CAR_RACING:return GAME_DIFFICULTY_DESCRIPTIONS.carRacing;case GAME_IDS.BIKE_RACING:return GAME_DIFFICULTY_DESCRIPTIONS.bikeRacing;case GAME_IDS.BLOCK_BLAST:return GAME_DIFFICULTY_DESCRIPTIONS.blockBlast;case GAME_IDS.BUBBLE_SHOOTER:return GAME_DIFFICULTY_DESCRIPTIONS.bubbleShooter;case GAME_IDS.PERFECT_CIRCLE:return GAME_DIFFICULTY_DESCRIPTIONS.perfectCircle;default:return GAME_DIFFICULTY_DESCRIPTIONS.balloonBlaster;}};export const getGameTitle = gameId =>{switch(gameId){case GAME_IDS.BALLOON_BLASTER:return 'Balloon Blaster';case GAME_IDS.FRUIT_NINJA:return 'Fruit Ninja';case GAME_IDS.MAZE_RUNNER:return 'Maze Runner';case GAME_IDS.WHACK_A_MOLE:return 'Whack-a-Mole';case GAME_IDS.SPACE_FIGHTER:return 'Space Fighter';case GAME_IDS.POPIT_FIDGET:return 'Pop It Fidget';case GAME_IDS.SLIDING_NUMBERS:return 'Sliding Numbers';case GAME_IDS.GAME_2048:return '2048';case GAME_IDS.DINO_JUMP:return 'Dino Jump';case GAME_IDS.COLORS_SORT:return 'Colors Sort';case GAME_IDS.FRUIT_MERGER:return 'Fruit Merger';case GAME_IDS.FLAPPY_BIRD:return 'Flappy Bird';case GAME_IDS.CANDY_CRUSH:return 'Candy Crush';case GAME_IDS.SNAKE:return 'Snake';case GAME_IDS.CAR_RACING:return 'Car Racing';case GAME_IDS.BIKE_RACING:return 'Bike Racing';case GAME_IDS.BLOCK_BLAST:return 'Block Blast';case GAME_IDS.BUBBLE_SHOOTER:return 'Bubble Shooter';case GAME_IDS.PERFECT_CIRCLE:return 'Perfect Circle';default:return 'Game Settings';}};
1
+ "use strict";import{GAME_IDS as r}from"./UtilsService.js";import{BALLOON_BLASTER_THEME as e,BALLOON_BLASTER_DIFFICULTY_DESCRIPTIONS as t}from"../games/balloon-blaster/BalloonBlasterConstants.js";import{FRUIT_NINJA_THEME as s,FRUIT_NINJA_DIFFICULTY_DESCRIPTIONS as a}from"../games/fruit-ninja/FruitNinjaConstants.js";import{MAZE_RUNNER_THEME as n,MAZE_RUNNER_DIFFICULTY_DESCRIPTIONS as o}from"../games/maze-runner/MazeRunnerConstants.js";import{WHACK_A_MOLE_THEME as c,WHACK_A_MOLE_DIFFICULTY_DESCRIPTIONS as E}from"../games/whack-a-mole/WhackAMoleConstants.js";import{SPACE_FIGHTER_THEME as i,SPACE_FIGHTER_DIFFICULTY_DESCRIPTIONS as u}from"../games/space-fighter/SpaceFighterConstants.js";import{POPIT_FIDGET_THEME as I,POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS as m}from"../games/popit-fidget/PopitFidgetConstants.js";import{SLIDING_NUMBERS_THEME as S,SLIDING_NUMBERS_DIFFICULTY_DESCRIPTIONS as C}from"../games/sliding-numbers/SlidingNumbersConstants.js";import{GAME_2048_THEME as M,GAME_2048_DIFFICULTY_DESCRIPTIONS as T}from"../games/game-2048/Game2048Constants.js";import{DINO_JUMP_THEME as _,DINO_JUMP_DIFFICULTY_DESCRIPTIONS as l}from"../games/dino-jump/DinoJumpConstants.js";import{COLORS_SORT_THEME as p,COLORS_SORT_DIFFICULTY_DESCRIPTIONS as F}from"../games/colors-sort/ColorsSortConstants.js";import{FRUIT_MERGER_THEME as g,FRUIT_MERGER_DIFFICULTY_DESCRIPTIONS as A}from"../games/fruit-merger/FruitMergerConstants.js";import{FLAPPY_BIRD_THEME as G,FLAPPY_BIRD_DIFFICULTY_DESCRIPTIONS as D}from"../games/flappy-bird/FlappyBirdConstants.js";import{CANDY_CRUSH_THEME as f,CANDY_CRUSH_DIFFICULTY_DESCRIPTIONS as R}from"../games/candy-crush/CandyCrushConstants.js";import{SNAKE_THEME as N,SNAKE_DIFFICULTY_DESCRIPTIONS as b}from"../games/snake/SnakeConstants.js";import{CAR_RACING_THEME as L,CAR_RACING_DIFFICULTY_DESCRIPTIONS as P}from"../games/car-racing/CarRacingConstants.js";import{BIKE_RACING_THEME as d,BIKE_RACING_DIFFICULTY_DESCRIPTIONS as j}from"../games/bike-racing/BikeRacingConstants.js";import{BLOCK_BLAST_THEME as h,BLOCK_BLAST_DIFFICULTY_DESCRIPTIONS as U}from"../games/block-blast/BlockBlastConstants.js";import{BUBBLE_SHOOTER_THEME as O,BUBBLE_SHOOTER_DIFFICULTY_DESCRIPTIONS as B}from"../games/bubble-shooter/BubbleShooterConstants.js";import{PERFECT_CIRCLE_THEME as Y,PERFECT_CIRCLE_DIFFICULTY_DESCRIPTIONS as H}from"../games/perfect-circle/PerfectCircleConstants.js";export const GAME_THEMES={balloonBlaster:e,fruitNinja:s,mazeRunner:n,whackAMole:c,spaceFighter:i,popitFidget:I,slidingNumbers:S,game2048:M,dinoJump:_,colorsSort:p,fruitMerger:g,flappyBird:G,candyCrush:f,snake:N,carRacing:L,bikeRacing:d,blockBlast:h,bubbleShooter:O,perfectCircle:Y};export const GAME_DIFFICULTY_DESCRIPTIONS={balloonBlaster:t,fruitNinja:a,mazeRunner:o,whackAMole:E,spaceFighter:u,popitFidget:m,slidingNumbers:C,game2048:T,dinoJump:l,colorsSort:F,fruitMerger:A,flappyBird:D,candyCrush:R,snake:b,carRacing:P,bikeRacing:j,blockBlast:U,bubbleShooter:B,perfectCircle:H};export const DIFFICULTY_LEVELS=["easy","medium","hard"];export const GAME_NAMES={BALLOON_BLASTER:"balloonBlaster",FRUIT_SLICER:"fruitSlicer",MAZE_RUNNER:"mazeRunner",CAT_POPPER:"catPopper",SPACE_TRAVELLER:"spaceTraveller"};export const getGameTheme=e=>{switch(e){case r.BALLOON_BLASTER:return GAME_THEMES.balloonBlaster;case r.FRUIT_NINJA:return GAME_THEMES.fruitNinja;case r.MAZE_RUNNER:return GAME_THEMES.mazeRunner;case r.WHACK_A_MOLE:return GAME_THEMES.whackAMole;case r.SPACE_FIGHTER:return GAME_THEMES.spaceFighter;case r.POPIT_FIDGET:return GAME_THEMES.popitFidget;case r.SLIDING_NUMBERS:return GAME_THEMES.slidingNumbers;case r.GAME_2048:return GAME_THEMES.game2048;case r.DINO_JUMP:return GAME_THEMES.dinoJump;case r.COLORS_SORT:return GAME_THEMES.colorsSort;case r.FRUIT_MERGER:return GAME_THEMES.fruitMerger;case r.FLAPPY_BIRD:return GAME_THEMES.flappyBird;case r.CANDY_CRUSH:return GAME_THEMES.candyCrush;case r.SNAKE:return GAME_THEMES.snake;case r.CAR_RACING:return GAME_THEMES.carRacing;case r.BIKE_RACING:return GAME_THEMES.bikeRacing;case r.BLOCK_BLAST:return GAME_THEMES.blockBlast;case r.BUBBLE_SHOOTER:return GAME_THEMES.bubbleShooter;case r.PERFECT_CIRCLE:return GAME_THEMES.perfectCircle;default:return GAME_THEMES.balloonBlaster}};export const getGameDifficultyDescriptions=e=>{switch(e){case r.BALLOON_BLASTER:return GAME_DIFFICULTY_DESCRIPTIONS.balloonBlaster;case r.FRUIT_NINJA:return GAME_DIFFICULTY_DESCRIPTIONS.fruitNinja;case r.MAZE_RUNNER:return GAME_DIFFICULTY_DESCRIPTIONS.mazeRunner;case r.WHACK_A_MOLE:return GAME_DIFFICULTY_DESCRIPTIONS.whackAMole;case r.SPACE_FIGHTER:return GAME_DIFFICULTY_DESCRIPTIONS.spaceFighter;case r.POPIT_FIDGET:return GAME_DIFFICULTY_DESCRIPTIONS.popitFidget;case r.SLIDING_NUMBERS:return GAME_DIFFICULTY_DESCRIPTIONS.slidingNumbers;case r.GAME_2048:return GAME_DIFFICULTY_DESCRIPTIONS.game2048;case r.DINO_JUMP:return GAME_DIFFICULTY_DESCRIPTIONS.dinoJump;case r.COLORS_SORT:return GAME_DIFFICULTY_DESCRIPTIONS.colorsSort;case r.FRUIT_MERGER:return GAME_DIFFICULTY_DESCRIPTIONS.fruitMerger;case r.FLAPPY_BIRD:return GAME_DIFFICULTY_DESCRIPTIONS.flappyBird;case r.CANDY_CRUSH:return GAME_DIFFICULTY_DESCRIPTIONS.candyCrush;case r.SNAKE:return GAME_DIFFICULTY_DESCRIPTIONS.snake;case r.CAR_RACING:return GAME_DIFFICULTY_DESCRIPTIONS.carRacing;case r.BIKE_RACING:return GAME_DIFFICULTY_DESCRIPTIONS.bikeRacing;case r.BLOCK_BLAST:return GAME_DIFFICULTY_DESCRIPTIONS.blockBlast;case r.BUBBLE_SHOOTER:return GAME_DIFFICULTY_DESCRIPTIONS.bubbleShooter;case r.PERFECT_CIRCLE:return GAME_DIFFICULTY_DESCRIPTIONS.perfectCircle;default:return GAME_DIFFICULTY_DESCRIPTIONS.balloonBlaster}};export const getGameTitle=e=>{switch(e){case r.BALLOON_BLASTER:return"Balloon Blaster";case r.FRUIT_NINJA:return"Fruit Ninja";case r.MAZE_RUNNER:return"Maze Runner";case r.WHACK_A_MOLE:return"Whack-a-Mole";case r.SPACE_FIGHTER:return"Space Fighter";case r.POPIT_FIDGET:return"Pop It Fidget";case r.SLIDING_NUMBERS:return"Sliding Numbers";case r.GAME_2048:return"2048";case r.DINO_JUMP:return"Dino Jump";case r.COLORS_SORT:return"Colors Sort";case r.FRUIT_MERGER:return"Fruit Merger";case r.FLAPPY_BIRD:return"Flappy Bird";case r.CANDY_CRUSH:return"Candy Crush";case r.SNAKE:return"Snake";case r.CAR_RACING:return"Car Racing";case r.BIKE_RACING:return"Bike Racing";case r.BLOCK_BLAST:return"Block Blast";case r.BUBBLE_SHOOTER:return"Bubble Shooter";case r.PERFECT_CIRCLE:return"Perfect Circle";default:return"Game Settings"}};
@@ -1 +1 @@
1
- "use strict";import{CandyCrush}from "../games/candy-crush/index.js";import{BalloonBlaster}from "../games/balloon-blaster/BalloonBlaster.js";import{ColorsSort}from "../games/colors-sort/ColorsSort.js";import{DinoJump}from "../games/dino-jump/DinoJump.js";import{FlappyBird}from "../games/flappy-bird/FlappyBird.js";import{FruitMerger}from "../games/fruit-merger/FruitMerger.js";import{FruitNinja}from "../games/fruit-ninja/FruitNinja.js";import{Game2048}from "../games/game-2048/Game2048.js";import{MazeRunner}from "../games/maze-runner/MazeRunner.js";import{PopitFidget}from "../games/popit-fidget/PopitFidget.js";import{SlidingNumbers}from "../games/sliding-numbers/SlidingNumbers.js";import{Snake}from "../games/snake/index.js";import{SpaceFighter}from "../games/space-fighter/SpaceFighter.js";import{WhackAMole}from "../games/whack-a-mole/WhackAMole.js";import{CarRacing}from "../games/car-racing/CarRacing.js";import{BikeRacing}from "../games/bike-racing/BikeRacing.js";import{BlockBlast}from "../games/block-blast/BlockBlast.js";import{BubbleShooter}from "../games/bubble-shooter/BubbleShooter.js";import{PerfectCircle}from "../games/perfect-circle/PerfectCircle.js";import{GAME_IDS}from "./UtilsService.js";export const GAMES ={[GAME_IDS.BLOCK_BLAST]:{id:GAME_IDS.BLOCK_BLAST,title:'Block Blast',description:'Place blocks on grid to clear lines - strategic puzzle challenge!',component:BlockBlast},[GAME_IDS.BUBBLE_SHOOTER]:{id:GAME_IDS.BUBBLE_SHOOTER,title:'Bubble Shooter',description:'Match 3+ bubbles of the same color - classic puzzle fun!',component:BubbleShooter},[GAME_IDS.FRUIT_NINJA]:{id:GAME_IDS.FRUIT_NINJA,title:'Fruit Ninja',description:'Slice flying fruits with finger swipes and combos - avoid the bombs!',component:FruitNinja},[GAME_IDS.POPIT_FIDGET]:{id:GAME_IDS.POPIT_FIDGET,title:'Popit Fidget',description:'Pop satisfying bubbles in this relaxing fidget toy simulation game!',component:PopitFidget},[GAME_IDS.FLAPPY_BIRD]:{id:GAME_IDS.FLAPPY_BIRD,title:'Flappy Bird',description:'Tap to flap and navigate through pipes - classic arcade challenge!',component:FlappyBird},[GAME_IDS.COLORS_SORT]:{id:GAME_IDS.COLORS_SORT,title:'Colors Sort',description:'Sort colored liquids into matching tubes - challenging logic puzzle!',component:ColorsSort},[GAME_IDS.DINO_JUMP]:{id:GAME_IDS.DINO_JUMP,title:'Dino Jump',description:'Jump over obstacles and collect stars for lives - endless runner!',component:DinoJump},[GAME_IDS.CANDY_CRUSH]:{id:GAME_IDS.CANDY_CRUSH,title:'Candy Crush',description:'Match colorful candies in rows to score points - sweet puzzle fun!',component:CandyCrush},[GAME_IDS.WHACK_A_MOLE]:{id:GAME_IDS.WHACK_A_MOLE,title:'Whack A Mole',description:'Whack cute cats popping from holes - test your lightning reflexes!',component:WhackAMole},[GAME_IDS.BALLOON_BLASTER]:{id:GAME_IDS.BALLOON_BLASTER,title:'Balloon Blaster',description:'Pop rising balloons before they escape - quick taps and swipes win!',component:BalloonBlaster},[GAME_IDS.SPACE_FIGHTER]:{id:GAME_IDS.SPACE_FIGHTER,title:'Space Fighter',description:'Pilot your spaceship through asteroid fields - endless space survival!',component:SpaceFighter},[GAME_IDS.CAR_RACING]:{id:GAME_IDS.CAR_RACING,title:'Car Racing',description:'Dodge traffic and race through lanes - test your reflexes!',component:CarRacing},[GAME_IDS.BIKE_RACING]:{id:GAME_IDS.BIKE_RACING,title:'Bike Racing',description:'Race on bikes through traffic - faster and more challenging!',component:BikeRacing},[GAME_IDS.MAZE_RUNNER]:{id:GAME_IDS.MAZE_RUNNER,title:'Maze Runner',description:'Navigate ball through procedural mazes - tilt and physics controls!',component:MazeRunner},[GAME_IDS.SLIDING_NUMBERS]:{id:GAME_IDS.SLIDING_NUMBERS,title:'Sliding Numbers',description:'Slide numbered tiles to solve puzzles - classic sliding puzzle game!',component:SlidingNumbers},[GAME_IDS.GAME_2048]:{id:GAME_IDS.GAME_2048,title:'2048',description:'Merge matching tiles to reach 2048 and beyond - addictive puzzle!',component:Game2048},[GAME_IDS.FRUIT_MERGER]:{id:GAME_IDS.FRUIT_MERGER,title:'Fruit Merger',description:'Drop and merge fruits to create bigger ones - reach the watermelon!',component:FruitMerger},[GAME_IDS.SNAKE]:{id:GAME_IDS.SNAKE,title:'Snake & Eggs',description:'Eat eggs to grow longer and avoid walls - classic snake gameplay!',component:Snake},[GAME_IDS.PERFECT_CIRCLE]:{id:GAME_IDS.PERFECT_CIRCLE,title:'Perfect Circle',description:'Draw the most perfect circle you can - test your precision!',component:PerfectCircle}};export const GAMES_LIST = Object.values(GAMES);export const GAMES_MAPPING = Object.fromEntries(Object.entries(GAMES).map(([id,{component}])=> [id,component]));
1
+ "use strict";import{CandyCrush as e}from"../games/candy-crush/index.js";import{BalloonBlaster as i}from"../games/balloon-blaster/BalloonBlaster.js";import{ColorsSort as o}from"../games/colors-sort/ColorsSort.js";import{DinoJump as t}from"../games/dino-jump/DinoJump.js";import{FlappyBird as r}from"../games/flappy-bird/FlappyBird.js";import{FruitMerger as s}from"../games/fruit-merger/FruitMerger.js";import{FruitNinja as n}from"../games/fruit-ninja/FruitNinja.js";import{Game2048 as a}from"../games/game-2048/Game2048.js";import{MazeRunner as c}from"../games/maze-runner/MazeRunner.js";import{PopitFidget as l}from"../games/popit-fidget/PopitFidget.js";import{SlidingNumbers as p}from"../games/sliding-numbers/SlidingNumbers.js";import{Snake as m}from"../games/snake/index.js";import{SpaceFighter as d}from"../games/space-fighter/SpaceFighter.js";import{WhackAMole as g}from"../games/whack-a-mole/WhackAMole.js";import{CarRacing as u}from"../games/car-racing/CarRacing.js";import{BikeRacing as f}from"../games/bike-racing/BikeRacing.js";import{BlockBlast as h}from"../games/block-blast/BlockBlast.js";import{BubbleShooter as b}from"../games/bubble-shooter/BubbleShooter.js";import{PerfectCircle as j}from"../games/perfect-circle/PerfectCircle.js";import{GAME_IDS as S}from"./UtilsService.js";export const GAMES={[S.BLOCK_BLAST]:{id:S.BLOCK_BLAST,title:"Block Blast",description:"Place blocks on grid to clear lines - strategic puzzle challenge!",component:h},[S.BUBBLE_SHOOTER]:{id:S.BUBBLE_SHOOTER,title:"Bubble Shooter",description:"Match 3+ bubbles of the same color - classic puzzle fun!",component:b},[S.FRUIT_NINJA]:{id:S.FRUIT_NINJA,title:"Fruit Ninja",description:"Slice flying fruits with finger swipes and combos - avoid the bombs!",component:n},[S.FRUIT_MERGER]:{id:S.FRUIT_MERGER,title:"Fruit Merger",description:"Drop and merge fruits to create bigger ones - reach the watermelon!",component:s},[S.CANDY_CRUSH]:{id:S.CANDY_CRUSH,title:"Candy Crush",description:"Match colorful candies in rows to score points - sweet puzzle fun!",component:e},[S.POPIT_FIDGET]:{id:S.POPIT_FIDGET,title:"Popit Fidget",description:"Pop satisfying bubbles in this relaxing fidget toy simulation game!",component:l},[S.FLAPPY_BIRD]:{id:S.FLAPPY_BIRD,title:"Flappy Bird",description:"Tap to flap and navigate through pipes - classic arcade challenge!",component:r},[S.DINO_JUMP]:{id:S.DINO_JUMP,title:"Dino Jump",description:"Jump over obstacles and collect stars for lives - endless runner!",component:t},[S.WHACK_A_MOLE]:{id:S.WHACK_A_MOLE,title:"Whack A Mole",description:"Whack cute cats popping from holes - test your lightning reflexes!",component:g},[S.COLORS_SORT]:{id:S.COLORS_SORT,title:"Colors Sort",description:"Sort colored liquids into matching tubes - challenging logic puzzle!",component:o},[S.BALLOON_BLASTER]:{id:S.BALLOON_BLASTER,title:"Balloon Blaster",description:"Pop rising balloons before they escape - quick taps and swipes win!",component:i},[S.SPACE_FIGHTER]:{id:S.SPACE_FIGHTER,title:"Space Fighter",description:"Pilot your spaceship through asteroid fields - endless space survival!",component:d},[S.CAR_RACING]:{id:S.CAR_RACING,title:"Car Racing",description:"Dodge traffic and race through lanes - test your reflexes!",component:u},[S.BIKE_RACING]:{id:S.BIKE_RACING,title:"Bike Racing",description:"Race on bikes through traffic - faster and more challenging!",component:f},[S.MAZE_RUNNER]:{id:S.MAZE_RUNNER,title:"Maze Runner",description:"Navigate ball through procedural mazes - tilt and physics controls!",component:c},[S.SLIDING_NUMBERS]:{id:S.SLIDING_NUMBERS,title:"Sliding Numbers",description:"Slide numbered tiles to solve puzzles - classic sliding puzzle game!",component:p},[S.GAME_2048]:{id:S.GAME_2048,title:"2048",description:"Merge matching tiles to reach 2048 and beyond - addictive puzzle!",component:a},[S.SNAKE]:{id:S.SNAKE,title:"Snake & Eggs",description:"Eat eggs to grow longer and avoid walls - classic snake gameplay!",component:m},[S.PERFECT_CIRCLE]:{id:S.PERFECT_CIRCLE,title:"Perfect Circle",description:"Draw the most perfect circle you can - test your precision!",component:j}};export const GAMES_LIST=Object.values(GAMES);export const GAMES_MAPPING=Object.fromEntries(Object.entries(GAMES).map(([e,{component:i}])=>[e,i]));
@@ -1 +1 @@
1
- {"version":3,"names":["CandyCrush","BalloonBlaster","ColorsSort","DinoJump","FlappyBird","FruitMerger","FruitNinja","Game2048","MazeRunner","PopitFidget","SlidingNumbers","Snake","SpaceFighter","WhackAMole","CarRacing","BikeRacing","BlockBlast","BubbleShooter","PerfectCircle","GAME_IDS","GAMES","BLOCK_BLAST","id","title","description","component","BUBBLE_SHOOTER","FRUIT_NINJA","POPIT_FIDGET","FLAPPY_BIRD","COLORS_SORT","DINO_JUMP","CANDY_CRUSH","WHACK_A_MOLE","BALLOON_BLASTER","SPACE_FIGHTER","CAR_RACING","BIKE_RACING","MAZE_RUNNER","SLIDING_NUMBERS","GAME_2048","FRUIT_MERGER","SNAKE","PERFECT_CIRCLE","GAMES_LIST","Object","values","GAMES_MAPPING","fromEntries","entries","map"],"sourceRoot":"../../../src","sources":["services/GamesService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CandyCrush","BalloonBlaster","ColorsSort","DinoJump","FlappyBird","FruitMerger","FruitNinja","Game2048","MazeRunner","PopitFidget","SlidingNumbers","Snake","SpaceFighter","WhackAMole","CarRacing","BikeRacing","BlockBlast","BubbleShooter","PerfectCircle","GAME_IDS","GAMES","BLOCK_BLAST","id","title","description","component","BUBBLE_SHOOTER","FRUIT_NINJA","FRUIT_MERGER","CANDY_CRUSH","POPIT_FIDGET","FLAPPY_BIRD","DINO_JUMP","WHACK_A_MOLE","COLORS_SORT","BALLOON_BLASTER","SPACE_FIGHTER","CAR_RACING","BIKE_RACING","MAZE_RUNNER","SLIDING_NUMBERS","GAME_2048","SNAKE","PERFECT_CIRCLE","GAMES_LIST","Object","values","GAMES_MAPPING","fromEntries","entries","map"],"sourceRoot":"../../../src","sources":["services/GamesService.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,+BAAsB;AACjD,SAASC,cAAc,QAAQ,4CAAyC;AACxE,SAASC,UAAU,QAAQ,oCAAiC;AAC5D,SAASC,QAAQ,QAAQ,gCAA6B;AACtD,SAASC,UAAU,QAAQ,oCAAiC;AAC5D,SAASC,WAAW,QAAQ,sCAAmC;AAC/D,SAASC,UAAU,QAAQ,oCAAiC;AAC5D,SAASC,QAAQ,QAAQ,gCAA6B;AACtD,SAASC,UAAU,QAAQ,oCAAiC;AAC5D,SAASC,WAAW,QAAQ,sCAAmC;AAC/D,SAASC,cAAc,QAAQ,4CAAyC;AACxE,SAASC,KAAK,QAAQ,yBAAgB;AACtC,SAASC,YAAY,QAAQ,wCAAqC;AAClE,SAASC,UAAU,QAAQ,qCAAkC;AAC7D,SAASC,SAAS,QAAQ,kCAA+B;AACzD,SAASC,UAAU,QAAQ,oCAAiC;AAC5D,SAASC,UAAU,QAAQ,oCAAiC;AAC5D,SAASC,aAAa,QAAQ,0CAAuC;AACrE,SAASC,aAAa,QAAQ,0CAAuC;AACrE,SAASC,QAAQ,QAA6B,mBAAgB;;AAE9D;AACA,OAAO,MAAMC,KAAuC,GAAG;EACrD,CAACD,QAAQ,CAACE,WAAW,GAAG;IACtBC,EAAE,EAAEH,QAAQ,CAACE,WAAW;IACxBE,KAAK,EAAE,aAAa;IACpBC,WAAW,EAAE,mEAAmE;IAChFC,SAAS,EAAET;EACb,CAAC;EACD,CAACG,QAAQ,CAACO,cAAc,GAAG;IACzBJ,EAAE,EAAEH,QAAQ,CAACO,cAAc;IAC3BH,KAAK,EAAE,gBAAgB;IACvBC,WAAW,EAAE,0DAA0D;IACvEC,SAAS,EAAER;EACb,CAAC;EACD,CAACE,QAAQ,CAACQ,WAAW,GAAG;IACtBL,EAAE,EAAEH,QAAQ,CAACQ,WAAW;IACxBJ,KAAK,EAAE,aAAa;IACpBC,WAAW,EAAE,sEAAsE;IACnFC,SAAS,EAAEnB;EACb,CAAC;EACD,CAACa,QAAQ,CAACS,YAAY,GAAG;IACvBN,EAAE,EAAEH,QAAQ,CAACS,YAAY;IACzBL,KAAK,EAAE,cAAc;IACrBC,WAAW,EAAE,qEAAqE;IAClFC,SAAS,EAAEpB;EACb,CAAC;EACD,CAACc,QAAQ,CAACU,WAAW,GAAG;IACtBP,EAAE,EAAEH,QAAQ,CAACU,WAAW;IACxBN,KAAK,EAAE,aAAa;IACpBC,WAAW,EAAE,oEAAoE;IACjFC,SAAS,EAAEzB;EACb,CAAC;EACD,CAACmB,QAAQ,CAACW,YAAY,GAAG;IACvBR,EAAE,EAAEH,QAAQ,CAACW,YAAY;IACzBP,KAAK,EAAE,cAAc;IACrBC,WAAW,EAAE,qEAAqE;IAClFC,SAAS,EAAEhB;EACb,CAAC;EACD,CAACU,QAAQ,CAACY,WAAW,GAAG;IACtBT,EAAE,EAAEH,QAAQ,CAACY,WAAW;IACxBR,KAAK,EAAE,aAAa;IACpBC,WAAW,EAAE,oEAAoE;IACjFC,SAAS,EAAErB;EACb,CAAC;EACD,CAACe,QAAQ,CAACa,SAAS,GAAG;IACpBV,EAAE,EAAEH,QAAQ,CAACa,SAAS;IACtBT,KAAK,EAAE,WAAW;IAClBC,WAAW,EAAE,mEAAmE;IAChFC,SAAS,EAAEtB;EACb,CAAC;EACD,CAACgB,QAAQ,CAACc,YAAY,GAAG;IACvBX,EAAE,EAAEH,QAAQ,CAACc,YAAY;IACzBV,KAAK,EAAE,cAAc;IACrBC,WAAW,EAAE,oEAAoE;IACjFC,SAAS,EAAEZ;EACb,CAAC;EACD,CAACM,QAAQ,CAACe,WAAW,GAAG;IACtBZ,EAAE,EAAEH,QAAQ,CAACe,WAAW;IACxBX,KAAK,EAAE,aAAa;IACpBC,WAAW,EAAE,sEAAsE;IACnFC,SAAS,EAAEvB;EACb,CAAC;EACD,CAACiB,QAAQ,CAACgB,eAAe,GAAG;IAC1Bb,EAAE,EAAEH,QAAQ,CAACgB,eAAe;IAC5BZ,KAAK,EAAE,iBAAiB;IACxBC,WAAW,EAAE,qEAAqE;IAClFC,SAAS,EAAExB;EACb,CAAC;EACD,CAACkB,QAAQ,CAACiB,aAAa,GAAG;IACxBd,EAAE,EAAEH,QAAQ,CAACiB,aAAa;IAC1Bb,KAAK,EAAE,eAAe;IACtBC,WAAW,EAAE,wEAAwE;IACrFC,SAAS,EAAEb;EACb,CAAC;EACD,CAACO,QAAQ,CAACkB,UAAU,GAAG;IACrBf,EAAE,EAAEH,QAAQ,CAACkB,UAAU;IACvBd,KAAK,EAAE,YAAY;IACnBC,WAAW,EAAE,4DAA4D;IACzEC,SAAS,EAAEX;EACb,CAAC;EACD,CAACK,QAAQ,CAACmB,WAAW,GAAG;IACtBhB,EAAE,EAAEH,QAAQ,CAACmB,WAAW;IACxBf,KAAK,EAAE,aAAa;IACpBC,WAAW,EAAE,8DAA8D;IAC3EC,SAAS,EAAEV;EACb,CAAC;EACD,CAACI,QAAQ,CAACoB,WAAW,GAAG;IACtBjB,EAAE,EAAEH,QAAQ,CAACoB,WAAW;IACxBhB,KAAK,EAAE,aAAa;IACpBC,WAAW,EAAE,qEAAqE;IAClFC,SAAS,EAAEjB;EACb,CAAC;EACD,CAACW,QAAQ,CAACqB,eAAe,GAAG;IAC1BlB,EAAE,EAAEH,QAAQ,CAACqB,eAAe;IAC5BjB,KAAK,EAAE,iBAAiB;IACxBC,WAAW,EAAE,sEAAsE;IACnFC,SAAS,EAAEf;EACb,CAAC;EACD,CAACS,QAAQ,CAACsB,SAAS,GAAG;IACpBnB,EAAE,EAAEH,QAAQ,CAACsB,SAAS;IACtBlB,KAAK,EAAE,MAAM;IACbC,WAAW,EAAE,mEAAmE;IAChFC,SAAS,EAAElB;EACb,CAAC;EACD,CAACY,QAAQ,CAACuB,KAAK,GAAG;IAChBpB,EAAE,EAAEH,QAAQ,CAACuB,KAAK;IAClBnB,KAAK,EAAE,cAAc;IACrBC,WAAW,EAAE,mEAAmE;IAChFC,SAAS,EAAEd;EACb,CAAC;EACD,CAACQ,QAAQ,CAACwB,cAAc,GAAG;IACzBrB,EAAE,EAAEH,QAAQ,CAACwB,cAAc;IAC3BpB,KAAK,EAAE,gBAAgB;IACvBC,WAAW,EAAE,6DAA6D;IAC1EC,SAAS,EAAEP;EACb;AACF,CAAQ;;AAER;AACA,OAAO,MAAM0B,UAAU,GAAGC,MAAM,CAACC,MAAM,CAAC1B,KAAK,CAAC;AAC9C,OAAO,MAAM2B,aAAa,GAAGF,MAAM,CAACG,WAAW,CAC7CH,MAAM,CAACI,OAAO,CAAC7B,KAAK,CAAC,CAAC8B,GAAG,CAAC,CAAC,CAAC5B,EAAE,EAAE;EAAEG;AAAU,CAAC,CAAC,KAAK,CAACH,EAAE,EAAEG,SAAS,CAAC,CACpE,CAAQ","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import * as Haptics from 'expo-haptics';export let HapticType = function(HapticType){HapticType["LIGHT"] = "light";HapticType["MEDIUM"] = "medium";HapticType["HEAVY"] = "heavy";HapticType["SUCCESS"] = "success";HapticType["WARNING"] = "warning";HapticType["ERROR"] = "error";HapticType["SELECTION"] = "selection";return HapticType;}({});let hapticsDisabled = false;export const playHaptic =(type,hapticEnabled = false)=>{if(!hapticEnabled || hapticsDisabled)return;try{switch(type){case HapticType.LIGHT:Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light).catch(error =>{console.warn('Light haptic failed:',error);hapticsDisabled = true;});break;case HapticType.MEDIUM:Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Medium).catch(error =>{console.warn('Medium haptic failed:',error);hapticsDisabled = true;});break;case HapticType.HEAVY:Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Heavy).catch(error =>{console.warn('Heavy haptic failed:',error);hapticsDisabled = true;});break;case HapticType.SUCCESS:Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success).catch(error =>{console.warn('Success haptic failed:',error);hapticsDisabled = true;});break;case HapticType.WARNING:Haptics.notificationAsync(Haptics.NotificationFeedbackType.Warning).catch(error =>{console.warn('Warning haptic failed:',error);hapticsDisabled = true;});break;case HapticType.ERROR:Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error).catch(error =>{console.warn('Error haptic failed:',error);hapticsDisabled = true;});break;case HapticType.SELECTION:Haptics.selectionAsync().catch(error =>{console.warn('Selection haptic failed:',error);hapticsDisabled = true;});break;}}catch(error){console.warn('Haptic feedback failed,disabling haptics:',error);hapticsDisabled = true;}};
1
+ "use strict";import*as e from"expo-haptics";export let HapticType=function(e){return e.LIGHT="light",e.MEDIUM="medium",e.HEAVY="heavy",e.SUCCESS="success",e.WARNING="warning",e.ERROR="error",e.SELECTION="selection",e}({});let a=!1;export const playHaptic=(c,t=!1)=>{if(t&&!a)try{switch(c){case HapticType.LIGHT:e.impactAsync(e.ImpactFeedbackStyle.Light).catch(e=>{a=!0});break;case HapticType.MEDIUM:e.impactAsync(e.ImpactFeedbackStyle.Medium).catch(e=>{a=!0});break;case HapticType.HEAVY:e.impactAsync(e.ImpactFeedbackStyle.Heavy).catch(e=>{a=!0});break;case HapticType.SUCCESS:e.notificationAsync(e.NotificationFeedbackType.Success).catch(e=>{a=!0});break;case HapticType.WARNING:e.notificationAsync(e.NotificationFeedbackType.Warning).catch(e=>{a=!0});break;case HapticType.ERROR:e.notificationAsync(e.NotificationFeedbackType.Error).catch(e=>{a=!0});break;case HapticType.SELECTION:e.selectionAsync().catch(e=>{a=!0})}}catch(e){a=!0}};
@@ -1 +1 @@
1
- "use strict";export const calculateTimeBasedScore =(completionTimeSeconds,expectedTime,maxScore = 1000,minScore = 100,decayRate = 2)=>{if(completionTimeSeconds <= 0){return maxScore;}const timeRatio = completionTimeSeconds / expectedTime;const decayFactor = Math.exp(-decayRate * timeRatio);const scoreRange = maxScore - minScore;const score = minScore + scoreRange * decayFactor;return Math.max(minScore,Math.min(maxScore,Math.round(score)));};
1
+ "use strict";export const calculateTimeBasedScore=(t,a,e=1e3,c=100,h=2)=>t>0?Math.max(c,Math.min(e,Math.round(c+(e-c)*Math.exp(t/a*-h)))):e;
@@ -1 +1 @@
1
- "use strict";import * as Speech from 'expo-speech';let lastSpeechTime = 0;const SPEECH_THROTTLE_MS = 100;let isSpeaking = false;export const playSound =(soundConfig,soundEnabled)=>{if(!soundEnabled)return;const now = Date.now();if(now - lastSpeechTime < SPEECH_THROTTLE_MS){return;}if(isSpeaking){return;}lastSpeechTime = now;isSpeaking = true;Speech.speak(soundConfig.text,{pitch:soundConfig.pitch || 1.0,rate:soundConfig.rate || 1.5,language:soundConfig.language || 'en',onDone:()=>{isSpeaking = false;},onStopped:()=>{isSpeaking = false;},onError:()=>{isSpeaking = false;}});};export const stopAllSounds =()=>{Speech.stop();isSpeaking = false;lastSpeechTime = 0;};export const isSpeechAvailable = async()=>{try{return await Speech.isSpeakingAsync();}catch{return false;}};export const GAME_SOUNDS ={POP:{text:'Pop!',pitch:1.6,rate:2.2},SWOOSH:{text:'Swoosh!',pitch:1.5,rate:2.5},BOOM:{text:'Boom!',pitch:0.8,rate:1.5},WHOOSH:{text:'Whoosh',pitch:0.7,rate:1.8},GAME_START:{text:'Game started!',pitch:1.1,rate:0.9},GAME_OVER:{text:'Game over!',pitch:0.9,rate:0.8},TIME_UP:{text:'Time up! Game over!',pitch:0.9,rate:0.8},WELL_DONE:{text:'Well done!',pitch:1.2,rate:1.0},CONGRATULATIONS:{text:'Congratulations!',pitch:1.1,rate:0.9},BUBBLE_POPPER:{START:{text:'Bubble Popper started!',pitch:1.1,rate:0.9},COMPLETE:{text:'All bubbles popped! Well done!',pitch:1.2,rate:1.0},POP:{text:'Pop!',pitch:1.6,rate:2.2}},WHACK_A_MOLE:{HIT:{text:'Pop!',pitch:1.8,rate:2.0},MISS:{text:'Whoosh',pitch:0.7,rate:1.8}},BALLOON_BLASTER:{POP:{text:'Pop!',pitch:1.5,rate:2.5},BOMB:{text:'Boom!',pitch:0.8,rate:1.5},BONUS:{text:'bonus life!',pitch:1.8,rate:2.0}},FRUIT_NINJA:{SLICE:{text:'Swoosh!',pitch:1.5,rate:2.5},BOMB:{text:'Boom!',pitch:0.8,rate:1.5},BONUS:{text:'bonus life!',pitch:1.8,rate:2.0}},MAZE_RUNNER:{START:{text:'Maze started! Navigate to the exit!',pitch:1.0,rate:0.9},COMPLETE:{text:'Congratulations! Maze completed!',pitch:1.1,rate:0.9},STOP:{text:'Maze stopped!',pitch:0.9,rate:0.8}},SPACE_FIGHTER:{START:{text:'Mission started! Navigate through the asteroid field!',pitch:1.0,rate:0.9},SUCCESS:{text:'Nice!',pitch:1.8,rate:2.0},COLLISION:{text:'Ouch!',pitch:0.8,rate:1.5}},DINO_JUMP:{START:{text:'Run!',pitch:1.2,rate:1.5},COLLECT:{text:'Yum!',pitch:1.8,rate:2.2},HIT:{text:'Ouch!',pitch:0.8,rate:1.5},GAME_OVER:{text:'Game over!',pitch:0.9,rate:0.8}},COLORS_SORT:{START:{text:'Sort colors!',pitch:1.1,rate:1.2},MATCH:{text:'Click!',pitch:1.6,rate:2.0},COMPLETE:{text:'Perfect!',pitch:1.8,rate:1.8},MISS:{text:'Oops!',pitch:0.8,rate:1.0},GAME_OVER:{text:'Game over!',pitch:0.9,rate:0.8}},FRUIT_MERGER:{START:{text:'Merge fruits!',pitch:1.2,rate:1.3},MERGE:{text:'Pop!',pitch:1.5,rate:1.8},DROP:{text:'Boing!',pitch:1.3,rate:1.5},COMPLETE:{text:'Amazing!',pitch:1.9,rate:1.9},GAME_OVER:{text:'Game over!',pitch:0.9,rate:0.8}},FLAPPY_BIRD:{START:{text:'Fly!',pitch:1.3,rate:1.5},FLAP:{text:'Flap!',pitch:1.8,rate:2.5},SCORE:{text:'Point!',pitch:1.6,rate:2.0},HIT:{text:'Ouch!',pitch:0.8,rate:1.2},GAME_OVER:{text:'Game over!',pitch:0.9,rate:0.8}},CAR_RACING:{START:{text:'Race started!',pitch:1.2,rate:1.3},LANE_SWITCH:{text:'Vroom!',pitch:1.4,rate:2.5},PASS:{text:'Nice!',pitch:1.6,rate:2.0},CRASH:{text:'Crash!',pitch:0.7,rate:1.2},GAME_OVER:{text:'Race over!',pitch:0.9,rate:0.8}},BLOCK_BLAST:{START:{text:'Block Blast started!',pitch:1.1,rate:1.2},PLACE:{text:'Click!',pitch:1.5,rate:2.0},CLEAR:{text:'Clear!',pitch:1.7,rate:1.8},COMBO:{text:'Combo!',pitch:1.9,rate:2.0},GAME_OVER:{text:'Game over!',pitch:0.9,rate:0.8}},POPIT_FIDGET:{POP:{text:'Pop!',pitch:1.6,rate:2.2}},PERFECT_CIRCLE:{START:{text:'Draw a perfect circle!',pitch:1.1,rate:1.2},DRAW_START:{text:'Swoosh!',pitch:1.3,rate:2.0},DRAW_END:{text:'Done!',pitch:1.2,rate:1.5},SUCCESS:{text:'Perfect!',pitch:1.8,rate:1.8},FAIL:{text:'Try again!',pitch:0.9,rate:1.0}}};
1
+ "use strict";import*as t from"expo-speech";let e=0;const r=100;let a=!1;export const playSound=(p,c)=>{if(!c)return;const i=Date.now();r>i-e||a||(e=i,a=!0,t.speak(p.text,{pitch:p.pitch||1,rate:p.rate||1.5,language:p.language||"en",onDone:()=>{a=!1},onStopped:()=>{a=!1},onError:()=>{a=!1}}))};export const stopAllSounds=()=>{t.stop(),a=!1,e=0};export const isSpeechAvailable=async()=>{try{return await t.isSpeakingAsync()}catch{return!1}};export const GAME_SOUNDS={POP:{text:"Pop!",pitch:1.6,rate:2.2},SWOOSH:{text:"Swoosh!",pitch:1.5,rate:2.5},BOOM:{text:"Boom!",pitch:.8,rate:1.5},WHOOSH:{text:"Whoosh",pitch:.7,rate:1.8},GAME_START:{text:"Game started!",pitch:1.1,rate:.9},GAME_OVER:{text:"Game over!",pitch:.9,rate:.8},TIME_UP:{text:"Time up! Game over!",pitch:.9,rate:.8},WELL_DONE:{text:"Well done!",pitch:1.2,rate:1},CONGRATULATIONS:{text:"Congratulations!",pitch:1.1,rate:.9},BUBBLE_POPPER:{START:{text:"Bubble Popper started!",pitch:1.1,rate:.9},COMPLETE:{text:"All bubbles popped! Well done!",pitch:1.2,rate:1},POP:{text:"Pop!",pitch:1.6,rate:2.2}},WHACK_A_MOLE:{HIT:{text:"Pop!",pitch:1.8,rate:2},MISS:{text:"Whoosh",pitch:.7,rate:1.8}},BALLOON_BLASTER:{POP:{text:"Pop!",pitch:1.5,rate:2.5},BOMB:{text:"Boom!",pitch:.8,rate:1.5},BONUS:{text:"bonus life!",pitch:1.8,rate:2}},FRUIT_NINJA:{SLICE:{text:"Swoosh!",pitch:1.5,rate:2.5},BOMB:{text:"Boom!",pitch:.8,rate:1.5},BONUS:{text:"bonus life!",pitch:1.8,rate:2}},MAZE_RUNNER:{START:{text:"Maze started! Navigate to the exit!",pitch:1,rate:.9},COMPLETE:{text:"Congratulations! Maze completed!",pitch:1.1,rate:.9},STOP:{text:"Maze stopped!",pitch:.9,rate:.8}},SPACE_FIGHTER:{START:{text:"Mission started! Navigate through the asteroid field!",pitch:1,rate:.9},SUCCESS:{text:"Nice!",pitch:1.8,rate:2},COLLISION:{text:"Ouch!",pitch:.8,rate:1.5}},DINO_JUMP:{START:{text:"Run!",pitch:1.2,rate:1.5},COLLECT:{text:"Yum!",pitch:1.8,rate:2.2},HIT:{text:"Ouch!",pitch:.8,rate:1.5},GAME_OVER:{text:"Game over!",pitch:.9,rate:.8}},COLORS_SORT:{START:{text:"Sort colors!",pitch:1.1,rate:1.2},MATCH:{text:"Click!",pitch:1.6,rate:2},COMPLETE:{text:"Perfect!",pitch:1.8,rate:1.8},MISS:{text:"Oops!",pitch:.8,rate:1},GAME_OVER:{text:"Game over!",pitch:.9,rate:.8}},FRUIT_MERGER:{START:{text:"Merge fruits!",pitch:1.2,rate:1.3},MERGE:{text:"Pop!",pitch:1.5,rate:1.8},DROP:{text:"Boing!",pitch:1.3,rate:1.5},COMPLETE:{text:"Amazing!",pitch:1.9,rate:1.9},GAME_OVER:{text:"Game over!",pitch:.9,rate:.8}},FLAPPY_BIRD:{START:{text:"Fly!",pitch:1.3,rate:1.5},FLAP:{text:"Flap!",pitch:1.8,rate:2.5},SCORE:{text:"Point!",pitch:1.6,rate:2},HIT:{text:"Ouch!",pitch:.8,rate:1.2},GAME_OVER:{text:"Game over!",pitch:.9,rate:.8}},CAR_RACING:{START:{text:"Race started!",pitch:1.2,rate:1.3},LANE_SWITCH:{text:"Vroom!",pitch:1.4,rate:2.5},PASS:{text:"Nice!",pitch:1.6,rate:2},CRASH:{text:"Crash!",pitch:.7,rate:1.2},GAME_OVER:{text:"Race over!",pitch:.9,rate:.8}},BLOCK_BLAST:{START:{text:"Block Blast started!",pitch:1.1,rate:1.2},PLACE:{text:"Click!",pitch:1.5,rate:2},CLEAR:{text:"Clear!",pitch:1.7,rate:1.8},COMBO:{text:"Combo!",pitch:1.9,rate:2},GAME_OVER:{text:"Game over!",pitch:.9,rate:.8}},POPIT_FIDGET:{POP:{text:"Pop!",pitch:1.6,rate:2.2}},PERFECT_CIRCLE:{START:{text:"Draw a perfect circle!",pitch:1.1,rate:1.2},DRAW_START:{text:"Swoosh!",pitch:1.3,rate:2},DRAW_END:{text:"Done!",pitch:1.2,rate:1.5},SUCCESS:{text:"Perfect!",pitch:1.8,rate:1.8},FAIL:{text:"Try again!",pitch:.9,rate:1}}};
@@ -1 +1 @@
1
- "use strict";import{produce}from 'immer';export const DEFAULT_GAME_SETTINGS ={isVisible:false,difficulty:'medium',enableSounds:true,enableHaptics:true,offset:0};export let GAME_IDS = function(GAME_IDS){GAME_IDS["WHACK_A_MOLE"] = "whack-a-mole";GAME_IDS["POPIT_FIDGET"] = "popit-fidget";GAME_IDS["FRUIT_NINJA"] = "fruit-ninja";GAME_IDS["BALLOON_BLASTER"] = "balloon-blaster";GAME_IDS["SPACE_FIGHTER"] = "space-fighter";GAME_IDS["MAZE_RUNNER"] = "maze-runner";GAME_IDS["SLIDING_NUMBERS"] = "sliding-numbers";GAME_IDS["GAME_2048"] = "game-2048";GAME_IDS["DINO_JUMP"] = "dino-jump";GAME_IDS["COLORS_SORT"] = "colors-sort";GAME_IDS["FRUIT_MERGER"] = "fruit-merger";GAME_IDS["FLAPPY_BIRD"] = "flappy-bird";GAME_IDS["CANDY_CRUSH"] = "candy-crush";GAME_IDS["SNAKE"] = "snake-game";GAME_IDS["CAR_RACING"] = "car-racing";GAME_IDS["BIKE_RACING"] = "bike-racing";GAME_IDS["BLOCK_BLAST"] = "block-blast";GAME_IDS["BUBBLE_SHOOTER"] = "bubble-shooter";GAME_IDS["PERFECT_CIRCLE"] = "perfect-circle";return GAME_IDS;}({});export const immerMiddleware = config =>(set,get,api)=> config((partial,...args)=>{const nextState = typeof partial === 'function' ? produce(partial):partial;return set(nextState,...args);},get,api);
1
+ "use strict";import{produce as e}from"immer";export const DEFAULT_GAME_SETTINGS={isVisible:!1,difficulty:"medium",enableSounds:!0,enableHaptics:!0,offset:0};export let GAME_IDS=function(e){return e.WHACK_A_MOLE="whack-a-mole",e.POPIT_FIDGET="popit-fidget",e.FRUIT_NINJA="fruit-ninja",e.BALLOON_BLASTER="balloon-blaster",e.SPACE_FIGHTER="space-fighter",e.MAZE_RUNNER="maze-runner",e.SLIDING_NUMBERS="sliding-numbers",e.GAME_2048="game-2048",e.DINO_JUMP="dino-jump",e.COLORS_SORT="colors-sort",e.FRUIT_MERGER="fruit-merger",e.FLAPPY_BIRD="flappy-bird",e.CANDY_CRUSH="candy-crush",e.SNAKE="snake-game",e.CAR_RACING="car-racing",e.BIKE_RACING="bike-racing",e.BLOCK_BLAST="block-blast",e.BUBBLE_SHOOTER="bubble-shooter",e.PERFECT_CIRCLE="perfect-circle",e}({});export const immerMiddleware=r=>(i,t,n)=>r((r,...t)=>{const n="function"==typeof r?e(r):r;return i(n,...t)},t,n);
@@ -1 +1 @@
1
- {"version":3,"names":["produce","DEFAULT_GAME_SETTINGS","isVisible","difficulty","enableSounds","enableHaptics","offset","GAME_IDS","immerMiddleware","config","set","get","api","partial","args","nextState"],"sourceRoot":"../../../src","sources":["services/UtilsService.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAuB/B,OAAO,MAAMC,qBAAmC,GAAG;EACjDC,SAAS,EAAE,KAAK;EAChBC,UAAU,EAAE,QAAQ;EACpBC,YAAY,EAAE,IAAI;EAClBC,aAAa,EAAE,IAAI;EACnBC,MAAM,EAAE;AACV,CAAC;AAED,WAAYC,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AA+BpB,OAAO,MAAMC,eAAe,GAAIC,MAAW,IAAK,CAACC,GAAQ,EAAEC,GAAQ,EAAEC,GAAQ,KAC3EH,MAAM,CACJ,CAACI,OAAY,EAAE,GAAGC,IAAW,KAAK;EAChC,MAAMC,SAAS,GAAG,OAAOF,OAAO,KAAK,UAAU,GAAGb,OAAO,CAACa,OAAO,CAAC,GAAGA,OAAO;EAC5E,OAAOH,GAAG,CAACK,SAAS,EAAE,GAAGD,IAAI,CAAC;AAChC,CAAC,EACDH,GAAG,EACHC,GACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["produce","DEFAULT_GAME_SETTINGS","isVisible","difficulty","enableSounds","enableHaptics","offset","GAME_IDS","immerMiddleware","config","set","get","api","partial","args","nextState"],"sourceRoot":"../../../src","sources":["services/UtilsService.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAyB/B,OAAO,MAAMC,qBAAmC,GAAG;EACjDC,SAAS,EAAE,KAAK;EAChBC,UAAU,EAAE,QAAQ;EACpBC,YAAY,EAAE,IAAI;EAClBC,aAAa,EAAE,IAAI;EACnBC,MAAM,EAAE;AACV,CAAC;AAED,WAAYC,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AA+BpB,OAAO,MAAMC,eAAe,GAAIC,MAAW,IAAK,CAACC,GAAQ,EAAEC,GAAQ,EAAEC,GAAQ,KAC3EH,MAAM,CACJ,CAACI,OAAY,EAAE,GAAGC,IAAW,KAAK;EAChC,MAAMC,SAAS,GAAG,OAAOF,OAAO,KAAK,UAAU,GAAGb,OAAO,CAACa,OAAO,CAAC,GAAGA,OAAO;EAC5E,OAAOH,GAAG,CAACK,SAAS,EAAE,GAAGD,IAAI,CAAC;AAChC,CAAC,EACDH,GAAG,EACHC,GACF,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BalloonBlaster.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlaster.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,OAAO,EAAY,KAAK,SAAS,EAAyB,MAAM,6BAA6B,CAAC;AAE9F,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAwL7C,CAAC"}
1
+ {"version":3,"file":"BalloonBlaster.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlaster.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,OAAO,EAAY,KAAK,SAAS,EAAyB,MAAM,6BAA6B,CAAC;AAE9F,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA2L7C,CAAC"}
@@ -1,6 +1,10 @@
1
1
  import type { GameSettingsTheme } from '../../services/GamesConstants';
2
2
  export declare const BALLOON_BLASTER_GAME_CONFIG: {
3
- readonly GAME_DURATION: 120;
3
+ readonly GAME_DURATION: {
4
+ readonly easy: 60;
5
+ readonly medium: 120;
6
+ readonly hard: 180;
7
+ };
4
8
  readonly MAX_LIVES: 3;
5
9
  readonly BALLOON_SPAWN_INTERVAL: 800;
6
10
  readonly BALLOON_RISE_SPEED: 0.08;
@@ -1 +1 @@
1
- {"version":3,"file":"BalloonBlasterConstants.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlasterConstants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;CAc9B,CAAC;AAEX,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;CAgBnC,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;CAiBzB,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAahB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAGxB,CAAC;AAGX,eAAO,MAAM,qBAAqB,EAAE,iBAcnC,CAAC;AAGF,eAAO,MAAM,uCAAuC;;;;CAI1C,CAAC"}
1
+ {"version":3,"file":"BalloonBlasterConstants.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlasterConstants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;CAkB9B,CAAC;AAEX,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;CAgBnC,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;CAiBzB,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAahB,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAGxB,CAAC;AAGX,eAAO,MAAM,qBAAqB,EAAE,iBAcnC,CAAC;AAGF,eAAO,MAAM,uCAAuC;;;;CAI1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BalloonBlasterService.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlasterService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BalloonBlasterService.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlasterService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BalloonBlasterStore.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlasterStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIjE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtC,SAAS,EAAE,OAAO,CAAC;IAGnB,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACtE,YAAY,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC9C,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAGD,eAAO,MAAM,sBAAsB;;;;;;;;EA4L9B,CAAC"}
1
+ {"version":3,"file":"BalloonBlasterStore.d.ts","sourceRoot":"","sources":["../../../../../src/games/balloon-blaster/BalloonBlasterStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAQjE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtC,SAAS,EAAE,OAAO,CAAC;IAGnB,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACtE,YAAY,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC9C,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAGD,eAAO,MAAM,sBAAsB;;;;;;;;EA2L9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BalloonComponent.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/BalloonComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAoBxD,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAmP3D,CAAC"}
1
+ {"version":3,"file":"BalloonComponent.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/BalloonComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAkBxD,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA6R3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GameArea.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/GameArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAqBzE,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAqJ3B,CAAC"}
1
+ {"version":3,"file":"GameArea.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/GameArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAqBzE,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAoJ3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GameBackground.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/GameBackground.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuQvD,CAAC"}
1
+ {"version":3,"file":"GameBackground.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/GameBackground.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAuD1B,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA2OvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScoreBoard.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/ScoreBoard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4C/C,CAAC"}
1
+ {"version":3,"file":"ScoreBoard.d.ts","sourceRoot":"","sources":["../../../../../../src/games/balloon-blaster/components/ScoreBoard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAMvC,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgD/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BikeRacing.d.ts","sourceRoot":"","sources":["../../../../../src/games/bike-racing/BikeRacing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAM7D,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA8Q1C,CAAC"}
1
+ {"version":3,"file":"BikeRacing.d.ts","sourceRoot":"","sources":["../../../../../src/games/bike-racing/BikeRacing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAM7D,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA4Q1C,CAAC"}
@@ -1,18 +1,22 @@
1
1
  export declare class BikeRacingService {
2
2
  private obstacleSpawnTimer;
3
- private gameLoopTimer;
3
+ private animationFrameId;
4
4
  private obstacleIdCounter;
5
5
  private roadSpeed;
6
6
  private obstacleSpawnInterval;
7
7
  private collisionCooldown;
8
8
  private onCollision?;
9
9
  private onPass?;
10
+ private lastFrameTime;
11
+ private readonly TARGET_FRAME_TIME;
10
12
  constructor(roadSpeed?: number, obstacleSpawnInterval?: number);
11
13
  setCallbacks(onCollision?: () => void, onPass?: () => void): void;
12
14
  startGame(): void;
15
+ private gameLoop;
13
16
  stopGame(): void;
14
17
  private updateGameState;
15
- private checkCollision;
18
+ private willCollide;
19
+ private handleCollision;
16
20
  private startObstacleSpawning;
17
21
  private spawnObstacle;
18
22
  private fastRandom;
@@ -1 +1 @@
1
- {"version":3,"file":"BikeRacingService.d.ts","sourceRoot":"","sources":["../../../../../src/games/bike-racing/BikeRacingService.ts"],"names":[],"mappings":"AAOA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,qBAAqB,CAA2D;IACxF,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,MAAM,CAAC,CAAa;gBAEhB,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM;IAM9D,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAMjE,SAAS,IAAI,IAAI;IAejB,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,UAAU;IAKlB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQpC,OAAO,IAAI,IAAI;CAahB"}
1
+ {"version":3,"file":"BikeRacingService.d.ts","sourceRoot":"","sources":["../../../../../src/games/bike-racing/BikeRacingService.ts"],"names":[],"mappings":"AAOA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,qBAAqB,CAA2D;IACxF,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAE/B,SAAS,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM;IAM9D,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAMjE,SAAS,IAAI,IAAI;IAcjB,OAAO,CAAC,QAAQ,CAiBd;IAGF,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,eAAe;IA+DvB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,UAAU;IAKlB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQpC,OAAO,IAAI,IAAI;CAahB"}