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
- {"version":3,"names":["React","useEffect","useRef","StyleSheet","Gesture","GestureDetector","Animated","useSharedValue","useAnimatedStyle","withSpring","withTiming","runOnJS","Canvas","RoundedRect","Group","Shadow","CandyCrushService","jsx","_jsx","jsxs","_jsxs","gameService","CandyItemComponent","candy","size","isSelected","isMatched","isFalling","onSwipe","translateX","translateY","scale","opacity","zIndex","prevMatchedRef","prevFallingRef","prevRowRef","row","current","value","duration","rowChanged","damping","stiffness","panGesture","Pan","onStart","onUpdate","event","translationX","translationY","onEnd","threshold","absX","Math","abs","absY","candyColor","getCandyColor","type","borderRadius","animatedStyle","transform","gesture","children","View","style","styles","container","width","height","x","y","r","color","strokeWidth","dx","dy","blur","CandyItem","memo","prevProps","nextProps","id","col","displayName","create","justifyContent","alignItems"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/CandyItem.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","StyleSheet","Gesture","GestureDetector","Animated","useSharedValue","useAnimatedStyle","withSpring","withTiming","runOnJS","Canvas","RoundedRect","Group","Shadow","LinearGradient","vec","useMemo","CandyCrushService","jsx","_jsx","jsxs","_jsxs","adjustColorBrightness","hex","percent","num","parseInt","replace","r","Math","min","max","g","b","toString","padStart","gameService","colorCache","Map","getCachedColors","candyColor","has","set","lighter","darker","get","CandyItemComponent","candy","size","isSelected","isMatched","isFalling","onSwipe","translateX","translateY","scale","opacity","zIndex","prevMatchedRef","prevFallingRef","prevRowRef","row","current","value","rowChanged","damping","stiffness","panGesture","Pan","onStart","onUpdate","event","translationX","translationY","onEnd","threshold","absX","abs","absY","duration","getCandyColor","type","borderRadius","lighterColor","darkerColor","animatedStyle","transform","gesture","children","View","style","styles","container","width","height","x","y","start","end","colors","color","strokeWidth","dx","dy","blur","CandyItem","memo","prevProps","nextProps","id","col","displayName","create","justifyContent","alignItems"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/CandyItem.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{Canvas,Rect,LinearGradient,vec,Circle,Path,Skia}from '@shopify/react-native-skia';import{Dimensions}from 'react-native';import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');const createStarPaths =()=>{return [...Array(15)].map((_,i)=>{const x = width *(i * 7 + 3)% width;const y = height *(i * 11 + 5)% height;const size = 3 + i % 3;const starPath = Skia.Path.Make();starPath.moveTo(x,y - size);starPath.lineTo(x + size * 0.3,y + size * 0.3);starPath.lineTo(x + size,y + size * 0.3);starPath.lineTo(x + size * 0.5,y + size * 0.8);starPath.lineTo(x + size * 0.7,y + size * 1.5);starPath.lineTo(x,y + size);starPath.lineTo(x - size * 0.7,y + size * 1.5);starPath.lineTo(x - size * 0.5,y + size * 0.8);starPath.lineTo(x - size,y + size * 0.3);starPath.lineTo(x - size * 0.3,y + size * 0.3);starPath.close();return{path:starPath,opacity:0.1 + i % 3 * 0.05};});};const starPaths = createStarPaths();export const GameBackground = React.memo(({children})=>{return _jsxs(_Fragment,{children:[_jsxs(Canvas,{style:{position:'absolute',width,height},children:[_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(0,height),colors:['#667eea','#764ba2','#f093fb']})}),_jsx(Circle,{cx:width * 0.1,cy:height * 0.15,r:60,color:"rgba(255,255,255,0.05)"}),_jsx(Circle,{cx:width * 0.85,cy:height * 0.25,r:80,color:"rgba(255,255,255,0.05)"}),_jsx(Circle,{cx:width * 0.2,cy:height * 0.7,r:50,color:"rgba(255,255,255,0.05)"}),_jsx(Circle,{cx:width * 0.9,cy:height * 0.8,r:70,color:"rgba(255,255,255,0.05)"}),starPaths.map((star,i)=> _jsx(Path,{path:star.path,color:`rgba(255,255,255,${star.opacity})`},i))]}),children]});});GameBackground.displayName = 'GameBackground';
1
+ "use strict";import r from"react";import{Canvas as o,Rect as t,LinearGradient as a,vec as c,Circle as e,Path as i,Skia as s}from"@shopify/react-native-skia";import{Dimensions as n}from"react-native";import{jsx as h,jsxs as m,Fragment as d}from"react/jsx-runtime";const{width:g,height:l}=n.get("window"),p=()=>[...Array(15)].map((r,o)=>{const t=g*(7*o+3)%g,a=l*(11*o+5)%l,c=3+o%3,e=s.Path.Make();return e.moveTo(t,a-c),e.lineTo(t+.3*c,a+.3*c),e.lineTo(t+c,a+.3*c),e.lineTo(t+.5*c,a+.8*c),e.lineTo(t+.7*c,a+1.5*c),e.lineTo(t,a+c),e.lineTo(t-.7*c,a+1.5*c),e.lineTo(t-.5*c,a+.8*c),e.lineTo(t-c,a+.3*c),e.lineTo(t-.3*c,a+.3*c),e.close(),{path:e,opacity:.1+o%3*.05}}),x=p();export const GameBackground=r.memo(({children:r})=>m(d,{children:[m(o,{style:{position:"absolute",width:g,height:l},children:[h(t,{x:0,y:0,width:g,height:l,children:h(a,{start:c(0,0),end:c(0,l),colors:["#667eea","#764ba2","#f093fb"]})}),h(e,{cx:.1*g,cy:.15*l,r:60,color:"rgba(255, 255, 255, 0.05)"}),h(e,{cx:.85*g,cy:.25*l,r:80,color:"rgba(255, 255, 255, 0.05)"}),h(e,{cx:.2*g,cy:.7*l,r:50,color:"rgba(255, 255, 255, 0.05)"}),h(e,{cx:.9*g,cy:.8*l,r:70,color:"rgba(255, 255, 255, 0.05)"}),x.map((r,o)=>h(i,{path:r.path,color:`rgba(255, 255, 255, ${r.opacity})`},o))]}),r]}));GameBackground.displayName="GameBackground";
@@ -1 +1 @@
1
- "use strict";import React,{useMemo,useRef,useEffect}from 'react';import{View,StyleSheet,Dimensions}from 'react-native';import{Canvas,RoundedRect,LinearGradient,vec,Shadow,Circle,Group}from '@shopify/react-native-skia';import{useGrid,useSelectedCandy,useCandyCrushStore,useMatchedCandyIds,useFallingCandyIds}from "../CandyCrushStore.js";import{CandyItem}from "./CandyItem.js";import{CANDY_CRUSH_GAME_CONFIG,CANDY_CRUSH_COLORS}from "../CandyCrushConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width:screenWidth}= Dimensions.get('window');const GridRow = React.memo(({row,rowIndex,candySize,gap,selectedCandyId,matchedCandyIds,fallingCandyIds,onSwipe})=>{return _jsx(View,{style:[styles.row,{gap}],children:row.map((candy,colIndex)=>{if(!candy){return _jsx(View,{style:[styles.cell,{width:candySize,height:candySize}]},`empty-${rowIndex}-${colIndex}`);}const isSelected = selectedCandyId === candy.id;const isMatched = matchedCandyIds.has(candy.id);const isFalling = fallingCandyIds.has(candy.id);const handleSwipe = direction =>{onSwipe(candy,direction);};return _jsx(View,{style:[styles.cell,{width:candySize,height:candySize}],children:_jsx(CandyItem,{candy:candy,size:candySize,isSelected:isSelected,isMatched:isMatched,isFalling:isFalling,onSwipe:handleSwipe})},candy.id);})},`row-${rowIndex}`);},(prevProps,nextProps)=>{if(prevProps.row === nextProps.row){return true;}if(prevProps.row.length !== nextProps.row.length)return false;if(prevProps.candySize !== nextProps.candySize)return false;if(prevProps.gap !== nextProps.gap)return false;const hadSelectedCandy = prevProps.row.some(c => c?.id === prevProps.selectedCandyId);const hasSelectedCandy = nextProps.row.some(c => c?.id === nextProps.selectedCandyId);if(hadSelectedCandy !== hasSelectedCandy || hadSelectedCandy && prevProps.selectedCandyId !== nextProps.selectedCandyId){return false;}for(let i = 0;i < prevProps.row.length;i++){const candy = prevProps.row[i];if(candy){const wasMatched = prevProps.matchedCandyIds.has(candy.id);const isMatched = nextProps.matchedCandyIds.has(candy.id);const wasFalling = prevProps.fallingCandyIds.has(candy.id);const isFalling = nextProps.fallingCandyIds.has(candy.id);if(wasMatched !== isMatched || wasFalling !== isFalling){return false;}}}for(let i = 0;i < prevProps.row.length;i++){const prevCandy = prevProps.row[i];const nextCandy = nextProps.row[i];if(prevCandy?.id !== nextCandy?.id)return false;if(prevCandy?.type !== nextCandy?.type)return false;if(prevCandy?.row !== nextCandy?.row)return false;if(prevCandy?.col !== nextCandy?.col)return false;}return true;});export const GameGrid = React.memo(()=>{const grid = useGrid();const selectedCandy = useSelectedCandy();const matchedCandyIds = useMatchedCandyIds();const fallingCandyIds = useFallingCandyIds();const selectCandy = useCandyCrushStore(state => state.selectCandy);const selectedCandyId = selectedCandy?.id || null;const gridRef = useRef(grid);useEffect(()=>{gridRef.current = grid;},[grid]);const handleSwipe = React.useCallback((candy,direction)=>{const currentGrid = gridRef.current;let targetRow = candy.row;let targetCol = candy.col;switch(direction){case 'up':targetRow = candy.row - 1;break;case 'down':targetRow = candy.row + 1;break;case 'left':targetCol = candy.col - 1;break;case 'right':targetCol = candy.col + 1;break;}if(targetRow >= 0 && targetRow < currentGrid.length && targetCol >= 0 && currentGrid[0] && targetCol < currentGrid[0].length){const targetRowData = currentGrid[targetRow];if(targetRowData){const targetCandy = targetRowData[targetCol];if(targetCandy){selectCandy(candy);setTimeout(()=> selectCandy(targetCandy),50);}}}},[selectCandy]);const gridCalculations = useMemo(()=>{const horizontalPadding = 40;const availableWidth = screenWidth - horizontalPadding;const gridSize = CANDY_CRUSH_GAME_CONFIG.GRID_SIZE;const gap = 2;const totalGaps =(gridSize - 1)* gap;const candySize =(availableWidth - totalGaps)/ gridSize;const padding = 10;const contentWidth = Math.floor(candySize)* gridSize + totalGaps;const contentHeight = Math.floor(candySize)* gridSize + totalGaps;const gridWidth = contentWidth + padding * 2;const gridHeight = contentHeight + padding * 2;return{candySize:Math.floor(candySize),gap,gridSize,gridWidth,gridHeight};},[]);const{candySize,gap,gridWidth,gridHeight}= gridCalculations;const jellyBubbles = useMemo(()=>{const bubbles = [];const bubbleCount = 25;for(let i = 0;i < bubbleCount;i++){bubbles.push({x:Math.random()* gridWidth,y:Math.random()* gridHeight,radius:Math.random()* 15 + 5,opacity:Math.random()* 0.15 + 0.05});}return bubbles;},[gridWidth,gridHeight]);return _jsxs(View,{style:styles.container,children:[_jsx(View,{style:[styles.jellyContainer,{width:gridWidth,height:gridHeight}],children:_jsxs(Canvas,{style:{width:gridWidth,height:gridHeight},children:[_jsxs(RoundedRect,{x:0,y:0,width:gridWidth,height:gridHeight,r:15,children:[_jsx(LinearGradient,{start:vec(0,0),end:vec(gridWidth,gridHeight),colors:['rgba(255,149,0,0.35)','rgba(255,120,0,0.25)','rgba(255,149,0,0.3)']}),_jsx(Shadow,{dx:0,dy:6,blur:12,color:"rgba(255,100,0,0.4)",inner:true})]}),_jsx(Group,{children:jellyBubbles.map((bubble,index)=> _jsx(Circle,{cx:bubble.x,cy:bubble.y,r:bubble.radius,color:`rgba(255,255,255,${bubble.opacity})`},index))}),_jsx(RoundedRect,{x:5,y:5,width:gridWidth - 10,height:gridHeight - 10,r:12,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(0,gridHeight),colors:['rgba(255,200,100,0.3)','rgba(255,149,0,0)','rgba(255,180,80,0.2)']})}),_jsx(RoundedRect,{x:15,y:15,width:gridWidth - 30,height:gridHeight * 0.25,r:8,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(0,gridHeight * 0.25),colors:['rgba(255,255,255,0.5)','rgba(255,255,255,0)']})}),_jsx(RoundedRect,{x:15,y:gridHeight * 0.75,width:gridWidth - 30,height:gridHeight * 0.2,r:8,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(0,gridHeight * 0.2),colors:['rgba(0,0,0,0)','rgba(255,100,0,0.2)']})})]})}),_jsx(View,{style:[styles.grid,{gap}],children:grid.map((row,rowIndex)=> _jsx(GridRow,{row:row,rowIndex:rowIndex,candySize:candySize,gap:gap,selectedCandyId:selectedCandyId,matchedCandyIds:matchedCandyIds,fallingCandyIds:fallingCandyIds,onSwipe:handleSwipe},rowIndex))})]});});GameGrid.displayName = 'GameGrid';const styles = StyleSheet.create({container:{flex:1,justifyContent:'center',alignItems:'center',position:'relative'},jellyContainer:{position:'absolute',borderRadius:15,borderWidth:3,borderColor:CANDY_CRUSH_COLORS.GRID_BORDER,overflow:'hidden'},grid:{padding:13,zIndex:1},row:{flexDirection:'row'},cell:{justifyContent:'center',alignItems:'center'}});
1
+ "use strict";import e,{useMemo as t,useRef as r,useEffect as i}from"react";import{View as n,StyleSheet as o,Dimensions as s}from"react-native";import{Canvas as a,RoundedRect as d,LinearGradient as l,vec as c}from"@shopify/react-native-skia";import{useGrid as h,useSelectedCandy as f,useCandyCrushStore as g,useMatchedCandyIds as m,useFallingCandyIds as y,useClearingCells as p}from"../CandyCrushStore.js";import{CandyItem as u}from"./CandyItem.js";import{BlastAnimation as w}from"./BlastAnimation.js";import{CANDY_CRUSH_GAME_CONFIG as C,CANDY_CRUSH_COLORS as b}from"../CandyCrushConstants.js";import{jsx as I,jsxs as x}from"react/jsx-runtime";const{width:S}=s.get("window"),j=e.memo(({row:e,rowIndex:t,candySize:r,gap:i,selectedCandyId:o,matchedCandyIds:s,fallingCandyIds:a,onSwipe:d})=>I(n,{style:[z.row,{gap:i}],children:e.map((e,i)=>{if(!e)return I(n,{style:[z.cell,{width:r,height:r}]},`empty-${t}-${i}`);const l=o===e.id,c=s.has(e.id),h=a.has(e.id);return I(n,{style:[z.cell,{width:r,height:r}],children:I(u,{candy:e,size:r,isSelected:l,isMatched:c,isFalling:h,onSwipe:t=>d(e,t)})},e.id)})},"row-"+t),(e,t)=>{if(e.row===t.row)return!0;if(e.row.length!==t.row.length)return!1;if(e.candySize!==t.candySize)return!1;if(e.gap!==t.gap)return!1;const r=e.row.some(t=>t?.id===e.selectedCandyId);if(r!==t.row.some(e=>e?.id===t.selectedCandyId)||r&&e.selectedCandyId!==t.selectedCandyId)return!1;for(let r=0;r<e.row.length;r++){const i=e.row[r];if(i){const r=e.matchedCandyIds.has(i.id),n=t.matchedCandyIds.has(i.id),o=e.fallingCandyIds.has(i.id),s=t.fallingCandyIds.has(i.id);if(r!==n||o!==s)return!1}}for(let r=0;r<e.row.length;r++){const i=e.row[r],n=t.row[r];if(i?.id!==n?.id)return!1;if(i?.type!==n?.type)return!1;if(i?.row!==n?.row)return!1;if(i?.col!==n?.col)return!1}return!0});j.displayName="GridRow";export const GameGrid=e.memo(()=>{const o=h(),s=f(),u=m(),b=y(),G=p(),v=g(e=>e.selectCandy),k=g(e=>e.clearClearingCells),M=s?.id||null,W=r(o);i(()=>{W.current=o},[o]);const H=e.useCallback((e,t)=>{const r=W.current;let i=e.row,n=e.col;switch(t){case"up":i=e.row-1;break;case"down":i=e.row+1;break;case"left":n=e.col-1;break;case"right":n=e.col+1}if(i>=0&&i<r.length&&n>=0&&r[0]&&n<r[0].length){const t=r[i];if(t){const r=t[n];r&&(v(e),setTimeout(()=>v(r),50))}}},[v]),R=t(()=>{const e=S-40,t=C.GRID_SIZE,r=2*(t-1),i=(e-r)/t,n=Math.floor(i)*t+r+20,o=Math.floor(i)*t+r+20;return{candySize:Math.floor(i),gap:2,gridSize:t,gridWidth:n,gridHeight:o}},[]),{candySize:$,gap:A,gridWidth:B,gridHeight:D}=R;return x(n,{style:z.container,children:[I(n,{style:[z.jellyContainer,{width:B,height:D}],children:x(a,{style:{width:B,height:D},children:[I(d,{x:0,y:0,width:B,height:D,r:15,children:I(l,{start:c(0,0),end:c(0,D),colors:["rgba(255, 180, 80, 0.25)","rgba(255, 149, 0, 0.15)","rgba(255, 120, 0, 0.2)"]})}),I(d,{x:5,y:5,width:B-10,height:.3*D,r:12,children:I(l,{start:c(0,0),end:c(0,.3*D),colors:["rgba(255, 255, 255, 0.2)","rgba(255, 255, 255, 0)"]})})]})}),x(n,{style:[z.grid,{gap:A}],children:[o.map((e,t)=>I(j,{row:e,rowIndex:t,candySize:$,gap:A,selectedCandyId:M,matchedCandyIds:u,fallingCandyIds:b,onSwipe:H},t)),I(n,{style:z.blastOverlay,pointerEvents:"none",children:I(w,{cells:G,cellSize:$,cellGap:A,totalCellSize:$+A,onComplete:k})})]})]})});GameGrid.displayName="GameGrid";const z=o.create({container:{flex:1,justifyContent:"center",alignItems:"center",position:"relative"},jellyContainer:{position:"absolute",borderRadius:15,borderWidth:3,borderColor:b.GRID_BORDER,overflow:"hidden"},grid:{padding:13,zIndex:1},row:{flexDirection:"row"},cell:{justifyContent:"center",alignItems:"center"},blastOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:100}});
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","useRef","useEffect","View","StyleSheet","Dimensions","Canvas","RoundedRect","LinearGradient","vec","Shadow","Circle","Group","useGrid","useSelectedCandy","useCandyCrushStore","useMatchedCandyIds","useFallingCandyIds","CandyItem","CANDY_CRUSH_GAME_CONFIG","CANDY_CRUSH_COLORS","jsx","_jsx","jsxs","_jsxs","width","screenWidth","get","GridRow","memo","row","rowIndex","candySize","gap","selectedCandyId","matchedCandyIds","fallingCandyIds","onSwipe","style","styles","children","map","candy","colIndex","cell","height","isSelected","id","isMatched","has","isFalling","handleSwipe","direction","size","prevProps","nextProps","length","hadSelectedCandy","some","c","hasSelectedCandy","i","wasMatched","wasFalling","prevCandy","nextCandy","type","col","GameGrid","grid","selectedCandy","selectCandy","state","gridRef","current","useCallback","currentGrid","targetRow","targetCol","targetRowData","targetCandy","setTimeout","gridCalculations","horizontalPadding","availableWidth","gridSize","GRID_SIZE","totalGaps","padding","contentWidth","Math","floor","contentHeight","gridWidth","gridHeight","jellyBubbles","bubbles","bubbleCount","push","x","random","y","radius","opacity","container","jellyContainer","r","start","end","colors","dx","dy","blur","color","inner","bubble","index","cx","cy","displayName","create","flex","justifyContent","alignItems","position","borderRadius","borderWidth","borderColor","GRID_BORDER","overflow","zIndex","flexDirection"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/GameGrid.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","useRef","useEffect","View","StyleSheet","Dimensions","Canvas","RoundedRect","LinearGradient","vec","useGrid","useSelectedCandy","useCandyCrushStore","useMatchedCandyIds","useFallingCandyIds","useClearingCells","CandyItem","BlastAnimation","CANDY_CRUSH_GAME_CONFIG","CANDY_CRUSH_COLORS","jsx","_jsx","jsxs","_jsxs","width","screenWidth","get","GridRow","memo","row","rowIndex","candySize","gap","selectedCandyId","matchedCandyIds","fallingCandyIds","onSwipe","style","styles","children","map","candy","colIndex","cell","height","isSelected","id","isMatched","has","isFalling","size","direction","prevProps","nextProps","length","hadSelectedCandy","some","c","hasSelectedCandy","i","wasMatched","wasFalling","prevCandy","nextCandy","type","col","displayName","GameGrid","grid","selectedCandy","clearingCells","selectCandy","state","clearClearingCells","gridRef","current","handleSwipe","useCallback","currentGrid","targetRow","targetCol","targetRowData","targetCandy","setTimeout","gridCalculations","horizontalPadding","availableWidth","gridSize","GRID_SIZE","totalGaps","padding","contentWidth","Math","floor","contentHeight","gridWidth","gridHeight","container","jellyContainer","x","y","r","start","end","colors","blastOverlay","pointerEvents","cells","cellSize","cellGap","totalCellSize","onComplete","create","flex","justifyContent","alignItems","position","borderRadius","borderWidth","borderColor","GRID_BORDER","overflow","zIndex","flexDirection","top","left","right","bottom"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/GameGrid.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{View,Text,StyleSheet}from 'react-native';import{useScore,useTimeRemaining}from "../CandyCrushStore.js";import{CANDY_CRUSH_COLORS}from "../CandyCrushConstants.js";import{ScoreBoardContainer}from "../../../helpers/index.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const ScoreBoard = React.memo(({offset = 0})=>{const score = useScore();const timeRemaining = useTimeRemaining();const timeDisplay = React.useMemo(()=>{const minutes = Math.floor(timeRemaining / 60);const seconds = timeRemaining % 60;return `${minutes}:${seconds.toString().padStart(2,'0')}`;},[timeRemaining]);const timeColor = React.useMemo(()=>{if(timeRemaining <= 30)return CANDY_CRUSH_COLORS.TIME_CRITICAL;if(timeRemaining <= 60)return CANDY_CRUSH_COLORS.TIME_WARNING;return CANDY_CRUSH_COLORS.TIME_GOOD;},[timeRemaining]);return _jsx(ScoreBoardContainer,{offset:offset,backgroundColor:CANDY_CRUSH_COLORS.SCORE_BACKGROUND,borderColor:CANDY_CRUSH_COLORS.GRID_BORDER,children:_jsxs(View,{style:styles.scoreRow,children:[_jsxs(View,{style:styles.scoreItem,children:[_jsx(Text,{style:styles.label,children:"Score"}),_jsx(Text,{style:styles.value,children:score})]}),_jsxs(View,{style:styles.scoreItem,children:[_jsx(Text,{style:styles.label,children:"Time"}),_jsx(Text,{style:[styles.value,{color:timeColor}],children:timeDisplay})]})]})});});ScoreBoard.displayName = 'ScoreBoard';const styles = StyleSheet.create({scoreRow:{flex:1,flexDirection:'row',justifyContent:'space-around'},scoreItem:{alignItems:'center'},label:{fontSize:16,color:'rgba(255,255,255,0.7)',marginBottom:4},value:{fontSize:25,color:CANDY_CRUSH_COLORS.SCORE_TEXT,fontWeight:'bold'}});
1
+ "use strict";import r from"react";import{View as o,Text as e,StyleSheet as t}from"react-native";import{useScore as s,useTimeRemaining as n}from"../CandyCrushStore.js";import{CANDY_CRUSH_COLORS as c}from"../CandyCrushConstants.js";import{ScoreBoardContainer as l}from"../../../helpers/index.js";import{jsx as i,jsxs as a}from"react/jsx-runtime";export const ScoreBoard=r.memo(({offset:t=0})=>{const m=s(),f=n(),h=r.useMemo(()=>`${Math.floor(f/60)}:${(""+f%60).padStart(2,"0")}`,[f]),y=r.useMemo(()=>f>30?f>60?c.TIME_GOOD:c.TIME_WARNING:c.TIME_CRITICAL,[f]);return i(l,{offset:t,backgroundColor:c.SCORE_BACKGROUND,borderColor:c.GRID_BORDER,children:a(o,{style:d.scoreRow,children:[a(o,{style:d.scoreItem,children:[i(e,{style:d.label,children:"Score"}),i(e,{style:d.value,children:m})]}),a(o,{style:d.scoreItem,children:[i(e,{style:d.label,children:"Time"}),i(e,{style:[d.value,{color:y}],children:h})]})]})})});ScoreBoard.displayName="ScoreBoard";const d=t.create({scoreRow:{flex:1,flexDirection:"row",justifyContent:"space-around"},scoreItem:{alignItems:"center"},label:{fontSize:16,color:"rgba(255, 255, 255, 0.7)",marginBottom:4},value:{fontSize:25,color:c.SCORE_TEXT,fontWeight:"bold"}});
@@ -1 +1 @@
1
- "use strict";export{GameBackground}from "./GameBackground.js";export{GameGrid}from "./GameGrid.js";export{ScoreBoard}from "./ScoreBoard.js";export{CandyItem}from "./CandyItem.js";
1
+ "use strict";export{GameBackground}from"./GameBackground.js";export{GameGrid}from"./GameGrid.js";export{ScoreBoard}from"./ScoreBoard.js";export{CandyItem}from"./CandyItem.js";export{BlastAnimation}from"./BlastAnimation.js";
@@ -1 +1 @@
1
- {"version":3,"names":["GameBackground","GameGrid","ScoreBoard","CandyItem"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/index.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,SAAS,QAAQ,gBAAa","ignoreList":[]}
1
+ {"version":3,"names":["GameBackground","GameGrid","ScoreBoard","CandyItem","BlastAnimation"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/index.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,cAAc,QAAQ,qBAAkB","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";export{CandyCrush}from "./CandyCrush.js";export{useCandyCrushStore}from "./CandyCrushStore.js";export * from "./CandyCrushConstants.js";
1
+ "use strict";export{CandyCrush}from"./CandyCrush.js";export{useCandyCrushStore}from"./CandyCrushStore.js";export*from"./CandyCrushConstants.js";
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{View,StyleSheet,Dimensions}from 'react-native';import{GestureDetector,Gesture,GestureHandlerRootView}from 'react-native-gesture-handler';import{useCarRacingStore,useScore,useIsPlaying,useGameOver,useObstacles,usePlayerCar,useRoadOffset,useParticleEffects,useLives}from "./CarRacingStore.js";import{CarRacingService}from "./CarRacingService.js";import{GameBackground,CarComponent,ScoreBoard}from "./components/index.js";import{GameControlButton,GameOverModal,GameSettingsModal,ParticleBlast}from "../../helpers/index.js";import{GAME_IDS,DEFAULT_GAME_SETTINGS}from "../../services/UtilsService.js";import{getDifficultySettings,CAR_RACING_COLORS,CAR_RACING_GAME_CONFIG}from "./CarRacingConstants.js";import{playSound,GAME_SOUNDS}from "../../services/SoundsService.js";import{playHaptic,HapticType}from "../../services/HapticsService.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');export const CarRacing =({settings:externalSettings = DEFAULT_GAME_SETTINGS,onSettingsChange,onEndGame})=>{const difficulty = externalSettings?.difficulty || 'medium';const soundEnabled = externalSettings?.enableSounds ?? true;const hapticEnabled = externalSettings?.enableHaptics ?? true;const offset = externalSettings?.offset ?? 0;const score = useScore();const isPlaying = useIsPlaying();const gameOver = useGameOver();const lives = useLives();const obstacles = useObstacles();const playerCar = usePlayerCar();const roadOffset = useRoadOffset();const particleEffects = useParticleEffects();const gameReportedRef = React.useRef(false);const reportGameEnd = React.useCallback(status =>{if(onEndGame && !gameReportedRef.current){onEndGame({status,score:score.toString()});gameReportedRef.current = true;}},[onEndGame,score]);const startGame = React.useCallback((duration,offset)=> useCarRacingStore.getState().startGame(duration,offset),[]);const stopGame = React.useCallback(()=> useCarRacingStore.getState().stopGame(),[]);const resetGame = React.useCallback(()=> useCarRacingStore.getState().resetGame(),[]);const handleParticleComplete = React.useCallback(effectId =>{useCarRacingStore.getState().removeParticleEffect(effectId);},[]);const difficultySettings = React.useMemo(()=> getDifficultySettings(difficulty),[difficulty]);const gameService = React.useMemo(()=> new CarRacingService(difficultySettings.roadSpeed,difficultySettings.obstacleSpawnInterval),[difficultySettings.roadSpeed,difficultySettings.obstacleSpawnInterval]);React.useEffect(()=>{useCarRacingStore.getState().setOffset(offset);},[offset]);React.useEffect(()=>{const handleCollision =()=>{playSound(GAME_SOUNDS.CAR_RACING.CRASH,soundEnabled);playHaptic(HapticType.ERROR,hapticEnabled);};const handlePass =()=>{playSound(GAME_SOUNDS.CAR_RACING.PASS,soundEnabled);playHaptic(HapticType.LIGHT,hapticEnabled);};gameService.setCallbacks(handleCollision,handlePass);},[gameService,soundEnabled,hapticEnabled]);React.useEffect(()=>{if(!isPlaying)return;const timer = setInterval(()=>{useCarRacingStore.getState().decrementTime();},1000);return()=> clearInterval(timer);},[isPlaying]);React.useEffect(()=>{if(gameOver && !gameReportedRef.current){const status = lives > 0 ? 'win':'lose';reportGameEnd(status);}if(!gameOver){gameReportedRef.current = false;}},[gameOver,lives,reportGameEnd]);React.useEffect(()=>{return()=>{gameService.cleanup();stopGame();};},[gameService]);const handleStartGame = React.useCallback(()=>{gameReportedRef.current = false;startGame(difficultySettings.gameDuration,offset);gameService.startGame();playSound(GAME_SOUNDS.CAR_RACING.START,soundEnabled);playHaptic(HapticType.SUCCESS,hapticEnabled);},[startGame,gameService,difficultySettings.gameDuration,offset,soundEnabled,hapticEnabled]);const handleStopGame = React.useCallback(()=>{reportGameEnd('cancel');stopGame();gameService.stopGame();},[stopGame,gameService,reportGameEnd]);const handleResetGame = React.useCallback(()=>{resetGame();gameService.cleanup();},[resetGame,gameService]);const handlePlayAgain = React.useCallback(()=>{handleResetGame();},[handleResetGame]);const previousLaneRef = React.useRef(1);const panGesture = Gesture.Pan().onUpdate(event =>{if(!isPlaying)return;const roadWidth = CAR_RACING_GAME_CONFIG.LANE_WIDTH * CAR_RACING_GAME_CONFIG.ROAD_LANES;const roadStartX =(width - roadWidth)/ 2;const relativeX = event.absoluteX - roadStartX;const lane = Math.floor(relativeX / CAR_RACING_GAME_CONFIG.LANE_WIDTH);const clampedLane = Math.max(0,Math.min(CAR_RACING_GAME_CONFIG.ROAD_LANES - 1,lane));if(clampedLane !== previousLaneRef.current){previousLaneRef.current = clampedLane;playSound(GAME_SOUNDS.CAR_RACING.LANE_SWITCH,soundEnabled);playHaptic(HapticType.SELECTION,hapticEnabled);}gameService.movePlayerToLane(clampedLane);}).runOnJS(true);const gameControlButtonProps = React.useMemo(()=>({isPlaying,gameOver,onStartGame:handleStartGame,onStopGame:handleStopGame,startButtonColor:CAR_RACING_COLORS.UI,stopButtonColor:CAR_RACING_COLORS.UI,startButtonBorderColor:CAR_RACING_COLORS.UI,stopButtonBorderColor:CAR_RACING_COLORS.UI,startButtonText:'START RACING',stopButtonText:'STOP GAME',startButtonSubtext:'Dodge traffic to score!'}),[isPlaying,gameOver,handleStartGame,handleStopGame]);const gameOverModalProps = React.useMemo(()=>({isVisible:gameOver,score,onPlayAgain:handlePlayAgain,buttonText:"Race Again!",primaryColor:"rgba(255,68,68,0.5)",borderColor:"rgba(255,68,68,0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:CAR_RACING_COLORS.UI}),[gameOver,score,handlePlayAgain]);return _jsx(GestureHandlerRootView,{style:styles.container,children:_jsxs(View,{style:styles.container,children:[_jsx(View,{style:StyleSheet.absoluteFillObject,children:_jsx(GameBackground,{width:width,height:height,roadOffset:roadOffset})}),_jsx(ScoreBoard,{offset:offset}),_jsx(GestureDetector,{gesture:panGesture,children:_jsxs(View,{style:styles.gameArea,children:[obstacles.map(obstacle => _jsx(CarComponent,{x:obstacle.x,y:obstacle.y,width:obstacle.width,height:obstacle.height,color:obstacle.color,isPlayer:false},obstacle.id)),_jsx(CarComponent,{x:playerCar.x,y:playerCar.y,width:playerCar.width,height:playerCar.height,color:CAR_RACING_COLORS.PLAYER_CAR,isPlayer:true})]})}),particleEffects.map(effect => _jsx(ParticleBlast,{x:effect.x,y:effect.y,particleCount:12,colors:['#ff4444','#ff6b6b','#ff8888','#ffaa00','#ffcc00','#ffffff'],duration:800,onComplete:()=> handleParticleComplete(effect.id)},effect.id)),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{gameId:GAME_IDS.CAR_RACING,settings:externalSettings || DEFAULT_GAME_SETTINGS,onSettingsChange:onSettingsChange})]})});};const styles = StyleSheet.create({container:{flex:1,backgroundColor:'#000'},gameArea:{flex:1}});
1
+ "use strict";import r,{useMemo as t}from"react";import{View as e,StyleSheet as o,Dimensions as n}from"react-native";import{GestureDetector as i,Gesture as a,GestureHandlerRootView as s}from"react-native-gesture-handler";import{useCarRacingStore as f,useScore as c,useIsPlaying as l,useGameOver as m,useObstacles as d,usePlayerCar as h,useRoadOffset as g,useParticleEffects as u,useLives as p}from"./CarRacingStore.js";import{CarRacingService as C}from"./CarRacingService.js";import{GameBackground as b,CarComponent as S,ScoreBoard as x}from"./components/index.js";import{GameControlButton as v,GameOverModal as y,GameSettingsModal as j,ParticleBlast as w}from"../../helpers/index.js";import{GAME_IDS as R,DEFAULT_GAME_SETTINGS as P}from"../../services/UtilsService.js";import{getDifficultySettings as A,CAR_RACING_COLORS as B,CAR_RACING_GAME_CONFIG as G}from"./CarRacingConstants.js";import{playSound as I,GAME_SOUNDS as L}from"../../services/SoundsService.js";import{playHaptic as M,HapticType as O}from"../../services/HapticsService.js";import{jsx as T,jsxs as W}from"react/jsx-runtime";const{width:k,height:D}=n.get("window");export const CarRacing=({settings:n=P,onSettingsChange:H,onEndGame:U,onShare:V,onShowLeaderboard:X})=>{const q=n?.difficulty||"medium",z=n?.enableSounds??!0,F=n?.enableHaptics??!0,J=n?.offset??0,K=c(),N=l(),Q=m(),Y=p(),Z=d(),$=h(),_=g(),rr=u(),tr=r.useRef(!1),er=r.useCallback(r=>{U&&!tr.current&&(U({status:r,score:K.toString()}),tr.current=!0)},[U,K]),or=r.useCallback((r,t)=>f.getState().startGame(r,t),[]),nr=r.useCallback(()=>f.getState().stopGame(),[]),ir=r.useCallback(()=>f.getState().resetGame(),[]),ar=r.useCallback(r=>{f.getState().removeParticleEffect(r)},[]),sr=r.useMemo(()=>A(q),[q]),fr=r.useMemo(()=>new C(sr.roadSpeed,sr.obstacleSpawnInterval),[sr.roadSpeed,sr.obstacleSpawnInterval]);r.useEffect(()=>{f.getState().setOffset(J)},[J]),r.useEffect(()=>{fr.setCallbacks(()=>{I(L.CAR_RACING.CRASH,z),M(O.ERROR,F)},()=>{I(L.CAR_RACING.PASS,z),M(O.LIGHT,F)})},[fr,z,F]),r.useEffect(()=>{if(!N)return;const r=setInterval(()=>{f.getState().decrementTime()},1e3);return()=>clearInterval(r)},[N]),r.useEffect(()=>{Q&&!tr.current&&er(Y>0?"win":"lose"),Q||(tr.current=!1)},[Q,Y,er]),r.useEffect(()=>()=>{fr.cleanup(),nr()},[fr]);const cr=r.useCallback(()=>{tr.current=!1,or(sr.gameDuration,J),fr.startGame(),I(L.CAR_RACING.START,z),M(O.SUCCESS,F)},[or,fr,sr.gameDuration,J,z,F]),lr=r.useCallback(()=>{er("cancel"),nr(),fr.stopGame()},[nr,fr,er]),mr=r.useCallback(()=>{ir(),fr.cleanup()},[ir,fr]),dr=r.useCallback(()=>{mr()},[mr]),hr=r.useRef(1),gr=t(()=>{const r=G.LANE_WIDTH*G.ROAD_LANES;return{roadWidth:r,roadStartX:(k-r)/2,laneWidth:G.LANE_WIDTH,maxLane:G.ROAD_LANES-1}},[]),ur=t(()=>a.Pan().onUpdate(r=>{if(!N)return;const t=r.absoluteX-gr.roadStartX,e=Math.floor(t/gr.laneWidth),o=Math.max(0,Math.min(gr.maxLane,e));o!==hr.current&&(hr.current=o,I(L.CAR_RACING.LANE_SWITCH,z),M(O.SELECTION,F)),fr.movePlayerToLane(o)}).runOnJS(!0),[N,gr,fr,z,F]),pr=r.useMemo(()=>({isPlaying:N,gameOver:Q,onStartGame:cr,onStopGame:lr,onShare:V,onShowLeaderboard:X,startButtonSubtext:"Dodge traffic to score!",buttonColor:B.UI,buttonBorderColor:B.UI}),[N,Q,cr,lr,V,X]),Cr=r.useMemo(()=>({isVisible:Q,score:K,onPlayAgain:dr,buttonText:"Race Again!",primaryColor:"rgba(255, 68, 68, 0.5)",borderColor:"rgba(255, 68, 68, 0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:B.UI}),[Q,K,dr]);return T(s,{style:E.container,children:W(e,{style:E.container,children:[T(e,{style:o.absoluteFillObject,children:T(b,{width:k,height:D,roadOffset:_})}),T(x,{offset:J}),T(i,{gesture:ur,children:W(e,{style:E.gameArea,children:[Z.map(r=>T(S,{x:r.x,y:r.y,width:r.width,height:r.height,color:r.color,isPlayer:!1},r.id)),T(S,{x:$.x,y:$.y,width:$.width,height:$.height,color:B.PLAYER_CAR,isPlayer:!0})]})}),rr.map(r=>T(w,{x:r.x,y:r.y,particleCount:12,colors:["#ff4444","#ff6b6b","#ff8888","#ffaa00","#ffcc00","#ffffff"],duration:800,onComplete:()=>ar(r.id)},r.id)),T(v,{...pr}),T(y,{...Cr}),T(j,{gameId:R.CAR_RACING,settings:n||P,onSettingsChange:H})]})})};const E=o.create({container:{flex:1,backgroundColor:"#000"},gameArea:{flex:1}});
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","Dimensions","GestureDetector","Gesture","GestureHandlerRootView","useCarRacingStore","useScore","useIsPlaying","useGameOver","useObstacles","usePlayerCar","useRoadOffset","useParticleEffects","useLives","CarRacingService","GameBackground","CarComponent","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","ParticleBlast","GAME_IDS","DEFAULT_GAME_SETTINGS","getDifficultySettings","CAR_RACING_COLORS","CAR_RACING_GAME_CONFIG","playSound","GAME_SOUNDS","playHaptic","HapticType","jsx","_jsx","jsxs","_jsxs","width","height","get","CarRacing","settings","externalSettings","onSettingsChange","onEndGame","difficulty","soundEnabled","enableSounds","hapticEnabled","enableHaptics","offset","score","isPlaying","gameOver","lives","obstacles","playerCar","roadOffset","particleEffects","gameReportedRef","useRef","reportGameEnd","useCallback","status","current","toString","startGame","duration","getState","stopGame","resetGame","handleParticleComplete","effectId","removeParticleEffect","difficultySettings","useMemo","gameService","roadSpeed","obstacleSpawnInterval","useEffect","setOffset","handleCollision","CAR_RACING","CRASH","ERROR","handlePass","PASS","LIGHT","setCallbacks","timer","setInterval","decrementTime","clearInterval","cleanup","handleStartGame","gameDuration","START","SUCCESS","handleStopGame","handleResetGame","handlePlayAgain","previousLaneRef","panGesture","Pan","onUpdate","event","roadWidth","LANE_WIDTH","ROAD_LANES","roadStartX","relativeX","absoluteX","lane","Math","floor","clampedLane","max","min","LANE_SWITCH","SELECTION","movePlayerToLane","runOnJS","gameControlButtonProps","onStartGame","onStopGame","startButtonColor","UI","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","startButtonText","stopButtonText","startButtonSubtext","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","buttonTextColor","style","styles","container","children","absoluteFillObject","gesture","gameArea","map","obstacle","x","y","color","isPlayer","id","PLAYER_CAR","effect","particleCount","colors","onComplete","gameId","create","flex","backgroundColor"],"sourceRoot":"../../../../src","sources":["games/car-racing/CarRacing.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","View","StyleSheet","Dimensions","GestureDetector","Gesture","GestureHandlerRootView","useCarRacingStore","useScore","useIsPlaying","useGameOver","useObstacles","usePlayerCar","useRoadOffset","useParticleEffects","useLives","CarRacingService","GameBackground","CarComponent","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","ParticleBlast","GAME_IDS","DEFAULT_GAME_SETTINGS","getDifficultySettings","CAR_RACING_COLORS","CAR_RACING_GAME_CONFIG","playSound","GAME_SOUNDS","playHaptic","HapticType","jsx","_jsx","jsxs","_jsxs","width","height","get","CarRacing","settings","externalSettings","onSettingsChange","onEndGame","onShare","onShowLeaderboard","difficulty","soundEnabled","enableSounds","hapticEnabled","enableHaptics","offset","score","isPlaying","gameOver","lives","obstacles","playerCar","roadOffset","particleEffects","gameReportedRef","useRef","reportGameEnd","useCallback","status","current","toString","startGame","duration","getState","stopGame","resetGame","handleParticleComplete","effectId","removeParticleEffect","difficultySettings","gameService","roadSpeed","obstacleSpawnInterval","useEffect","setOffset","handleCollision","CAR_RACING","CRASH","ERROR","handlePass","PASS","LIGHT","setCallbacks","timer","setInterval","decrementTime","clearInterval","cleanup","handleStartGame","gameDuration","START","SUCCESS","handleStopGame","handleResetGame","handlePlayAgain","previousLaneRef","roadDimensions","roadWidth","LANE_WIDTH","ROAD_LANES","roadStartX","laneWidth","maxLane","panGesture","Pan","onUpdate","event","relativeX","absoluteX","lane","Math","floor","clampedLane","max","min","LANE_SWITCH","SELECTION","movePlayerToLane","runOnJS","gameControlButtonProps","onStartGame","onStopGame","startButtonSubtext","buttonColor","UI","buttonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonTextColor","style","styles","container","children","absoluteFillObject","gesture","gameArea","map","obstacle","x","y","color","isPlayer","id","PLAYER_CAR","effect","particleCount","colors","onComplete","gameId","create","flex","backgroundColor"],"sourceRoot":"../../../../src","sources":["games/car-racing/CarRacing.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAC3D,SAASC,eAAe,EAAEC,OAAO,EAAEC,sBAAsB,QAAQ,8BAA8B;AAC/F,SACEC,iBAAiB,EACjBC,QAAQ,EACRC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,YAAY,EACZC,aAAa,EACbC,kBAAkB,EAClBC,QAAQ,QACH,qBAAkB;AACzB,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,cAAc,EAAEC,YAAY,EAAEC,UAAU,QAAQ,uBAAc;AACvE,SAASC,iBAAiB,EAAEC,aAAa,EAAEC,iBAAiB,EAAEC,aAAa,QAAQ,wBAAe;AAClG,SAASC,QAAQ,EAAEC,qBAAqB,QAAQ,gCAA6B;AAC7E,SAASC,qBAAqB,EAAEC,iBAAiB,EAAEC,sBAAsB,QAAQ,yBAAsB;AAEvG,SAASC,SAAS,EAAEC,WAAW,QAAQ,iCAA8B;AACrE,SAASC,UAAU,EAAEC,UAAU,QAAQ,kCAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEvE,MAAM;EAAEC,KAAK;EAAEC;AAAO,CAAC,GAAGnC,UAAU,CAACoC,GAAG,CAAC,QAAQ,CAAC;AAElD,OAAO,MAAMC,SAA8B,GAAGA,CAAC;EAAEC,QAAQ,EAAEC,gBAAgB,GAAGjB,qBAAqB;EAAEkB,gBAAgB;EAAEC,SAAS;EAAEC,OAAO;EAAEC;AAAkB,CAAC,KAAK;EACjK;EACA,MAAMC,UAAU,GAAGL,gBAAgB,EAAEK,UAAU,IAAI,QAAQ;EAC3D,MAAMC,YAAY,GAAGN,gBAAgB,EAAEO,YAAY,IAAI,IAAI;EAC3D,MAAMC,aAAa,GAAGR,gBAAgB,EAAES,aAAa,IAAI,IAAI;EAC7D,MAAMC,MAAM,GAAGV,gBAAgB,EAAEU,MAAM,IAAI,CAAC;;EAE5C;EACA,MAAMC,KAAK,GAAG7C,QAAQ,CAAC,CAAC;EACxB,MAAM8C,SAAS,GAAG7C,YAAY,CAAC,CAAC;EAChC,MAAM8C,QAAQ,GAAG7C,WAAW,CAAC,CAAC;EAC9B,MAAM8C,KAAK,GAAGzC,QAAQ,CAAC,CAAC;EACxB,MAAM0C,SAAS,GAAG9C,YAAY,CAAC,CAAC;EAChC,MAAM+C,SAAS,GAAG9C,YAAY,CAAC,CAAC;EAChC,MAAM+C,UAAU,GAAG9C,aAAa,CAAC,CAAC;EAClC,MAAM+C,eAAe,GAAG9C,kBAAkB,CAAC,CAAC;;EAE5C;EACA,MAAM+C,eAAe,GAAG9D,KAAK,CAAC+D,MAAM,CAAU,KAAK,CAAC;;EAEpD;EACA,MAAMC,aAAa,GAAGhE,KAAK,CAACiE,WAAW,CAAEC,MAAiC,IAAK;IAC7E,IAAIrB,SAAS,IAAI,CAACiB,eAAe,CAACK,OAAO,EAAE;MACzCtB,SAAS,CAAC;QACRqB,MAAM;QACNZ,KAAK,EAAEA,KAAK,CAACc,QAAQ,CAAC;MACxB,CAAC,CAAC;MACFN,eAAe,CAACK,OAAO,GAAG,IAAI;IAChC;EACF,CAAC,EAAE,CAACtB,SAAS,EAAES,KAAK,CAAC,CAAC;;EAEtB;EACA,MAAMe,SAAS,GAAGrE,KAAK,CAACiE,WAAW,CACjC,CAACK,QAAiB,EAAEjB,MAAe,KAAK7C,iBAAiB,CAAC+D,QAAQ,CAAC,CAAC,CAACF,SAAS,CAACC,QAAQ,EAAEjB,MAAM,CAAC,EAChG,EACF,CAAC;EACD,MAAMmB,QAAQ,GAAGxE,KAAK,CAACiE,WAAW,CAChC,MAAMzD,iBAAiB,CAAC+D,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAC7C,EACF,CAAC;EACD,MAAMC,SAAS,GAAGzE,KAAK,CAACiE,WAAW,CACjC,MAAMzD,iBAAiB,CAAC+D,QAAQ,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC,EAC9C,EACF,CAAC;;EAED;EACA,MAAMC,sBAAsB,GAAG1E,KAAK,CAACiE,WAAW,CAAEU,QAAgB,IAAK;IACrEnE,iBAAiB,CAAC+D,QAAQ,CAAC,CAAC,CAACK,oBAAoB,CAACD,QAAQ,CAAC;EAC7D,CAAC,EAAE,EAAE,CAAC;;EAGN;EACA,MAAME,kBAAkB,GAAG7E,KAAK,CAACC,OAAO,CACtC,MAAM0B,qBAAqB,CAACqB,UAAU,CAAC,EACvC,CAACA,UAAU,CACb,CAAC;;EAED;EACA,MAAM8B,WAAW,GAAG9E,KAAK,CAACC,OAAO,CAC/B,MAAM,IAAIgB,gBAAgB,CAAC4D,kBAAkB,CAACE,SAAS,EAAEF,kBAAkB,CAACG,qBAAqB,CAAC,EAClG,CAACH,kBAAkB,CAACE,SAAS,EAAEF,kBAAkB,CAACG,qBAAqB,CACzE,CAAC;;EAED;EACAhF,KAAK,CAACiF,SAAS,CAAC,MAAM;IACpBzE,iBAAiB,CAAC+D,QAAQ,CAAC,CAAC,CAACW,SAAS,CAAC7B,MAAM,CAAC;EAChD,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;;EAEZ;EACArD,KAAK,CAACiF,SAAS,CAAC,MAAM;IACpB,MAAME,eAAe,GAAGA,CAAA,KAAM;MAC5BrD,SAAS,CAACC,WAAW,CAACqD,UAAU,CAACC,KAAK,EAAEpC,YAAY,CAAC;MACrDjB,UAAU,CAACC,UAAU,CAACqD,KAAK,EAAEnC,aAAa,CAAC;IAC7C,CAAC;IAED,MAAMoC,UAAU,GAAGA,CAAA,KAAM;MACvBzD,SAAS,CAACC,WAAW,CAACqD,UAAU,CAACI,IAAI,EAAEvC,YAAY,CAAC;MACpDjB,UAAU,CAACC,UAAU,CAACwD,KAAK,EAAEtC,aAAa,CAAC;IAC7C,CAAC;IAED2B,WAAW,CAACY,YAAY,CAACP,eAAe,EAAEI,UAAU,CAAC;EACvD,CAAC,EAAE,CAACT,WAAW,EAAE7B,YAAY,EAAEE,aAAa,CAAC,CAAC;;EAE9C;EACAnD,KAAK,CAACiF,SAAS,CAAC,MAAM;IACpB,IAAI,CAAC1B,SAAS,EAAE;IAEhB,MAAMoC,KAAK,GAAGC,WAAW,CAAC,MAAM;MAC9BpF,iBAAiB,CAAC+D,QAAQ,CAAC,CAAC,CAACsB,aAAa,CAAC,CAAC;IAC9C,CAAC,EAAE,IAAI,CAAC;IAER,OAAO,MAAMC,aAAa,CAACH,KAAK,CAAC;EACnC,CAAC,EAAE,CAACpC,SAAS,CAAC,CAAC;;EAGf;EACAvD,KAAK,CAACiF,SAAS,CAAC,MAAM;IACpB,IAAIzB,QAAQ,IAAI,CAACM,eAAe,CAACK,OAAO,EAAE;MACxC;MACA;MACA,MAAMD,MAAM,GAAGT,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM;MACzCO,aAAa,CAACE,MAAM,CAAC;IACvB;;IAEA;IACA,IAAI,CAACV,QAAQ,EAAE;MACbM,eAAe,CAACK,OAAO,GAAG,KAAK;IACjC;EACF,CAAC,EAAE,CAACX,QAAQ,EAAEC,KAAK,EAAEO,aAAa,CAAC,CAAC;;EAEpC;EACAhE,KAAK,CAACiF,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACXH,WAAW,CAACiB,OAAO,CAAC,CAAC;MACrBvB,QAAQ,CAAC,CAAC;IACZ,CAAC;EACH,CAAC,EAAE,CAACM,WAAW,CAAC,CAAC;;EAEjB;EACA,MAAMkB,eAAe,GAAGhG,KAAK,CAACiE,WAAW,CAAC,MAAM;IAC9CH,eAAe,CAACK,OAAO,GAAG,KAAK,CAAC,CAAC;IACjCE,SAAS,CAACQ,kBAAkB,CAACoB,YAAY,EAAE5C,MAAM,CAAC;IAClDyB,WAAW,CAACT,SAAS,CAAC,CAAC;IACvBvC,SAAS,CAACC,WAAW,CAACqD,UAAU,CAACc,KAAK,EAAEjD,YAAY,CAAC;IACrDjB,UAAU,CAACC,UAAU,CAACkE,OAAO,EAAEhD,aAAa,CAAC;EAC/C,CAAC,EAAE,CAACkB,SAAS,EAAES,WAAW,EAAED,kBAAkB,CAACoB,YAAY,EAAE5C,MAAM,EAAEJ,YAAY,EAAEE,aAAa,CAAC,CAAC;EAElG,MAAMiD,cAAc,GAAGpG,KAAK,CAACiE,WAAW,CAAC,MAAM;IAC7CD,aAAa,CAAC,QAAQ,CAAC;IACvBQ,QAAQ,CAAC,CAAC;IACVM,WAAW,CAACN,QAAQ,CAAC,CAAC;EACxB,CAAC,EAAE,CAACA,QAAQ,EAAEM,WAAW,EAAEd,aAAa,CAAC,CAAC;EAE1C,MAAMqC,eAAe,GAAGrG,KAAK,CAACiE,WAAW,CAAC,MAAM;IAC9CQ,SAAS,CAAC,CAAC;IACXK,WAAW,CAACiB,OAAO,CAAC,CAAC;EACvB,CAAC,EAAE,CAACtB,SAAS,EAAEK,WAAW,CAAC,CAAC;EAE5B,MAAMwB,eAAe,GAAGtG,KAAK,CAACiE,WAAW,CAAC,MAAM;IAC9CoC,eAAe,CAAC,CAAC;IACjB;EACF,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;;EAErB;EACA,MAAME,eAAe,GAAGvG,KAAK,CAAC+D,MAAM,CAAS,CAAC,CAAC;;EAE/C;EACA,MAAMyC,cAAc,GAAGvG,OAAO,CAAC,MAAM;IACnC,MAAMwG,SAAS,GAAG5E,sBAAsB,CAAC6E,UAAU,GAAG7E,sBAAsB,CAAC8E,UAAU;IACvF,MAAMC,UAAU,GAAG,CAACtE,KAAK,GAAGmE,SAAS,IAAI,CAAC;IAC1C,OAAO;MAAEA,SAAS;MAAEG,UAAU;MAAEC,SAAS,EAAEhF,sBAAsB,CAAC6E,UAAU;MAAEI,OAAO,EAAEjF,sBAAsB,CAAC8E,UAAU,GAAG;IAAE,CAAC;EAChI,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMI,UAAU,GAAG9G,OAAO,CAAC,MAAMK,OAAO,CAAC0G,GAAG,CAAC,CAAC,CAC3CC,QAAQ,CAAEC,KAAK,IAAK;IACnB,IAAI,CAAC3D,SAAS,EAAE;IAEhB,MAAM4D,SAAS,GAAGD,KAAK,CAACE,SAAS,GAAGZ,cAAc,CAACI,UAAU;IAC7D,MAAMS,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACJ,SAAS,GAAGX,cAAc,CAACK,SAAS,CAAC;IAC7D,MAAMW,WAAW,GAAGF,IAAI,CAACG,GAAG,CAAC,CAAC,EAAEH,IAAI,CAACI,GAAG,CAAClB,cAAc,CAACM,OAAO,EAAEO,IAAI,CAAC,CAAC;;IAEvE;IACA,IAAIG,WAAW,KAAKjB,eAAe,CAACpC,OAAO,EAAE;MAC3CoC,eAAe,CAACpC,OAAO,GAAGqD,WAAW;MACrC1F,SAAS,CAACC,WAAW,CAACqD,UAAU,CAACuC,WAAW,EAAE1E,YAAY,CAAC;MAC3DjB,UAAU,CAACC,UAAU,CAAC2F,SAAS,EAAEzE,aAAa,CAAC;IACjD;IAEA2B,WAAW,CAAC+C,gBAAgB,CAACL,WAAW,CAAC;EAC3C,CAAC,CAAC,CACDM,OAAO,CAAC,IAAI,CAAC,EAAE,CAACvE,SAAS,EAAEiD,cAAc,EAAE1B,WAAW,EAAE7B,YAAY,EAAEE,aAAa,CAAC,CAAC;;EAExF;EACA,MAAM4E,sBAAsB,GAAG/H,KAAK,CAACC,OAAO,CAC1C,OAAO;IACLsD,SAAS;IACTC,QAAQ;IACRwE,WAAW,EAAEhC,eAAe;IAC5BiC,UAAU,EAAE7B,cAAc;IAC1BtD,OAAO;IACPC,iBAAiB;IACjBmF,kBAAkB,EAAE,yBAAyB;IAC7CC,WAAW,EAAEvG,iBAAiB,CAACwG,EAAE;IACjCC,iBAAiB,EAAEzG,iBAAiB,CAACwG;EACvC,CAAC,CAAC,EACF,CAAC7E,SAAS,EAAEC,QAAQ,EAAEwC,eAAe,EAAEI,cAAc,EAAEtD,OAAO,EAAEC,iBAAiB,CACnF,CAAC;;EAED;EACA,MAAMuF,kBAAkB,GAAGtI,KAAK,CAACC,OAAO,CACtC,OAAO;IACLsI,SAAS,EAAE/E,QAAQ;IACnBF,KAAK;IACLkF,WAAW,EAAElC,eAAe;IAC5BmC,UAAU,EAAE,aAAa;IACzBC,YAAY,EAAE,wBAAwB;IAAE;IACxCC,WAAW,EAAE,wBAAwB;IAAE;IACvCR,WAAW,EAAE,SAAS;IAAE;IACxBE,iBAAiB,EAAE,SAAS;IAAE;IAC9BO,eAAe,EAAEhH,iBAAiB,CAACwG,EAAE,CAAE;EACzC,CAAC,CAAC,EACF,CAAC5E,QAAQ,EAAEF,KAAK,EAAEgD,eAAe,CACnC,CAAC;EAED,oBACEnE,IAAA,CAAC5B,sBAAsB;IAACsI,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC9C3G,KAAA,CAACnC,IAAI;MAAC2I,KAAK,EAAEC,MAAM,CAACC,SAAU;MAAAC,QAAA,gBAE5B7G,IAAA,CAACjC,IAAI;QAAC2I,KAAK,EAAE1I,UAAU,CAAC8I,kBAAmB;QAAAD,QAAA,eACzC7G,IAAA,CAACjB,cAAc;UAACoB,KAAK,EAAEA,KAAM;UAACC,MAAM,EAAEA,MAAO;UAACqB,UAAU,EAAEA;QAAW,CAAE;MAAC,CACpE,CAAC,eAGPzB,IAAA,CAACf,UAAU;QAACiC,MAAM,EAAEA;MAAO,CAAE,CAAC,eAG9BlB,IAAA,CAAC9B,eAAe;QAAC6I,OAAO,EAAEnC,UAAW;QAAAiC,QAAA,eACnC3G,KAAA,CAACnC,IAAI;UAAC2I,KAAK,EAAEC,MAAM,CAACK,QAAS;UAAAH,QAAA,GAE1BtF,SAAS,CAAC0F,GAAG,CAAEC,QAAQ,iBACtBlH,IAAA,CAAChB,YAAY;YAEXmI,CAAC,EAAED,QAAQ,CAACC,CAAE;YACdC,CAAC,EAAEF,QAAQ,CAACE,CAAE;YACdjH,KAAK,EAAE+G,QAAQ,CAAC/G,KAAM;YACtBC,MAAM,EAAE8G,QAAQ,CAAC9G,MAAO;YACxBiH,KAAK,EAAEH,QAAQ,CAACG,KAAM;YACtBC,QAAQ,EAAE;UAAM,GANXJ,QAAQ,CAACK,EAOf,CACF,CAAC,eAGFvH,IAAA,CAAChB,YAAY;YACXmI,CAAC,EAAE3F,SAAS,CAAC2F,CAAE;YACfC,CAAC,EAAE5F,SAAS,CAAC4F,CAAE;YACfjH,KAAK,EAAEqB,SAAS,CAACrB,KAAM;YACvBC,MAAM,EAAEoB,SAAS,CAACpB,MAAO;YACzBiH,KAAK,EAAE5H,iBAAiB,CAAC+H,UAAW;YACpCF,QAAQ,EAAE;UAAK,CAChB,CAAC;QAAA,CACE;MAAC,CACQ,CAAC,EAGjB5F,eAAe,CAACuF,GAAG,CAAEQ,MAAM,iBAC1BzH,IAAA,CAACX,aAAa;QAEZ8H,CAAC,EAAEM,MAAM,CAACN,CAAE;QACZC,CAAC,EAAEK,MAAM,CAACL,CAAE;QACZM,aAAa,EAAE,EAAG;QAClBC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAE;QAC3ExF,QAAQ,EAAE,GAAI;QACdyF,UAAU,EAAEA,CAAA,KAAMrF,sBAAsB,CAACkF,MAAM,CAACF,EAAE;MAAE,GAN/CE,MAAM,CAACF,EAOb,CACF,CAAC,eAGFvH,IAAA,CAACd,iBAAiB;QAAA,GAAK0G;MAAsB,CAAG,CAAC,eAGjD5F,IAAA,CAACb,aAAa;QAAA,GAAKgH;MAAkB,CAAG,CAAC,eAEzCnG,IAAA,CAACZ,iBAAiB;QAChByI,MAAM,EAAEvI,QAAQ,CAAC2D,UAAW;QAC5B1C,QAAQ,EAAEC,gBAAgB,IAAIjB,qBAAsB;QACpDkB,gBAAgB,EAAEA;MAAiB,CACpC,CAAC;IAAA,CACE;EAAC,CACe,CAAC;AAE7B,CAAC;AAED,MAAMkG,MAAM,GAAG3I,UAAU,CAAC8J,MAAM,CAAC;EAC/BlB,SAAS,EAAE;IACTmB,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB,CAAC;EACDhB,QAAQ,EAAE;IACRe,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";export const CAR_RACING_DIFFICULTY_CONFIG ={easy:{gameDuration:60,obstacleSpawnInterval:2500,roadSpeed:4},medium:{gameDuration:120,obstacleSpawnInterval:2000,roadSpeed:6},hard:{gameDuration:180,obstacleSpawnInterval:1500,roadSpeed:8}};export const getDifficultySettings = difficulty =>{return CAR_RACING_DIFFICULTY_CONFIG[difficulty];};export const DEFAULT_CAR_RACING_SETTINGS ={difficulty:'medium',soundEnabled:true,hapticEnabled:true,gameDuration:CAR_RACING_DIFFICULTY_CONFIG.medium.gameDuration,obstacleSpawnInterval:CAR_RACING_DIFFICULTY_CONFIG.medium.obstacleSpawnInterval,roadSpeed:CAR_RACING_DIFFICULTY_CONFIG.medium.roadSpeed};export const CAR_RACING_GAME_CONFIG ={GAME_DURATION:120,CAR_WIDTH:50,CAR_HEIGHT:80,OBSTACLE_WIDTH:50,OBSTACLE_HEIGHT:80,ROAD_LANES:3,LANE_WIDTH:100,ROAD_SPEED:6,OBSTACLE_SPAWN_INTERVAL:2000,COLLISION_TOLERANCE:5,POINTS_PER_OBSTACLE_PASSED:10,LANE_SWITCH_DURATION:200};export const CAR_RACING_COLORS ={ROAD_DARK:'#2a2a2a',ROAD_LIGHT:'#3a3a3a',ROAD_LINE:'#ffffff',GRASS_GREEN:'#2d5016',GRASS_DARK:'#1a3009',SKY_BLUE:'#87ceeb',PLAYER_CAR:'#ff4444',OBSTACLE_CAR_1:'#4444ff',OBSTACLE_CAR_2:'#44ff44',OBSTACLE_CAR_3:'#ffff44',SCORE:'#ffd700',UI:'#ff4444'};export const CAR_RACING_THEME ={backgroundColor:'rgba(0,0,0,0.7)',headerBackgroundColor:'#ff4444',headerTextColor:'#ffffff',sectionBackgroundColor:'rgba(255,68,68,0.15)',sectionTitleColor:'#ff4444',buttonSelectedColor:'#ff4444',buttonUnselectedColor:'rgba(255,255,255,0.2)',buttonSelectedTextColor:'#ffffff',buttonUnselectedTextColor:'rgba(255,255,255,0.7)',switchTrackColorFalse:'rgba(255,68,68,0.3)',switchTrackColorTrue:'#ff4444',switchThumbColor:'#ffffff',infoTextColor:'rgba(255,255,255,0.9)'};export const CAR_RACING_DIFFICULTY_DESCRIPTIONS ={easy:'1 min,slower traffic,relaxed driving',medium:'2 mins,normal traffic speed,balanced challenge',hard:'3 mins,fast traffic,quick reflexes needed!'};export const getLanePosition =(laneIndex,screenWidth)=>{const roadWidth = CAR_RACING_GAME_CONFIG.LANE_WIDTH * CAR_RACING_GAME_CONFIG.ROAD_LANES;const roadStartX =(screenWidth - roadWidth)/ 2;const laneCenterX = roadStartX + laneIndex * CAR_RACING_GAME_CONFIG.LANE_WIDTH + CAR_RACING_GAME_CONFIG.LANE_WIDTH / 2;return laneCenterX - CAR_RACING_GAME_CONFIG.CAR_WIDTH / 2;};
1
+ "use strict";export const CAR_RACING_DIFFICULTY_CONFIG={easy:{gameDuration:60,obstacleSpawnInterval:2500,roadSpeed:4},medium:{gameDuration:120,obstacleSpawnInterval:2e3,roadSpeed:6},hard:{gameDuration:180,obstacleSpawnInterval:1500,roadSpeed:8}};export const getDifficultySettings=e=>CAR_RACING_DIFFICULTY_CONFIG[e];export const DEFAULT_CAR_RACING_SETTINGS={difficulty:"medium",soundEnabled:!0,hapticEnabled:!0,gameDuration:CAR_RACING_DIFFICULTY_CONFIG.medium.gameDuration,obstacleSpawnInterval:CAR_RACING_DIFFICULTY_CONFIG.medium.obstacleSpawnInterval,roadSpeed:CAR_RACING_DIFFICULTY_CONFIG.medium.roadSpeed};export const CAR_RACING_GAME_CONFIG={GAME_DURATION:120,CAR_WIDTH:50,CAR_HEIGHT:80,OBSTACLE_WIDTH:50,OBSTACLE_HEIGHT:80,ROAD_LANES:3,LANE_WIDTH:100,ROAD_SPEED:6,OBSTACLE_SPAWN_INTERVAL:2e3,COLLISION_TOLERANCE:5,POINTS_PER_OBSTACLE_PASSED:10,LANE_SWITCH_DURATION:200};export const CAR_RACING_COLORS={ROAD_DARK:"#2a2a2a",ROAD_LIGHT:"#3a3a3a",ROAD_LINE:"#ffffff",GRASS_GREEN:"#2d5016",GRASS_DARK:"#1a3009",SKY_BLUE:"#87ceeb",PLAYER_CAR:"#ff4444",OBSTACLE_CAR_1:"#4444ff",OBSTACLE_CAR_2:"#44ff44",OBSTACLE_CAR_3:"#ffff44",SCORE:"#ffd700",UI:"#ff4444"};export const CAR_RACING_THEME={backgroundColor:"rgba(0, 0, 0, 0.7)",headerBackgroundColor:"#ff4444",headerTextColor:"#ffffff",sectionBackgroundColor:"rgba(255, 68, 68, 0.15)",sectionTitleColor:"#ff4444",buttonSelectedColor:"#ff4444",buttonUnselectedColor:"rgba(255, 255, 255, 0.2)",buttonSelectedTextColor:"#ffffff",buttonUnselectedTextColor:"rgba(255, 255, 255, 0.7)",switchTrackColorFalse:"rgba(255, 68, 68, 0.3)",switchTrackColorTrue:"#ff4444",switchThumbColor:"#ffffff",infoTextColor:"rgba(255, 255, 255, 0.9)"};export const CAR_RACING_DIFFICULTY_DESCRIPTIONS={easy:"1 min, slower traffic, relaxed driving",medium:"2 mins, normal traffic speed, balanced challenge",hard:"3 mins, fast traffic, quick reflexes needed!"};export const getLanePosition=(e,o)=>(o-300)/2+100*e+50-25;
@@ -1 +1 @@
1
- "use strict";import{Dimensions}from 'react-native';import{useCarRacingStore}from "./CarRacingStore.js";import{CAR_RACING_GAME_CONFIG,CAR_RACING_COLORS,getLanePosition}from "./CarRacingConstants.js";const{width,height}= Dimensions.get('window');export class CarRacingService{obstacleSpawnTimer = null;gameLoopTimer = null;obstacleIdCounter = 0;roadSpeed = CAR_RACING_GAME_CONFIG.ROAD_SPEED;obstacleSpawnInterval = CAR_RACING_GAME_CONFIG.OBSTACLE_SPAWN_INTERVAL;collisionCooldown = new Map();constructor(roadSpeed,obstacleSpawnInterval){if(roadSpeed)this.roadSpeed = roadSpeed;if(obstacleSpawnInterval)this.obstacleSpawnInterval = obstacleSpawnInterval;}setCallbacks(onCollision,onPass){this.onCollision = onCollision;this.onPass = onPass;}startGame(){this.cleanup();this.obstacleIdCounter = 0;this.collisionCooldown.clear();this.startObstacleSpawning();this.gameLoopTimer = setInterval(()=>{this.updateGameState();},16);}stopGame(){this.cleanup();}updateGameState(){const store = useCarRacingStore.getState();const{obstacles,playerCar,isPlaying}= store;if(!isPlaying)return;const newRoadOffset =(store.roadOffset + this.roadSpeed)% 100;store.updateRoadOffset(newRoadOffset);for(let i = 0;i < obstacles.length;i++){const obstacle = obstacles[i];if(!obstacle)continue;const newY = obstacle.y + this.roadSpeed;if(newY > height + 50){store.removeObstacle(obstacle.id);continue;}if(!obstacle.passed && newY > playerCar.y + playerCar.height){store.markObstaclePassed(obstacle.id);if(this.onPass){this.onPass();}}store.updateObstacle(obstacle.id,{y:newY});this.checkCollision(obstacle,playerCar);}}checkCollision(obstacle,playerCar){const store = useCarRacingStore.getState();const cooldownTime = this.collisionCooldown.get(obstacle.id);if(cooldownTime && Date.now()- cooldownTime < 1000){return;}const tolerance = CAR_RACING_GAME_CONFIG.COLLISION_TOLERANCE;const collision = playerCar.x < obstacle.x + obstacle.width - tolerance && playerCar.x + playerCar.width > obstacle.x + tolerance && playerCar.y < obstacle.y + obstacle.height - tolerance && playerCar.y + playerCar.height > obstacle.y + tolerance;if(collision){this.collisionCooldown.set(obstacle.id,Date.now());const collisionX =(playerCar.x + playerCar.width / 2 + obstacle.x + obstacle.width / 2)/ 2;const collisionY =(playerCar.y + playerCar.height / 2 + obstacle.y + obstacle.height / 2)/ 2;store.addParticleEffect(collisionX,collisionY);store.loseLife();store.removeObstacle(obstacle.id);if(this.onCollision){this.onCollision();}}}startObstacleSpawning(){this.obstacleSpawnTimer = setInterval(()=>{this.spawnObstacle();},this.obstacleSpawnInterval);this.spawnObstacle();}spawnObstacle(){const store = useCarRacingStore.getState();if(!store.isPlaying)return;const lane = this.fastRandom(0,CAR_RACING_GAME_CONFIG.ROAD_LANES);const x = getLanePosition(lane,width);const colors = [CAR_RACING_COLORS.OBSTACLE_CAR_1,CAR_RACING_COLORS.OBSTACLE_CAR_2,CAR_RACING_COLORS.OBSTACLE_CAR_3];const colorIndex = this.fastRandom(0,colors.length);const color = colors[colorIndex] || CAR_RACING_COLORS.OBSTACLE_CAR_1;const obstacle ={id:`obstacle-${this.obstacleIdCounter++}`,x:x,y:-CAR_RACING_GAME_CONFIG.OBSTACLE_HEIGHT,lane,width:CAR_RACING_GAME_CONFIG.OBSTACLE_WIDTH,height:CAR_RACING_GAME_CONFIG.OBSTACLE_HEIGHT,color,passed:false};store.addObstacle(obstacle);}fastRandom(min,max){return Math.floor(Math.random()*(max - min))+ min;}movePlayerToLane(lane){const store = useCarRacingStore.getState();if(!store.isPlaying)return;store.movePlayerCar(lane);}cleanup(){if(this.obstacleSpawnTimer){clearInterval(this.obstacleSpawnTimer);this.obstacleSpawnTimer = null;}if(this.gameLoopTimer){clearInterval(this.gameLoopTimer);this.gameLoopTimer = null;}this.collisionCooldown.clear();}}
1
+ "use strict";import{Dimensions as t}from"react-native";import{useCarRacingStore as s}from"./CarRacingStore.js";import{CAR_RACING_GAME_CONFIG as i,CAR_RACING_COLORS as e,getLanePosition as a}from"./CarRacingConstants.js";const{width:o,height:n}=t.get("window");export class CarRacingService{obstacleSpawnTimer=null;animationFrameId=null;obstacleIdCounter=0;roadSpeed=i.ROAD_SPEED;obstacleSpawnInterval=i.OBSTACLE_SPAWN_INTERVAL;collisionCooldown=new Map;lastFrameTime=0;TARGET_FRAME_TIME=16.67;constructor(t,s){t&&(this.roadSpeed=t),s&&(this.obstacleSpawnInterval=s)}setCallbacks(t,s){this.onCollision=t,this.onPass=s}startGame(){this.cleanup(),this.obstacleIdCounter=0,this.collisionCooldown.clear(),this.startObstacleSpawning(),this.lastFrameTime=performance.now(),this.gameLoop()}gameLoop=()=>{if(!s.getState().isPlaying)return void(this.animationFrameId=null);const t=performance.now(),i=t-this.lastFrameTime;i<this.TARGET_FRAME_TIME||(this.lastFrameTime=t-i%this.TARGET_FRAME_TIME,this.updateGameState()),this.animationFrameId=requestAnimationFrame(this.gameLoop)};stopGame(){this.cleanup()}updateGameState(){const t=s.getState(),{obstacles:i,playerCar:e,isPlaying:a,roadOffset:o}=t;if(!a)return;const r=[],h=[],l=[],c=[],m=(o+this.roadSpeed)%600;for(let t=0;t<i.length;t++){const s=i[t];if(!s)continue;const a=s.y+this.roadSpeed;if(a>n+50){r.push(s.id);continue}!s.passed&&a>e.y+e.height&&h.push(s.id),l.push({id:s.id,y:a});const o={...s,y:a};this.willCollide(o,e)&&c.push({obstacle:o,playerCar:e})}t.batchUpdate({roadOffset:m,obstacleUpdates:l,obstaclesToRemove:r,obstaclesToPass:h});for(const{obstacle:t}of c)this.handleCollision(t,e);h.length>0&&this.onPass&&this.onPass()}willCollide(t,s){const e=this.collisionCooldown.get(t.id);if(e&&1e3>Date.now()-e)return!1;const a=i.COLLISION_TOLERANCE;return s.x<t.x+t.width-a&&s.x+s.width>t.x+a&&s.y<t.y+t.height-a&&s.y+s.height>t.y+a}handleCollision(t,i){const e=s.getState();this.collisionCooldown.set(t.id,Date.now());const a=(i.x+i.width/2+t.x+t.width/2)/2,o=(i.y+i.height/2+t.y+t.height/2)/2;e.addParticleEffect(a,o),e.loseLife(),e.removeObstacle(t.id),this.onCollision&&this.onCollision()}startObstacleSpawning(){this.obstacleSpawnTimer=setInterval(()=>{this.spawnObstacle()},this.obstacleSpawnInterval),this.spawnObstacle()}spawnObstacle(){const t=s.getState();if(!t.isPlaying)return;const n=this.fastRandom(0,i.ROAD_LANES),r=a(n,o),h=[e.OBSTACLE_CAR_1,e.OBSTACLE_CAR_2,e.OBSTACLE_CAR_3],l=h[this.fastRandom(0,h.length)]||e.OBSTACLE_CAR_1,c={id:"obstacle-"+this.obstacleIdCounter++,x:r,y:-i.OBSTACLE_HEIGHT,lane:n,width:i.OBSTACLE_WIDTH,height:i.OBSTACLE_HEIGHT,color:l,passed:!1};t.addObstacle(c)}fastRandom(t,s){return Math.floor(Math.random()*(s-t))+t}movePlayerToLane(t){const i=s.getState();i.isPlaying&&i.movePlayerCar(t)}cleanup(){this.obstacleSpawnTimer&&(clearInterval(this.obstacleSpawnTimer),this.obstacleSpawnTimer=null),this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null),this.collisionCooldown.clear()}}
@@ -1 +1 @@
1
- {"version":3,"names":["Dimensions","useCarRacingStore","CAR_RACING_GAME_CONFIG","CAR_RACING_COLORS","getLanePosition","width","height","get","CarRacingService","obstacleSpawnTimer","gameLoopTimer","obstacleIdCounter","roadSpeed","ROAD_SPEED","obstacleSpawnInterval","OBSTACLE_SPAWN_INTERVAL","collisionCooldown","Map","constructor","setCallbacks","onCollision","onPass","startGame","cleanup","clear","startObstacleSpawning","setInterval","updateGameState","stopGame","store","getState","obstacles","playerCar","isPlaying","newRoadOffset","roadOffset","updateRoadOffset","i","length","obstacle","newY","y","removeObstacle","id","passed","markObstaclePassed","updateObstacle","checkCollision","cooldownTime","Date","now","tolerance","COLLISION_TOLERANCE","collision","x","set","collisionX","collisionY","addParticleEffect","loseLife","spawnObstacle","lane","fastRandom","ROAD_LANES","colors","OBSTACLE_CAR_1","OBSTACLE_CAR_2","OBSTACLE_CAR_3","colorIndex","color","OBSTACLE_HEIGHT","OBSTACLE_WIDTH","addObstacle","min","max","Math","floor","random","movePlayerToLane","movePlayerCar","clearInterval"],"sourceRoot":"../../../../src","sources":["games/car-racing/CarRacingService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Dimensions","useCarRacingStore","CAR_RACING_GAME_CONFIG","CAR_RACING_COLORS","getLanePosition","width","height","get","CarRacingService","obstacleSpawnTimer","animationFrameId","obstacleIdCounter","roadSpeed","ROAD_SPEED","obstacleSpawnInterval","OBSTACLE_SPAWN_INTERVAL","collisionCooldown","Map","lastFrameTime","TARGET_FRAME_TIME","constructor","setCallbacks","onCollision","onPass","startGame","cleanup","clear","startObstacleSpawning","performance","now","gameLoop","store","getState","isPlaying","currentTime","deltaTime","updateGameState","requestAnimationFrame","stopGame","obstacles","playerCar","roadOffset","obstaclesToRemove","obstaclesToPass","obstacleUpdates","collisions","newRoadOffset","i","length","obstacle","newY","y","push","id","passed","updatedObstacle","willCollide","batchUpdate","handleCollision","cooldownTime","Date","tolerance","COLLISION_TOLERANCE","x","set","collisionX","collisionY","addParticleEffect","loseLife","removeObstacle","setInterval","spawnObstacle","lane","fastRandom","ROAD_LANES","colors","OBSTACLE_CAR_1","OBSTACLE_CAR_2","OBSTACLE_CAR_3","colorIndex","color","OBSTACLE_HEIGHT","OBSTACLE_WIDTH","addObstacle","min","max","Math","floor","random","movePlayerToLane","movePlayerCar","clearInterval","cancelAnimationFrame"],"sourceRoot":"../../../../src","sources":["games/car-racing/CarRacingService.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import{create}from 'zustand';import{subscribeWithSelector}from 'zustand/middleware';import{Dimensions}from 'react-native';import{immerMiddleware}from "../../services/UtilsService.js";import{CAR_RACING_GAME_CONFIG,getLanePosition}from "./CarRacingConstants.js";const{width,height}= Dimensions.get('window');export const useCarRacingStore = create()(subscribeWithSelector(immerMiddleware((set,_get)=>({score:0,timeLeft:CAR_RACING_GAME_CONFIG.GAME_DURATION,isPlaying:false,gameOver:false,lives:3,obstacles:[],playerCar:{x:getLanePosition(1,width),y:height * 0.65,lane:1,width:CAR_RACING_GAME_CONFIG.CAR_WIDTH,height:CAR_RACING_GAME_CONFIG.CAR_HEIGHT},roadOffset:0,particleEffects:[],offset:0,gameDuration:CAR_RACING_GAME_CONFIG.GAME_DURATION,setOffset:offset =>{set(draft =>{draft.offset = offset;const yPosition = offset > 0 ? height * 0.75:height * 0.62;draft.playerCar.y = yPosition;});},startGame:(gameDuration,offset)=>{const duration = gameDuration || CAR_RACING_GAME_CONFIG.GAME_DURATION;set(draft =>{draft.score = 0;draft.timeLeft = duration;draft.gameDuration = duration;draft.isPlaying = true;draft.gameOver = false;draft.lives = 3;draft.obstacles = [];draft.roadOffset = 0;if(offset !== undefined){draft.offset = offset;}const yPosition =(offset !== undefined ? offset:draft.offset)> 0 ? height * 0.75:height * 0.62;draft.playerCar ={x:getLanePosition(1,width),y:yPosition,lane:1,width:CAR_RACING_GAME_CONFIG.CAR_WIDTH,height:CAR_RACING_GAME_CONFIG.CAR_HEIGHT};});},stopGame:()=>{set(draft =>{draft.score = 0;draft.timeLeft = draft.gameDuration;draft.isPlaying = false;draft.gameOver = false;draft.lives = 3;draft.obstacles = [];draft.roadOffset = 0;const yPosition = draft.offset > 0 ? height * 0.75:height * 0.62;draft.playerCar ={x:getLanePosition(1,width),y:yPosition,lane:1,width:CAR_RACING_GAME_CONFIG.CAR_WIDTH,height:CAR_RACING_GAME_CONFIG.CAR_HEIGHT};});},resetGame:()=>{set(draft =>{draft.score = 0;draft.timeLeft = draft.gameDuration;draft.isPlaying = false;draft.gameOver = false;draft.lives = 3;draft.obstacles = [];draft.roadOffset = 0;const yPosition = draft.offset > 0 ? height * 0.75:height * 0.62;draft.playerCar ={x:getLanePosition(1,width),y:yPosition,lane:1,width:CAR_RACING_GAME_CONFIG.CAR_WIDTH,height:CAR_RACING_GAME_CONFIG.CAR_HEIGHT};});},updateScore:points =>{set(draft =>{draft.score = draft.score + points;});},decrementTime:()=>{set(draft =>{const newTimeLeft = draft.timeLeft - 1;if(newTimeLeft <= 0){draft.timeLeft = 0;draft.isPlaying = false;draft.gameOver = true;}else{draft.timeLeft = newTimeLeft;}});},addObstacle:obstacle =>{set(draft =>{draft.obstacles.push(obstacle);});},removeObstacle:obstacleId =>{set(draft =>{draft.obstacles = draft.obstacles.filter(o => o.id !== obstacleId);});},updateObstacle:(obstacleId,updates)=>{set(draft =>{for(let i = 0;i < draft.obstacles.length;i++){if(draft.obstacles[i].id === obstacleId){Object.assign(draft.obstacles[i],updates);break;}}});},movePlayerCar:lane =>{set(draft =>{const validLane = Math.max(0,Math.min(CAR_RACING_GAME_CONFIG.ROAD_LANES - 1,lane));draft.playerCar.lane = validLane;draft.playerCar.x = getLanePosition(validLane,width);});},updateRoadOffset:offset =>{set(draft =>{draft.roadOffset = offset;});},markObstaclePassed:obstacleId =>{set(draft =>{for(let i = 0;i < draft.obstacles.length;i++){if(draft.obstacles[i].id === obstacleId && !draft.obstacles[i].passed){draft.obstacles[i].passed = true;draft.score = draft.score + CAR_RACING_GAME_CONFIG.POINTS_PER_OBSTACLE_PASSED;break;}}});},loseLife:()=>{set(draft =>{const newLives = draft.lives - 1;if(newLives <= 0){draft.lives = 0;draft.isPlaying = false;draft.gameOver = true;}else{draft.lives = newLives;}});},clearObstacles:()=>{set(draft =>{draft.obstacles = [];});},addParticleEffect:(x,y)=>{set(draft =>{draft.particleEffects.push({id:`particle-${Date.now()}-${Math.random()}`,x,y});});},removeParticleEffect:effectId =>{set(draft =>{draft.particleEffects = draft.particleEffects.filter(e => e.id !== effectId);});}}))));export const useScore =()=> useCarRacingStore(state => state.score);export const useTimeLeft =()=> useCarRacingStore(state => state.timeLeft);export const useLives =()=> useCarRacingStore(state => state.lives);export const useIsPlaying =()=> useCarRacingStore(state => state.isPlaying);export const useGameOver =()=> useCarRacingStore(state => state.gameOver);export const useObstacles =()=> useCarRacingStore(state => state.obstacles);export const usePlayerCar =()=> useCarRacingStore(state => state.playerCar);export const useRoadOffset =()=> useCarRacingStore(state => state.roadOffset);export const useParticleEffects =()=> useCarRacingStore(state => state.particleEffects);
1
+ "use strict";import{create as e}from"zustand";import{subscribeWithSelector as t}from"zustand/middleware";import{Dimensions as s}from"react-native";import{immerMiddleware as o}from"../../services/UtilsService.js";import{CAR_RACING_GAME_CONFIG as a,getLanePosition as r}from"./CarRacingConstants.js";const{width:c,height:i}=s.get("window");export const useCarRacingStore=e()(t(o((e,t)=>({score:0,timeLeft:a.GAME_DURATION,isPlaying:!1,gameOver:!1,lives:3,obstacles:[],playerCar:{x:r(1,c),y:.65*i,lane:1,width:a.CAR_WIDTH,height:a.CAR_HEIGHT},roadOffset:0,particleEffects:[],offset:0,gameDuration:a.GAME_DURATION,setOffset:t=>{e(e=>{e.offset=t;const s=t>0?.75*i:.62*i;e.playerCar.y=s})},startGame:(t,s)=>{const o=t||a.GAME_DURATION;e(e=>{e.score=0,e.timeLeft=o,e.gameDuration=o,e.isPlaying=!0,e.gameOver=!1,e.lives=3,e.obstacles=[],e.roadOffset=0,void 0!==s&&(e.offset=s);const t=(void 0!==s?s:e.offset)>0?.75*i:.62*i;e.playerCar={x:r(1,c),y:t,lane:1,width:a.CAR_WIDTH,height:a.CAR_HEIGHT}})},stopGame:()=>{e(e=>{e.score=0,e.timeLeft=e.gameDuration,e.isPlaying=!1,e.gameOver=!1,e.lives=3,e.obstacles=[],e.roadOffset=0;const t=e.offset>0?.75*i:.62*i;e.playerCar={x:r(1,c),y:t,lane:1,width:a.CAR_WIDTH,height:a.CAR_HEIGHT}})},resetGame:()=>{e(e=>{e.score=0,e.timeLeft=e.gameDuration,e.isPlaying=!1,e.gameOver=!1,e.lives=3,e.obstacles=[],e.roadOffset=0;const t=e.offset>0?.75*i:.62*i;e.playerCar={x:r(1,c),y:t,lane:1,width:a.CAR_WIDTH,height:a.CAR_HEIGHT}})},updateScore:t=>{e(e=>{e.score=e.score+t})},decrementTime:()=>{e(e=>{const t=e.timeLeft-1;t>0?e.timeLeft=t:(e.timeLeft=0,e.isPlaying=!1,e.gameOver=!0)})},addObstacle:t=>{e(e=>{e.obstacles.push(t)})},removeObstacle:t=>{e(e=>{e.obstacles=e.obstacles.filter(e=>e.id!==t)})},updateObstacle:(t,s)=>{e(e=>{for(let o=0;o<e.obstacles.length;o++)if(e.obstacles[o].id===t){Object.assign(e.obstacles[o],s);break}})},movePlayerCar:t=>{e(e=>{const s=Math.max(0,Math.min(a.ROAD_LANES-1,t));e.playerCar.lane=s,e.playerCar.x=r(s,c)})},updateRoadOffset:t=>{e(e=>{e.roadOffset=t})},markObstaclePassed:t=>{e(e=>{for(let s=0;s<e.obstacles.length;s++)if(e.obstacles[s].id===t&&!e.obstacles[s].passed){e.obstacles[s].passed=!0,e.score=e.score+a.POINTS_PER_OBSTACLE_PASSED;break}})},loseLife:()=>{e(e=>{const t=e.lives-1;t>0?e.lives=t:(e.lives=0,e.isPlaying=!1,e.gameOver=!0)})},clearObstacles:()=>{e(e=>{e.obstacles=[]})},addParticleEffect:(t,s)=>{e(e=>{e.particleEffects.push({id:`particle-${Date.now()}-${Math.random()}`,x:t,y:s})})},removeParticleEffect:t=>{e(e=>{e.particleEffects=e.particleEffects.filter(e=>e.id!==t)})},batchUpdate:t=>{e(e=>{e.roadOffset=t.roadOffset;const s=new Map;for(let t=0;t<e.obstacles.length;t++)s.set(e.obstacles[t].id,t);for(const o of t.obstacleUpdates){const t=s.get(o.id);void 0!==t&&(e.obstacles[t].y=o.y)}for(const o of t.obstaclesToPass){const t=s.get(o);void 0===t||e.obstacles[t].passed||(e.obstacles[t].passed=!0,e.score+=a.POINTS_PER_OBSTACLE_PASSED)}if(t.obstaclesToRemove.length>0){const s=new Set(t.obstaclesToRemove);e.obstacles=e.obstacles.filter(e=>!s.has(e.id))}})}}))));export const useScore=()=>useCarRacingStore(e=>e.score);export const useTimeLeft=()=>useCarRacingStore(e=>e.timeLeft);export const useLives=()=>useCarRacingStore(e=>e.lives);export const useIsPlaying=()=>useCarRacingStore(e=>e.isPlaying);export const useGameOver=()=>useCarRacingStore(e=>e.gameOver);export const useObstacles=()=>useCarRacingStore(e=>e.obstacles);export const usePlayerCar=()=>useCarRacingStore(e=>e.playerCar);export const useRoadOffset=()=>useCarRacingStore(e=>e.roadOffset);export const useParticleEffects=()=>useCarRacingStore(e=>e.particleEffects);
@@ -1 +1 @@
1
- {"version":3,"names":["create","subscribeWithSelector","Dimensions","immerMiddleware","CAR_RACING_GAME_CONFIG","getLanePosition","width","height","get","useCarRacingStore","set","_get","score","timeLeft","GAME_DURATION","isPlaying","gameOver","lives","obstacles","playerCar","x","y","lane","CAR_WIDTH","CAR_HEIGHT","roadOffset","particleEffects","offset","gameDuration","setOffset","draft","yPosition","startGame","duration","undefined","stopGame","resetGame","updateScore","points","decrementTime","newTimeLeft","addObstacle","obstacle","push","removeObstacle","obstacleId","filter","o","id","updateObstacle","updates","i","length","Object","assign","movePlayerCar","validLane","Math","max","min","ROAD_LANES","updateRoadOffset","markObstaclePassed","passed","POINTS_PER_OBSTACLE_PASSED","loseLife","newLives","clearObstacles","addParticleEffect","Date","now","random","removeParticleEffect","effectId","e","useScore","state","useTimeLeft","useLives","useIsPlaying","useGameOver","useObstacles","usePlayerCar","useRoadOffset","useParticleEffects"],"sourceRoot":"../../../../src","sources":["games/car-racing/CarRacingStore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["create","subscribeWithSelector","Dimensions","immerMiddleware","CAR_RACING_GAME_CONFIG","getLanePosition","width","height","get","useCarRacingStore","set","_get","score","timeLeft","GAME_DURATION","isPlaying","gameOver","lives","obstacles","playerCar","x","y","lane","CAR_WIDTH","CAR_HEIGHT","roadOffset","particleEffects","offset","gameDuration","setOffset","draft","yPosition","startGame","duration","undefined","stopGame","resetGame","updateScore","points","decrementTime","newTimeLeft","addObstacle","obstacle","push","removeObstacle","obstacleId","filter","o","id","updateObstacle","updates","i","length","Object","assign","movePlayerCar","validLane","Math","max","min","ROAD_LANES","updateRoadOffset","markObstaclePassed","passed","POINTS_PER_OBSTACLE_PASSED","loseLife","newLives","clearObstacles","addParticleEffect","Date","now","random","removeParticleEffect","effectId","e","batchUpdate","obstacleMap","Map","update","obstacleUpdates","idx","obstaclesToPass","obstaclesToRemove","removeSet","Set","has","useScore","state","useTimeLeft","useLives","useIsPlaying","useGameOver","useObstacles","usePlayerCar","useRoadOffset","useParticleEffects"],"sourceRoot":"../../../../src","sources":["games/car-racing/CarRacingStore.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{Canvas,RoundedRect,Rect,Circle,LinearGradient,vec}from '@shopify/react-native-skia';import Animated,{useAnimatedStyle,withSpring}from 'react-native-reanimated';import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const CarComponent = React.memo(({x,y,width,height,color,isPlayer = false})=>{const animatedStyle = useAnimatedStyle(()=>{if(isPlayer){return{transform:[{translateX:withSpring(x,{damping:25,stiffness:150,mass:0.8})},{translateY:y}]};}return{transform:[{translateX:x},{translateY:y}]};},[x,y,isPlayer]);return _jsx(Animated.View,{style:[{position:'absolute',width,height},animatedStyle],children:_jsxs(Canvas,{style:{width,height},children:[_jsx(RoundedRect,{x:width * 0.05,y:0,width:width * 0.9,height:height * 0.12,r:4,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width,0),colors:[adjustBrightness(color,-30),adjustBrightness(color,-40)]})}),_jsx(RoundedRect,{x:0,y:height * 0.1,width:width,height:height * 0.25,r:6,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width,0),colors:[color,adjustBrightness(color,-15),color]})}),_jsx(RoundedRect,{x:width * 0.12,y:height * 0.32,width:width * 0.76,height:height * 0.12,r:4,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(0,height * 0.12),colors:['rgba(100,150,200,0.7)','rgba(50,100,150,0.8)']})}),_jsx(RoundedRect,{x:width * 0.08,y:height * 0.42,width:width * 0.84,height:height * 0.22,r:5,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width,0),colors:[adjustBrightness(color,10),color,adjustBrightness(color,10)]})}),_jsx(Rect,{x:width * 0.12,y:height * 0.45,width:width * 0.25,height:height * 0.16,color:"rgba(50,100,150,0.75)"}),_jsx(Rect,{x:width * 0.63,y:height * 0.45,width:width * 0.25,height:height * 0.16,color:"rgba(50,100,150,0.75)"}),_jsx(RoundedRect,{x:width * 0.12,y:height * 0.62,width:width * 0.76,height:height * 0.1,r:4,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(0,height * 0.1),colors:['rgba(50,100,150,0.8)','rgba(100,150,200,0.7)']})}),_jsx(RoundedRect,{x:0,y:height * 0.7,width:width,height:height * 0.2,r:6,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width,0),colors:[color,adjustBrightness(color,-15),color]})}),_jsx(RoundedRect,{x:width * 0.05,y:height * 0.88,width:width * 0.9,height:height * 0.12,r:4,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width,0),colors:[adjustBrightness(color,-30),adjustBrightness(color,-40)]})}),_jsx(RoundedRect,{x:-width * 0.09,y:height * 0.17,width:width * 0.2,height:height * 0.22,r:3,color:"#ffffff"}),_jsx(RoundedRect,{x:-width * 0.08,y:height * 0.18,width:width * 0.18,height:height * 0.2,r:3,color:"#000000"}),_jsx(RoundedRect,{x:-width * 0.06,y:height * 0.2,width:width * 0.14,height:height * 0.16,r:2,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width * 0.14,0),colors:['#8a8a8a','#c0c0c0','#8a8a8a']})}),_jsx(RoundedRect,{x:-width * 0.04,y:height * 0.24,width:width * 0.08,height:height * 0.08,r:1,color:"#4a4a4a"}),_jsx(RoundedRect,{x:width * 0.89,y:height * 0.17,width:width * 0.2,height:height * 0.22,r:3,color:"#ffffff"}),_jsx(RoundedRect,{x:width * 0.9,y:height * 0.18,width:width * 0.18,height:height * 0.2,r:3,color:"#000000"}),_jsx(RoundedRect,{x:width * 0.92,y:height * 0.2,width:width * 0.14,height:height * 0.16,r:2,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width * 0.14,0),colors:['#8a8a8a','#c0c0c0','#8a8a8a']})}),_jsx(RoundedRect,{x:width * 0.96,y:height * 0.24,width:width * 0.08,height:height * 0.08,r:1,color:"#4a4a4a"}),_jsx(RoundedRect,{x:-width * 0.09,y:height * 0.61,width:width * 0.2,height:height * 0.22,r:3,color:"#ffffff"}),_jsx(RoundedRect,{x:-width * 0.08,y:height * 0.62,width:width * 0.18,height:height * 0.2,r:3,color:"#000000"}),_jsx(RoundedRect,{x:-width * 0.06,y:height * 0.64,width:width * 0.14,height:height * 0.16,r:2,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width * 0.14,0),colors:['#8a8a8a','#c0c0c0','#8a8a8a']})}),_jsx(RoundedRect,{x:-width * 0.04,y:height * 0.68,width:width * 0.08,height:height * 0.08,r:1,color:"#4a4a4a"}),_jsx(RoundedRect,{x:width * 0.89,y:height * 0.61,width:width * 0.2,height:height * 0.22,r:3,color:"#ffffff"}),_jsx(RoundedRect,{x:width * 0.9,y:height * 0.62,width:width * 0.18,height:height * 0.2,r:3,color:"#000000"}),_jsx(RoundedRect,{x:width * 0.92,y:height * 0.64,width:width * 0.14,height:height * 0.16,r:2,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width * 0.14,0),colors:['#8a8a8a','#c0c0c0','#8a8a8a']})}),_jsx(RoundedRect,{x:width * 0.96,y:height * 0.68,width:width * 0.08,height:height * 0.08,r:1,color:"#4a4a4a"}),_jsx(RoundedRect,{x:-width * 0.05,y:height * 0.4,width:width * 0.12,height:height * 0.08,r:2,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width * 0.12,0),colors:[adjustBrightness(color,-20),color]})}),_jsx(RoundedRect,{x:width * 0.93,y:height * 0.4,width:width * 0.12,height:height * 0.08,r:2,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width * 0.12,0),colors:[color,adjustBrightness(color,-20)]})}),_jsx(Circle,{cx:width * 0.2,cy:height * 0.06,r:width * 0.1,color:isPlayer ? '#ffff99':'#ffffcc'}),_jsx(Circle,{cx:width * 0.8,cy:height * 0.06,r:width * 0.1,color:isPlayer ? '#ffff99':'#ffffcc'}),_jsx(Circle,{cx:width * 0.2,cy:height * 0.06,r:width * 0.06,color:isPlayer ? '#ffffff':'#ffffe0'}),_jsx(Circle,{cx:width * 0.8,cy:height * 0.06,r:width * 0.06,color:isPlayer ? '#ffffff':'#ffffe0'}),_jsx(RoundedRect,{x:width * 0.12,y:height * 0.94,width:width * 0.15,height:height * 0.05,r:2,color:"#ff3333"}),_jsx(RoundedRect,{x:width * 0.73,y:height * 0.94,width:width * 0.15,height:height * 0.05,r:2,color:"#ff3333"}),_jsx(Rect,{x:width * 0.45,y:height * 0.12,width:width * 0.1,height:height * 0.22,color:"rgba(255,255,255,0.15)"}),_jsx(RoundedRect,{x:width * 0.2,y:height * 0.46,width:width * 0.6,height:height * 0.06,r:3,color:"rgba(255,255,255,0.25)"}),_jsx(Rect,{x:width * 0.38,y:height * 0.42,width:width * 0.02,height:height * 0.22,color:"rgba(0,0,0,0.3)"}),_jsx(Rect,{x:width * 0.6,y:height * 0.42,width:width * 0.02,height:height * 0.22,color:"rgba(0,0,0,0.3)"})]})});});CarComponent.displayName = 'CarComponent';const arePropsEqual =(prevProps,nextProps)=>{return prevProps.x === nextProps.x && prevProps.y === nextProps.y && prevProps.width === nextProps.width && prevProps.height === nextProps.height && prevProps.color === nextProps.color && prevProps.isPlayer === nextProps.isPlayer;};export const MemoizedCarComponent = React.memo(CarComponent,arePropsEqual);function adjustBrightness(color,amount){const hex = color.replace('#','');const r = Math.max(0,Math.min(255,parseInt(hex.substring(0,2),16)+ amount));const g = Math.max(0,Math.min(255,parseInt(hex.substring(2,4),16)+ amount));const b = Math.max(0,Math.min(255,parseInt(hex.substring(4,6),16)+ amount));return `#${r.toString(16).padStart(2,'0')}${g.toString(16).padStart(2,'0')}${b.toString(16).padStart(2,'0')}`;}
1
+ "use strict";import r,{useMemo as t}from"react";import{View as h}from"react-native";import{Canvas as o,RoundedRect as i,Rect as c,Circle as e,LinearGradient as a,vec as l}from"@shopify/react-native-skia";import n,{useAnimatedStyle as d,withSpring as s}from"react-native-reanimated";import{jsx as g,Fragment as f,jsxs as y}from"react/jsx-runtime";const x=new Map;function w(r){if(x.has(r))return x.get(r);const t={dark30:m(r,-30),dark40:m(r,-40),dark15:m(r,-15),dark20:m(r,-20),light10:m(r,10)};return x.set(r,t),t}function m(r,t){const h=r.replace("#",""),o=Math.max(0,Math.min(255,parseInt(h.substring(0,2),16)+t)),i=Math.max(0,Math.min(255,parseInt(h.substring(2,4),16)+t)),c=Math.max(0,Math.min(255,parseInt(h.substring(4,6),16)+t));return`#${o.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}${c.toString(16).padStart(2,"0")}`}const p=r.memo(({width:r,height:t,color:h,colors:n,isPlayer:d})=>y(o,{style:{width:r,height:t},children:[g(i,{x:.01*r,y:.11*t,width:.18*r,height:.18*t,r:4,color:"#ffffff"}),g(i,{x:.81*r,y:.11*t,width:.18*r,height:.18*t,r:4,color:"#ffffff"}),g(i,{x:.01*r,y:.69*t,width:.18*r,height:.18*t,r:4,color:"#ffffff"}),g(i,{x:.81*r,y:.69*t,width:.18*r,height:.18*t,r:4,color:"#ffffff"}),g(i,{x:.02*r,y:.12*t,width:.16*r,height:.16*t,r:3,color:"#111111"}),g(i,{x:.82*r,y:.12*t,width:.16*r,height:.16*t,r:3,color:"#111111"}),g(i,{x:.02*r,y:.7*t,width:.16*r,height:.16*t,r:3,color:"#111111"}),g(i,{x:.82*r,y:.7*t,width:.16*r,height:.16*t,r:3,color:"#111111"}),g(e,{cx:.1*r,cy:.2*t,r:.05*r,color:"#c0c0c0"}),g(e,{cx:.9*r,cy:.2*t,r:.05*r,color:"#c0c0c0"}),g(e,{cx:.1*r,cy:.78*t,r:.05*r,color:"#c0c0c0"}),g(e,{cx:.9*r,cy:.78*t,r:.05*r,color:"#c0c0c0"}),g(i,{x:.1*r,y:.06*t,width:.8*r,height:.88*t,r:6,children:g(a,{start:l(0,0),end:l(r,.5*t),colors:[n.light10,h,n.dark20]})}),g(i,{x:.14*r,y:.02*t,width:.72*r,height:.08*t,r:4,color:n.dark30}),g(i,{x:.28*r,y:.04*t,width:.44*r,height:.04*t,r:2,color:"#1a1a1a"}),g(i,{x:.16*r,y:.03*t,width:.1*r,height:.05*t,r:2,color:"#ffffff"}),g(i,{x:.74*r,y:.03*t,width:.1*r,height:.05*t,r:2,color:"#ffffff"}),d&&y(f,{children:[g(e,{cx:.21*r,cy:.055*t,r:.03*r,color:"rgba(255, 255, 200, 0.9)"}),g(e,{cx:.79*r,cy:.055*t,r:.03*r,color:"rgba(255, 255, 200, 0.9)"})]}),g(i,{x:.16*r,y:.1*t,width:.68*r,height:.2*t,r:3,children:g(a,{start:l(.34*r,0),end:l(.34*r,.2*t),colors:[n.light10,h]})}),g(c,{x:.44*r,y:.11*t,width:.12*r,height:.16*t,color:"rgba(255, 255, 255, 0.15)"}),g(i,{x:.2*r,y:.28*t,width:.6*r,height:.12*t,r:3,color:"rgba(50, 100, 150, 0.85)"}),g(i,{x:.22*r,y:.29*t,width:.2*r,height:.04*t,r:2,color:"rgba(255, 255, 255, 0.2)"}),g(i,{x:.16*r,y:.38*t,width:.68*r,height:.24*t,r:4,children:g(a,{start:l(0,0),end:l(r,0),colors:[n.dark15,h,n.dark15]})}),g(i,{x:.26*r,y:.4*t,width:.48*r,height:.03*t,r:2,color:"rgba(255, 255, 255, 0.25)"}),g(i,{x:.18*r,y:.42*t,width:.16*r,height:.16*t,r:2,color:"rgba(40, 80, 120, 0.8)"}),g(i,{x:.66*r,y:.42*t,width:.16*r,height:.16*t,r:2,color:"rgba(40, 80, 120, 0.8)"}),g(c,{x:.48*r,y:.4*t,width:.04*r,height:.22*t,color:n.dark30}),g(i,{x:.22*r,y:.6*t,width:.56*r,height:.08*t,r:3,color:"rgba(50, 100, 150, 0.85)"}),g(i,{x:.16*r,y:.66*t,width:.68*r,height:.18*t,r:4,children:g(a,{start:l(.34*r,0),end:l(.34*r,.18*t),colors:[h,n.dark15]})}),d&&g(i,{x:.2*r,y:.83*t,width:.6*r,height:.025*t,r:1,color:n.dark30}),g(i,{x:.14*r,y:.84*t,width:.72*r,height:.06*t,r:3,color:n.dark30}),g(i,{x:.16*r,y:.85*t,width:.16*r,height:.04*t,r:2,color:"#ff3333"}),g(i,{x:.68*r,y:.85*t,width:.16*r,height:.04*t,r:2,color:"#ff3333"}),g(e,{cx:.38*r,cy:.92*t,r:.025*r,color:"#2a2a2a"}),g(e,{cx:.62*r,cy:.92*t,r:.025*r,color:"#2a2a2a"}),g(i,{x:.04*r,y:.36*t,width:.08*r,height:.05*t,r:2,color:n.dark20}),g(i,{x:.88*r,y:.36*t,width:.08*r,height:.05*t,r:2,color:n.dark20}),g(c,{x:.14*r,y:.5*t,width:.72*r,height:.008*t,color:"rgba(255, 255, 255, 0.12)"})]}));p.displayName="CarCanvas";const b=r.memo(({x:r,y:h,width:o,height:i,color:c})=>{const e=t(()=>w(c),[c]),a=d(()=>({transform:[{translateX:s(r,{damping:20,stiffness:200,mass:.5})},{translateY:h}]}),[r,h]);return g(n.View,{style:[{position:"absolute",width:o,height:i},a],children:g(p,{width:o,height:i,color:c,colors:e,isPlayer:!0})})});b.displayName="PlayerCarComponent";const C=r.memo(({x:r,y:o,width:i,height:c,color:e})=>{const a=t(()=>w(e),[e]);return g(h,{style:{position:"absolute",width:i,height:c,transform:[{translateX:r},{translateY:o}]},children:g(p,{width:i,height:c,color:e,colors:a,isPlayer:!1})})});C.displayName="ObstacleCarComponent";export const CarComponent=r.memo(({x:r,y:t,width:h,height:o,color:i,isPlayer:c=!1})=>g(c?b:C,{x:r,y:t,width:h,height:o,color:i}));CarComponent.displayName="CarComponent";