react-native-games 1.1.0 → 1.3.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 (419) hide show
  1. package/README.md +101 -30
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -167
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -182
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +1 -318
  7. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -183
  8. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +1 -237
  9. package/lib/module/games/balloon-blaster/components/GameArea.js +1 -156
  10. package/lib/module/games/balloon-blaster/components/GameBackground.js +1 -476
  11. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +1 -112
  12. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  13. package/lib/module/games/balloon-blaster/components/index.js +1 -7
  14. package/lib/module/games/bike-racing/BikeRacing.js +1 -0
  15. package/lib/module/games/bike-racing/BikeRacing.js.map +1 -0
  16. package/lib/module/games/bike-racing/BikeRacingConstants.js +1 -0
  17. package/lib/module/games/bike-racing/BikeRacingConstants.js.map +1 -0
  18. package/lib/module/games/bike-racing/BikeRacingService.js +1 -0
  19. package/lib/module/games/bike-racing/BikeRacingService.js.map +1 -0
  20. package/lib/module/games/bike-racing/BikeRacingStore.js +1 -0
  21. package/lib/module/games/bike-racing/BikeRacingStore.js.map +1 -0
  22. package/lib/module/games/bike-racing/components/BikeComponent.js +1 -0
  23. package/lib/module/games/bike-racing/components/BikeComponent.js.map +1 -0
  24. package/lib/module/games/bike-racing/components/GameBackground.js +1 -0
  25. package/lib/module/games/bike-racing/components/GameBackground.js.map +1 -0
  26. package/lib/module/games/bike-racing/components/ScoreBoard.js +1 -0
  27. package/lib/module/games/bike-racing/components/ScoreBoard.js.map +1 -0
  28. package/lib/module/games/bike-racing/components/index.js +1 -0
  29. package/lib/module/games/bike-racing/components/index.js.map +1 -0
  30. package/lib/module/games/bike-racing/index.js +1 -0
  31. package/lib/module/games/bike-racing/index.js.map +1 -0
  32. package/lib/module/games/block-blast/BlockBlast.js +1 -0
  33. package/lib/module/games/block-blast/BlockBlast.js.map +1 -0
  34. package/lib/module/games/block-blast/BlockBlastConstants.js +1 -0
  35. package/lib/module/games/block-blast/BlockBlastConstants.js.map +1 -0
  36. package/lib/module/games/block-blast/BlockBlastService.js +1 -0
  37. package/lib/module/games/block-blast/BlockBlastService.js.map +1 -0
  38. package/lib/module/games/block-blast/BlockBlastStore.js +1 -0
  39. package/lib/module/games/block-blast/BlockBlastStore.js.map +1 -0
  40. package/lib/module/games/block-blast/components/BlockPieceComponent.js +1 -0
  41. package/lib/module/games/block-blast/components/BlockPieceComponent.js.map +1 -0
  42. package/lib/module/games/block-blast/components/GameArea.js +1 -0
  43. package/lib/module/games/block-blast/components/GameArea.js.map +1 -0
  44. package/lib/module/games/block-blast/components/GameBackground.js +1 -0
  45. package/lib/module/games/block-blast/components/GameBackground.js.map +1 -0
  46. package/lib/module/games/block-blast/components/GridComponent.js +1 -0
  47. package/lib/module/games/block-blast/components/GridComponent.js.map +1 -0
  48. package/lib/module/games/block-blast/components/ScoreBoard.js +1 -0
  49. package/lib/module/games/block-blast/components/ScoreBoard.js.map +1 -0
  50. package/lib/module/games/block-blast/components/index.js +1 -0
  51. package/lib/module/games/block-blast/components/index.js.map +1 -0
  52. package/lib/module/games/block-blast/index.js +1 -0
  53. package/lib/module/games/block-blast/index.js.map +1 -0
  54. package/lib/module/games/bubble-shooter/BubbleShooter.js +1 -0
  55. package/lib/module/games/bubble-shooter/BubbleShooter.js.map +1 -0
  56. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js +1 -0
  57. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js.map +1 -0
  58. package/lib/module/games/bubble-shooter/BubbleShooterService.js +1 -0
  59. package/lib/module/games/bubble-shooter/BubbleShooterService.js.map +1 -0
  60. package/lib/module/games/bubble-shooter/BubbleShooterStore.js +1 -0
  61. package/lib/module/games/bubble-shooter/BubbleShooterStore.js.map +1 -0
  62. package/lib/module/games/bubble-shooter/components/GameArea.js +1 -0
  63. package/lib/module/games/bubble-shooter/components/GameArea.js.map +1 -0
  64. package/lib/module/games/bubble-shooter/components/GameBackground.js +1 -0
  65. package/lib/module/games/bubble-shooter/components/GameBackground.js.map +1 -0
  66. package/lib/module/games/bubble-shooter/components/ScoreBoard.js +1 -0
  67. package/lib/module/games/bubble-shooter/components/ScoreBoard.js.map +1 -0
  68. package/lib/module/games/bubble-shooter/components/index.js +1 -0
  69. package/lib/module/games/bubble-shooter/components/index.js.map +1 -0
  70. package/lib/module/games/bubble-shooter/index.js +1 -0
  71. package/lib/module/games/bubble-shooter/index.js.map +1 -0
  72. package/lib/module/games/candy-crush/CandyCrush.js +1 -131
  73. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -1
  74. package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -125
  75. package/lib/module/games/candy-crush/CandyCrushConstants.js.map +1 -1
  76. package/lib/module/games/candy-crush/CandyCrushService.js +1 -370
  77. package/lib/module/games/candy-crush/CandyCrushStore.js +1 -303
  78. package/lib/module/games/candy-crush/components/CandyItem.js +1 -191
  79. package/lib/module/games/candy-crush/components/GameBackground.js +1 -85
  80. package/lib/module/games/candy-crush/components/GameGrid.js +1 -314
  81. package/lib/module/games/candy-crush/components/ScoreBoard.js +1 -79
  82. package/lib/module/games/candy-crush/components/index.js +1 -7
  83. package/lib/module/games/candy-crush/index.js +1 -6
  84. package/lib/module/games/car-racing/CarRacing.js +1 -0
  85. package/lib/module/games/car-racing/CarRacing.js.map +1 -0
  86. package/lib/module/games/car-racing/CarRacingConstants.js +1 -0
  87. package/lib/module/games/car-racing/CarRacingConstants.js.map +1 -0
  88. package/lib/module/games/car-racing/CarRacingService.js +1 -0
  89. package/lib/module/games/car-racing/CarRacingService.js.map +1 -0
  90. package/lib/module/games/car-racing/CarRacingStore.js +1 -0
  91. package/lib/module/games/car-racing/CarRacingStore.js.map +1 -0
  92. package/lib/module/games/car-racing/components/CarComponent.js +1 -0
  93. package/lib/module/games/car-racing/components/CarComponent.js.map +1 -0
  94. package/lib/module/games/car-racing/components/GameBackground.js +1 -0
  95. package/lib/module/games/car-racing/components/GameBackground.js.map +1 -0
  96. package/lib/module/games/car-racing/components/ScoreBoard.js +1 -0
  97. package/lib/module/games/car-racing/components/ScoreBoard.js.map +1 -0
  98. package/lib/module/games/car-racing/components/index.js +1 -0
  99. package/lib/module/games/car-racing/components/index.js.map +1 -0
  100. package/lib/module/games/colors-sort/ColorsSort.js +1 -143
  101. package/lib/module/games/colors-sort/ColorsSort.js.map +1 -1
  102. package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -72
  103. package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -1
  104. package/lib/module/games/colors-sort/ColorsSortService.js +1 -255
  105. package/lib/module/games/colors-sort/ColorsSortStore.js +1 -257
  106. package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -1
  107. package/lib/module/games/colors-sort/components/ColorContainer.js +1 -140
  108. package/lib/module/games/colors-sort/components/GameBackground.js +1 -135
  109. package/lib/module/games/colors-sort/components/ScoreBoard.js +1 -70
  110. package/lib/module/games/colors-sort/components/index.js +1 -6
  111. package/lib/module/games/dino-jump/DinoJump.js +1 -209
  112. package/lib/module/games/dino-jump/DinoJump.js.map +1 -1
  113. package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -189
  114. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -1
  115. package/lib/module/games/dino-jump/DinoJumpService.js +1 -270
  116. package/lib/module/games/dino-jump/DinoJumpStore.js +1 -381
  117. package/lib/module/games/dino-jump/components/DinoSprite.js +1 -418
  118. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -1
  119. package/lib/module/games/dino-jump/components/GameArea.js +1 -68
  120. package/lib/module/games/dino-jump/components/GameBackground.js +1 -444
  121. package/lib/module/games/dino-jump/components/ObstacleSprite.js +1 -306
  122. package/lib/module/games/dino-jump/components/ScoreBoard.js +1 -105
  123. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -1
  124. package/lib/module/games/dino-jump/components/StarSprite.js +1 -45
  125. package/lib/module/games/dino-jump/components/index.js +1 -9
  126. package/lib/module/games/flappy-bird/FlappyBird.js +1 -126
  127. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -1
  128. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -90
  129. package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -1
  130. package/lib/module/games/flappy-bird/FlappyBirdStore.js +1 -300
  131. package/lib/module/games/flappy-bird/components/Bird.js +1 -87
  132. package/lib/module/games/flappy-bird/components/GameArea.js +1 -87
  133. package/lib/module/games/flappy-bird/components/GameBackground.js +1 -79
  134. package/lib/module/games/flappy-bird/components/Pipes.js +1 -172
  135. package/lib/module/games/flappy-bird/components/ScoreBoard.js +1 -73
  136. package/lib/module/games/flappy-bird/components/index.js +1 -8
  137. package/lib/module/games/fruit-merger/FruitMerger.js +1 -120
  138. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -1
  139. package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -119
  140. package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -1
  141. package/lib/module/games/fruit-merger/FruitMergerService.js +1 -13
  142. package/lib/module/games/fruit-merger/FruitMergerStore.js +1 -315
  143. package/lib/module/games/fruit-merger/components/FruitItem.js +1 -102
  144. package/lib/module/games/fruit-merger/components/GameArea.js +1 -103
  145. package/lib/module/games/fruit-merger/components/GameBackground.js +1 -498
  146. package/lib/module/games/fruit-merger/components/ScoreBoard.js +1 -58
  147. package/lib/module/games/fruit-merger/components/index.js +1 -7
  148. package/lib/module/games/fruit-ninja/FruitNinja.js +1 -134
  149. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  150. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -148
  151. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  152. package/lib/module/games/fruit-ninja/FruitNinjaService.js +1 -311
  153. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -191
  154. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  155. package/lib/module/games/fruit-ninja/components/FruitComponent.js +1 -99
  156. package/lib/module/games/fruit-ninja/components/GameArea.js +1 -215
  157. package/lib/module/games/fruit-ninja/components/GameBackground.js +1 -1267
  158. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +1 -92
  159. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  160. package/lib/module/games/fruit-ninja/components/index.js +1 -7
  161. package/lib/module/games/game-2048/Game2048.js +1 -149
  162. package/lib/module/games/game-2048/Game2048.js.map +1 -1
  163. package/lib/module/games/game-2048/Game2048Constants.js +1 -263
  164. package/lib/module/games/game-2048/Game2048Constants.js.map +1 -1
  165. package/lib/module/games/game-2048/Game2048Service.js +1 -457
  166. package/lib/module/games/game-2048/Game2048Store.js +1 -236
  167. package/lib/module/games/game-2048/components/GameBackground.js +1 -247
  168. package/lib/module/games/game-2048/components/GameGrid.js +1 -139
  169. package/lib/module/games/game-2048/components/GameTile.js +1 -72
  170. package/lib/module/games/game-2048/components/ScoreBoard.js +1 -52
  171. package/lib/module/games/game-2048/components/index.js +1 -7
  172. package/lib/module/games/maze-runner/MazeRunner.js +1 -267
  173. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  174. package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -100
  175. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  176. package/lib/module/games/maze-runner/MazeRunnerService.js +1 -586
  177. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +1 -150
  178. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +1 -370
  179. package/lib/module/games/maze-runner/components/GameBackground.js +1 -175
  180. package/lib/module/games/maze-runner/components/ScoreBoard.js +1 -61
  181. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +1 -209
  182. package/lib/module/games/maze-runner/components/StaticGameBackground.js +1 -169
  183. package/lib/module/games/maze-runner/components/WallComponent.js +1 -91
  184. package/lib/module/games/maze-runner/components/index.js +1 -8
  185. package/lib/module/games/perfect-circle/PerfectCircle.js +1 -0
  186. package/lib/module/games/perfect-circle/PerfectCircle.js.map +1 -0
  187. package/lib/module/games/perfect-circle/PerfectCircleConstants.js +1 -0
  188. package/lib/module/games/perfect-circle/PerfectCircleConstants.js.map +1 -0
  189. package/lib/module/games/perfect-circle/PerfectCircleService.js +1 -0
  190. package/lib/module/games/perfect-circle/PerfectCircleService.js.map +1 -0
  191. package/lib/module/games/perfect-circle/PerfectCircleStore.js +1 -0
  192. package/lib/module/games/perfect-circle/PerfectCircleStore.js.map +1 -0
  193. package/lib/module/games/perfect-circle/components/DrawingCanvas.js +1 -0
  194. package/lib/module/games/perfect-circle/components/DrawingCanvas.js.map +1 -0
  195. package/lib/module/games/perfect-circle/components/GameBackground.js +1 -0
  196. package/lib/module/games/perfect-circle/components/GameBackground.js.map +1 -0
  197. package/lib/module/games/perfect-circle/components/ScoreBoard.js +1 -0
  198. package/lib/module/games/perfect-circle/components/ScoreBoard.js.map +1 -0
  199. package/lib/module/games/perfect-circle/index.js +1 -0
  200. package/lib/module/games/perfect-circle/index.js.map +1 -0
  201. package/lib/module/games/popit-fidget/PopitFidget.js +1 -285
  202. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  203. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -113
  204. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -1
  205. package/lib/module/games/popit-fidget/PopitFidgetService.js +1 -132
  206. package/lib/module/games/popit-fidget/PopitFidgetStore.js +1 -125
  207. package/lib/module/games/popit-fidget/components/BubbleComponent.js +1 -198
  208. package/lib/module/games/popit-fidget/components/FidgetGrid.js +1 -165
  209. package/lib/module/games/popit-fidget/components/GameBackground.js +1 -177
  210. package/lib/module/games/popit-fidget/components/ScoreBoard.js +1 -61
  211. package/lib/module/games/popit-fidget/components/index.js +1 -7
  212. package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -159
  213. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -1
  214. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -207
  215. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js.map +1 -1
  216. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +1 -248
  217. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +1 -274
  218. package/lib/module/games/sliding-numbers/components/GameBackground.js +1 -259
  219. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +1 -174
  220. package/lib/module/games/sliding-numbers/components/NumbersTile.js +1 -116
  221. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +1 -64
  222. package/lib/module/games/sliding-numbers/components/index.js +1 -7
  223. package/lib/module/games/snake/Snake.js +1 -189
  224. package/lib/module/games/snake/Snake.js.map +1 -1
  225. package/lib/module/games/snake/SnakeConstants.js +1 -138
  226. package/lib/module/games/snake/SnakeConstants.js.map +1 -1
  227. package/lib/module/games/snake/SnakeService.js +1 -148
  228. package/lib/module/games/snake/SnakeStore.js +1 -182
  229. package/lib/module/games/snake/SnakeStore.js.map +1 -1
  230. package/lib/module/games/snake/components/GameBackground.js +1 -221
  231. package/lib/module/games/snake/components/GameGrid.js +1 -153
  232. package/lib/module/games/snake/components/ScoreBoard.js +1 -51
  233. package/lib/module/games/snake/components/ScoreBoard.js.map +1 -1
  234. package/lib/module/games/snake/components/index.js +1 -6
  235. package/lib/module/games/snake/index.js +1 -6
  236. package/lib/module/games/space-fighter/SpaceFighter.js +1 -165
  237. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  238. package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -108
  239. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  240. package/lib/module/games/space-fighter/SpaceFighterService.js +1 -326
  241. package/lib/module/games/space-fighter/SpaceFighterStore.js +1 -209
  242. package/lib/module/games/space-fighter/components/AsteroidComponent.js +1 -113
  243. package/lib/module/games/space-fighter/components/GameArea.js +1 -289
  244. package/lib/module/games/space-fighter/components/GameBackground.js +1 -239
  245. package/lib/module/games/space-fighter/components/ScoreBoard.js +1 -136
  246. package/lib/module/games/space-fighter/components/Spacecraft3D.js +1 -202
  247. package/lib/module/games/space-fighter/components/SpacecraftPath.js +1 -52
  248. package/lib/module/games/space-fighter/components/index.js +1 -9
  249. package/lib/module/games/whack-a-mole/WhackAMole.js +1 -270
  250. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  251. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -115
  252. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  253. package/lib/module/games/whack-a-mole/WhackAMoleService.js +1 -120
  254. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -172
  255. package/lib/module/games/whack-a-mole/components/GameBackground.js +1 -477
  256. package/lib/module/games/whack-a-mole/components/GameGrid.js +1 -97
  257. package/lib/module/games/whack-a-mole/components/GameHole.js +1 -196
  258. package/lib/module/games/whack-a-mole/components/MoleCharacter.js +1 -241
  259. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +1 -67
  260. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  261. package/lib/module/games/whack-a-mole/components/index.js +1 -8
  262. package/lib/module/helpers/AnimationFrame.js +1 -120
  263. package/lib/module/helpers/AnimationTracker.js +1 -89
  264. package/lib/module/helpers/ErrorHandler.js +1 -269
  265. package/lib/module/helpers/GameControlButton.js +1 -219
  266. package/lib/module/helpers/GameOverModal.js +1 -144
  267. package/lib/module/helpers/GameOverModal.js.map +1 -1
  268. package/lib/module/helpers/GameSettingsModal.js +1 -287
  269. package/lib/module/helpers/GameSettingsModal.js.map +1 -1
  270. package/lib/module/helpers/ParticleBlast.js +1 -134
  271. package/lib/module/helpers/ScoreBoardContainer.js +1 -34
  272. package/lib/module/helpers/ScoreBoardContainer.js.map +1 -1
  273. package/lib/module/helpers/index.js +1 -12
  274. package/lib/module/index.js +1 -22
  275. package/lib/module/index.js.map +1 -1
  276. package/lib/module/services/GamesConstants.js +1 -178
  277. package/lib/module/services/GamesConstants.js.map +1 -1
  278. package/lib/module/services/GamesService.js +1 -112
  279. package/lib/module/services/GamesService.js.map +1 -1
  280. package/lib/module/services/HapticsService.js +1 -77
  281. package/lib/module/services/ScoringService.js +1 -0
  282. package/lib/module/services/ScoringService.js.map +1 -0
  283. package/lib/module/services/SoundsService.js +1 -302
  284. package/lib/module/services/SoundsService.js.map +1 -1
  285. package/lib/module/services/UtilsService.js +1 -32
  286. package/lib/module/services/UtilsService.js.map +1 -1
  287. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  288. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +1 -1
  289. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  290. package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts +4 -0
  291. package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts.map +1 -0
  292. package/lib/typescript/src/games/bike-racing/BikeRacingConstants.d.ts +76 -0
  293. package/lib/typescript/src/games/bike-racing/BikeRacingConstants.d.ts.map +1 -0
  294. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts +22 -0
  295. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts.map +1 -0
  296. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts +72 -0
  297. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts.map +1 -0
  298. package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts +12 -0
  299. package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts.map +1 -0
  300. package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts +9 -0
  301. package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts.map +1 -0
  302. package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts +7 -0
  303. package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts.map +1 -0
  304. package/lib/typescript/src/games/bike-racing/components/index.d.ts +4 -0
  305. package/lib/typescript/src/games/bike-racing/components/index.d.ts.map +1 -0
  306. package/lib/typescript/src/games/bike-racing/index.d.ts +5 -0
  307. package/lib/typescript/src/games/bike-racing/index.d.ts.map +1 -0
  308. package/lib/typescript/src/games/block-blast/BlockBlast.d.ts +4 -0
  309. package/lib/typescript/src/games/block-blast/BlockBlast.d.ts.map +1 -0
  310. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts +82 -0
  311. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts.map +1 -0
  312. package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts +17 -0
  313. package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts.map +1 -0
  314. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts +62 -0
  315. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts.map +1 -0
  316. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts +14 -0
  317. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts.map +1 -0
  318. package/lib/typescript/src/games/block-blast/components/GameArea.d.ts +12 -0
  319. package/lib/typescript/src/games/block-blast/components/GameArea.d.ts.map +1 -0
  320. package/lib/typescript/src/games/block-blast/components/GameBackground.d.ts +7 -0
  321. package/lib/typescript/src/games/block-blast/components/GameBackground.d.ts.map +1 -0
  322. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts +17 -0
  323. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts.map +1 -0
  324. package/lib/typescript/src/games/block-blast/components/ScoreBoard.d.ts +7 -0
  325. package/lib/typescript/src/games/block-blast/components/ScoreBoard.d.ts.map +1 -0
  326. package/lib/typescript/src/games/block-blast/components/index.d.ts +6 -0
  327. package/lib/typescript/src/games/block-blast/components/index.d.ts.map +1 -0
  328. package/lib/typescript/src/games/block-blast/index.d.ts +5 -0
  329. package/lib/typescript/src/games/block-blast/index.d.ts.map +1 -0
  330. package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts +4 -0
  331. package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts.map +1 -0
  332. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts +61 -0
  333. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts.map +1 -0
  334. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts +26 -0
  335. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts.map +1 -0
  336. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts +62 -0
  337. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts.map +1 -0
  338. package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts +9 -0
  339. package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts.map +1 -0
  340. package/lib/typescript/src/games/bubble-shooter/components/GameBackground.d.ts +8 -0
  341. package/lib/typescript/src/games/bubble-shooter/components/GameBackground.d.ts.map +1 -0
  342. package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts +7 -0
  343. package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts.map +1 -0
  344. package/lib/typescript/src/games/bubble-shooter/components/index.d.ts +4 -0
  345. package/lib/typescript/src/games/bubble-shooter/components/index.d.ts.map +1 -0
  346. package/lib/typescript/src/games/bubble-shooter/index.d.ts +3 -0
  347. package/lib/typescript/src/games/bubble-shooter/index.d.ts.map +1 -0
  348. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts.map +1 -1
  349. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +7 -7
  350. package/lib/typescript/src/games/car-racing/CarRacing.d.ts +4 -0
  351. package/lib/typescript/src/games/car-racing/CarRacing.d.ts.map +1 -0
  352. package/lib/typescript/src/games/car-racing/CarRacingConstants.d.ts +76 -0
  353. package/lib/typescript/src/games/car-racing/CarRacingConstants.d.ts.map +1 -0
  354. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts +22 -0
  355. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts.map +1 -0
  356. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts +72 -0
  357. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts.map +1 -0
  358. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts +13 -0
  359. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts.map +1 -0
  360. package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts +9 -0
  361. package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts.map +1 -0
  362. package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts +7 -0
  363. package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts.map +1 -0
  364. package/lib/typescript/src/games/car-racing/components/index.d.ts +4 -0
  365. package/lib/typescript/src/games/car-racing/components/index.d.ts.map +1 -0
  366. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -1
  367. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -1
  368. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -1
  369. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -1
  370. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -1
  371. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -1
  372. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -1
  373. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -1
  374. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  375. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  376. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -1
  377. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  378. package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts +4 -0
  379. package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts.map +1 -0
  380. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts +81 -0
  381. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts.map +1 -0
  382. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts +14 -0
  383. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts.map +1 -0
  384. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts +40 -0
  385. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts.map +1 -0
  386. package/lib/typescript/src/games/perfect-circle/components/DrawingCanvas.d.ts +9 -0
  387. package/lib/typescript/src/games/perfect-circle/components/DrawingCanvas.d.ts.map +1 -0
  388. package/lib/typescript/src/games/perfect-circle/components/GameBackground.d.ts +8 -0
  389. package/lib/typescript/src/games/perfect-circle/components/GameBackground.d.ts.map +1 -0
  390. package/lib/typescript/src/games/perfect-circle/components/ScoreBoard.d.ts +7 -0
  391. package/lib/typescript/src/games/perfect-circle/components/ScoreBoard.d.ts.map +1 -0
  392. package/lib/typescript/src/games/perfect-circle/index.d.ts +3 -0
  393. package/lib/typescript/src/games/perfect-circle/index.d.ts.map +1 -0
  394. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  395. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -1
  396. package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -1
  397. package/lib/typescript/src/games/snake/SnakeStore.d.ts +4 -0
  398. package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -1
  399. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts.map +1 -1
  400. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  401. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  402. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +1 -1
  403. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
  404. package/lib/typescript/src/helpers/GameOverModal.d.ts +3 -0
  405. package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -1
  406. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts.map +1 -1
  407. package/lib/typescript/src/index.d.ts +6 -1
  408. package/lib/typescript/src/index.d.ts.map +1 -1
  409. package/lib/typescript/src/services/GamesConstants.d.ts +57 -7
  410. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  411. package/lib/typescript/src/services/GamesService.d.ts +2 -1
  412. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  413. package/lib/typescript/src/services/ScoringService.d.ts +2 -0
  414. package/lib/typescript/src/services/ScoringService.d.ts.map +1 -0
  415. package/lib/typescript/src/services/SoundsService.d.ts +88 -0
  416. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -1
  417. package/lib/typescript/src/services/UtilsService.d.ts +12 -1
  418. package/lib/typescript/src/services/UtilsService.d.ts.map +1 -1
  419. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","Dimensions","GestureDetector","Gesture","GestureHandlerRootView","useBikeRacingStore","useScore","useIsPlaying","useGameOver","useObstacles","usePlayerBike","useRoadOffset","useParticleEffects","useLives","BikeRacingService","GameBackground","BikeComponent","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","ParticleBlast","GAME_IDS","DEFAULT_GAME_SETTINGS","getDifficultySettings","BIKE_RACING_COLORS","BIKE_RACING_GAME_CONFIG","playSound","GAME_SOUNDS","playHaptic","HapticType","jsx","_jsx","jsxs","_jsxs","width","height","get","BikeRacing","settings","externalSettings","onSettingsChange","onEndGame","difficulty","soundEnabled","enableSounds","hapticEnabled","enableHaptics","offset","score","isPlaying","gameOver","lives","obstacles","playerBike","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_BIKE","effect","particleCount","colors","onComplete","gameId","BIKE_RACING","create","flex","backgroundColor"],"sourceRoot":"../../../../src","sources":["games/bike-racing/BikeRacing.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAC3D,SAASC,eAAe,EAAEC,OAAO,EAAEC,sBAAsB,QAAQ,8BAA8B;AAC/F,SACEC,kBAAkB,EAClBC,QAAQ,EACRC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,aAAa,EACbC,aAAa,EACbC,kBAAkB,EAClBC,QAAQ,QACH,sBAAmB;AAC1B,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,cAAc,EAAEC,aAAa,EAAEC,UAAU,QAAQ,uBAAc;AACxE,SAASC,iBAAiB,EAAEC,aAAa,EAAEC,iBAAiB,EAAEC,aAAa,QAAQ,wBAAe;AAClG,SAASC,QAAQ,EAAEC,qBAAqB,QAAQ,gCAA6B;AAC7E,SAASC,qBAAqB,EAAEC,kBAAkB,EAAEC,uBAAuB,QAAQ,0BAAuB;AAE1G,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,UAA+B,GAAGA,CAAC;EAAEC,QAAQ,EAAEC,gBAAgB,GAAGjB,qBAAqB;EAAEkB,gBAAgB;EAAEC;AAAU,CAAC,KAAK;EACtI;EACA,MAAMC,UAAU,GAAGH,gBAAgB,EAAEG,UAAU,IAAI,QAAQ;EAC3D,MAAMC,YAAY,GAAGJ,gBAAgB,EAAEK,YAAY,IAAI,IAAI;EAC3D,MAAMC,aAAa,GAAGN,gBAAgB,EAAEO,aAAa,IAAI,IAAI;EAC7D,MAAMC,MAAM,GAAGR,gBAAgB,EAAEQ,MAAM,IAAI,CAAC;;EAE5C;EACA,MAAMC,KAAK,GAAG3C,QAAQ,CAAC,CAAC;EACxB,MAAM4C,SAAS,GAAG3C,YAAY,CAAC,CAAC;EAChC,MAAM4C,QAAQ,GAAG3C,WAAW,CAAC,CAAC;EAC9B,MAAM4C,KAAK,GAAGvC,QAAQ,CAAC,CAAC;EACxB,MAAMwC,SAAS,GAAG5C,YAAY,CAAC,CAAC;EAChC,MAAM6C,UAAU,GAAG5C,aAAa,CAAC,CAAC;EAClC,MAAM6C,UAAU,GAAG5C,aAAa,CAAC,CAAC;EAClC,MAAM6C,eAAe,GAAG5C,kBAAkB,CAAC,CAAC;;EAE5C;EACA,MAAM6C,eAAe,GAAG3D,KAAK,CAAC4D,MAAM,CAAU,KAAK,CAAC;;EAEpD;EACA,MAAMC,aAAa,GAAG7D,KAAK,CAAC8D,WAAW,CAAEC,MAAiC,IAAK;IAC7E,IAAInB,SAAS,IAAI,CAACe,eAAe,CAACK,OAAO,EAAE;MACzCpB,SAAS,CAAC;QACRmB,MAAM;QACNZ,KAAK,EAAEA,KAAK,CAACc,QAAQ,CAAC;MACxB,CAAC,CAAC;MACFN,eAAe,CAACK,OAAO,GAAG,IAAI;IAChC;EACF,CAAC,EAAE,CAACpB,SAAS,EAAEO,KAAK,CAAC,CAAC;;EAEtB;EACA,MAAMe,SAAS,GAAGlE,KAAK,CAAC8D,WAAW,CACjC,CAACK,QAAiB,EAAEjB,MAAe,KAAK3C,kBAAkB,CAAC6D,QAAQ,CAAC,CAAC,CAACF,SAAS,CAACC,QAAQ,EAAEjB,MAAM,CAAC,EACjG,EACF,CAAC;EACD,MAAMmB,QAAQ,GAAGrE,KAAK,CAAC8D,WAAW,CAChC,MAAMvD,kBAAkB,CAAC6D,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAC9C,EACF,CAAC;EACD,MAAMC,SAAS,GAAGtE,KAAK,CAAC8D,WAAW,CACjC,MAAMvD,kBAAkB,CAAC6D,QAAQ,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC,EAC/C,EACF,CAAC;;EAED;EACA,MAAMC,sBAAsB,GAAGvE,KAAK,CAAC8D,WAAW,CAAEU,QAAgB,IAAK;IACrEjE,kBAAkB,CAAC6D,QAAQ,CAAC,CAAC,CAACK,oBAAoB,CAACD,QAAQ,CAAC;EAC9D,CAAC,EAAE,EAAE,CAAC;;EAGN;EACA,MAAME,kBAAkB,GAAG1E,KAAK,CAAC2E,OAAO,CACtC,MAAMjD,qBAAqB,CAACmB,UAAU,CAAC,EACvC,CAACA,UAAU,CACb,CAAC;;EAED;EACA,MAAM+B,WAAW,GAAG5E,KAAK,CAAC2E,OAAO,CAC/B,MAAM,IAAI3D,iBAAiB,CAAC0D,kBAAkB,CAACG,SAAS,EAAEH,kBAAkB,CAACI,qBAAqB,CAAC,EACnG,CAACJ,kBAAkB,CAACG,SAAS,EAAEH,kBAAkB,CAACI,qBAAqB,CACzE,CAAC;;EAED;EACA9E,KAAK,CAAC+E,SAAS,CAAC,MAAM;IACpBxE,kBAAkB,CAAC6D,QAAQ,CAAC,CAAC,CAACY,SAAS,CAAC9B,MAAM,CAAC;EACjD,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;;EAEZ;EACAlD,KAAK,CAAC+E,SAAS,CAAC,MAAM;IACpB,MAAME,eAAe,GAAGA,CAAA,KAAM;MAC5BpD,SAAS,CAACC,WAAW,CAACoD,UAAU,CAACC,KAAK,EAAErC,YAAY,CAAC;MACrDf,UAAU,CAACC,UAAU,CAACoD,KAAK,EAAEpC,aAAa,CAAC;IAC7C,CAAC;IAED,MAAMqC,UAAU,GAAGA,CAAA,KAAM;MACvBxD,SAAS,CAACC,WAAW,CAACoD,UAAU,CAACI,IAAI,EAAExC,YAAY,CAAC;MACpDf,UAAU,CAACC,UAAU,CAACuD,KAAK,EAAEvC,aAAa,CAAC;IAC7C,CAAC;IAED4B,WAAW,CAACY,YAAY,CAACP,eAAe,EAAEI,UAAU,CAAC;EACvD,CAAC,EAAE,CAACT,WAAW,EAAE9B,YAAY,EAAEE,aAAa,CAAC,CAAC;;EAE9C;EACAhD,KAAK,CAAC+E,SAAS,CAAC,MAAM;IACpB,IAAI,CAAC3B,SAAS,EAAE;IAEhB,MAAMqC,KAAK,GAAGC,WAAW,CAAC,MAAM;MAC9BnF,kBAAkB,CAAC6D,QAAQ,CAAC,CAAC,CAACuB,aAAa,CAAC,CAAC;IAC/C,CAAC,EAAE,IAAI,CAAC;IAER,OAAO,MAAMC,aAAa,CAACH,KAAK,CAAC;EACnC,CAAC,EAAE,CAACrC,SAAS,CAAC,CAAC;;EAGf;EACApD,KAAK,CAAC+E,SAAS,CAAC,MAAM;IACpB,IAAI1B,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;EACA7D,KAAK,CAAC+E,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACXH,WAAW,CAACiB,OAAO,CAAC,CAAC;MACrBxB,QAAQ,CAAC,CAAC;IACZ,CAAC;EACH,CAAC,EAAE,CAACO,WAAW,CAAC,CAAC;;EAEjB;EACA,MAAMkB,eAAe,GAAG9F,KAAK,CAAC8D,WAAW,CAAC,MAAM;IAC9CH,eAAe,CAACK,OAAO,GAAG,KAAK,CAAC,CAAC;IACjCE,SAAS,CAACQ,kBAAkB,CAACqB,YAAY,EAAE7C,MAAM,CAAC;IAClD0B,WAAW,CAACV,SAAS,CAAC,CAAC;IACvBrC,SAAS,CAACC,WAAW,CAACoD,UAAU,CAACc,KAAK,EAAElD,YAAY,CAAC;IACrDf,UAAU,CAACC,UAAU,CAACiE,OAAO,EAAEjD,aAAa,CAAC;EAC/C,CAAC,EAAE,CAACkB,SAAS,EAAEU,WAAW,EAAEF,kBAAkB,CAACqB,YAAY,EAAE7C,MAAM,EAAEJ,YAAY,EAAEE,aAAa,CAAC,CAAC;EAElG,MAAMkD,cAAc,GAAGlG,KAAK,CAAC8D,WAAW,CAAC,MAAM;IAC7CD,aAAa,CAAC,QAAQ,CAAC;IACvBQ,QAAQ,CAAC,CAAC;IACVO,WAAW,CAACP,QAAQ,CAAC,CAAC;EACxB,CAAC,EAAE,CAACA,QAAQ,EAAEO,WAAW,EAAEf,aAAa,CAAC,CAAC;EAE1C,MAAMsC,eAAe,GAAGnG,KAAK,CAAC8D,WAAW,CAAC,MAAM;IAC9CQ,SAAS,CAAC,CAAC;IACXM,WAAW,CAACiB,OAAO,CAAC,CAAC;EACvB,CAAC,EAAE,CAACvB,SAAS,EAAEM,WAAW,CAAC,CAAC;EAE5B,MAAMwB,eAAe,GAAGpG,KAAK,CAAC8D,WAAW,CAAC,MAAM;IAC9CqC,eAAe,CAAC,CAAC;IACjB;EACF,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;;EAErB;EACA,MAAME,eAAe,GAAGrG,KAAK,CAAC4D,MAAM,CAAS,CAAC,CAAC;;EAE/C;EACA,MAAM0C,UAAU,GAAGjG,OAAO,CAACkG,GAAG,CAAC,CAAC,CAC7BC,QAAQ,CAAEC,KAAK,IAAK;IACnB,IAAI,CAACrD,SAAS,EAAE;IAEhB,MAAMsD,SAAS,GAAG9E,uBAAuB,CAAC+E,UAAU,GAAG/E,uBAAuB,CAACgF,UAAU;IACzF,MAAMC,UAAU,GAAG,CAACxE,KAAK,GAAGqE,SAAS,IAAI,CAAC;IAC1C,MAAMI,SAAS,GAAGL,KAAK,CAACM,SAAS,GAAGF,UAAU;;IAE9C;IACA,MAAMG,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACJ,SAAS,GAAGlF,uBAAuB,CAAC+E,UAAU,CAAC;IACvE,MAAMQ,WAAW,GAAGF,IAAI,CAACG,GAAG,CAAC,CAAC,EAAEH,IAAI,CAACI,GAAG,CAACzF,uBAAuB,CAACgF,UAAU,GAAG,CAAC,EAAEI,IAAI,CAAC,CAAC;;IAEvF;IACA,IAAIG,WAAW,KAAKd,eAAe,CAACrC,OAAO,EAAE;MAC3CqC,eAAe,CAACrC,OAAO,GAAGmD,WAAW;MACrCtF,SAAS,CAACC,WAAW,CAACoD,UAAU,CAACoC,WAAW,EAAExE,YAAY,CAAC;MAC3Df,UAAU,CAACC,UAAU,CAACuF,SAAS,EAAEvE,aAAa,CAAC;IACjD;IAEA4B,WAAW,CAAC4C,gBAAgB,CAACL,WAAW,CAAC;EAC3C,CAAC,CAAC,CACDM,OAAO,CAAC,IAAI,CAAC;;EAEhB;EACA,MAAMC,sBAAsB,GAAG1H,KAAK,CAAC2E,OAAO,CAC1C,OAAO;IACLvB,SAAS;IACTC,QAAQ;IACRsE,WAAW,EAAE7B,eAAe;IAC5B8B,UAAU,EAAE1B,cAAc;IAC1B2B,gBAAgB,EAAElG,kBAAkB,CAACmG,EAAE;IACvCC,eAAe,EAAEpG,kBAAkB,CAACmG,EAAE;IACtCE,sBAAsB,EAAErG,kBAAkB,CAACmG,EAAE;IAC7CG,qBAAqB,EAAEtG,kBAAkB,CAACmG,EAAE;IAC5CI,eAAe,EAAE,cAAc;IAC/BC,cAAc,EAAE,WAAW;IAC3BC,kBAAkB,EAAE;EACtB,CAAC,CAAC,EACF,CAAChF,SAAS,EAAEC,QAAQ,EAAEyC,eAAe,EAAEI,cAAc,CACvD,CAAC;;EAED;EACA,MAAMmC,kBAAkB,GAAGrI,KAAK,CAAC2E,OAAO,CACtC,OAAO;IACL2D,SAAS,EAAEjF,QAAQ;IACnBF,KAAK;IACLoF,WAAW,EAAEnC,eAAe;IAC5BoC,UAAU,EAAE,aAAa;IACzBC,YAAY,EAAE,wBAAwB;IAAE;IACxCC,WAAW,EAAE,wBAAwB;IAAE;IACvCC,WAAW,EAAE,SAAS;IAAE;IACxBC,iBAAiB,EAAE,SAAS;IAAE;IAC9BC,eAAe,EAAElH,kBAAkB,CAACmG,EAAE,CAAE;EAC1C,CAAC,CAAC,EACF,CAACzE,QAAQ,EAAEF,KAAK,EAAEiD,eAAe,CACnC,CAAC;EAED,oBACElE,IAAA,CAAC5B,sBAAsB;IAACwI,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC9C7G,KAAA,CAACnC,IAAI;MAAC6I,KAAK,EAAEC,MAAM,CAACC,SAAU;MAAAC,QAAA,gBAE5B/G,IAAA,CAACjC,IAAI;QAAC6I,KAAK,EAAE5I,UAAU,CAACgJ,kBAAmB;QAAAD,QAAA,eACzC/G,IAAA,CAACjB,cAAc;UAACoB,KAAK,EAAEA,KAAM;UAACC,MAAM,EAAEA,MAAO;UAACmB,UAAU,EAAEA;QAAW,CAAE;MAAC,CACpE,CAAC,eAGPvB,IAAA,CAACf,UAAU;QAAC+B,MAAM,EAAEA;MAAO,CAAE,CAAC,eAG9BhB,IAAA,CAAC9B,eAAe;QAAC+I,OAAO,EAAE7C,UAAW;QAAA2C,QAAA,eACnC7G,KAAA,CAACnC,IAAI;UAAC6I,KAAK,EAAEC,MAAM,CAACK,QAAS;UAAAH,QAAA,GAE1B1F,SAAS,CAAC8F,GAAG,CAAEC,QAAQ,iBACtBpH,IAAA,CAAChB,aAAa;YAEZqI,CAAC,EAAED,QAAQ,CAACC,CAAE;YACdC,CAAC,EAAEF,QAAQ,CAACE,CAAE;YACdnH,KAAK,EAAEiH,QAAQ,CAACjH,KAAM;YACtBC,MAAM,EAAEgH,QAAQ,CAAChH,MAAO;YACxBmH,KAAK,EAAEH,QAAQ,CAACG,KAAM;YACtBC,QAAQ,EAAE;UAAM,GANXJ,QAAQ,CAACK,EAOf,CACF,CAAC,eAGFzH,IAAA,CAAChB,aAAa;YACZqI,CAAC,EAAE/F,UAAU,CAAC+F,CAAE;YAChBC,CAAC,EAAEhG,UAAU,CAACgG,CAAE;YAChBnH,KAAK,EAAEmB,UAAU,CAACnB,KAAM;YACxBC,MAAM,EAAEkB,UAAU,CAAClB,MAAO;YAC1BmH,KAAK,EAAE9H,kBAAkB,CAACiI,WAAY;YACtCF,QAAQ,EAAE;UAAK,CAChB,CAAC;QAAA,CACE;MAAC,CACQ,CAAC,EAGjBhG,eAAe,CAAC2F,GAAG,CAAEQ,MAAM,iBAC1B3H,IAAA,CAACX,aAAa;QAEZgI,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;QAC3E5F,QAAQ,EAAE,GAAI;QACd6F,UAAU,EAAEA,CAAA,KAAMzF,sBAAsB,CAACsF,MAAM,CAACF,EAAE;MAAE,GAN/CE,MAAM,CAACF,EAOb,CACF,CAAC,eAGFzH,IAAA,CAACd,iBAAiB;QAAA,GAAKsG;MAAsB,CAAG,CAAC,eAGjDxF,IAAA,CAACb,aAAa;QAAA,GAAKgH;MAAkB,CAAG,CAAC,eAEzCnG,IAAA,CAACZ,iBAAiB;QAChB2I,MAAM,EAAEzI,QAAQ,CAAC0I,WAAY;QAC7BzH,QAAQ,EAAEC,gBAAgB,IAAIjB,qBAAsB;QACpDkB,gBAAgB,EAAEA;MAAiB,CACpC,CAAC;IAAA,CACE;EAAC,CACe,CAAC;AAE7B,CAAC;AAED,MAAMoG,MAAM,GAAG7I,UAAU,CAACiK,MAAM,CAAC;EAC/BnB,SAAS,EAAE;IACToB,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB,CAAC;EACDjB,QAAQ,EAAE;IACRgB,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";export const BIKE_RACING_DIFFICULTY_CONFIG ={easy:{gameDuration:60,obstacleSpawnInterval:2500,roadSpeed:5},medium:{gameDuration:120,obstacleSpawnInterval:2000,roadSpeed:7},hard:{gameDuration:180,obstacleSpawnInterval:1500,roadSpeed:9}};export const getDifficultySettings = difficulty =>{return BIKE_RACING_DIFFICULTY_CONFIG[difficulty];};export const DEFAULT_BIKE_RACING_SETTINGS ={difficulty:'medium',soundEnabled:true,hapticEnabled:true,gameDuration:BIKE_RACING_DIFFICULTY_CONFIG.medium.gameDuration,obstacleSpawnInterval:BIKE_RACING_DIFFICULTY_CONFIG.medium.obstacleSpawnInterval,roadSpeed:BIKE_RACING_DIFFICULTY_CONFIG.medium.roadSpeed};export const BIKE_RACING_GAME_CONFIG ={GAME_DURATION:120,BIKE_WIDTH:40,BIKE_HEIGHT:70,OBSTACLE_WIDTH:40,OBSTACLE_HEIGHT:70,ROAD_LANES:3,LANE_WIDTH:90,ROAD_SPEED:7,OBSTACLE_SPAWN_INTERVAL:2000,COLLISION_TOLERANCE:5,POINTS_PER_OBSTACLE_PASSED:15,LANE_SWITCH_DURATION:150};export const BIKE_RACING_COLORS ={ROAD_DARK:'#1a1a1a',ROAD_LIGHT:'#2a2a2a',ROAD_LINE:'#ffff00',GRASS_GREEN:'#2d5016',GRASS_DARK:'#1a3009',SKY_BLUE:'#87ceeb',PLAYER_BIKE:'#ff6600',OBSTACLE_BIKE_1:'#0066ff',OBSTACLE_BIKE_2:'#00ff66',OBSTACLE_BIKE_3:'#ff00ff',SCORE:'#ffff00',UI:'#ff6600'};export const BIKE_RACING_THEME ={backgroundColor:'rgba(0,0,0,0.7)',headerBackgroundColor:'#ff6600',headerTextColor:'#ffffff',sectionBackgroundColor:'rgba(255,102,0,0.15)',sectionTitleColor:'#ff6600',buttonSelectedColor:'#ff6600',buttonUnselectedColor:'rgba(255,255,255,0.2)',buttonSelectedTextColor:'#ffffff',buttonUnselectedTextColor:'rgba(255,255,255,0.7)',switchTrackColorFalse:'rgba(255,102,0,0.3)',switchTrackColorTrue:'#ff6600',switchThumbColor:'#ffffff',infoTextColor:'rgba(255,255,255,0.9)'};export const BIKE_RACING_DIFFICULTY_DESCRIPTIONS ={easy:'1 min,slower traffic,casual ride',medium:'2 mins,normal traffic speed,balanced challenge',hard:'3 mins,fast traffic,expert riding skills!'};export const getLanePosition =(laneIndex,screenWidth)=>{const roadWidth = BIKE_RACING_GAME_CONFIG.LANE_WIDTH * BIKE_RACING_GAME_CONFIG.ROAD_LANES;const roadStartX =(screenWidth - roadWidth)/ 2;const laneCenterX = roadStartX + laneIndex * BIKE_RACING_GAME_CONFIG.LANE_WIDTH + BIKE_RACING_GAME_CONFIG.LANE_WIDTH / 2;return laneCenterX - BIKE_RACING_GAME_CONFIG.BIKE_WIDTH / 2;};
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BIKE_RACING_DIFFICULTY_CONFIG","easy","gameDuration","obstacleSpawnInterval","roadSpeed","medium","hard","getDifficultySettings","difficulty","DEFAULT_BIKE_RACING_SETTINGS","soundEnabled","hapticEnabled","BIKE_RACING_GAME_CONFIG","GAME_DURATION","BIKE_WIDTH","BIKE_HEIGHT","OBSTACLE_WIDTH","OBSTACLE_HEIGHT","ROAD_LANES","LANE_WIDTH","ROAD_SPEED","OBSTACLE_SPAWN_INTERVAL","COLLISION_TOLERANCE","POINTS_PER_OBSTACLE_PASSED","LANE_SWITCH_DURATION","BIKE_RACING_COLORS","ROAD_DARK","ROAD_LIGHT","ROAD_LINE","GRASS_GREEN","GRASS_DARK","SKY_BLUE","PLAYER_BIKE","OBSTACLE_BIKE_1","OBSTACLE_BIKE_2","OBSTACLE_BIKE_3","SCORE","UI","BIKE_RACING_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","BIKE_RACING_DIFFICULTY_DESCRIPTIONS","getLanePosition","laneIndex","screenWidth","roadWidth","roadStartX","laneCenterX"],"sourceRoot":"../../../../src","sources":["games/bike-racing/BikeRacingConstants.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import{Dimensions}from 'react-native';import{useBikeRacingStore}from "./BikeRacingStore.js";import{BIKE_RACING_GAME_CONFIG,BIKE_RACING_COLORS,getLanePosition}from "./BikeRacingConstants.js";const{width,height}= Dimensions.get('window');export class BikeRacingService{obstacleSpawnTimer = null;gameLoopTimer = null;obstacleIdCounter = 0;roadSpeed = BIKE_RACING_GAME_CONFIG.ROAD_SPEED;obstacleSpawnInterval = BIKE_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 = useBikeRacingStore.getState();const{obstacles,playerBike,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 > playerBike.y + playerBike.height){store.markObstaclePassed(obstacle.id);if(this.onPass){this.onPass();}}store.updateObstacle(obstacle.id,{y:newY});this.checkCollision(obstacle,playerBike);}}checkCollision(obstacle,playerBike){const store = useBikeRacingStore.getState();const cooldownTime = this.collisionCooldown.get(obstacle.id);if(cooldownTime && Date.now()- cooldownTime < 1000){return;}const tolerance = BIKE_RACING_GAME_CONFIG.COLLISION_TOLERANCE;const collision = playerBike.x < obstacle.x + obstacle.width - tolerance && playerBike.x + playerBike.width > obstacle.x + tolerance && playerBike.y < obstacle.y + obstacle.height - tolerance && playerBike.y + playerBike.height > obstacle.y + tolerance;if(collision){this.collisionCooldown.set(obstacle.id,Date.now());const collisionX =(playerBike.x + playerBike.width / 2 + obstacle.x + obstacle.width / 2)/ 2;const collisionY =(playerBike.y + playerBike.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 = useBikeRacingStore.getState();if(!store.isPlaying)return;const lane = this.fastRandom(0,BIKE_RACING_GAME_CONFIG.ROAD_LANES);const x = getLanePosition(lane,width);const colors = [BIKE_RACING_COLORS.OBSTACLE_BIKE_1,BIKE_RACING_COLORS.OBSTACLE_BIKE_2,BIKE_RACING_COLORS.OBSTACLE_BIKE_3];const colorIndex = this.fastRandom(0,colors.length);const color = colors[colorIndex] || BIKE_RACING_COLORS.OBSTACLE_BIKE_1;const obstacle ={id:`obstacle-${this.obstacleIdCounter++}`,x:x,y:-BIKE_RACING_GAME_CONFIG.OBSTACLE_HEIGHT,lane,width:BIKE_RACING_GAME_CONFIG.OBSTACLE_WIDTH,height:BIKE_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 = useBikeRacingStore.getState();if(!store.isPlaying)return;store.movePlayerBike(lane);}cleanup(){if(this.obstacleSpawnTimer){clearInterval(this.obstacleSpawnTimer);this.obstacleSpawnTimer = null;}if(this.gameLoopTimer){clearInterval(this.gameLoopTimer);this.gameLoopTimer = null;}this.collisionCooldown.clear();}}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Dimensions","useBikeRacingStore","BIKE_RACING_GAME_CONFIG","BIKE_RACING_COLORS","getLanePosition","width","height","get","BikeRacingService","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","playerBike","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_BIKE_1","OBSTACLE_BIKE_2","OBSTACLE_BIKE_3","colorIndex","color","OBSTACLE_HEIGHT","OBSTACLE_WIDTH","addObstacle","min","max","Math","floor","random","movePlayerToLane","movePlayerBike","clearInterval"],"sourceRoot":"../../../../src","sources":["games/bike-racing/BikeRacingService.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +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{BIKE_RACING_GAME_CONFIG,getLanePosition}from "./BikeRacingConstants.js";const{width,height}= Dimensions.get('window');export const useBikeRacingStore = create()(subscribeWithSelector(immerMiddleware((set,_get)=>({score:0,timeLeft:BIKE_RACING_GAME_CONFIG.GAME_DURATION,isPlaying:false,gameOver:false,lives:3,obstacles:[],playerBike:{x:getLanePosition(1,width),y:height * 0.65,lane:1,width:BIKE_RACING_GAME_CONFIG.BIKE_WIDTH,height:BIKE_RACING_GAME_CONFIG.BIKE_HEIGHT},roadOffset:0,particleEffects:[],offset:0,gameDuration:BIKE_RACING_GAME_CONFIG.GAME_DURATION,setOffset:offset =>{set(draft =>{draft.offset = offset;const yPosition = offset > 0 ? height * 0.75:height * 0.62;draft.playerBike.y = yPosition;});},startGame:(gameDuration,offset)=>{const duration = gameDuration || BIKE_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.playerBike ={x:getLanePosition(1,width),y:yPosition,lane:1,width:BIKE_RACING_GAME_CONFIG.BIKE_WIDTH,height:BIKE_RACING_GAME_CONFIG.BIKE_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.playerBike ={x:getLanePosition(1,width),y:yPosition,lane:1,width:BIKE_RACING_GAME_CONFIG.BIKE_WIDTH,height:BIKE_RACING_GAME_CONFIG.BIKE_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.playerBike ={x:getLanePosition(1,width),y:yPosition,lane:1,width:BIKE_RACING_GAME_CONFIG.BIKE_WIDTH,height:BIKE_RACING_GAME_CONFIG.BIKE_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;}}});},movePlayerBike:lane =>{set(draft =>{const validLane = Math.max(0,Math.min(BIKE_RACING_GAME_CONFIG.ROAD_LANES - 1,lane));draft.playerBike.lane = validLane;draft.playerBike.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 + BIKE_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 =()=> useBikeRacingStore(state => state.score);export const useTimeLeft =()=> useBikeRacingStore(state => state.timeLeft);export const useLives =()=> useBikeRacingStore(state => state.lives);export const useIsPlaying =()=> useBikeRacingStore(state => state.isPlaying);export const useGameOver =()=> useBikeRacingStore(state => state.gameOver);export const useObstacles =()=> useBikeRacingStore(state => state.obstacles);export const usePlayerBike =()=> useBikeRacingStore(state => state.playerBike);export const useRoadOffset =()=> useBikeRacingStore(state => state.roadOffset);export const useParticleEffects =()=> useBikeRacingStore(state => state.particleEffects);
@@ -0,0 +1 @@
1
+ {"version":3,"names":["create","subscribeWithSelector","Dimensions","immerMiddleware","BIKE_RACING_GAME_CONFIG","getLanePosition","width","height","get","useBikeRacingStore","set","_get","score","timeLeft","GAME_DURATION","isPlaying","gameOver","lives","obstacles","playerBike","x","y","lane","BIKE_WIDTH","BIKE_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","movePlayerBike","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","usePlayerBike","useRoadOffset","useParticleEffects"],"sourceRoot":"../../../../src","sources":["games/bike-racing/BikeRacingStore.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import React from 'react';import{Canvas,Circle,RoundedRect,Rect,Path,Skia}from '@shopify/react-native-skia';import Animated,{useAnimatedStyle,withSpring}from 'react-native-reanimated';import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from "react/jsx-runtime";const BikeComponentView =({x,y,width,height,color,isPlayer})=>{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]);const centerX = width / 2;const frontY = height * 0.05;const tankY = height * 0.25;const seatY = height * 0.5;const rearY = height * 0.8;const frontWidth = width * 0.45;const tankWidth = width * 0.75;const seatWidth = width * 0.9;const rearWidth = width * 0.65;const frontWheelY = height * 0.12;const rearWheelY = height * 0.88;const wheelWidth = width * 0.22;const wheelHeight = height * 0.1;const wheelOffset = seatWidth / 2 - wheelWidth / 2;return _jsx(Animated.View,{style:[{position:'absolute',width,height},animatedStyle],children:_jsxs(Canvas,{style:{width,height},children:[_jsx(RoundedRect,{x:centerX - seatWidth / 2 + 4,y:frontY + 4,width:seatWidth,height:height * 0.85,r:15,color:"rgba(0,0,0,0.3)"}),_jsx(RoundedRect,{x:centerX - wheelOffset,y:rearWheelY,width:wheelWidth,height:wheelHeight,r:4,color:"#4a4a4a"}),_jsx(RoundedRect,{x:centerX - wheelOffset + 2,y:rearWheelY + 2,width:wheelWidth - 4,height:wheelHeight - 4,r:3,color:"#888888"}),_jsx(RoundedRect,{x:centerX - wheelOffset + 4,y:rearWheelY + 4,width:wheelWidth - 8,height:wheelHeight - 8,r:2,color:"#cccccc"}),_jsx(RoundedRect,{x:centerX + wheelOffset - wheelWidth,y:rearWheelY,width:wheelWidth,height:wheelHeight,r:4,color:"#4a4a4a"}),_jsx(RoundedRect,{x:centerX + wheelOffset - wheelWidth + 2,y:rearWheelY + 2,width:wheelWidth - 4,height:wheelHeight - 4,r:3,color:"#888888"}),_jsx(RoundedRect,{x:centerX + wheelOffset - wheelWidth + 4,y:rearWheelY + 4,width:wheelWidth - 8,height:wheelHeight - 8,r:2,color:"#cccccc"}),_jsx(Path,{path:(()=>{const path = Skia.Path.Make();path.moveTo(centerX - rearWidth / 2,rearY);path.lineTo(centerX - seatWidth / 2,seatY + height * 0.2);path.lineTo(centerX + seatWidth / 2,seatY + height * 0.2);path.lineTo(centerX + rearWidth / 2,rearY);path.close();return path;})(),color:"#ffffff",style:"stroke",strokeWidth:3}),_jsx(Path,{path:(()=>{const path = Skia.Path.Make();path.moveTo(centerX - rearWidth / 2,rearY);path.lineTo(centerX - seatWidth / 2,seatY + height * 0.2);path.lineTo(centerX + seatWidth / 2,seatY + height * 0.2);path.lineTo(centerX + rearWidth / 2,rearY);path.close();return path;})(),color:color}),_jsx(Path,{path:(()=>{const path = Skia.Path.Make();path.moveTo(centerX - rearWidth / 2 + 5,rearY - 5);path.lineTo(centerX - seatWidth / 2 + 5,seatY + height * 0.2);path.lineTo(centerX + seatWidth / 2 - 5,seatY + height * 0.2);path.lineTo(centerX + rearWidth / 2 - 5,rearY - 5);path.close();return path;})(),color:"rgba(255,255,255,0.2)"}),_jsx(RoundedRect,{x:centerX - seatWidth / 2,y:seatY,width:seatWidth,height:height * 0.25,r:12,color:"#ffffff",style:"stroke",strokeWidth:3}),_jsx(RoundedRect,{x:centerX - seatWidth / 2,y:seatY,width:seatWidth,height:height * 0.25,r:12,color:color}),_jsx(Circle,{cx:centerX,cy:seatY + height * 0.12,r:width * 0.16,color:"#ffffff",style:"stroke",strokeWidth:2}),_jsx(Circle,{cx:centerX,cy:seatY + height * 0.12,r:width * 0.16,color:isPlayer ? '#ffffff':'#555555'}),_jsx(RoundedRect,{x:centerX - width * 0.11,y:seatY + height * 0.08,width:width * 0.22,height:height * 0.05,r:2,color:isPlayer ? color:'#333333'}),_jsx(RoundedRect,{x:centerX - tankWidth / 2,y:tankY,width:tankWidth,height:height * 0.2,r:10,color:color}),_jsx(RoundedRect,{x:centerX - tankWidth * 0.35,y:tankY + height * 0.02,width:tankWidth * 0.7,height:height * 0.06,r:5,color:"rgba(255,255,255,0.35)"}),_jsx(Rect,{x:centerX - width * 0.08,y:tankY,width:width * 0.16,height:height * 0.2,color:"rgba(0,0,0,0.15)"}),_jsx(Path,{path:(()=>{const path = Skia.Path.Make();path.moveTo(centerX - tankWidth / 2,tankY);path.lineTo(centerX - frontWidth / 2,frontY + height * 0.1);path.lineTo(centerX + frontWidth / 2,frontY + height * 0.1);path.lineTo(centerX + tankWidth / 2,tankY);path.close();return path;})(),color:"#ffffff",style:"stroke",strokeWidth:3}),_jsx(Path,{path:(()=>{const path = Skia.Path.Make();path.moveTo(centerX - tankWidth / 2,tankY);path.lineTo(centerX - frontWidth / 2,frontY + height * 0.1);path.lineTo(centerX + frontWidth / 2,frontY + height * 0.1);path.lineTo(centerX + tankWidth / 2,tankY);path.close();return path;})(),color:color}),_jsx(Path,{path:(()=>{const path = Skia.Path.Make();path.moveTo(centerX - tankWidth / 2 + 5,tankY);path.lineTo(centerX - frontWidth / 2 + 3,frontY + height * 0.12);path.lineTo(centerX + frontWidth / 2 - 3,frontY + height * 0.12);path.lineTo(centerX + tankWidth / 2 - 5,tankY);path.close();return path;})(),color:"rgba(255,255,255,0.25)"}),_jsx(RoundedRect,{x:centerX - wheelOffset,y:frontWheelY,width:wheelWidth,height:wheelHeight,r:4,color:"#4a4a4a"}),_jsx(RoundedRect,{x:centerX - wheelOffset + 2,y:frontWheelY + 2,width:wheelWidth - 4,height:wheelHeight - 4,r:3,color:"#888888"}),_jsx(RoundedRect,{x:centerX - wheelOffset + 4,y:frontWheelY + 4,width:wheelWidth - 8,height:wheelHeight - 8,r:2,color:"#cccccc"}),_jsx(RoundedRect,{x:centerX + wheelOffset - wheelWidth,y:frontWheelY,width:wheelWidth,height:wheelHeight,r:4,color:"#4a4a4a"}),_jsx(RoundedRect,{x:centerX + wheelOffset - wheelWidth + 2,y:frontWheelY + 2,width:wheelWidth - 4,height:wheelHeight - 4,r:3,color:"#888888"}),_jsx(RoundedRect,{x:centerX + wheelOffset - wheelWidth + 4,y:frontWheelY + 4,width:wheelWidth - 8,height:wheelHeight - 8,r:2,color:"#cccccc"}),_jsx(Path,{path:(()=>{const path = Skia.Path.Make();path.moveTo(centerX - frontWidth / 2,frontY + height * 0.08);path.lineTo(centerX,frontY);path.lineTo(centerX + frontWidth / 2,frontY + height * 0.08);path.close();return path;})(),color:color}),_jsx(RoundedRect,{x:centerX - width * 0.15,y:frontY + height * 0.02,width:width * 0.3,height:height * 0.04,r:3,color:"#ffff99"}),_jsx(RoundedRect,{x:centerX - width * 0.12,y:frontY + height * 0.025,width:width * 0.24,height:height * 0.025,r:2,color:"#ffffdd"}),_jsx(Circle,{cx:centerX - seatWidth / 2 - 3,cy:tankY + height * 0.1,r:width * 0.08,color:"rgba(100,200,255,0.4)"}),_jsx(Circle,{cx:centerX + seatWidth / 2 + 3,cy:tankY + height * 0.1,r:width * 0.08,color:"rgba(100,200,255,0.4)"}),_jsx(Circle,{cx:centerX - seatWidth / 2 - 3,cy:tankY + height * 0.1,r:width * 0.08,color:color,style:"stroke",strokeWidth:2}),_jsx(Circle,{cx:centerX + seatWidth / 2 + 3,cy:tankY + height * 0.1,r:width * 0.08,color:color,style:"stroke",strokeWidth:2}),_jsx(RoundedRect,{x:centerX + rearWidth / 2 - width * 0.1,y:rearY - height * 0.08,width:width * 0.07,height:height * 0.06,r:3,color:"#555555"}),_jsx(RoundedRect,{x:centerX + rearWidth / 2 - width * 0.1 + 1,y:rearY - height * 0.08 + 1,width:width * 0.05,height:height * 0.04,r:2,color:"#333333"}),isPlayer && _jsxs(_Fragment,{children:[_jsx(Circle,{cx:centerX + rearWidth / 2 - width * 0.07,cy:rearY + height * 0.01,r:3,color:"rgba(150,150,150,0.5)"}),_jsx(Circle,{cx:centerX + rearWidth / 2 - width * 0.07,cy:rearY + height * 0.04,r:4,color:"rgba(150,150,150,0.35)"}),_jsx(Circle,{cx:centerX + rearWidth / 2 - width * 0.07,cy:rearY + height * 0.08,r:5,color:"rgba(150,150,150,0.2)"})]}),isPlayer && _jsx(RoundedRect,{x:centerX - width * 0.1,y:seatY + height * 0.18,width:width * 0.2,height:height * 0.06,r:3,color:"rgba(255,255,255,0.95)"}),_jsx(RoundedRect,{x:centerX - width * 0.08,y:rearY - height * 0.02,width:width * 0.16,height:height * 0.02,r:2,color:"#ff3333"})]})});};const arePropsEqual =(prevProps,nextProps)=>{return Math.floor(prevProps.x)=== Math.floor(nextProps.x)&& Math.floor(prevProps.y)=== Math.floor(nextProps.y)&& prevProps.width === nextProps.width && prevProps.height === nextProps.height && prevProps.color === nextProps.color && prevProps.isPlayer === nextProps.isPlayer;};export const BikeComponent = React.memo(BikeComponentView,arePropsEqual);BikeComponent.displayName = 'BikeComponent';
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Canvas","Circle","RoundedRect","Rect","Path","Skia","Animated","useAnimatedStyle","withSpring","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BikeComponentView","x","y","width","height","color","isPlayer","animatedStyle","transform","translateX","damping","stiffness","mass","translateY","centerX","frontY","tankY","seatY","rearY","frontWidth","tankWidth","seatWidth","rearWidth","frontWheelY","rearWheelY","wheelWidth","wheelHeight","wheelOffset","View","style","position","children","r","path","Make","moveTo","lineTo","close","strokeWidth","cx","cy","arePropsEqual","prevProps","nextProps","Math","floor","BikeComponent","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/bike-racing/components/BikeComponent.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,IAAI,EAAEC,IAAI,EAAEC,IAAI,QAAQ,4BAA4B;AAC1F,OAAOC,QAAQ,IAAIC,gBAAgB,EAAEC,UAAU,QAAQ,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAWjF,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,CAAC;EAAEC,CAAC;EAAEC,KAAK;EAAEC,MAAM;EAAEC,KAAK;EAAEC;AAA6B,CAAC,KAAK;EAC1F;EACA,MAAMC,aAAa,GAAGf,gBAAgB,CAAC,MAAM;IAC3C,IAAIc,QAAQ,EAAE;MACZ,OAAO;QACLE,SAAS,EAAE,CACT;UAAEC,UAAU,EAAEhB,UAAU,CAACQ,CAAC,EAAE;YAAES,OAAO,EAAE,EAAE;YAAEC,SAAS,EAAE,GAAG;YAAEC,IAAI,EAAE;UAAI,CAAC;QAAE,CAAC,EACzE;UAAEC,UAAU,EAAEX;QAAE,CAAC;MAErB,CAAC;IACH;IACA,OAAO;MACLM,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAER;MAAE,CAAC,EAAE;QAAEY,UAAU,EAAEX;MAAE,CAAC;IAClD,CAAC;EACH,CAAC,EAAE,CAACD,CAAC,EAAEC,CAAC,EAAEI,QAAQ,CAAC,CAAC;;EAEpB;EACA,MAAMQ,OAAO,GAAGX,KAAK,GAAG,CAAC;;EAEzB;EACA,MAAMY,MAAM,GAAGX,MAAM,GAAG,IAAI;EAC5B,MAAMY,KAAK,GAAGZ,MAAM,GAAG,IAAI;EAC3B,MAAMa,KAAK,GAAGb,MAAM,GAAG,GAAG;EAC1B,MAAMc,KAAK,GAAGd,MAAM,GAAG,GAAG;;EAE1B;EACA,MAAMe,UAAU,GAAGhB,KAAK,GAAG,IAAI;EAC/B,MAAMiB,SAAS,GAAGjB,KAAK,GAAG,IAAI;EAC9B,MAAMkB,SAAS,GAAGlB,KAAK,GAAG,GAAG;EAC7B,MAAMmB,SAAS,GAAGnB,KAAK,GAAG,IAAI;;EAE9B;EACA,MAAMoB,WAAW,GAAGnB,MAAM,GAAG,IAAI;EACjC,MAAMoB,UAAU,GAAGpB,MAAM,GAAG,IAAI;EAChC,MAAMqB,UAAU,GAAGtB,KAAK,GAAG,IAAI;EAC/B,MAAMuB,WAAW,GAAGtB,MAAM,GAAG,GAAG;EAChC,MAAMuB,WAAW,GAAGN,SAAS,GAAG,CAAC,GAAGI,UAAU,GAAG,CAAC;EAElD,oBACE9B,IAAA,CAACJ,QAAQ,CAACqC,IAAI;IACZC,KAAK,EAAE,CACL;MACEC,QAAQ,EAAE,UAAU;MACpB3B,KAAK;MACLC;IACF,CAAC,EACDG,aAAa,CACb;IAAAwB,QAAA,eAEFhC,KAAA,CAACd,MAAM;MAAC4C,KAAK,EAAE;QAAE1B,KAAK;QAAEC;MAAO,CAAE;MAAA2B,QAAA,gBAEjCpC,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGO,SAAS,GAAG,CAAC,GAAG,CAAE;QAC/BnB,CAAC,EAAEa,MAAM,GAAG,CAAE;QACdZ,KAAK,EAAEkB,SAAU;QACjBjB,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,EAAG;QACN3B,KAAK,EAAC;MAAoB,CAC3B,CAAC,eAIFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAY;QACzBzB,CAAC,EAAEsB,UAAW;QACdrB,KAAK,EAAEsB,UAAW;QAClBrB,MAAM,EAAEsB,WAAY;QACpBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAG,CAAE;QAC7BzB,CAAC,EAAEsB,UAAU,GAAG,CAAE;QAClBrB,KAAK,EAAEsB,UAAU,GAAG,CAAE;QACtBrB,MAAM,EAAEsB,WAAW,GAAG,CAAE;QACxBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAG,CAAE;QAC7BzB,CAAC,EAAEsB,UAAU,GAAG,CAAE;QAClBrB,KAAK,EAAEsB,UAAU,GAAG,CAAE;QACtBrB,MAAM,EAAEsB,WAAW,GAAG,CAAE;QACxBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eAGFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAGF,UAAW;QACtCvB,CAAC,EAAEsB,UAAW;QACdrB,KAAK,EAAEsB,UAAW;QAClBrB,MAAM,EAAEsB,WAAY;QACpBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAGF,UAAU,GAAG,CAAE;QAC1CvB,CAAC,EAAEsB,UAAU,GAAG,CAAE;QAClBrB,KAAK,EAAEsB,UAAU,GAAG,CAAE;QACtBrB,MAAM,EAAEsB,WAAW,GAAG,CAAE;QACxBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAGF,UAAU,GAAG,CAAE;QAC1CvB,CAAC,EAAEsB,UAAU,GAAG,CAAE;QAClBrB,KAAK,EAAEsB,UAAU,GAAG,CAAE;QACtBrB,MAAM,EAAEsB,WAAW,GAAG,CAAE;QACxBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eAIFV,IAAA,CAACN,IAAI;QACH4C,IAAI,EAAE,CAAC,MAAM;UACX,MAAMA,IAAI,GAAG3C,IAAI,CAACD,IAAI,CAAC6C,IAAI,CAAC,CAAC;UAC7BD,IAAI,CAACE,MAAM,CAACrB,OAAO,GAAGQ,SAAS,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC3Ce,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGO,SAAS,GAAG,CAAC,EAAEJ,KAAK,GAAGb,MAAM,GAAG,GAAG,CAAC;UAC1D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGO,SAAS,GAAG,CAAC,EAAEJ,KAAK,GAAGb,MAAM,GAAG,GAAG,CAAC;UAC1D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGQ,SAAS,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC3Ce,IAAI,CAACI,KAAK,CAAC,CAAC;UACZ,OAAOJ,IAAI;QACb,CAAC,EAAE,CAAE;QACL5B,KAAK,EAAC,SAAS;QACfwB,KAAK,EAAC,QAAQ;QACdS,WAAW,EAAE;MAAE,CAChB,CAAC,eACF3C,IAAA,CAACN,IAAI;QACH4C,IAAI,EAAE,CAAC,MAAM;UACX,MAAMA,IAAI,GAAG3C,IAAI,CAACD,IAAI,CAAC6C,IAAI,CAAC,CAAC;UAC7BD,IAAI,CAACE,MAAM,CAACrB,OAAO,GAAGQ,SAAS,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC3Ce,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGO,SAAS,GAAG,CAAC,EAAEJ,KAAK,GAAGb,MAAM,GAAG,GAAG,CAAC;UAC1D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGO,SAAS,GAAG,CAAC,EAAEJ,KAAK,GAAGb,MAAM,GAAG,GAAG,CAAC;UAC1D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGQ,SAAS,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC3Ce,IAAI,CAACI,KAAK,CAAC,CAAC;UACZ,OAAOJ,IAAI;QACb,CAAC,EAAE,CAAE;QACL5B,KAAK,EAAEA;MAAM,CACd,CAAC,eAGFV,IAAA,CAACN,IAAI;QACH4C,IAAI,EAAE,CAAC,MAAM;UACX,MAAMA,IAAI,GAAG3C,IAAI,CAACD,IAAI,CAAC6C,IAAI,CAAC,CAAC;UAC7BD,IAAI,CAACE,MAAM,CAACrB,OAAO,GAAGQ,SAAS,GAAG,CAAC,GAAG,CAAC,EAAEJ,KAAK,GAAG,CAAC,CAAC;UACnDe,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGO,SAAS,GAAG,CAAC,GAAG,CAAC,EAAEJ,KAAK,GAAGb,MAAM,GAAG,GAAG,CAAC;UAC9D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGO,SAAS,GAAG,CAAC,GAAG,CAAC,EAAEJ,KAAK,GAAGb,MAAM,GAAG,GAAG,CAAC;UAC9D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGQ,SAAS,GAAG,CAAC,GAAG,CAAC,EAAEJ,KAAK,GAAG,CAAC,CAAC;UACnDe,IAAI,CAACI,KAAK,CAAC,CAAC;UACZ,OAAOJ,IAAI;QACb,CAAC,EAAE,CAAE;QACL5B,KAAK,EAAC;MAA0B,CACjC,CAAC,eAIFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGO,SAAS,GAAG,CAAE;QAC3BnB,CAAC,EAAEe,KAAM;QACTd,KAAK,EAAEkB,SAAU;QACjBjB,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,EAAG;QACN3B,KAAK,EAAC,SAAS;QACfwB,KAAK,EAAC,QAAQ;QACdS,WAAW,EAAE;MAAE,CAChB,CAAC,eACF3C,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGO,SAAS,GAAG,CAAE;QAC3BnB,CAAC,EAAEe,KAAM;QACTd,KAAK,EAAEkB,SAAU;QACjBjB,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,EAAG;QACN3B,KAAK,EAAEA;MAAM,CACd,CAAC,eAGFV,IAAA,CAACT,MAAM;QACLqD,EAAE,EAAEzB,OAAQ;QACZ0B,EAAE,EAAEvB,KAAK,GAAGb,MAAM,GAAG,IAAK;QAC1B4B,CAAC,EAAE7B,KAAK,GAAG,IAAK;QAChBE,KAAK,EAAC,SAAS;QACfwB,KAAK,EAAC,QAAQ;QACdS,WAAW,EAAE;MAAE,CAChB,CAAC,eACF3C,IAAA,CAACT,MAAM;QACLqD,EAAE,EAAEzB,OAAQ;QACZ0B,EAAE,EAAEvB,KAAK,GAAGb,MAAM,GAAG,IAAK;QAC1B4B,CAAC,EAAE7B,KAAK,GAAG,IAAK;QAChBE,KAAK,EAAEC,QAAQ,GAAG,SAAS,GAAG;MAAU,CACzC,CAAC,eAGFX,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGX,KAAK,GAAG,IAAK;QAC1BD,CAAC,EAAEe,KAAK,GAAGb,MAAM,GAAG,IAAK;QACzBD,KAAK,EAAEA,KAAK,GAAG,IAAK;QACpBC,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAEC,QAAQ,GAAGD,KAAK,GAAG;MAAU,CACrC,CAAC,eAIFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGM,SAAS,GAAG,CAAE;QAC3BlB,CAAC,EAAEc,KAAM;QACTb,KAAK,EAAEiB,SAAU;QACjBhB,MAAM,EAAEA,MAAM,GAAG,GAAI;QACrB4B,CAAC,EAAE,EAAG;QACN3B,KAAK,EAAEA;MAAM,CACd,CAAC,eAGFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGM,SAAS,GAAG,IAAK;QAC9BlB,CAAC,EAAEc,KAAK,GAAGZ,MAAM,GAAG,IAAK;QACzBD,KAAK,EAAEiB,SAAS,GAAG,GAAI;QACvBhB,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAA2B,CAClC,CAAC,eAGFV,IAAA,CAACP,IAAI;QACHa,CAAC,EAAEa,OAAO,GAAGX,KAAK,GAAG,IAAK;QAC1BD,CAAC,EAAEc,KAAM;QACTb,KAAK,EAAEA,KAAK,GAAG,IAAK;QACpBC,MAAM,EAAEA,MAAM,GAAG,GAAI;QACrBC,KAAK,EAAC;MAAqB,CAC5B,CAAC,eAIFV,IAAA,CAACN,IAAI;QACH4C,IAAI,EAAE,CAAC,MAAM;UACX,MAAMA,IAAI,GAAG3C,IAAI,CAACD,IAAI,CAAC6C,IAAI,CAAC,CAAC;UAC7BD,IAAI,CAACE,MAAM,CAACrB,OAAO,GAAGM,SAAS,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC3CiB,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGK,UAAU,GAAG,CAAC,EAAEJ,MAAM,GAAGX,MAAM,GAAG,GAAG,CAAC;UAC5D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGK,UAAU,GAAG,CAAC,EAAEJ,MAAM,GAAGX,MAAM,GAAG,GAAG,CAAC;UAC5D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGM,SAAS,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC3CiB,IAAI,CAACI,KAAK,CAAC,CAAC;UACZ,OAAOJ,IAAI;QACb,CAAC,EAAE,CAAE;QACL5B,KAAK,EAAC,SAAS;QACfwB,KAAK,EAAC,QAAQ;QACdS,WAAW,EAAE;MAAE,CAChB,CAAC,eACF3C,IAAA,CAACN,IAAI;QACH4C,IAAI,EAAE,CAAC,MAAM;UACX,MAAMA,IAAI,GAAG3C,IAAI,CAACD,IAAI,CAAC6C,IAAI,CAAC,CAAC;UAC7BD,IAAI,CAACE,MAAM,CAACrB,OAAO,GAAGM,SAAS,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC3CiB,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGK,UAAU,GAAG,CAAC,EAAEJ,MAAM,GAAGX,MAAM,GAAG,GAAG,CAAC;UAC5D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGK,UAAU,GAAG,CAAC,EAAEJ,MAAM,GAAGX,MAAM,GAAG,GAAG,CAAC;UAC5D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGM,SAAS,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC3CiB,IAAI,CAACI,KAAK,CAAC,CAAC;UACZ,OAAOJ,IAAI;QACb,CAAC,EAAE,CAAE;QACL5B,KAAK,EAAEA;MAAM,CACd,CAAC,eAGFV,IAAA,CAACN,IAAI;QACH4C,IAAI,EAAE,CAAC,MAAM;UACX,MAAMA,IAAI,GAAG3C,IAAI,CAACD,IAAI,CAAC6C,IAAI,CAAC,CAAC;UAC7BD,IAAI,CAACE,MAAM,CAACrB,OAAO,GAAGM,SAAS,GAAG,CAAC,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC/CiB,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGK,UAAU,GAAG,CAAC,GAAG,CAAC,EAAEJ,MAAM,GAAGX,MAAM,GAAG,IAAI,CAAC;UACjE6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGK,UAAU,GAAG,CAAC,GAAG,CAAC,EAAEJ,MAAM,GAAGX,MAAM,GAAG,IAAI,CAAC;UACjE6B,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGM,SAAS,GAAG,CAAC,GAAG,CAAC,EAAEJ,KAAK,CAAC;UAC/CiB,IAAI,CAACI,KAAK,CAAC,CAAC;UACZ,OAAOJ,IAAI;QACb,CAAC,EAAE,CAAE;QACL5B,KAAK,EAAC;MAA2B,CAClC,CAAC,eAGFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAY;QACzBzB,CAAC,EAAEqB,WAAY;QACfpB,KAAK,EAAEsB,UAAW;QAClBrB,MAAM,EAAEsB,WAAY;QACpBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAG,CAAE;QAC7BzB,CAAC,EAAEqB,WAAW,GAAG,CAAE;QACnBpB,KAAK,EAAEsB,UAAU,GAAG,CAAE;QACtBrB,MAAM,EAAEsB,WAAW,GAAG,CAAE;QACxBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAG,CAAE;QAC7BzB,CAAC,EAAEqB,WAAW,GAAG,CAAE;QACnBpB,KAAK,EAAEsB,UAAU,GAAG,CAAE;QACtBrB,MAAM,EAAEsB,WAAW,GAAG,CAAE;QACxBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eAGFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAGF,UAAW;QACtCvB,CAAC,EAAEqB,WAAY;QACfpB,KAAK,EAAEsB,UAAW;QAClBrB,MAAM,EAAEsB,WAAY;QACpBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAGF,UAAU,GAAG,CAAE;QAC1CvB,CAAC,EAAEqB,WAAW,GAAG,CAAE;QACnBpB,KAAK,EAAEsB,UAAU,GAAG,CAAE;QACtBrB,MAAM,EAAEsB,WAAW,GAAG,CAAE;QACxBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGa,WAAW,GAAGF,UAAU,GAAG,CAAE;QAC1CvB,CAAC,EAAEqB,WAAW,GAAG,CAAE;QACnBpB,KAAK,EAAEsB,UAAU,GAAG,CAAE;QACtBrB,MAAM,EAAEsB,WAAW,GAAG,CAAE;QACxBM,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eAGFV,IAAA,CAACN,IAAI;QACH4C,IAAI,EAAE,CAAC,MAAM;UACX,MAAMA,IAAI,GAAG3C,IAAI,CAACD,IAAI,CAAC6C,IAAI,CAAC,CAAC;UAC7BD,IAAI,CAACE,MAAM,CAACrB,OAAO,GAAGK,UAAU,GAAG,CAAC,EAAEJ,MAAM,GAAGX,MAAM,GAAG,IAAI,CAAC;UAC7D6B,IAAI,CAACG,MAAM,CAACtB,OAAO,EAAEC,MAAM,CAAC;UAC5BkB,IAAI,CAACG,MAAM,CAACtB,OAAO,GAAGK,UAAU,GAAG,CAAC,EAAEJ,MAAM,GAAGX,MAAM,GAAG,IAAI,CAAC;UAC7D6B,IAAI,CAACI,KAAK,CAAC,CAAC;UACZ,OAAOJ,IAAI;QACb,CAAC,EAAE,CAAE;QACL5B,KAAK,EAAEA;MAAM,CACd,CAAC,eAGFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGX,KAAK,GAAG,IAAK;QAC1BD,CAAC,EAAEa,MAAM,GAAGX,MAAM,GAAG,IAAK;QAC1BD,KAAK,EAAEA,KAAK,GAAG,GAAI;QACnBC,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGX,KAAK,GAAG,IAAK;QAC1BD,CAAC,EAAEa,MAAM,GAAGX,MAAM,GAAG,KAAM;QAC3BD,KAAK,EAAEA,KAAK,GAAG,IAAK;QACpBC,MAAM,EAAEA,MAAM,GAAG,KAAM;QACvB4B,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eAGFV,IAAA,CAACT,MAAM;QACLqD,EAAE,EAAEzB,OAAO,GAAGO,SAAS,GAAG,CAAC,GAAG,CAAE;QAChCmB,EAAE,EAAExB,KAAK,GAAGZ,MAAM,GAAG,GAAI;QACzB4B,CAAC,EAAE7B,KAAK,GAAG,IAAK;QAChBE,KAAK,EAAC;MAA0B,CACjC,CAAC,eACFV,IAAA,CAACT,MAAM;QACLqD,EAAE,EAAEzB,OAAO,GAAGO,SAAS,GAAG,CAAC,GAAG,CAAE;QAChCmB,EAAE,EAAExB,KAAK,GAAGZ,MAAM,GAAG,GAAI;QACzB4B,CAAC,EAAE7B,KAAK,GAAG,IAAK;QAChBE,KAAK,EAAC;MAA0B,CACjC,CAAC,eAGFV,IAAA,CAACT,MAAM;QACLqD,EAAE,EAAEzB,OAAO,GAAGO,SAAS,GAAG,CAAC,GAAG,CAAE;QAChCmB,EAAE,EAAExB,KAAK,GAAGZ,MAAM,GAAG,GAAI;QACzB4B,CAAC,EAAE7B,KAAK,GAAG,IAAK;QAChBE,KAAK,EAAEA,KAAM;QACbwB,KAAK,EAAC,QAAQ;QACdS,WAAW,EAAE;MAAE,CAChB,CAAC,eACF3C,IAAA,CAACT,MAAM;QACLqD,EAAE,EAAEzB,OAAO,GAAGO,SAAS,GAAG,CAAC,GAAG,CAAE;QAChCmB,EAAE,EAAExB,KAAK,GAAGZ,MAAM,GAAG,GAAI;QACzB4B,CAAC,EAAE7B,KAAK,GAAG,IAAK;QAChBE,KAAK,EAAEA,KAAM;QACbwB,KAAK,EAAC,QAAQ;QACdS,WAAW,EAAE;MAAE,CAChB,CAAC,eAGF3C,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGQ,SAAS,GAAG,CAAC,GAAGnB,KAAK,GAAG,GAAI;QACzCD,CAAC,EAAEgB,KAAK,GAAGd,MAAM,GAAG,IAAK;QACzBD,KAAK,EAAEA,KAAK,GAAG,IAAK;QACpBC,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,eACFV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGQ,SAAS,GAAG,CAAC,GAAGnB,KAAK,GAAG,GAAG,GAAG,CAAE;QAC7CD,CAAC,EAAEgB,KAAK,GAAGd,MAAM,GAAG,IAAI,GAAG,CAAE;QAC7BD,KAAK,EAAEA,KAAK,GAAG,IAAK;QACpBC,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC,EAGDC,QAAQ,iBACPP,KAAA,CAAAF,SAAA;QAAAkC,QAAA,gBACEpC,IAAA,CAACT,MAAM;UAACqD,EAAE,EAAEzB,OAAO,GAAGQ,SAAS,GAAG,CAAC,GAAGnB,KAAK,GAAG,IAAK;UAACqC,EAAE,EAAEtB,KAAK,GAAGd,MAAM,GAAG,IAAK;UAAC4B,CAAC,EAAE,CAAE;UAAC3B,KAAK,EAAC;QAA0B,CAAE,CAAC,eACxHV,IAAA,CAACT,MAAM;UAACqD,EAAE,EAAEzB,OAAO,GAAGQ,SAAS,GAAG,CAAC,GAAGnB,KAAK,GAAG,IAAK;UAACqC,EAAE,EAAEtB,KAAK,GAAGd,MAAM,GAAG,IAAK;UAAC4B,CAAC,EAAE,CAAE;UAAC3B,KAAK,EAAC;QAA2B,CAAE,CAAC,eACzHV,IAAA,CAACT,MAAM;UAACqD,EAAE,EAAEzB,OAAO,GAAGQ,SAAS,GAAG,CAAC,GAAGnB,KAAK,GAAG,IAAK;UAACqC,EAAE,EAAEtB,KAAK,GAAGd,MAAM,GAAG,IAAK;UAAC4B,CAAC,EAAE,CAAE;UAAC3B,KAAK,EAAC;QAA0B,CAAE,CAAC;MAAA,CACxH,CACH,EAGAC,QAAQ,iBACPX,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGX,KAAK,GAAG,GAAI;QACzBD,CAAC,EAAEe,KAAK,GAAGb,MAAM,GAAG,IAAK;QACzBD,KAAK,EAAEA,KAAK,GAAG,GAAI;QACnBC,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAA2B,CAClC,CACF,eAGDV,IAAA,CAACR,WAAW;QACVc,CAAC,EAAEa,OAAO,GAAGX,KAAK,GAAG,IAAK;QAC1BD,CAAC,EAAEgB,KAAK,GAAGd,MAAM,GAAG,IAAK;QACzBD,KAAK,EAAEA,KAAK,GAAG,IAAK;QACpBC,MAAM,EAAEA,MAAM,GAAG,IAAK;QACtB4B,CAAC,EAAE,CAAE;QACL3B,KAAK,EAAC;MAAS,CAChB,CAAC;IAAA,CACI;EAAC,CACM,CAAC;AAEpB,CAAC;;AAED;AACA,MAAMoC,aAAa,GAAGA,CAACC,SAA6B,EAAEC,SAA6B,KAAK;EACtF,OACEC,IAAI,CAACC,KAAK,CAACH,SAAS,CAACzC,CAAC,CAAC,KAAK2C,IAAI,CAACC,KAAK,CAACF,SAAS,CAAC1C,CAAC,CAAC,IACnD2C,IAAI,CAACC,KAAK,CAACH,SAAS,CAACxC,CAAC,CAAC,KAAK0C,IAAI,CAACC,KAAK,CAACF,SAAS,CAACzC,CAAC,CAAC,IACnDwC,SAAS,CAACvC,KAAK,KAAKwC,SAAS,CAACxC,KAAK,IACnCuC,SAAS,CAACtC,MAAM,KAAKuC,SAAS,CAACvC,MAAM,IACrCsC,SAAS,CAACrC,KAAK,KAAKsC,SAAS,CAACtC,KAAK,IACnCqC,SAAS,CAACpC,QAAQ,KAAKqC,SAAS,CAACrC,QAAQ;AAE7C,CAAC;AAED,OAAO,MAAMwC,aAAa,gBAAG9D,KAAK,CAAC+D,IAAI,CAAC/C,iBAAiB,EAAEyC,aAAa,CAAC;AACzEK,aAAa,CAACE,WAAW,GAAG,eAAe","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import React from 'react';import{Canvas,Rect,LinearGradient,vec,Line}from '@shopify/react-native-skia';import{BIKE_RACING_COLORS,BIKE_RACING_GAME_CONFIG}from "../BikeRacingConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const GameBackgroundComponent =({width,height,roadOffset})=>{const roadWidth = BIKE_RACING_GAME_CONFIG.LANE_WIDTH * BIKE_RACING_GAME_CONFIG.ROAD_LANES;const roadStartX =(width - roadWidth)/ 2;const grassWidth = roadStartX;const lineSpacing = 40;const lineHeight = 30;const lineOffset = roadOffset % lineSpacing;return _jsxs(Canvas,{style:{width,height},children:[_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(width / 2,0),end:vec(width / 2,height),colors:[BIKE_RACING_COLORS.SKY_BLUE,'#b0e0e6']})}),_jsx(Rect,{x:0,y:0,width:grassWidth,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(grassWidth,0),colors:[BIKE_RACING_COLORS.GRASS_DARK,BIKE_RACING_COLORS.GRASS_GREEN]})}),_jsx(Rect,{x:roadStartX + roadWidth,y:0,width:grassWidth,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(grassWidth,0),colors:[BIKE_RACING_COLORS.GRASS_GREEN,BIKE_RACING_COLORS.GRASS_DARK]})}),_jsx(Rect,{x:roadStartX,y:0,width:roadWidth,height:height,color:BIKE_RACING_COLORS.ROAD_DARK}),[1,2].map(laneIndex =>{const lineX = roadStartX + laneIndex * BIKE_RACING_GAME_CONFIG.LANE_WIDTH;const numLines = Math.ceil(height / lineSpacing)+ 1;return _jsx(React.Fragment,{children:Array.from({length:numLines}).map((_,i)=>{const y = i * lineSpacing - lineOffset;return _jsx(Line,{p1:vec(lineX,y),p2:vec(lineX,y + lineHeight),color:BIKE_RACING_COLORS.ROAD_LINE,strokeWidth:2},`line-${laneIndex}-${i}`);})},`lane-${laneIndex}`);}),_jsx(Line,{p1:vec(roadStartX,0),p2:vec(roadStartX,height),color:BIKE_RACING_COLORS.ROAD_LINE,strokeWidth:3}),_jsx(Line,{p1:vec(roadStartX + roadWidth,0),p2:vec(roadStartX + roadWidth,height),color:BIKE_RACING_COLORS.ROAD_LINE,strokeWidth:3})]});};const arePropsEqual =(prevProps,nextProps)=>{return prevProps.width === nextProps.width && prevProps.height === nextProps.height && Math.floor(prevProps.roadOffset / 5)=== Math.floor(nextProps.roadOffset / 5);};export const GameBackground = React.memo(GameBackgroundComponent,arePropsEqual);GameBackground.displayName = 'GameBackground';
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Canvas","Rect","LinearGradient","vec","Line","BIKE_RACING_COLORS","BIKE_RACING_GAME_CONFIG","jsx","_jsx","jsxs","_jsxs","GameBackgroundComponent","width","height","roadOffset","roadWidth","LANE_WIDTH","ROAD_LANES","roadStartX","grassWidth","lineSpacing","lineHeight","lineOffset","style","children","x","y","start","end","colors","SKY_BLUE","GRASS_DARK","GRASS_GREEN","color","ROAD_DARK","map","laneIndex","lineX","numLines","Math","ceil","Fragment","Array","from","length","_","i","p1","p2","ROAD_LINE","strokeWidth","arePropsEqual","prevProps","nextProps","floor","GameBackground","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/bike-racing/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import React from 'react';import{View,Text,StyleSheet}from 'react-native';import{ScoreBoardContainer}from "../../../helpers/index.js";import{BIKE_RACING_COLORS}from "../BikeRacingConstants.js";import{useScore,useTimeLeft,useLives}from "../BikeRacingStore.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const ScoreBoard = React.memo(({offset = 0})=>{const score = useScore();const timeLeft = useTimeLeft();const lives = useLives();const formattedTime = React.useMemo(()=>{const mins = Math.floor(timeLeft / 60);const secs = timeLeft % 60;return `${mins.toString().padStart(2,'0')}:${secs.toString().padStart(2,'0')}`;},[timeLeft]);return _jsx(ScoreBoardContainer,{offset:offset,backgroundColor:"rgba(255,102,0,0.4)",borderColor:"rgba(255,102,0,0.4)",children:_jsxs(View,{style:styles.rowContainer,children:[_jsxs(View,{style:styles.scoreSection,children:[_jsx(Text,{style:styles.label,children:"SCORE"}),_jsx(Text,{style:styles.value,children:score})]}),_jsxs(View,{style:styles.timeSection,children:[_jsx(Text,{style:styles.label,children:"TIME"}),_jsx(Text,{style:[styles.value,timeLeft <= 10 && styles.timeWarning],children:formattedTime})]}),_jsxs(View,{style:styles.livesSection,children:[_jsx(Text,{style:styles.label,children:"LIVES"}),_jsx(View,{style:styles.heartsContainer,children:Array.from({length:3}).map((_,index)=> _jsx(Text,{style:styles.heartIcon,children:index < lives ? '❤️':'🖤'},index))})]})]})});});ScoreBoard.displayName = 'ScoreBoard';const styles = StyleSheet.create({rowContainer:{flexDirection:'row',justifyContent:'space-between',alignItems:'center',width:'100%'},scoreSection:{flex:1,alignItems:'center'},timeSection:{flex:1,alignItems:'center'},livesSection:{flex:1,alignItems:'center'},label:{fontSize:16,fontWeight:'bold',color:'#ffffff',marginBottom:4,letterSpacing:0.5},value:{fontSize:25,fontWeight:'bold',color:'#ffffff'},timeWarning:{color:BIKE_RACING_COLORS.UI},heartsContainer:{flexDirection:'row',gap:4},heartIcon:{fontSize:22}});
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","ScoreBoardContainer","BIKE_RACING_COLORS","useScore","useTimeLeft","useLives","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","offset","score","timeLeft","lives","formattedTime","useMemo","mins","Math","floor","secs","toString","padStart","backgroundColor","borderColor","children","style","styles","rowContainer","scoreSection","label","value","timeSection","timeWarning","livesSection","heartsContainer","Array","from","length","map","_","index","heartIcon","displayName","create","flexDirection","justifyContent","alignItems","width","flex","fontSize","fontWeight","color","marginBottom","letterSpacing","UI","gap"],"sourceRoot":"../../../../../src","sources":["games/bike-racing/components/ScoreBoard.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";export{BikeComponent}from "./BikeComponent.js";export{GameBackground}from "./GameBackground.js";export{ScoreBoard}from "./ScoreBoard.js";
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BikeComponent","GameBackground","ScoreBoard"],"sourceRoot":"../../../../../src","sources":["games/bike-racing/components/index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,UAAU,QAAQ,iBAAc","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";export{BikeRacing}from "./BikeRacing.js";export{BikeRacingService}from "./BikeRacingService.js";export{useBikeRacingStore}from "./BikeRacingStore.js";export * from "./BikeRacingConstants.js";
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BikeRacing","BikeRacingService","useBikeRacingStore"],"sourceRoot":"../../../../src","sources":["games/bike-racing/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,kBAAkB,QAAQ,sBAAmB;AACtD,cAAc,0BAAuB","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import React from 'react';import{View,StyleSheet,Dimensions}from 'react-native';import{GestureHandlerRootView}from 'react-native-gesture-handler';import{GameControlButton,GameOverModal,GameSettingsModal}from "../../helpers/index.js";import{DEFAULT_GAME_SETTINGS,GAME_IDS}from "../../services/UtilsService.js";import{playSound,GAME_SOUNDS}from "../../services/SoundsService.js";import{playHaptic,HapticType}from "../../services/HapticsService.js";import{useBlockBlastStore,useScore,useIsPlaying,useGameOver,useGameWon}from "./BlockBlastStore.js";import{BlockBlastService}from "./BlockBlastService.js";import{BLOCK_BLAST_COLORS,BLOCK_BLAST_GAME_CONFIG,getDifficultySettings}from "./BlockBlastConstants.js";import{ScoreBoard,GameArea,GameBackground}from "./components/index.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');export const BlockBlast =({settings:externalSettings = DEFAULT_GAME_SETTINGS,onSettingsChange,onEndGame})=>{const settings = React.useMemo(()=>({difficulty:externalSettings?.difficulty || 'medium',soundEnabled:externalSettings?.enableSounds ?? true,hapticEnabled:externalSettings?.enableHaptics ?? true,offset:externalSettings?.offset ?? 0}),[externalSettings?.difficulty,externalSettings?.enableSounds,externalSettings?.enableHaptics,externalSettings?.offset]);const{difficulty,soundEnabled,hapticEnabled,offset}= settings;const score = useScore();const isPlaying = useIsPlaying();const gameOver = useGameOver();const gameWon = useGameWon();const storeGridSize = useBlockBlastStore(state => state.gridSize);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((gridSize,gameDuration)=> useBlockBlastStore.getState().startGame(gridSize,gameDuration),[]);const resetGame = React.useCallback(()=> useBlockBlastStore.getState().resetGame(),[]);const difficultySettings = React.useMemo(()=> getDifficultySettings(difficulty),[difficulty]);const gameService = React.useMemo(()=> new BlockBlastService(),[]);React.useEffect(()=>{const store = useBlockBlastStore.getState();if(!store.isPlaying && store.gridSize !== difficultySettings.gridSize){const newGrid = Array(difficultySettings.gridSize).fill(null).map(()=> Array(difficultySettings.gridSize).fill(null));useBlockBlastStore.setState({gridSize:difficultySettings.gridSize,grid:newGrid});}},[difficultySettings.gridSize]);const gridLayoutDimensions = React.useMemo(()=>{const cellGap = BLOCK_BLAST_GAME_CONFIG.CELL_GAP;const availableHeight = height - offset - 100;const availableWidth = width - 40;const maxCellSizeByWidth =(availableWidth -(storeGridSize - 1)* cellGap)/ storeGridSize;const maxCellSizeByHeight =(availableHeight -(storeGridSize - 1)* cellGap)/ storeGridSize;const cellSize = Math.floor(Math.min(maxCellSizeByWidth,maxCellSizeByHeight,BLOCK_BLAST_GAME_CONFIG.CELL_SIZE));return{cellSize,cellGap};},[storeGridSize,offset]);const{cellSize,cellGap}= gridLayoutDimensions;React.useEffect(()=>{const handleClearLines = linesCleared =>{if(linesCleared > 0){playSound(GAME_SOUNDS.BLOCK_BLAST.CLEAR,soundEnabled);playHaptic(HapticType.SUCCESS,hapticEnabled);}};const handlePlacePiece =()=>{playSound(GAME_SOUNDS.BLOCK_BLAST.PLACE,soundEnabled);playHaptic(HapticType.LIGHT,hapticEnabled);};const handleGameOver =()=>{playSound(GAME_SOUNDS.BLOCK_BLAST.GAME_OVER,soundEnabled);playHaptic(HapticType.ERROR,hapticEnabled);};gameService.setCallbacks(handleClearLines,handlePlacePiece,handleGameOver);},[gameService,soundEnabled,hapticEnabled]);React.useEffect(()=>{if((gameOver || gameWon)&& !gameReportedRef.current){const status = gameWon ? 'win':'lose';reportGameEnd(status);}if(!gameOver && !gameWon){gameReportedRef.current = false;}},[gameOver,gameWon,reportGameEnd]);React.useEffect(()=>{return()=>{gameService.cleanup();useBlockBlastStore.getState().resetGame();};},[gameService]);React.useEffect(()=>{if(!isPlaying)return;const timer = setInterval(()=>{useBlockBlastStore.getState().decrementTime();},1000);return()=> clearInterval(timer);},[isPlaying]);const handleStartGame = React.useCallback(()=>{gameReportedRef.current = false;startGame(difficultySettings.gridSize,difficultySettings.gameDuration);gameService.startGame(difficultySettings.gridSize);playSound(GAME_SOUNDS.BLOCK_BLAST.START,soundEnabled);playHaptic(HapticType.SUCCESS,hapticEnabled);},[startGame,gameService,difficultySettings.gridSize,difficultySettings.gameDuration,soundEnabled,hapticEnabled]);const handleStopGame = React.useCallback(()=>{reportGameEnd('cancel');resetGame();gameService.resetGame();},[resetGame,gameService,reportGameEnd]);const handleResetGame = React.useCallback(()=>{resetGame();gameService.resetGame();},[resetGame,gameService]);const handlePlayAgain = React.useCallback(()=>{handleResetGame();},[handleResetGame]);const gameControlButtonProps = React.useMemo(()=>({isPlaying,gameOver,onStartGame:handleStartGame,onStopGame:handleStopGame,startButtonColor:BLOCK_BLAST_COLORS.UI,stopButtonColor:BLOCK_BLAST_COLORS.UI,startButtonBorderColor:BLOCK_BLAST_COLORS.UI,stopButtonBorderColor:BLOCK_BLAST_COLORS.UI,startButtonText:'START GAME',stopButtonText:'STOP GAME',startButtonSubtext:'Place blocks to clear lines!'}),[isPlaying,gameOver,handleStartGame,handleStopGame]);const gameOverModalProps = React.useMemo(()=>({isVisible:gameOver,score,onPlayAgain:handlePlayAgain,buttonText:'Play Again!',borderColor:'rgba(255,105,180,0.5)',buttonColor:'#ffffff',buttonBorderColor:'#ffffff',buttonTextColor:BLOCK_BLAST_COLORS.UI,title:gameWon ? '🎉 YOU WON!':'💥 GAME OVER',message:gameWon ? 'Time completed! Great job!':'No more moves available!'}),[gameOver,score,handlePlayAgain,gameWon]);return _jsx(GestureHandlerRootView,{style:styles.container,children:_jsxs(GameBackground,{children:[_jsx(View,{style:[styles.scoreboardContainer,{top:offset + 15}],children:_jsx(ScoreBoard,{offset:0})}),_jsx(GameArea,{gridSize:storeGridSize,cellSize:cellSize,cellGap:cellGap,gameService:gameService,offset:offset + 15}),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{gameId:GAME_IDS.BLOCK_BLAST,settings:externalSettings || DEFAULT_GAME_SETTINGS,onSettingsChange:onSettingsChange})]})});};const styles = StyleSheet.create({container:{flex:1},scoreboardContainer:{position:'absolute',left:0,right:0,top:0,zIndex:10}});
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","Dimensions","GestureHandlerRootView","GameControlButton","GameOverModal","GameSettingsModal","DEFAULT_GAME_SETTINGS","GAME_IDS","playSound","GAME_SOUNDS","playHaptic","HapticType","useBlockBlastStore","useScore","useIsPlaying","useGameOver","useGameWon","BlockBlastService","BLOCK_BLAST_COLORS","BLOCK_BLAST_GAME_CONFIG","getDifficultySettings","ScoreBoard","GameArea","GameBackground","jsx","_jsx","jsxs","_jsxs","width","height","get","BlockBlast","settings","externalSettings","onSettingsChange","onEndGame","useMemo","difficulty","soundEnabled","enableSounds","hapticEnabled","enableHaptics","offset","score","isPlaying","gameOver","gameWon","storeGridSize","state","gridSize","gameReportedRef","useRef","reportGameEnd","useCallback","status","current","toString","startGame","gameDuration","getState","resetGame","difficultySettings","gameService","useEffect","store","newGrid","Array","fill","map","setState","grid","gridLayoutDimensions","cellGap","CELL_GAP","availableHeight","availableWidth","maxCellSizeByWidth","maxCellSizeByHeight","cellSize","Math","floor","min","CELL_SIZE","handleClearLines","linesCleared","BLOCK_BLAST","CLEAR","SUCCESS","handlePlacePiece","PLACE","LIGHT","handleGameOver","GAME_OVER","ERROR","setCallbacks","cleanup","timer","setInterval","decrementTime","clearInterval","handleStartGame","START","handleStopGame","handleResetGame","handlePlayAgain","gameControlButtonProps","onStartGame","onStopGame","startButtonColor","UI","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","startButtonText","stopButtonText","startButtonSubtext","gameOverModalProps","isVisible","onPlayAgain","buttonText","borderColor","buttonColor","buttonBorderColor","buttonTextColor","title","message","style","styles","container","children","scoreboardContainer","top","gameId","create","flex","position","left","right","zIndex"],"sourceRoot":"../../../../src","sources":["games/block-blast/BlockBlast.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAC3D,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,iBAAiB,EAAEC,aAAa,EAAEC,iBAAiB,QAAQ,wBAAe;AACnF,SAASC,qBAAqB,EAAkBC,QAAQ,QAAQ,gCAA6B;AAC7F,SAASC,SAAS,EAAEC,WAAW,QAAQ,iCAA8B;AACrE,SAASC,UAAU,EAAEC,UAAU,QAAQ,kCAA+B;AACtE,SACEC,kBAAkB,EAClBC,QAAQ,EACRC,YAAY,EACZC,WAAW,EACXC,UAAU,QACL,sBAAmB;AAC1B,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,kBAAkB,EAAEC,uBAAuB,EAAEC,qBAAqB,QAAQ,0BAAuB;AAC1G,SAASC,UAAU,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,uBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpE,MAAM;EAAEC,KAAK;EAAEC;AAAO,CAAC,GAAG5B,UAAU,CAAC6B,GAAG,CAAC,QAAQ,CAAC;AAElD,OAAO,MAAMC,UAA+B,GAAGA,CAAC;EAC9CC,QAAQ,EAAEC,gBAAgB,GAAG3B,qBAAqB;EAClD4B,gBAAgB;EAChBC;AACF,CAAC,KAAK;EACJ;EACA,MAAMH,QAAQ,GAAGlC,KAAK,CAACsC,OAAO,CAC5B,OAAO;IACLC,UAAU,EAAEJ,gBAAgB,EAAEI,UAAU,IAAI,QAAQ;IACpDC,YAAY,EAAEL,gBAAgB,EAAEM,YAAY,IAAI,IAAI;IACpDC,aAAa,EAAEP,gBAAgB,EAAEQ,aAAa,IAAI,IAAI;IACtDC,MAAM,EAAET,gBAAgB,EAAES,MAAM,IAAI;EACtC,CAAC,CAAC,EACF,CAACT,gBAAgB,EAAEI,UAAU,EAAEJ,gBAAgB,EAAEM,YAAY,EAAEN,gBAAgB,EAAEQ,aAAa,EAAER,gBAAgB,EAAES,MAAM,CAC1H,CAAC;EAED,MAAM;IAAEL,UAAU;IAAEC,YAAY;IAAEE,aAAa;IAAEE;EAAO,CAAC,GAAGV,QAAQ;;EAEpE;EACA,MAAMW,KAAK,GAAG9B,QAAQ,CAAC,CAAC;EACxB,MAAM+B,SAAS,GAAG9B,YAAY,CAAC,CAAC;EAChC,MAAM+B,QAAQ,GAAG9B,WAAW,CAAC,CAAC;EAC9B,MAAM+B,OAAO,GAAG9B,UAAU,CAAC,CAAC;EAC5B,MAAM+B,aAAa,GAAGnC,kBAAkB,CAAEoC,KAAK,IAAKA,KAAK,CAACC,QAAQ,CAAC;;EAEnE;EACA,MAAMC,eAAe,GAAGpD,KAAK,CAACqD,MAAM,CAAU,KAAK,CAAC;;EAEpD;EACA,MAAMC,aAAa,GAAGtD,KAAK,CAACuD,WAAW,CAAEC,MAAiC,IAAK;IAC7E,IAAInB,SAAS,IAAI,CAACe,eAAe,CAACK,OAAO,EAAE;MACzCpB,SAAS,CAAC;QACRmB,MAAM;QACNX,KAAK,EAAEA,KAAK,CAACa,QAAQ,CAAC;MACxB,CAAC,CAAC;MACFN,eAAe,CAACK,OAAO,GAAG,IAAI;IAChC;EACF,CAAC,EAAE,CAACpB,SAAS,EAAEQ,KAAK,CAAC,CAAC;;EAEtB;EACA,MAAMc,SAAS,GAAG3D,KAAK,CAACuD,WAAW,CACjC,CAACJ,QAAiB,EAAES,YAAqB,KAAK9C,kBAAkB,CAAC+C,QAAQ,CAAC,CAAC,CAACF,SAAS,CAACR,QAAQ,EAAES,YAAY,CAAC,EAC7G,EACF,CAAC;EACD,MAAME,SAAS,GAAG9D,KAAK,CAACuD,WAAW,CAAC,MAAMzC,kBAAkB,CAAC+C,QAAQ,CAAC,CAAC,CAACC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;;EAExF;EACA,MAAMC,kBAAkB,GAAG/D,KAAK,CAACsC,OAAO,CAAC,MAAMhB,qBAAqB,CAACiB,UAAU,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAE/F,MAAMyB,WAAW,GAAGhE,KAAK,CAACsC,OAAO,CAAC,MAAM,IAAInB,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC;;EAEpE;EACAnB,KAAK,CAACiE,SAAS,CAAC,MAAM;IACpB,MAAMC,KAAK,GAAGpD,kBAAkB,CAAC+C,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAACK,KAAK,CAACpB,SAAS,IAAIoB,KAAK,CAACf,QAAQ,KAAKY,kBAAkB,CAACZ,QAAQ,EAAE;MACtE;MACA,MAAMgB,OAAO,GAAGC,KAAK,CAACL,kBAAkB,CAACZ,QAAQ,CAAC,CAC/CkB,IAAI,CAAC,IAAI,CAAC,CACVC,GAAG,CAAC,MAAMF,KAAK,CAACL,kBAAkB,CAACZ,QAAQ,CAAC,CAACkB,IAAI,CAAC,IAAI,CAAC,CAAC;MAE3DvD,kBAAkB,CAACyD,QAAQ,CAAC;QAC1BpB,QAAQ,EAAEY,kBAAkB,CAACZ,QAAQ;QACrCqB,IAAI,EAAEL;MACR,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACJ,kBAAkB,CAACZ,QAAQ,CAAC,CAAC;;EAEjC;EACA,MAAMsB,oBAAoB,GAAGzE,KAAK,CAACsC,OAAO,CAAC,MAAM;IAC/C,MAAMoC,OAAO,GAAGrD,uBAAuB,CAACsD,QAAQ;;IAEhD;IACA,MAAMC,eAAe,GAAG7C,MAAM,GAAGa,MAAM,GAAG,GAAG;IAC7C,MAAMiC,cAAc,GAAG/C,KAAK,GAAG,EAAE,CAAC,CAAC;;IAEnC;IACA,MAAMgD,kBAAkB,GAAG,CAACD,cAAc,GAAG,CAAC5B,aAAa,GAAG,CAAC,IAAIyB,OAAO,IAAIzB,aAAa;IAC3F,MAAM8B,mBAAmB,GAAG,CAACH,eAAe,GAAG,CAAC3B,aAAa,GAAG,CAAC,IAAIyB,OAAO,IAAIzB,aAAa;IAC7F,MAAM+B,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAACL,kBAAkB,EAAEC,mBAAmB,EAAE1D,uBAAuB,CAAC+D,SAAS,CAAC,CAAC;IAEjH,OAAO;MAAEJ,QAAQ;MAAEN;IAAQ,CAAC;EAC9B,CAAC,EAAE,CAACzB,aAAa,EAAEL,MAAM,CAAC,CAAC;EAE3B,MAAM;IAAEoC,QAAQ;IAAEN;EAAQ,CAAC,GAAGD,oBAAoB;;EAElD;EACAzE,KAAK,CAACiE,SAAS,CAAC,MAAM;IACpB,MAAMoB,gBAAgB,GAAIC,YAAoB,IAAK;MACjD,IAAIA,YAAY,GAAG,CAAC,EAAE;QACpB5E,SAAS,CAACC,WAAW,CAAC4E,WAAW,CAACC,KAAK,EAAEhD,YAAY,CAAC;QACtD5B,UAAU,CAACC,UAAU,CAAC4E,OAAO,EAAE/C,aAAa,CAAC;MAC/C;IACF,CAAC;IAED,MAAMgD,gBAAgB,GAAGA,CAAA,KAAM;MAC7BhF,SAAS,CAACC,WAAW,CAAC4E,WAAW,CAACI,KAAK,EAAEnD,YAAY,CAAC;MACtD5B,UAAU,CAACC,UAAU,CAAC+E,KAAK,EAAElD,aAAa,CAAC;IAC7C,CAAC;IAED,MAAMmD,cAAc,GAAGA,CAAA,KAAM;MAC3BnF,SAAS,CAACC,WAAW,CAAC4E,WAAW,CAACO,SAAS,EAAEtD,YAAY,CAAC;MAC1D5B,UAAU,CAACC,UAAU,CAACkF,KAAK,EAAErD,aAAa,CAAC;IAC7C,CAAC;IAEDsB,WAAW,CAACgC,YAAY,CAACX,gBAAgB,EAAEK,gBAAgB,EAAEG,cAAc,CAAC;EAC9E,CAAC,EAAE,CAAC7B,WAAW,EAAExB,YAAY,EAAEE,aAAa,CAAC,CAAC;;EAE9C;EACA1C,KAAK,CAACiE,SAAS,CAAC,MAAM;IACpB,IAAI,CAAClB,QAAQ,IAAIC,OAAO,KAAK,CAACI,eAAe,CAACK,OAAO,EAAE;MACrD,MAAMD,MAAM,GAAGR,OAAO,GAAG,KAAK,GAAG,MAAM;MACvCM,aAAa,CAACE,MAAM,CAAC;IACvB;;IAEA;IACA,IAAI,CAACT,QAAQ,IAAI,CAACC,OAAO,EAAE;MACzBI,eAAe,CAACK,OAAO,GAAG,KAAK;IACjC;EACF,CAAC,EAAE,CAACV,QAAQ,EAAEC,OAAO,EAAEM,aAAa,CAAC,CAAC;;EAEtC;EACAtD,KAAK,CAACiE,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACXD,WAAW,CAACiC,OAAO,CAAC,CAAC;MACrB;MACAnF,kBAAkB,CAAC+C,QAAQ,CAAC,CAAC,CAACC,SAAS,CAAC,CAAC;IAC3C,CAAC;EACH,CAAC,EAAE,CAACE,WAAW,CAAC,CAAC;;EAEjB;EACAhE,KAAK,CAACiE,SAAS,CAAC,MAAM;IACpB,IAAI,CAACnB,SAAS,EAAE;IAEhB,MAAMoD,KAAK,GAAGC,WAAW,CAAC,MAAM;MAC9BrF,kBAAkB,CAAC+C,QAAQ,CAAC,CAAC,CAACuC,aAAa,CAAC,CAAC;IAC/C,CAAC,EAAE,IAAI,CAAC;IAER,OAAO,MAAMC,aAAa,CAACH,KAAK,CAAC;EACnC,CAAC,EAAE,CAACpD,SAAS,CAAC,CAAC;;EAEf;EACA,MAAMwD,eAAe,GAAGtG,KAAK,CAACuD,WAAW,CAAC,MAAM;IAC9CH,eAAe,CAACK,OAAO,GAAG,KAAK,CAAC,CAAC;IACjCE,SAAS,CAACI,kBAAkB,CAACZ,QAAQ,EAAEY,kBAAkB,CAACH,YAAY,CAAC;IACvEI,WAAW,CAACL,SAAS,CAACI,kBAAkB,CAACZ,QAAQ,CAAC;IAClDzC,SAAS,CAACC,WAAW,CAAC4E,WAAW,CAACgB,KAAK,EAAE/D,YAAY,CAAC;IACtD5B,UAAU,CAACC,UAAU,CAAC4E,OAAO,EAAE/C,aAAa,CAAC;EAC/C,CAAC,EAAE,CAACiB,SAAS,EAAEK,WAAW,EAAED,kBAAkB,CAACZ,QAAQ,EAAEY,kBAAkB,CAACH,YAAY,EAAEpB,YAAY,EAAEE,aAAa,CAAC,CAAC;EAEvH,MAAM8D,cAAc,GAAGxG,KAAK,CAACuD,WAAW,CAAC,MAAM;IAC7CD,aAAa,CAAC,QAAQ,CAAC;IACvB;IACAQ,SAAS,CAAC,CAAC;IACXE,WAAW,CAACF,SAAS,CAAC,CAAC;EACzB,CAAC,EAAE,CAACA,SAAS,EAAEE,WAAW,EAAEV,aAAa,CAAC,CAAC;EAE3C,MAAMmD,eAAe,GAAGzG,KAAK,CAACuD,WAAW,CAAC,MAAM;IAC9CO,SAAS,CAAC,CAAC;IACXE,WAAW,CAACF,SAAS,CAAC,CAAC;EACzB,CAAC,EAAE,CAACA,SAAS,EAAEE,WAAW,CAAC,CAAC;EAE5B,MAAM0C,eAAe,GAAG1G,KAAK,CAACuD,WAAW,CAAC,MAAM;IAC9CkD,eAAe,CAAC,CAAC;EACnB,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;;EAGrB;EACA,MAAME,sBAAsB,GAAG3G,KAAK,CAACsC,OAAO,CAC1C,OAAO;IACLQ,SAAS;IACTC,QAAQ;IACR6D,WAAW,EAAEN,eAAe;IAC5BO,UAAU,EAAEL,cAAc;IAC1BM,gBAAgB,EAAE1F,kBAAkB,CAAC2F,EAAE;IACvCC,eAAe,EAAE5F,kBAAkB,CAAC2F,EAAE;IACtCE,sBAAsB,EAAE7F,kBAAkB,CAAC2F,EAAE;IAC7CG,qBAAqB,EAAE9F,kBAAkB,CAAC2F,EAAE;IAC5CI,eAAe,EAAE,YAAY;IAC7BC,cAAc,EAAE,WAAW;IAC3BC,kBAAkB,EAAE;EACtB,CAAC,CAAC,EACF,CAACvE,SAAS,EAAEC,QAAQ,EAAEuD,eAAe,EAAEE,cAAc,CACvD,CAAC;;EAED;EACA,MAAMc,kBAAkB,GAAGtH,KAAK,CAACsC,OAAO,CACtC,OAAO;IACLiF,SAAS,EAAExE,QAAQ;IACnBF,KAAK;IACL2E,WAAW,EAAEd,eAAe;IAC5Be,UAAU,EAAE,aAAa;IACzBC,WAAW,EAAE,0BAA0B;IACvCC,WAAW,EAAE,SAAS;IACtBC,iBAAiB,EAAE,SAAS;IAC5BC,eAAe,EAAEzG,kBAAkB,CAAC2F,EAAE;IACtCe,KAAK,EAAE9E,OAAO,GAAG,aAAa,GAAG,cAAc;IAC/C+E,OAAO,EAAE/E,OAAO,GAAG,4BAA4B,GAAG;EACpD,CAAC,CAAC,EACF,CAACD,QAAQ,EAAEF,KAAK,EAAE6D,eAAe,EAAE1D,OAAO,CAC5C,CAAC;EAED,oBACErB,IAAA,CAACvB,sBAAsB;IAAC4H,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC9CtG,KAAA,CAACJ,cAAc;MAAA0G,QAAA,gBAEbxG,IAAA,CAAC1B,IAAI;QAAC+H,KAAK,EAAE,CAACC,MAAM,CAACG,mBAAmB,EAAE;UAAEC,GAAG,EAAEzF,MAAM,GAAG;QAAG,CAAC,CAAE;QAAAuF,QAAA,eAC9DxG,IAAA,CAACJ,UAAU;UAACqB,MAAM,EAAE;QAAE,CAAE;MAAC,CACrB,CAAC,eAGPjB,IAAA,CAACH,QAAQ;QACP2B,QAAQ,EAAEF,aAAc;QACxB+B,QAAQ,EAAEA,QAAS;QACnBN,OAAO,EAAEA,OAAQ;QACjBV,WAAW,EAAEA,WAAY;QACzBpB,MAAM,EAAEA,MAAM,GAAG;MAAG,CACrB,CAAC,eAGFjB,IAAA,CAACtB,iBAAiB;QAAA,GAAKsG;MAAsB,CAAG,CAAC,eAGjDhF,IAAA,CAACrB,aAAa;QAAA,GAAKgH;MAAkB,CAAG,CAAC,eAGzC3F,IAAA,CAACpB,iBAAiB;QAChB+H,MAAM,EAAE7H,QAAQ,CAAC8E,WAAY;QAC7BrD,QAAQ,EAAEC,gBAAgB,IAAI3B,qBAAsB;QACpD4B,gBAAgB,EAAEA;MAAiB,CACpC,CAAC;IAAA,CACY;EAAC,CACK,CAAC;AAE7B,CAAC;AAED,MAAM6F,MAAM,GAAG/H,UAAU,CAACqI,MAAM,CAAC;EAC/BL,SAAS,EAAE;IACTM,IAAI,EAAE;EACR,CAAC;EACDJ,mBAAmB,EAAE;IACnBK,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRN,GAAG,EAAE,CAAC;IACNO,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";export const BLOCK_BLAST_DIFFICULTY_CONFIG ={easy:{gridSize:8,nextPiecesCount:3,scoreMultiplier:1,gameDuration:180},medium:{gridSize:10,nextPiecesCount:3,scoreMultiplier:1.5,gameDuration:300},hard:{gridSize:10,nextPiecesCount:3,scoreMultiplier:2,gameDuration:600}};export const getDifficultySettings = difficulty =>{return BLOCK_BLAST_DIFFICULTY_CONFIG[difficulty];};export const DEFAULT_BLOCK_BLAST_SETTINGS ={difficulty:'medium',soundEnabled:true,hapticEnabled:true};export const BLOCK_BLAST_GAME_CONFIG ={GRID_SIZE:8,CELL_SIZE:40,CELL_GAP:2,NEXT_PIECES_COUNT:3,POINTS_PER_BLOCK:10,POINTS_PER_LINE:100,COMBO_MULTIPLIER:1.5,PREVIEW_PIECE_SCALE:0.7,DRAGGING_PIECE_SCALE:1.0};export const BLOCK_BLAST_COLORS ={BACKGROUND:'#2a2d5a',GRID_BACKGROUND:'#1a1d3a',EMPTY_CELL:'#3a3d6a',GRID_LINE:'#4a4d7a',BLOCK_CYAN:'#00d4ff',BLOCK_BLUE:'#4169ff',BLOCK_RED:'#ff4169',BLOCK_YELLOW:'#ffd700',BLOCK_GREEN:'#00ff88',BLOCK_PURPLE:'#b469ff',BLOCK_ORANGE:'#ff8800',BLOCK_PINK:'#ff69b4',SCORE_TEXT:'#ffffff',COMBO_TEXT:'#ffd700',UI:'#ff69b4',HEART:'#ff69b4'};export const BLOCK_SHAPES = [ [[1]],[[1,1]],[[1],[1]],[[1,1,1]],[[1],[1],[1]],[[1,1],[1,0]],[[1,1],[0,1]],[[1,0],[1,1]],[[0,1],[1,1]],[[1,1,1,1]],[[1],[1],[1],[1]],[[1,1],[1,1]],[[1,1,0],[0,1,1]],[[0,1,1],[1,1,0]],[[1,1,1],[1,0,0]],[[1,1,1],[0,0,1]],[[1,1,1],[0,1,0]] ];export const getRandomBlockShape =()=>{const randomIndex = Math.floor(Math.random()* BLOCK_SHAPES.length);return BLOCK_SHAPES[randomIndex];};export const getRandomBlockColor =()=>{const colors = [BLOCK_BLAST_COLORS.BLOCK_CYAN,BLOCK_BLAST_COLORS.BLOCK_BLUE,BLOCK_BLAST_COLORS.BLOCK_RED,BLOCK_BLAST_COLORS.BLOCK_YELLOW,BLOCK_BLAST_COLORS.BLOCK_GREEN,BLOCK_BLAST_COLORS.BLOCK_PURPLE,BLOCK_BLAST_COLORS.BLOCK_ORANGE,BLOCK_BLAST_COLORS.BLOCK_PINK];return colors[Math.floor(Math.random()* colors.length)];};export const BLOCK_BLAST_THEME ={backgroundColor:'rgba(42,45,90,0.95)',headerBackgroundColor:'#ff69b4',headerTextColor:'#ffffff',sectionBackgroundColor:'rgba(255,105,180,0.15)',sectionTitleColor:'#ff69b4',buttonSelectedColor:'#ff69b4',buttonUnselectedColor:'rgba(255,255,255,0.2)',buttonSelectedTextColor:'#ffffff',buttonUnselectedTextColor:'rgba(255,255,255,0.7)',switchTrackColorFalse:'rgba(255,105,180,0.3)',switchTrackColorTrue:'#ff69b4',switchThumbColor:'#ffffff',infoTextColor:'rgba(255,255,255,0.9)'};export const BLOCK_BLAST_DIFFICULTY_DESCRIPTIONS ={easy:'8x8 grid,relaxed puzzle solving',medium:'10x10 grid,balanced challenge,1.5x score',hard:'10x10 grid,expert strategy,2x score!'};
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BLOCK_BLAST_DIFFICULTY_CONFIG","easy","gridSize","nextPiecesCount","scoreMultiplier","gameDuration","medium","hard","getDifficultySettings","difficulty","DEFAULT_BLOCK_BLAST_SETTINGS","soundEnabled","hapticEnabled","BLOCK_BLAST_GAME_CONFIG","GRID_SIZE","CELL_SIZE","CELL_GAP","NEXT_PIECES_COUNT","POINTS_PER_BLOCK","POINTS_PER_LINE","COMBO_MULTIPLIER","PREVIEW_PIECE_SCALE","DRAGGING_PIECE_SCALE","BLOCK_BLAST_COLORS","BACKGROUND","GRID_BACKGROUND","EMPTY_CELL","GRID_LINE","BLOCK_CYAN","BLOCK_BLUE","BLOCK_RED","BLOCK_YELLOW","BLOCK_GREEN","BLOCK_PURPLE","BLOCK_ORANGE","BLOCK_PINK","SCORE_TEXT","COMBO_TEXT","UI","HEART","BLOCK_SHAPES","getRandomBlockShape","randomIndex","Math","floor","random","length","getRandomBlockColor","colors","BLOCK_BLAST_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","BLOCK_BLAST_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/block-blast/BlockBlastConstants.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import{useBlockBlastStore}from "./BlockBlastStore.js";export class BlockBlastService{setCallbacks(onClearLines,onPlacePiece,onGameOver){this.onClearLines = onClearLines;this.onPlacePiece = onPlacePiece;this.onGameOver = onGameOver;}startGame(gridSize){useBlockBlastStore.getState().startGame(gridSize);}stopGame(){useBlockBlastStore.getState().stopGame();}resetGame(){useBlockBlastStore.getState().resetGame();}placePiece(pieceId,row,col){const store = useBlockBlastStore.getState();const success = store.placePiece(pieceId,row,col);if(success){if(this.onPlacePiece){this.onPlacePiece();}const linesCleared = store.clearLines();if(linesCleared > 0 && this.onClearLines){this.onClearLines(linesCleared);}const freshStore = useBlockBlastStore.getState();freshStore.addNewPiece();const isGameOver = freshStore.checkGameOver();if(isGameOver && this.onGameOver){this.onGameOver();}}return success;}canPlacePiece(pieceId,row,col){const store = useBlockBlastStore.getState();const piece = store.nextPieces.find(p => p.id === pieceId);if(!piece)return false;const{shape}= piece;for(let r = 0;r < shape.length;r++){const shapeRow = shape[r];if(!shapeRow)continue;for(let c = 0;c < shapeRow.length;c++){if(shapeRow[c] === 1){const gridRow = row + r;const gridCol = col + c;if(gridRow < 0 || gridRow >= store.gridSize || gridCol < 0 || gridCol >= store.gridSize || store.grid[gridRow]?.[gridCol] !== null){return false;}}}}return true;}getGridPosition(x,y,gridStartX,gridStartY,cellSize,cellGap){const totalCellSize = cellSize + cellGap;const relativeX = x - gridStartX;const relativeY = y - gridStartY;if(relativeX < 0 || relativeY < 0)return null;const col = Math.floor(relativeX / totalCellSize);const row = Math.floor(relativeY / totalCellSize);return{row,col};}cleanup(){this.onClearLines = undefined;this.onPlacePiece = undefined;this.onGameOver = undefined;}}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useBlockBlastStore","BlockBlastService","setCallbacks","onClearLines","onPlacePiece","onGameOver","startGame","gridSize","getState","stopGame","resetGame","placePiece","pieceId","row","col","store","success","linesCleared","clearLines","freshStore","addNewPiece","isGameOver","checkGameOver","canPlacePiece","piece","nextPieces","find","p","id","shape","r","length","shapeRow","c","gridRow","gridCol","grid","getGridPosition","x","y","gridStartX","gridStartY","cellSize","cellGap","totalCellSize","relativeX","relativeY","Math","floor","cleanup","undefined"],"sourceRoot":"../../../../src","sources":["games/block-blast/BlockBlastService.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,sBAAmB;AAEtD,OAAO,MAAMC,iBAAiB,CAAC;EAK7B;EACAC,YAAYA,CACVC,YAA6C,EAC7CC,YAAyB,EACzBC,UAAuB,EACjB;IACN,IAAI,CAACF,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,UAAU,GAAGA,UAAU;EAC9B;;EAEA;EACAC,SAASA,CAACC,QAAiB,EAAQ;IACjCP,kBAAkB,CAACQ,QAAQ,CAAC,CAAC,CAACF,SAAS,CAACC,QAAQ,CAAC;EACnD;;EAEA;EACAE,QAAQA,CAAA,EAAS;IACfT,kBAAkB,CAACQ,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC1C;;EAEA;EACAC,SAASA,CAAA,EAAS;IAChBV,kBAAkB,CAACQ,QAAQ,CAAC,CAAC,CAACE,SAAS,CAAC,CAAC;EAC3C;;EAEA;EACAC,UAAUA,CAACC,OAAe,EAAEC,GAAW,EAAEC,GAAW,EAAW;IAC7D,MAAMC,KAAK,GAAGf,kBAAkB,CAACQ,QAAQ,CAAC,CAAC;IAC3C,MAAMQ,OAAO,GAAGD,KAAK,CAACJ,UAAU,CAACC,OAAO,EAAEC,GAAG,EAAEC,GAAG,CAAC;IAEnD,IAAIE,OAAO,EAAE;MACX;MACA,IAAI,IAAI,CAACZ,YAAY,EAAE;QACrB,IAAI,CAACA,YAAY,CAAC,CAAC;MACrB;;MAEA;MACA,MAAMa,YAAY,GAAGF,KAAK,CAACG,UAAU,CAAC,CAAC;MACvC,IAAID,YAAY,GAAG,CAAC,IAAI,IAAI,CAACd,YAAY,EAAE;QACzC,IAAI,CAACA,YAAY,CAACc,YAAY,CAAC;MACjC;;MAEA;MACA,MAAME,UAAU,GAAGnB,kBAAkB,CAACQ,QAAQ,CAAC,CAAC;MAChDW,UAAU,CAACC,WAAW,CAAC,CAAC;;MAExB;MACA,MAAMC,UAAU,GAAGF,UAAU,CAACG,aAAa,CAAC,CAAC;MAC7C,IAAID,UAAU,IAAI,IAAI,CAAChB,UAAU,EAAE;QACjC,IAAI,CAACA,UAAU,CAAC,CAAC;MACnB;IACF;IAEA,OAAOW,OAAO;EAChB;EAEAO,aAAaA,CAACX,OAAe,EAAEC,GAAW,EAAEC,GAAW,EAAW;IAChE,MAAMC,KAAK,GAAGf,kBAAkB,CAACQ,QAAQ,CAAC,CAAC;IAC3C,MAAMgB,KAAK,GAAGT,KAAK,CAACU,UAAU,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKhB,OAAO,CAAC;IAC5D,IAAI,CAACY,KAAK,EAAE,OAAO,KAAK;IAExB,MAAM;MAAEK;IAAM,CAAC,GAAGL,KAAK;;IAEvB;IACA,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;MACrC,MAAME,QAAQ,GAAGH,KAAK,CAACC,CAAC,CAAC;MACzB,IAAI,CAACE,QAAQ,EAAE;MACf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,QAAQ,CAACD,MAAM,EAAEE,CAAC,EAAE,EAAE;QACxC,IAAID,QAAQ,CAACC,CAAC,CAAC,KAAK,CAAC,EAAE;UACrB,MAAMC,OAAO,GAAGrB,GAAG,GAAGiB,CAAC;UACvB,MAAMK,OAAO,GAAGrB,GAAG,GAAGmB,CAAC;UACvB,IACEC,OAAO,GAAG,CAAC,IACXA,OAAO,IAAInB,KAAK,CAACR,QAAQ,IACzB4B,OAAO,GAAG,CAAC,IACXA,OAAO,IAAIpB,KAAK,CAACR,QAAQ,IACzBQ,KAAK,CAACqB,IAAI,CAACF,OAAO,CAAC,GAAGC,OAAO,CAAC,KAAK,IAAI,EACvC;YACA,OAAO,KAAK;UACd;QACF;MACF;IACF;IACA,OAAO,IAAI;EACb;;EAEA;EACAE,eAAeA,CACbC,CAAS,EACTC,CAAS,EACTC,UAAkB,EAClBC,UAAkB,EAClBC,QAAgB,EAChBC,OAAe,EACsB;IACrC,MAAMC,aAAa,GAAGF,QAAQ,GAAGC,OAAO;IACxC,MAAME,SAAS,GAAGP,CAAC,GAAGE,UAAU;IAChC,MAAMM,SAAS,GAAGP,CAAC,GAAGE,UAAU;IAEhC,IAAII,SAAS,GAAG,CAAC,IAAIC,SAAS,GAAG,CAAC,EAAE,OAAO,IAAI;IAE/C,MAAMhC,GAAG,GAAGiC,IAAI,CAACC,KAAK,CAACH,SAAS,GAAGD,aAAa,CAAC;IACjD,MAAM/B,GAAG,GAAGkC,IAAI,CAACC,KAAK,CAACF,SAAS,GAAGF,aAAa,CAAC;IAEjD,OAAO;MAAE/B,GAAG;MAAEC;IAAI,CAAC;EACrB;;EAEA;EACAmC,OAAOA,CAAA,EAAS;IACd,IAAI,CAAC9C,YAAY,GAAG+C,SAAS;IAC7B,IAAI,CAAC9C,YAAY,GAAG8C,SAAS;IAC7B,IAAI,CAAC7C,UAAU,GAAG6C,SAAS;EAC7B;AACF","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import{create}from 'zustand';import{subscribeWithSelector}from 'zustand/middleware';import{immerMiddleware}from "../../services/UtilsService.js";import{BLOCK_BLAST_GAME_CONFIG,getRandomBlockShape,getRandomBlockColor}from "./BlockBlastConstants.js";const createEmptyGrid = size =>{return Array(size).fill(null).map(()=> Array(size).fill(null));};const generateRandomPiece =()=>{const shape = getRandomBlockShape();const color = getRandomBlockColor();if(!shape || !color){throw new Error('Failed to generate random piece');}return{id:`piece-${Date.now()}-${Math.random()}`,shape:shape.map(row => [...row]),color:color};};export const useBlockBlastStore = create()(subscribeWithSelector(immerMiddleware((set,get)=>({score:0,isPlaying:false,gameOver:false,gameWon:false,timeRemaining:0,gameDuration:300,grid:createEmptyGrid(BLOCK_BLAST_GAME_CONFIG.GRID_SIZE),gridSize:BLOCK_BLAST_GAME_CONFIG.GRID_SIZE,nextPieces:[],selectedPieceId:null,dragPosition:null,previewPosition:null,canPlace:false,startGame:(gridSize,gameDuration)=>{const size = gridSize || BLOCK_BLAST_GAME_CONFIG.GRID_SIZE;const duration = gameDuration || 300;set(draft =>{draft.score = 0;draft.isPlaying = true;draft.gameOver = false;draft.gameWon = false;draft.timeRemaining = duration;draft.gameDuration = duration;draft.grid = createEmptyGrid(size);draft.gridSize = size;draft.nextPieces = Array(BLOCK_BLAST_GAME_CONFIG.NEXT_PIECES_COUNT).fill(null).map(()=> generateRandomPiece());draft.selectedPieceId = null;draft.dragPosition = null;draft.previewPosition = null;draft.canPlace = false;});},stopGame:()=>{set(draft =>{draft.isPlaying = false;draft.selectedPieceId = null;draft.dragPosition = null;draft.previewPosition = null;});},resetGame:()=>{set(draft =>{draft.score = 0;draft.isPlaying = false;draft.gameOver = false;draft.gameWon = false;draft.timeRemaining = 0;draft.grid = createEmptyGrid(draft.gridSize);draft.nextPieces = [];draft.selectedPieceId = null;draft.dragPosition = null;draft.previewPosition = null;draft.canPlace = false;});},updateScore:points =>{set(draft =>{draft.score = draft.score + points;});},selectPiece:pieceId =>{set(draft =>{draft.selectedPieceId = pieceId;});},deselectPiece:()=>{set(draft =>{draft.selectedPieceId = null;draft.dragPosition = null;draft.previewPosition = null;draft.canPlace = false;});},updateDragPosition:(x,y)=>{set(draft =>{draft.dragPosition ={x,y};});},updatePreviewPosition:(row,col,canPlace)=>{set(draft =>{draft.previewPosition ={row,col};draft.canPlace = canPlace;});},clearPreview:()=>{set(draft =>{draft.previewPosition = null;draft.canPlace = false;});},placePiece:(pieceId,row,col)=>{const state = get();const piece = state.nextPieces.find(p => p.id === pieceId);if(!piece)return false;const{shape,color}= piece;for(let r = 0;r < shape.length;r++){for(let c = 0;c < shape[r].length;c++){if(shape[r][c] === 1){const gridRow = row + r;const gridCol = col + c;if(gridRow < 0 || gridRow >= state.gridSize || gridCol < 0 || gridCol >= state.gridSize || state.grid[gridRow][gridCol] !== null){return false;}}}}set(draft =>{for(let r = 0;r < shape.length;r++){for(let c = 0;c < shape[r].length;c++){if(shape[r][c] === 1){draft.grid[row + r][col + c] = color;}}}const blockCount = shape.flat().filter(cell => cell === 1).length;draft.score += blockCount * BLOCK_BLAST_GAME_CONFIG.POINTS_PER_BLOCK;draft.nextPieces = draft.nextPieces.filter(p => p.id !== pieceId);draft.selectedPieceId = null;draft.dragPosition = null;draft.previewPosition = null;draft.canPlace = false;});return true;},generateNextPieces:()=>{set(draft =>{draft.nextPieces = Array(BLOCK_BLAST_GAME_CONFIG.NEXT_PIECES_COUNT).fill(null).map(()=> generateRandomPiece());});},addNewPiece:()=>{set(draft =>{draft.nextPieces.push(generateRandomPiece());});},clearLines:()=>{const state = get();let linesCleared = 0;const linesToClear = [];const colsToClear = [];const gridSize = state.gridSize;const grid = state.grid;for(let row = 0;row < gridSize;row++){let isRowFull = true;const rowData = grid[row];if(!rowData)continue;for(let col = 0;col < gridSize;col++){if(rowData[col] === null){isRowFull = false;break;}}if(isRowFull){linesToClear.push(row);linesCleared++;}}for(let col = 0;col < gridSize;col++){let isColFull = true;for(let row = 0;row < gridSize;row++){const rowData = grid[row];if(!rowData || rowData[col] === null){isColFull = false;break;}}if(isColFull){colsToClear.push(col);linesCleared++;}}if(linesCleared === 0){return 0;}set(draft =>{linesToClear.forEach(row =>{for(let col = 0;col < gridSize;col++){draft.grid[row][col] = null;}});colsToClear.forEach(col =>{for(let row = 0;row < gridSize;row++){draft.grid[row][col] = null;}});const totalPoints = linesCleared * BLOCK_BLAST_GAME_CONFIG.POINTS_PER_LINE;draft.score += totalPoints;});return linesCleared;},checkGameOver:()=>{const state = get();for(const piece of state.nextPieces){for(let row = 0;row < state.gridSize;row++){for(let col = 0;col < state.gridSize;col++){let canPlace = true;for(let r = 0;r < piece.shape.length;r++){for(let c = 0;c < piece.shape[r].length;c++){if(piece.shape[r][c] === 1){const gridRow = row + r;const gridCol = col + c;if(gridRow < 0 || gridRow >= state.gridSize || gridCol < 0 || gridCol >= state.gridSize || state.grid[gridRow][gridCol] !== null){canPlace = false;break;}}}if(!canPlace)break;}if(canPlace)return false;}}}set(draft =>{draft.gameOver = true;draft.isPlaying = false;});return true;},decrementTime:()=>{set(draft =>{if(draft.timeRemaining > 0){draft.timeRemaining -= 1;}if(draft.timeRemaining === 0 && draft.isPlaying){draft.gameWon = true;draft.gameOver = true;draft.isPlaying = false;}});},checkWinCondition:()=>{const state = get();if(state.timeRemaining === 0 && state.isPlaying){set(draft =>{draft.gameWon = true;draft.gameOver = true;draft.isPlaying = false;});}}}))));export const useScore =()=> useBlockBlastStore(state => state.score);export const useIsPlaying =()=> useBlockBlastStore(state => state.isPlaying);export const useGameOver =()=> useBlockBlastStore(state => state.gameOver);export const useGameWon =()=> useBlockBlastStore(state => state.gameWon);export const useTimeRemaining =()=> useBlockBlastStore(state => state.timeRemaining);export const useGrid =()=> useBlockBlastStore(state => state.grid);export const useNextPieces =()=> useBlockBlastStore(state => state.nextPieces);export const useSelectedPieceId =()=> useBlockBlastStore(state => state.selectedPieceId);
@@ -0,0 +1 @@
1
+ {"version":3,"names":["create","subscribeWithSelector","immerMiddleware","BLOCK_BLAST_GAME_CONFIG","getRandomBlockShape","getRandomBlockColor","createEmptyGrid","size","Array","fill","map","generateRandomPiece","shape","color","Error","id","Date","now","Math","random","row","useBlockBlastStore","set","get","score","isPlaying","gameOver","gameWon","timeRemaining","gameDuration","grid","GRID_SIZE","gridSize","nextPieces","selectedPieceId","dragPosition","previewPosition","canPlace","startGame","duration","draft","NEXT_PIECES_COUNT","stopGame","resetGame","updateScore","points","selectPiece","pieceId","deselectPiece","updateDragPosition","x","y","updatePreviewPosition","col","clearPreview","placePiece","state","piece","find","p","r","length","c","gridRow","gridCol","blockCount","flat","filter","cell","POINTS_PER_BLOCK","generateNextPieces","addNewPiece","push","clearLines","linesCleared","linesToClear","colsToClear","isRowFull","rowData","isColFull","forEach","totalPoints","POINTS_PER_LINE","checkGameOver","decrementTime","checkWinCondition","useScore","useIsPlaying","useGameOver","useGameWon","useTimeRemaining","useGrid","useNextPieces","useSelectedPieceId"],"sourceRoot":"../../../../src","sources":["games/block-blast/BlockBlastStore.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import React from 'react';import{Canvas,RoundedRect,Group}from '@shopify/react-native-skia';import Animated,{useAnimatedStyle,withSpring}from 'react-native-reanimated';import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const BlockPieceComponentView =({shape,color,cellSize,cellGap,scale = 1,x = 0,y = 0,isDragging = false})=>{const scaledCellSize = cellSize * scale;const scaledGap = cellGap * scale;const scaledTotalSize = scaledCellSize + scaledGap;const pieceWidth = shape[0] ? shape[0].length * scaledTotalSize + scaledGap:0;const pieceHeight = shape.length * scaledTotalSize + scaledGap;const animatedStyle = useAnimatedStyle(()=>{if(isDragging){return{transform:[{translateX:x},{translateY:y},{scale:withSpring(1.1,{damping:15,stiffness:200})}]};}return{transform:[{translateX:0},{translateY:0},{scale:withSpring(1,{damping:15,stiffness:200})}]};},[isDragging,x,y]);return _jsx(Animated.View,{style:[{width:pieceWidth,height:pieceHeight},animatedStyle],children:_jsx(Canvas,{style:{width:pieceWidth,height:pieceHeight},children:shape.map((row,rowIndex)=> row.map((cell,colIndex)=>{if(cell === 1){const cellX = colIndex * scaledTotalSize + scaledGap;const cellY = rowIndex * scaledTotalSize + scaledGap;return _jsxs(Group,{children:[_jsx(RoundedRect,{x:cellX,y:cellY,width:scaledCellSize,height:scaledCellSize,r:4 * scale,color:color}),_jsx(RoundedRect,{x:cellX + 2 * scale,y:cellY + 2 * scale,width:scaledCellSize - 4 * scale,height:scaledCellSize / 3,r:3 * scale,color:"rgba(255,255,255,0.4)"}),_jsx(RoundedRect,{x:cellX,y:cellY + scaledCellSize * 0.7,width:scaledCellSize,height:scaledCellSize * 0.3,r:4 * scale,color:"rgba(0,0,0,0.2)"})]},`block-${rowIndex}-${colIndex}`);}return null;}))})});};const arePropsEqual =(prevProps,nextProps)=>{return prevProps.color === nextProps.color && prevProps.cellSize === nextProps.cellSize && prevProps.cellGap === nextProps.cellGap && prevProps.scale === nextProps.scale && prevProps.x === nextProps.x && prevProps.y === nextProps.y && prevProps.isDragging === nextProps.isDragging && prevProps.shape.length === nextProps.shape.length && prevProps.shape[0]?.length === nextProps.shape[0]?.length;};export const BlockPieceComponent = React.memo(BlockPieceComponentView,arePropsEqual);BlockPieceComponent.displayName = 'BlockPieceComponent';
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Canvas","RoundedRect","Group","Animated","useAnimatedStyle","withSpring","jsx","_jsx","jsxs","_jsxs","BlockPieceComponentView","shape","color","cellSize","cellGap","scale","x","y","isDragging","scaledCellSize","scaledGap","scaledTotalSize","pieceWidth","length","pieceHeight","animatedStyle","transform","translateX","translateY","damping","stiffness","View","style","width","height","children","map","row","rowIndex","cell","colIndex","cellX","cellY","r","arePropsEqual","prevProps","nextProps","BlockPieceComponent","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/block-blast/components/BlockPieceComponent.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import React from 'react';import{View,StyleSheet,Dimensions}from 'react-native';import{Gesture,GestureDetector}from 'react-native-gesture-handler';import{runOnJS}from 'react-native-reanimated';import{GridComponent}from "./GridComponent.js";import{BlockPieceComponent}from "./BlockPieceComponent.js";import{useBlockBlastStore}from "../BlockBlastStore.js";import{BLOCK_BLAST_GAME_CONFIG}from "../BlockBlastConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');const GameAreaComponent =({gridSize,cellSize,cellGap,gameService,offset})=>{const grid = useBlockBlastStore(state => state.grid);const nextPieces = useBlockBlastStore(state => state.nextPieces);const selectedPieceId = useBlockBlastStore(state => state.selectedPieceId);const previewPosition = useBlockBlastStore(state => state.previewPosition);const canPlace = useBlockBlastStore(state => state.canPlace);const [dragState,setDragState] = React.useState({pieceId:null,x:0,y:0});const dragOffsetRef = React.useRef({x:0,y:0});const layoutDimensions = React.useMemo(()=>{const totalCellSize = cellSize + cellGap;const gridWidth = gridSize * totalCellSize - cellGap;const gridHeight = gridSize * totalCellSize - cellGap;const piecesAreaHeight = 120;const controlButtonHeight = 80;const gapBetweenGridAndPieces = 20;const topPadding = 30;const gridPadding = 10;const totalContentHeight = gridHeight + gapBetweenGridAndPieces + piecesAreaHeight;const availableHeight = height - offset - controlButtonHeight - topPadding;const contentStartY = offset + topPadding +(availableHeight - totalContentHeight)/ 2;const gridStartX =(width - gridWidth)/ 2;const gridStartY = Math.max(contentStartY,offset + topPadding);const piecesAreaY = gridStartY + gridHeight + gapBetweenGridAndPieces;return{totalCellSize,gridWidth,gridHeight,piecesAreaHeight,gridStartX,gridStartY,piecesAreaY,gridPadding};},[gridSize,cellSize,cellGap,offset,width,height]);const{piecesAreaHeight,gridStartX,gridStartY,piecesAreaY,gridPadding}= layoutDimensions;const handlePieceDeselect = React.useCallback(()=>{useBlockBlastStore.getState().deselectPiece();setDragState({pieceId:null,x:0,y:0});},[]);const handleTouchBegin = React.useCallback((touchX,touchY)=>{const store = useBlockBlastStore.getState();if(!store.isPlaying)return;const totalPadding = 60;const availableWidth = width - totalPadding * 2;const spaceBetweenPieces = 30;const totalSpacing = spaceBetweenPieces *(store.nextPieces.length - 1);const startX = totalPadding;for(let i = 0;i < store.nextPieces.length;i++){const piece = store.nextPieces[i];if(!piece || !piece.shape || !piece.shape[0])continue;const previewCellSize = cellSize * BLOCK_BLAST_GAME_CONFIG.PREVIEW_PIECE_SCALE;const previewGap = cellGap * BLOCK_BLAST_GAME_CONFIG.PREVIEW_PIECE_SCALE;const previewPieceWidth = piece.shape[0].length *(previewCellSize + previewGap);const previewPieceHeight = piece.shape.length *(previewCellSize + previewGap);const sectionWidth =(availableWidth - totalSpacing)/ store.nextPieces.length;const pieceCenterX = startX + i *(sectionWidth + spaceBetweenPieces)+ sectionWidth / 2;const pieceLeft = pieceCenterX - previewPieceWidth / 2;const pieceTop = piecesAreaY +(piecesAreaHeight - previewPieceHeight)/ 2;const touchPadding = 10;const pieceRight = pieceLeft + previewPieceWidth;const pieceBottom = pieceTop + previewPieceHeight;if(touchX >= pieceLeft - touchPadding && touchX <= pieceRight + touchPadding && touchY >= pieceTop - touchPadding && touchY <= pieceBottom + touchPadding){store.selectPiece(piece.id);const draggingCellSize = cellSize * BLOCK_BLAST_GAME_CONFIG.DRAGGING_PIECE_SCALE;const draggingGap = cellGap * BLOCK_BLAST_GAME_CONFIG.DRAGGING_PIECE_SCALE;const draggingPieceWidth = piece.shape[0].length *(draggingCellSize + draggingGap);const draggingPieceHeight = piece.shape.length *(draggingCellSize + draggingGap);const previewPieceCenterX = pieceLeft + previewPieceWidth / 2;const previewPieceCenterY = pieceTop + previewPieceHeight / 2;dragOffsetRef.current ={x:touchX - previewPieceCenterX,y:touchY - previewPieceCenterY};setDragState({pieceId:piece.id,x:touchX - dragOffsetRef.current.x - draggingPieceWidth / 2,y:touchY - dragOffsetRef.current.y - draggingPieceHeight / 2});return;}}},[cellSize,cellGap,piecesAreaY,piecesAreaHeight,width]);const handleTouchMove = React.useCallback((touchX,touchY)=>{if(!dragState.pieceId)return;const store = useBlockBlastStore.getState();const piece = store.nextPieces.find(p => p.id === dragState.pieceId);if(!piece || !piece.shape || !piece.shape[0])return;const draggingCellSize = cellSize * BLOCK_BLAST_GAME_CONFIG.DRAGGING_PIECE_SCALE;const draggingGap = cellGap * BLOCK_BLAST_GAME_CONFIG.DRAGGING_PIECE_SCALE;const pieceWidth = piece.shape[0].length *(draggingCellSize + draggingGap);const pieceHeight = piece.shape.length *(draggingCellSize + draggingGap);setDragState({pieceId:dragState.pieceId,x:touchX - dragOffsetRef.current.x - pieceWidth / 2,y:touchY - dragOffsetRef.current.y - pieceHeight / 2});const pieceCenterX = touchX - dragOffsetRef.current.x;const pieceCenterY = touchY - dragOffsetRef.current.y;const gridPos = gameService.getGridPosition(pieceCenterX,pieceCenterY,gridStartX,gridStartY,cellSize,cellGap);if(gridPos){const adjustedRow = gridPos.row - Math.floor(piece.shape.length / 2);const adjustedCol = gridPos.col - Math.floor(piece.shape[0].length / 2);const canPlacePiece = gameService.canPlacePiece(dragState.pieceId,adjustedRow,adjustedCol);store.updatePreviewPosition(adjustedRow,adjustedCol,canPlacePiece);}else{store.clearPreview();}},[dragState.pieceId,cellSize,cellGap,gridStartX,gridStartY,gameService]);const handleTouchEnd = React.useCallback((touchX,touchY)=>{if(!dragState.pieceId)return;const store = useBlockBlastStore.getState();const piece = store.nextPieces.find(p => p.id === dragState.pieceId);if(!piece || !piece.shape || !piece.shape[0])return;const pieceCenterX = touchX - dragOffsetRef.current.x;const pieceCenterY = touchY - dragOffsetRef.current.y;const gridPos = gameService.getGridPosition(pieceCenterX,pieceCenterY,gridStartX,gridStartY,cellSize,cellGap);if(gridPos){const adjustedRow = gridPos.row - Math.floor(piece.shape.length / 2);const adjustedCol = gridPos.col - Math.floor(piece.shape[0].length / 2);gameService.placePiece(dragState.pieceId,adjustedRow,adjustedCol);}handlePieceDeselect();},[dragState.pieceId,cellSize,cellGap,gridStartX,gridStartY,gameService,handlePieceDeselect]);const panGesture = React.useMemo(()=> Gesture.Pan().onBegin(event =>{'worklet';runOnJS(handleTouchBegin)(event.absoluteX,event.absoluteY);}).onUpdate(event =>{'worklet';runOnJS(handleTouchMove)(event.absoluteX,event.absoluteY);}).onEnd(event =>{'worklet';runOnJS(handleTouchEnd)(event.absoluteX,event.absoluteY);}),[handleTouchBegin,handleTouchMove,handleTouchEnd]);return _jsx(GestureDetector,{gesture:panGesture,children:_jsxs(View,{style:styles.container,children:[_jsx(View,{style:[styles.gridContainer,{left:gridStartX - gridPadding,top:gridStartY - gridPadding,padding:gridPadding,paddingTop:gridPadding + 20}],pointerEvents:"box-none",children:_jsx(GridComponent,{grid:grid,gridSize:gridSize,cellSize:cellSize,cellGap:cellGap,previewPiece:previewPosition && selectedPieceId ?(()=>{const piece = nextPieces.find(p => p.id === selectedPieceId);return piece ?{shape:piece.shape,color:piece.color,row:previewPosition.row,col:previewPosition.col,canPlace:canPlace}:null;})():null})}),_jsx(View,{style:[styles.piecesContainer,{top:piecesAreaY,left:0,right:0,height:piecesAreaHeight}],pointerEvents:"box-none",children:nextPieces.map((piece,index)=>{if(!piece || !piece.shape)return null;const isDragging = selectedPieceId === piece.id;const scaledCellSize = cellSize * BLOCK_BLAST_GAME_CONFIG.PREVIEW_PIECE_SCALE;const scaledGap = cellGap * BLOCK_BLAST_GAME_CONFIG.PREVIEW_PIECE_SCALE;const pieceWidth = piece.shape && piece.shape[0] ? piece.shape[0].length *(scaledCellSize + scaledGap):0;const totalPadding = 60;const availableWidth = width - totalPadding * 2;const spaceBetweenPieces = 30;const totalSpacing = spaceBetweenPieces *(nextPieces.length - 1);const startX = totalPadding;const sectionWidth =(availableWidth - totalSpacing)/ nextPieces.length;const pieceX = startX + index *(sectionWidth + spaceBetweenPieces)+ sectionWidth / 2;const pieceHeight = piece.shape && piece.shape.length ? piece.shape.length *(scaledCellSize + scaledGap):0;const pieceTopInContainer =(piecesAreaHeight - pieceHeight)/ 2;return _jsx(View,{style:[styles.pieceWrapper,{left:pieceX - pieceWidth / 2,top:pieceTopInContainer,width:pieceWidth,height:pieceHeight,opacity:isDragging ? 0.3:1}],pointerEvents:"box-none",children:_jsx(BlockPieceComponent,{shape:piece.shape,color:piece.color,cellSize:cellSize,cellGap:cellGap,scale:BLOCK_BLAST_GAME_CONFIG.PREVIEW_PIECE_SCALE})},piece.id);})}),dragState.pieceId &&(()=>{const piece = nextPieces.find(p => p.id === dragState.pieceId);if(!piece)return null;return _jsx(View,{style:[styles.draggedPiece,{left:dragState.x,top:dragState.y}],pointerEvents:"none",children:_jsx(BlockPieceComponent,{shape:piece.shape,color:piece.color,cellSize:cellSize,cellGap:cellGap,scale:BLOCK_BLAST_GAME_CONFIG.DRAGGING_PIECE_SCALE,isDragging:true})});})()]})});};const styles = StyleSheet.create({container:{flex:1},gridContainer:{position:'absolute',borderRadius:10},piecesContainer:{position:'absolute'},pieceWrapper:{position:'absolute'},draggedPiece:{position:'absolute',zIndex:1000}});const areGameAreaPropsEqual =(prevProps,nextProps)=>{return prevProps.gridSize === nextProps.gridSize && prevProps.cellSize === nextProps.cellSize && prevProps.cellGap === nextProps.cellGap && prevProps.offset === nextProps.offset && prevProps.gameService === nextProps.gameService;};export const GameArea = React.memo(GameAreaComponent,areGameAreaPropsEqual);GameArea.displayName = 'GameArea';
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","Dimensions","Gesture","GestureDetector","runOnJS","GridComponent","BlockPieceComponent","useBlockBlastStore","BLOCK_BLAST_GAME_CONFIG","jsx","_jsx","jsxs","_jsxs","width","height","get","GameAreaComponent","gridSize","cellSize","cellGap","gameService","offset","grid","state","nextPieces","selectedPieceId","previewPosition","canPlace","dragState","setDragState","useState","pieceId","x","y","dragOffsetRef","useRef","layoutDimensions","useMemo","totalCellSize","gridWidth","gridHeight","piecesAreaHeight","controlButtonHeight","gapBetweenGridAndPieces","topPadding","gridPadding","totalContentHeight","availableHeight","contentStartY","gridStartX","gridStartY","Math","max","piecesAreaY","handlePieceDeselect","useCallback","getState","deselectPiece","handleTouchBegin","touchX","touchY","store","isPlaying","totalPadding","availableWidth","spaceBetweenPieces","totalSpacing","length","startX","i","piece","shape","previewCellSize","PREVIEW_PIECE_SCALE","previewGap","previewPieceWidth","previewPieceHeight","sectionWidth","pieceCenterX","pieceLeft","pieceTop","touchPadding","pieceRight","pieceBottom","selectPiece","id","draggingCellSize","DRAGGING_PIECE_SCALE","draggingGap","draggingPieceWidth","draggingPieceHeight","previewPieceCenterX","previewPieceCenterY","current","handleTouchMove","find","p","pieceWidth","pieceHeight","pieceCenterY","gridPos","getGridPosition","adjustedRow","row","floor","adjustedCol","col","canPlacePiece","updatePreviewPosition","clearPreview","handleTouchEnd","placePiece","panGesture","Pan","onBegin","event","absoluteX","absoluteY","onUpdate","onEnd","gesture","children","style","styles","container","gridContainer","left","top","padding","paddingTop","pointerEvents","previewPiece","color","piecesContainer","right","map","index","isDragging","scaledCellSize","scaledGap","pieceX","pieceTopInContainer","pieceWrapper","opacity","scale","draggedPiece","create","flex","position","borderRadius","zIndex","areGameAreaPropsEqual","prevProps","nextProps","GameArea","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/block-blast/components/GameArea.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import React from 'react';import{View,Dimensions}from 'react-native';import{Canvas,LinearGradient,Rect,vec,Circle,RoundedRect}from '@shopify/react-native-skia';import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');const PUZZLE_COLORS = ['#E91E63','#F44336','#FF5722','#FF9800','#FFC107','#CDDC39','#4CAF50','#009688','#00BCD4','#2196F3','#3F51B5','#9C27B0' ];const GameBackgroundView =({children})=>{const generateFloatingBlocks = React.useMemo(()=>{const elements = [];const tileCount = 25;for(let i = 0;i < tileCount;i++){const baseX = width / tileCount * i;const baseY = height / tileCount * i;const x = baseX + Math.sin(i * 0.5)* 50 + Math.random()* 100;const y = baseY + Math.cos(i * 0.7)* 60 + Math.random()* 120;const tileSize = 20 + Math.random()* 20;const colorIndex = i % PUZZLE_COLORS.length;const opacity = 0.3 + Math.sin(i)* 0.15;const tileX = Math.max(tileSize / 2,Math.min(width - tileSize,x));const tileY = Math.max(tileSize / 2,Math.min(height - tileSize,y));if(i % 4 === 0){elements.push(_jsx(RoundedRect,{x:tileX,y:tileY,width:tileSize,height:tileSize,r:tileSize * 0.2,color:`${PUZZLE_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`square-tile-${i}`));}else if(i % 4 === 1){elements.push(_jsx(RoundedRect,{x:tileX,y:tileY,width:tileSize * 0.6,height:tileSize,r:tileSize * 0.15,color:`${PUZZLE_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`rect-tile-${i}`));}else if(i % 4 === 2){elements.push(_jsx(RoundedRect,{x:tileX,y:tileY,width:tileSize * 1.2,height:tileSize * 0.8,r:tileSize * 0.1,color:`${PUZZLE_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`wide-tile-${i}`));}else{elements.push(_jsx(Circle,{cx:tileX + tileSize / 2,cy:tileY + tileSize / 2,r:tileSize / 2,color:`${PUZZLE_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`circle-tile-${i}`));}}return elements;},[width,height]);return _jsxs(View,{style:{flex:1},children:[_jsxs(Canvas,{style:{position:'absolute',top:0,left:0,right:0,bottom:0,width,height},children:[_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width,height),colors:[`${PUZZLE_COLORS[0]}30`,`${PUZZLE_COLORS[3]}25`,`${PUZZLE_COLORS[6]}30`,`${PUZZLE_COLORS[9]}25`,`${PUZZLE_COLORS[11]}30` ]})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width / 2,height / 2),colors:[`${PUZZLE_COLORS[1]}20`,'transparent',`${PUZZLE_COLORS[4]}20`,'transparent',`${PUZZLE_COLORS[7]}20`,'transparent']})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(width,0),end:vec(0,height),colors:[`${PUZZLE_COLORS[2]}15`,'transparent',`${PUZZLE_COLORS[5]}15`,'transparent',`${PUZZLE_COLORS[8]}15`,'transparent']})}),generateFloatingBlocks,_jsx(RoundedRect,{x:width * 0.08,y:height * 0.12,width:50,height:50,r:8,color:`${PUZZLE_COLORS[0]}50`}),_jsx(RoundedRect,{x:width * 0.85,y:height * 0.82,width:45,height:45,r:7,color:`${PUZZLE_COLORS[3]}50`}),_jsx(RoundedRect,{x:width * 0.82,y:height * 0.18,width:40,height:40,r:6,color:`${PUZZLE_COLORS[6]}50`}),_jsx(RoundedRect,{x:width * 0.12,y:height * 0.75,width:55,height:55,r:9,color:`${PUZZLE_COLORS[9]}50`}),_jsx(RoundedRect,{x:width * 0.47,y:height * 0.08,width:35,height:35,r:5,color:`${PUZZLE_COLORS[11]}50`}),_jsx(RoundedRect,{x:width * 0.15,y:height * 0.47,width:42,height:42,r:6,color:`${PUZZLE_COLORS[5]}50`}),_jsx(RoundedRect,{x:width * 0.75,y:height * 0.57,width:38,height:38,r:6,color:`${PUZZLE_COLORS[8]}50`}),_jsx(RoundedRect,{x:width * 0.57,y:height * 0.87,width:32,height:32,r:5,color:`${PUZZLE_COLORS[1]}50`}),_jsx(Circle,{cx:width * 0.25,cy:height * 0.25,r:18,color:`${PUZZLE_COLORS[4]}45`}),_jsx(Circle,{cx:width * 0.65,cy:height * 0.35,r:22,color:`${PUZZLE_COLORS[7]}45`}),_jsx(Circle,{cx:width * 0.35,cy:height * 0.65,r:16,color:`${PUZZLE_COLORS[10]}45`}),Array.from({length:Math.floor(width / 60)},(_,i)=> _jsx(Rect,{x:i * 60,y:0,width:1,height:height,color:"rgba(255,255,255,0.03)"},`grid-v-${i}`)),Array.from({length:Math.floor(height / 60)},(_,i)=> _jsx(Rect,{x:0,y:i * 60,width:width,height:1,color:"rgba(255,255,255,0.03)"},`grid-h-${i}`))]}),children]});};export const GameBackground = React.memo(GameBackgroundView);GameBackground.displayName = 'GameBackground';
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Dimensions","Canvas","LinearGradient","Rect","vec","Circle","RoundedRect","jsx","_jsx","jsxs","_jsxs","width","height","get","PUZZLE_COLORS","GameBackgroundView","children","generateFloatingBlocks","useMemo","elements","tileCount","i","baseX","baseY","x","Math","sin","random","y","cos","tileSize","colorIndex","length","opacity","tileX","max","min","tileY","push","r","color","floor","toString","padStart","cx","cy","style","flex","position","top","left","right","bottom","start","end","colors","Array","from","_","GameBackground","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/block-blast/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import React from 'react';import{Canvas,RoundedRect,Group}from '@shopify/react-native-skia';import{BLOCK_BLAST_COLORS}from "../BlockBlastConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const GridComponentView =({grid,gridSize,cellSize,cellGap,previewPiece})=>{const totalCellSize = cellSize + cellGap;const canvasSize = gridSize * totalCellSize + cellGap;return _jsxs(Canvas,{style:{width:canvasSize,height:canvasSize},children:[_jsx(RoundedRect,{x:0,y:0,width:canvasSize,height:canvasSize,r:12,color:"rgba(26,29,58,0.8)"}),grid.map((row,rowIndex)=> row.map((cell,colIndex)=>{const x = colIndex * totalCellSize + cellGap;const y = rowIndex * totalCellSize + cellGap;const color = cell || BLOCK_BLAST_COLORS.EMPTY_CELL;return _jsxs(Group,{children:[_jsx(RoundedRect,{x:x,y:y,width:cellSize,height:cellSize,r:4,color:color}),cell && _jsx(RoundedRect,{x:x + 2,y:y + 2,width:cellSize - 4,height:cellSize / 3,r:3,color:"rgba(255,255,255,0.3)"})]},`cell-${rowIndex}-${colIndex}`);})),previewPiece && previewPiece.shape.map((row,rowIndex)=> row.map((cell,colIndex)=>{if(cell === 1){const gridRow = previewPiece.row + rowIndex;const gridCol = previewPiece.col + colIndex;if(gridRow >= 0 && gridRow < gridSize && gridCol >= 0 && gridCol < gridSize){const x = gridCol * totalCellSize + cellGap;const y = gridRow * totalCellSize + cellGap;const previewColor = previewPiece.canPlace ? previewPiece.color:'#ff4444';const opacity = previewPiece.canPlace ? 0.5:0.3;return _jsx(RoundedRect,{x:x,y:y,width:cellSize,height:cellSize,r:4,color:`${previewColor}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`preview-${rowIndex}-${colIndex}`);}}return null;}))]});};const areGridPropsEqual =(prevProps,nextProps)=>{if(prevProps.gridSize !== nextProps.gridSize || prevProps.cellSize !== nextProps.cellSize || prevProps.cellGap !== nextProps.cellGap){return false;}if(prevProps.previewPiece !== nextProps.previewPiece){if(!prevProps.previewPiece || !nextProps.previewPiece)return false;if(prevProps.previewPiece.row !== nextProps.previewPiece.row || prevProps.previewPiece.col !== nextProps.previewPiece.col || prevProps.previewPiece.canPlace !== nextProps.previewPiece.canPlace || prevProps.previewPiece.color !== nextProps.previewPiece.color){return false;}}for(let i = 0;i < prevProps.grid.length;i++){const prevRow = prevProps.grid[i];const nextRow = nextProps.grid[i];if(!prevRow || !nextRow)return false;for(let j = 0;j < prevRow.length;j++){if(prevRow[j] !== nextRow[j]){return false;}}}return true;};export const GridComponent = React.memo(GridComponentView,areGridPropsEqual);GridComponent.displayName = 'GridComponent';
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Canvas","RoundedRect","Group","BLOCK_BLAST_COLORS","jsx","_jsx","jsxs","_jsxs","GridComponentView","grid","gridSize","cellSize","cellGap","previewPiece","totalCellSize","canvasSize","style","width","height","children","x","y","r","color","map","row","rowIndex","cell","colIndex","EMPTY_CELL","shape","gridRow","gridCol","col","previewColor","canPlace","opacity","Math","floor","toString","padStart","areGridPropsEqual","prevProps","nextProps","i","length","prevRow","nextRow","j","GridComponent","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/block-blast/components/GridComponent.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import React from 'react';import{View,Text,StyleSheet}from 'react-native';import{ScoreBoardContainer}from "../../../helpers/index.js";import{useScore,useTimeRemaining}from "../BlockBlastStore.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 formattedTime = React.useMemo(()=>{const mins = Math.floor(timeRemaining / 60);const secs = timeRemaining % 60;return `${mins}:${secs.toString().padStart(2,'0')}`;},[timeRemaining]);const isLowTime = React.useMemo(()=> timeRemaining < 30,[timeRemaining]);return _jsx(ScoreBoardContainer,{offset:offset,backgroundColor:"rgba(255,105,180,0.4)",borderColor:"rgba(255,105,180,0.4)",children:_jsxs(View,{style:styles.rowContainer,children:[_jsxs(View,{style:styles.scoreSection,children:[_jsx(Text,{style:styles.label,children:"SCORE"}),_jsx(Text,{style:styles.value,children:score})]}),_jsxs(View,{style:styles.timerSection,children:[_jsx(Text,{style:styles.label,children:"TIME"}),_jsx(Text,{style:[styles.value,isLowTime && styles.lowTime],children:formattedTime})]})]})});});ScoreBoard.displayName = 'ScoreBoard';const styles = StyleSheet.create({rowContainer:{flexDirection:'row',justifyContent:'space-between',alignItems:'center',width:'100%'},scoreSection:{flex:1,alignItems:'center'},timerSection:{flex:1,alignItems:'center'},lowTime:{color:'#ff4444'},label:{fontSize:16,fontWeight:'bold',color:'#ffffff',marginBottom:4,letterSpacing:0.5},value:{fontSize:25,fontWeight:'bold',color:'#ffffff'}});
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","ScoreBoardContainer","useScore","useTimeRemaining","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","offset","score","timeRemaining","formattedTime","useMemo","mins","Math","floor","secs","toString","padStart","isLowTime","backgroundColor","borderColor","children","style","styles","rowContainer","scoreSection","label","value","timerSection","lowTime","displayName","create","flexDirection","justifyContent","alignItems","width","flex","color","fontSize","fontWeight","marginBottom","letterSpacing"],"sourceRoot":"../../../../../src","sources":["games/block-blast/components/ScoreBoard.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";export{ScoreBoard}from "./ScoreBoard.js";export{GridComponent}from "./GridComponent.js";export{BlockPieceComponent}from "./BlockPieceComponent.js";export{GameArea}from "./GameArea.js";export{GameBackground}from "./GameBackground.js";
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScoreBoard","GridComponent","BlockPieceComponent","GameArea","GameBackground"],"sourceRoot":"../../../../../src","sources":["games/block-blast/components/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,cAAc,QAAQ,qBAAkB","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";export{BlockBlast}from "./BlockBlast.js";export{BlockBlastService}from "./BlockBlastService.js";export{useBlockBlastStore}from "./BlockBlastStore.js";export * from "./BlockBlastConstants.js";
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BlockBlast","BlockBlastService","useBlockBlastStore"],"sourceRoot":"../../../../src","sources":["games/block-blast/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,kBAAkB,QAAQ,sBAAmB;AACtD,cAAc,0BAAuB","ignoreList":[]}