react-native-games 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -1
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  3. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  5. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  7. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  9. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  11. package/lib/module/games/balloon-blaster/components/GameArea.js +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  13. package/lib/module/games/balloon-blaster/components/GameBackground.js +1 -1
  14. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  15. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +1 -1
  16. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  17. package/lib/module/games/balloon-blaster/components/index.js +1 -1
  18. package/lib/module/games/bike-racing/BikeRacing.js +1 -1
  19. package/lib/module/games/bike-racing/BikeRacing.js.map +1 -1
  20. package/lib/module/games/bike-racing/BikeRacingConstants.js +1 -1
  21. package/lib/module/games/bike-racing/BikeRacingService.js +1 -1
  22. package/lib/module/games/bike-racing/BikeRacingService.js.map +1 -1
  23. package/lib/module/games/bike-racing/BikeRacingStore.js +1 -1
  24. package/lib/module/games/bike-racing/BikeRacingStore.js.map +1 -1
  25. package/lib/module/games/bike-racing/components/BikeComponent.js +1 -1
  26. package/lib/module/games/bike-racing/components/BikeComponent.js.map +1 -1
  27. package/lib/module/games/bike-racing/components/GameBackground.js +1 -1
  28. package/lib/module/games/bike-racing/components/GameBackground.js.map +1 -1
  29. package/lib/module/games/bike-racing/components/ScoreBoard.js +1 -1
  30. package/lib/module/games/bike-racing/components/ScoreBoard.js.map +1 -1
  31. package/lib/module/games/bike-racing/components/index.js +1 -1
  32. package/lib/module/games/bike-racing/index.js +1 -1
  33. package/lib/module/games/block-blast/BlockBlast.js +1 -1
  34. package/lib/module/games/block-blast/BlockBlast.js.map +1 -1
  35. package/lib/module/games/block-blast/BlockBlastConstants.js +1 -1
  36. package/lib/module/games/block-blast/BlockBlastConstants.js.map +1 -1
  37. package/lib/module/games/block-blast/BlockBlastService.js +1 -1
  38. package/lib/module/games/block-blast/BlockBlastService.js.map +1 -1
  39. package/lib/module/games/block-blast/BlockBlastStore.js +1 -1
  40. package/lib/module/games/block-blast/BlockBlastStore.js.map +1 -1
  41. package/lib/module/games/block-blast/components/BlastAnimation.js +1 -0
  42. package/lib/module/games/block-blast/components/BlastAnimation.js.map +1 -0
  43. package/lib/module/games/block-blast/components/BlockPieceComponent.js +1 -1
  44. package/lib/module/games/block-blast/components/BlockPieceComponent.js.map +1 -1
  45. package/lib/module/games/block-blast/components/GameArea.js +1 -1
  46. package/lib/module/games/block-blast/components/GameArea.js.map +1 -1
  47. package/lib/module/games/block-blast/components/GameBackground.js +1 -1
  48. package/lib/module/games/block-blast/components/GameBackground.js.map +1 -1
  49. package/lib/module/games/block-blast/components/GridComponent.js +1 -1
  50. package/lib/module/games/block-blast/components/GridComponent.js.map +1 -1
  51. package/lib/module/games/block-blast/components/ScoreBoard.js +1 -1
  52. package/lib/module/games/block-blast/components/index.js +1 -1
  53. package/lib/module/games/block-blast/index.js +1 -1
  54. package/lib/module/games/bubble-shooter/BubbleShooter.js +1 -1
  55. package/lib/module/games/bubble-shooter/BubbleShooter.js.map +1 -1
  56. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js +1 -1
  57. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js.map +1 -1
  58. package/lib/module/games/bubble-shooter/BubbleShooterService.js +1 -1
  59. package/lib/module/games/bubble-shooter/BubbleShooterService.js.map +1 -1
  60. package/lib/module/games/bubble-shooter/BubbleShooterStore.js +1 -1
  61. package/lib/module/games/bubble-shooter/BubbleShooterStore.js.map +1 -1
  62. package/lib/module/games/bubble-shooter/components/GameArea.js +1 -1
  63. package/lib/module/games/bubble-shooter/components/GameArea.js.map +1 -1
  64. package/lib/module/games/bubble-shooter/components/GameBackground.js +1 -1
  65. package/lib/module/games/bubble-shooter/components/GameBackground.js.map +1 -1
  66. package/lib/module/games/bubble-shooter/components/ScoreBoard.js +1 -1
  67. package/lib/module/games/bubble-shooter/components/ScoreBoard.js.map +1 -1
  68. package/lib/module/games/bubble-shooter/components/index.js +1 -1
  69. package/lib/module/games/bubble-shooter/index.js +1 -1
  70. package/lib/module/games/candy-crush/CandyCrush.js +1 -1
  71. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -1
  72. package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -1
  73. package/lib/module/games/candy-crush/CandyCrushService.js +1 -1
  74. package/lib/module/games/candy-crush/CandyCrushStore.js +1 -1
  75. package/lib/module/games/candy-crush/CandyCrushStore.js.map +1 -1
  76. package/lib/module/games/candy-crush/components/BlastAnimation.js +1 -0
  77. package/lib/module/games/candy-crush/components/BlastAnimation.js.map +1 -0
  78. package/lib/module/games/candy-crush/components/CandyItem.js +1 -1
  79. package/lib/module/games/candy-crush/components/CandyItem.js.map +1 -1
  80. package/lib/module/games/candy-crush/components/GameBackground.js +1 -1
  81. package/lib/module/games/candy-crush/components/GameGrid.js +1 -1
  82. package/lib/module/games/candy-crush/components/GameGrid.js.map +1 -1
  83. package/lib/module/games/candy-crush/components/ScoreBoard.js +1 -1
  84. package/lib/module/games/candy-crush/components/index.js +1 -1
  85. package/lib/module/games/candy-crush/components/index.js.map +1 -1
  86. package/lib/module/games/candy-crush/index.js +1 -1
  87. package/lib/module/games/car-racing/CarRacing.js +1 -1
  88. package/lib/module/games/car-racing/CarRacing.js.map +1 -1
  89. package/lib/module/games/car-racing/CarRacingConstants.js +1 -1
  90. package/lib/module/games/car-racing/CarRacingService.js +1 -1
  91. package/lib/module/games/car-racing/CarRacingService.js.map +1 -1
  92. package/lib/module/games/car-racing/CarRacingStore.js +1 -1
  93. package/lib/module/games/car-racing/CarRacingStore.js.map +1 -1
  94. package/lib/module/games/car-racing/components/CarComponent.js +1 -1
  95. package/lib/module/games/car-racing/components/CarComponent.js.map +1 -1
  96. package/lib/module/games/car-racing/components/GameBackground.js +1 -1
  97. package/lib/module/games/car-racing/components/GameBackground.js.map +1 -1
  98. package/lib/module/games/car-racing/components/ScoreBoard.js +1 -1
  99. package/lib/module/games/car-racing/components/ScoreBoard.js.map +1 -1
  100. package/lib/module/games/car-racing/components/index.js +1 -1
  101. package/lib/module/games/colors-sort/ColorsSort.js +1 -1
  102. package/lib/module/games/colors-sort/ColorsSort.js.map +1 -1
  103. package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -1
  104. package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -1
  105. package/lib/module/games/colors-sort/ColorsSortService.js +1 -1
  106. package/lib/module/games/colors-sort/ColorsSortStore.js +1 -1
  107. package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -1
  108. package/lib/module/games/colors-sort/components/ColorContainer.js +1 -1
  109. package/lib/module/games/colors-sort/components/ColorContainer.js.map +1 -1
  110. package/lib/module/games/colors-sort/components/GameBackground.js +1 -1
  111. package/lib/module/games/colors-sort/components/GameBackground.js.map +1 -1
  112. package/lib/module/games/colors-sort/components/ScoreBoard.js +1 -1
  113. package/lib/module/games/colors-sort/components/ScoreBoard.js.map +1 -1
  114. package/lib/module/games/colors-sort/components/index.js +1 -1
  115. package/lib/module/games/dino-jump/DinoJump.js +1 -1
  116. package/lib/module/games/dino-jump/DinoJump.js.map +1 -1
  117. package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -1
  118. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -1
  119. package/lib/module/games/dino-jump/DinoJumpService.js +1 -1
  120. package/lib/module/games/dino-jump/DinoJumpService.js.map +1 -1
  121. package/lib/module/games/dino-jump/DinoJumpStore.js +1 -1
  122. package/lib/module/games/dino-jump/DinoJumpStore.js.map +1 -1
  123. package/lib/module/games/dino-jump/components/DinoSprite.js +1 -1
  124. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -1
  125. package/lib/module/games/dino-jump/components/GameArea.js +1 -1
  126. package/lib/module/games/dino-jump/components/GameBackground.js +1 -1
  127. package/lib/module/games/dino-jump/components/GameBackground.js.map +1 -1
  128. package/lib/module/games/dino-jump/components/ObstacleSprite.js +1 -1
  129. package/lib/module/games/dino-jump/components/ObstacleSprite.js.map +1 -1
  130. package/lib/module/games/dino-jump/components/ScoreBoard.js +1 -1
  131. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -1
  132. package/lib/module/games/dino-jump/components/StarSprite.js +1 -1
  133. package/lib/module/games/dino-jump/components/index.js +1 -1
  134. package/lib/module/games/flappy-bird/FlappyBird.js +1 -1
  135. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -1
  136. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -1
  137. package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -1
  138. package/lib/module/games/flappy-bird/FlappyBirdStore.js +1 -1
  139. package/lib/module/games/flappy-bird/FlappyBirdStore.js.map +1 -1
  140. package/lib/module/games/flappy-bird/components/Bird.js +1 -1
  141. package/lib/module/games/flappy-bird/components/Bird.js.map +1 -1
  142. package/lib/module/games/flappy-bird/components/GameArea.js +1 -1
  143. package/lib/module/games/flappy-bird/components/GameArea.js.map +1 -1
  144. package/lib/module/games/flappy-bird/components/GameBackground.js +1 -1
  145. package/lib/module/games/flappy-bird/components/GameBackground.js.map +1 -1
  146. package/lib/module/games/flappy-bird/components/Pipes.js +1 -1
  147. package/lib/module/games/flappy-bird/components/Pipes.js.map +1 -1
  148. package/lib/module/games/flappy-bird/components/ScoreBoard.js +1 -1
  149. package/lib/module/games/flappy-bird/components/ScoreBoard.js.map +1 -1
  150. package/lib/module/games/flappy-bird/components/index.js +1 -1
  151. package/lib/module/games/fruit-merger/FruitMerger.js +1 -1
  152. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -1
  153. package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -1
  154. package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -1
  155. package/lib/module/games/fruit-merger/FruitMergerService.js +1 -1
  156. package/lib/module/games/fruit-merger/FruitMergerStore.js +1 -1
  157. package/lib/module/games/fruit-merger/FruitMergerStore.js.map +1 -1
  158. package/lib/module/games/fruit-merger/components/FruitItem.js +1 -1
  159. package/lib/module/games/fruit-merger/components/FruitItem.js.map +1 -1
  160. package/lib/module/games/fruit-merger/components/GameArea.js +1 -1
  161. package/lib/module/games/fruit-merger/components/GameArea.js.map +1 -1
  162. package/lib/module/games/fruit-merger/components/GameBackground.js +1 -1
  163. package/lib/module/games/fruit-merger/components/GameBackground.js.map +1 -1
  164. package/lib/module/games/fruit-merger/components/ScoreBoard.js +1 -1
  165. package/lib/module/games/fruit-merger/components/index.js +1 -1
  166. package/lib/module/games/fruit-ninja/FruitNinja.js +1 -1
  167. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  168. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -1
  169. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  170. package/lib/module/games/fruit-ninja/FruitNinjaService.js +1 -1
  171. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -1
  172. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -1
  173. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  174. package/lib/module/games/fruit-ninja/components/FruitComponent.js +1 -1
  175. package/lib/module/games/fruit-ninja/components/FruitComponent.js.map +1 -1
  176. package/lib/module/games/fruit-ninja/components/GameArea.js +1 -1
  177. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
  178. package/lib/module/games/fruit-ninja/components/GameBackground.js +1 -1
  179. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
  180. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +1 -1
  181. package/lib/module/games/fruit-ninja/components/index.js +1 -1
  182. package/lib/module/games/game-2048/Game2048.js +1 -1
  183. package/lib/module/games/game-2048/Game2048.js.map +1 -1
  184. package/lib/module/games/game-2048/Game2048Constants.js +1 -1
  185. package/lib/module/games/game-2048/Game2048Service.js +1 -1
  186. package/lib/module/games/game-2048/Game2048Store.js +1 -1
  187. package/lib/module/games/game-2048/Game2048Store.js.map +1 -1
  188. package/lib/module/games/game-2048/components/GameBackground.js +1 -1
  189. package/lib/module/games/game-2048/components/GameBackground.js.map +1 -1
  190. package/lib/module/games/game-2048/components/GameGrid.js +1 -1
  191. package/lib/module/games/game-2048/components/GameGrid.js.map +1 -1
  192. package/lib/module/games/game-2048/components/GameTile.js +1 -1
  193. package/lib/module/games/game-2048/components/GameTile.js.map +1 -1
  194. package/lib/module/games/game-2048/components/ScoreBoard.js +1 -1
  195. package/lib/module/games/game-2048/components/ScoreBoard.js.map +1 -1
  196. package/lib/module/games/game-2048/components/index.js +1 -1
  197. package/lib/module/games/maze-runner/MazeRunner.js +1 -1
  198. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  199. package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -1
  200. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  201. package/lib/module/games/maze-runner/MazeRunnerService.js +1 -1
  202. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  203. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +1 -1
  204. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -1
  205. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +1 -1
  206. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  207. package/lib/module/games/maze-runner/components/GameBackground.js +1 -1
  208. package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -1
  209. package/lib/module/games/maze-runner/components/ScoreBoard.js +1 -1
  210. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  211. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +1 -1
  212. package/lib/module/games/maze-runner/components/StaticGameBackground.js +1 -1
  213. package/lib/module/games/maze-runner/components/WallComponent.js +1 -1
  214. package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -1
  215. package/lib/module/games/maze-runner/components/index.js +1 -1
  216. package/lib/module/games/perfect-circle/PerfectCircle.js +1 -1
  217. package/lib/module/games/perfect-circle/PerfectCircle.js.map +1 -1
  218. package/lib/module/games/perfect-circle/PerfectCircleConstants.js +1 -1
  219. package/lib/module/games/perfect-circle/PerfectCircleConstants.js.map +1 -1
  220. package/lib/module/games/perfect-circle/PerfectCircleService.js +1 -1
  221. package/lib/module/games/perfect-circle/PerfectCircleService.js.map +1 -1
  222. package/lib/module/games/perfect-circle/PerfectCircleStore.js +1 -1
  223. package/lib/module/games/perfect-circle/PerfectCircleStore.js.map +1 -1
  224. package/lib/module/games/perfect-circle/components/DrawingCanvas.js +1 -1
  225. package/lib/module/games/perfect-circle/components/DrawingCanvas.js.map +1 -1
  226. package/lib/module/games/perfect-circle/components/GameBackground.js +1 -1
  227. package/lib/module/games/perfect-circle/components/GameBackground.js.map +1 -1
  228. package/lib/module/games/perfect-circle/components/ScoreBoard.js +1 -1
  229. package/lib/module/games/perfect-circle/index.js +1 -1
  230. package/lib/module/games/popit-fidget/PopitFidget.js +1 -1
  231. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  232. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -1
  233. package/lib/module/games/popit-fidget/PopitFidgetService.js +1 -1
  234. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -1
  235. package/lib/module/games/popit-fidget/PopitFidgetStore.js +1 -1
  236. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
  237. package/lib/module/games/popit-fidget/components/BubbleComponent.js +1 -1
  238. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -1
  239. package/lib/module/games/popit-fidget/components/FidgetGrid.js +1 -1
  240. package/lib/module/games/popit-fidget/components/FidgetGrid.js.map +1 -1
  241. package/lib/module/games/popit-fidget/components/GameBackground.js +1 -1
  242. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -1
  243. package/lib/module/games/popit-fidget/components/ScoreBoard.js +1 -1
  244. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
  245. package/lib/module/games/popit-fidget/components/index.js +1 -1
  246. package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -1
  247. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -1
  248. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -1
  249. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +1 -1
  250. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +1 -1
  251. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js.map +1 -1
  252. package/lib/module/games/sliding-numbers/components/GameBackground.js +1 -1
  253. package/lib/module/games/sliding-numbers/components/GameBackground.js.map +1 -1
  254. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +1 -1
  255. package/lib/module/games/sliding-numbers/components/NumbersGrid.js.map +1 -1
  256. package/lib/module/games/sliding-numbers/components/NumbersTile.js +1 -1
  257. package/lib/module/games/sliding-numbers/components/NumbersTile.js.map +1 -1
  258. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +1 -1
  259. package/lib/module/games/sliding-numbers/components/ScoreBoard.js.map +1 -1
  260. package/lib/module/games/sliding-numbers/components/index.js +1 -1
  261. package/lib/module/games/snake/Snake.js +1 -1
  262. package/lib/module/games/snake/Snake.js.map +1 -1
  263. package/lib/module/games/snake/SnakeConstants.js +1 -1
  264. package/lib/module/games/snake/SnakeService.js +1 -1
  265. package/lib/module/games/snake/SnakeStore.js +1 -1
  266. package/lib/module/games/snake/SnakeStore.js.map +1 -1
  267. package/lib/module/games/snake/components/GameBackground.js +1 -1
  268. package/lib/module/games/snake/components/GameBackground.js.map +1 -1
  269. package/lib/module/games/snake/components/GameGrid.js +1 -1
  270. package/lib/module/games/snake/components/GameGrid.js.map +1 -1
  271. package/lib/module/games/snake/components/ScoreBoard.js +1 -1
  272. package/lib/module/games/snake/components/index.js +1 -1
  273. package/lib/module/games/snake/index.js +1 -1
  274. package/lib/module/games/space-fighter/SpaceFighter.js +1 -1
  275. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  276. package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -1
  277. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  278. package/lib/module/games/space-fighter/SpaceFighterService.js +1 -1
  279. package/lib/module/games/space-fighter/SpaceFighterStore.js +1 -1
  280. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
  281. package/lib/module/games/space-fighter/components/AsteroidComponent.js +1 -1
  282. package/lib/module/games/space-fighter/components/GameArea.js +1 -1
  283. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
  284. package/lib/module/games/space-fighter/components/GameBackground.js +1 -1
  285. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -1
  286. package/lib/module/games/space-fighter/components/ScoreBoard.js +1 -1
  287. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
  288. package/lib/module/games/space-fighter/components/Spacecraft3D.js +1 -1
  289. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -1
  290. package/lib/module/games/space-fighter/components/SpacecraftPath.js +1 -1
  291. package/lib/module/games/space-fighter/components/index.js +1 -1
  292. package/lib/module/games/whack-a-mole/WhackAMole.js +1 -1
  293. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  294. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -1
  295. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  296. package/lib/module/games/whack-a-mole/WhackAMoleService.js +1 -1
  297. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -1
  298. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -1
  299. package/lib/module/games/whack-a-mole/components/GameBackground.js +1 -1
  300. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -1
  301. package/lib/module/games/whack-a-mole/components/GameGrid.js +1 -1
  302. package/lib/module/games/whack-a-mole/components/GameHole.js +1 -1
  303. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -1
  304. package/lib/module/games/whack-a-mole/components/MoleCharacter.js +1 -1
  305. package/lib/module/games/whack-a-mole/components/MoleCharacter.js.map +1 -1
  306. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +1 -1
  307. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  308. package/lib/module/games/whack-a-mole/components/index.js +1 -1
  309. package/lib/module/helpers/AbstractFruits.js +1 -0
  310. package/lib/module/helpers/AbstractFruits.js.map +1 -0
  311. package/lib/module/helpers/AnimationFrame.js +1 -1
  312. package/lib/module/helpers/AnimationTracker.js +1 -1
  313. package/lib/module/helpers/ErrorHandler.js +1 -1
  314. package/lib/module/helpers/GameControlButton.js +1 -1
  315. package/lib/module/helpers/GameControlButton.js.map +1 -1
  316. package/lib/module/helpers/GameOverModal.js +1 -1
  317. package/lib/module/helpers/GameSettingsModal.js +1 -1
  318. package/lib/module/helpers/ParticleBlast.js +1 -1
  319. package/lib/module/helpers/ScoreBoardContainer.js +1 -1
  320. package/lib/module/helpers/ScoreBoardContainer.js.map +1 -1
  321. package/lib/module/helpers/index.js +1 -1
  322. package/lib/module/helpers/index.js.map +1 -1
  323. package/lib/module/index.js +1 -1
  324. package/lib/module/services/GamesConstants.js +1 -1
  325. package/lib/module/services/GamesService.js +1 -1
  326. package/lib/module/services/GamesService.js.map +1 -1
  327. package/lib/module/services/HapticsService.js +1 -1
  328. package/lib/module/services/ScoringService.js +1 -1
  329. package/lib/module/services/SoundsService.js +1 -1
  330. package/lib/module/services/UtilsService.js +1 -1
  331. package/lib/module/services/UtilsService.js.map +1 -1
  332. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  333. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +5 -1
  334. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -1
  335. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  336. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  337. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  338. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  339. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  340. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  341. package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts.map +1 -1
  342. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts +6 -2
  343. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts.map +1 -1
  344. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts +9 -0
  345. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts.map +1 -1
  346. package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts.map +1 -1
  347. package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts.map +1 -1
  348. package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts.map +1 -1
  349. package/lib/typescript/src/games/block-blast/BlockBlast.d.ts.map +1 -1
  350. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts +2 -2
  351. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts.map +1 -1
  352. package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts.map +1 -1
  353. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts +13 -1
  354. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts.map +1 -1
  355. package/lib/typescript/src/games/block-blast/components/BlastAnimation.d.ts +12 -0
  356. package/lib/typescript/src/games/block-blast/components/BlastAnimation.d.ts.map +1 -0
  357. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts +1 -4
  358. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts.map +1 -1
  359. package/lib/typescript/src/games/block-blast/components/GameArea.d.ts.map +1 -1
  360. package/lib/typescript/src/games/block-blast/components/GameBackground.d.ts.map +1 -1
  361. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts +4 -2
  362. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts.map +1 -1
  363. package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts.map +1 -1
  364. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts +12 -6
  365. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts.map +1 -1
  366. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts +1 -0
  367. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts.map +1 -1
  368. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts +5 -1
  369. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts.map +1 -1
  370. package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts.map +1 -1
  371. package/lib/typescript/src/games/bubble-shooter/components/GameBackground.d.ts.map +1 -1
  372. package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts.map +1 -1
  373. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +1 -1
  374. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts +8 -0
  375. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts.map +1 -1
  376. package/lib/typescript/src/games/candy-crush/components/BlastAnimation.d.ts +16 -0
  377. package/lib/typescript/src/games/candy-crush/components/BlastAnimation.d.ts.map +1 -0
  378. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts.map +1 -1
  379. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts.map +1 -1
  380. package/lib/typescript/src/games/candy-crush/components/index.d.ts +1 -0
  381. package/lib/typescript/src/games/candy-crush/components/index.d.ts.map +1 -1
  382. package/lib/typescript/src/games/car-racing/CarRacing.d.ts.map +1 -1
  383. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts +6 -2
  384. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts.map +1 -1
  385. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts +9 -0
  386. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts.map +1 -1
  387. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts +0 -1
  388. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts.map +1 -1
  389. package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts.map +1 -1
  390. package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts.map +1 -1
  391. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -1
  392. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts +1 -0
  393. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts.map +1 -1
  394. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts +5 -1
  395. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -1
  396. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts +1 -1
  397. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts.map +1 -1
  398. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts.map +1 -1
  399. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -1
  400. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +9 -7
  401. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts.map +1 -1
  402. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +1 -1
  403. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +1 -0
  404. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts.map +1 -1
  405. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -1
  406. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts.map +1 -1
  407. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts.map +1 -1
  408. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts.map +1 -1
  409. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -1
  410. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts +6 -0
  411. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -1
  412. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +8 -4
  413. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts.map +1 -1
  414. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts.map +1 -1
  415. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts.map +1 -1
  416. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts.map +1 -1
  417. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts.map +1 -1
  418. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts.map +1 -1
  419. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -1
  420. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts +21 -20
  421. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -1
  422. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts.map +1 -1
  423. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts +1 -2
  424. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts.map +1 -1
  425. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts.map +1 -1
  426. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts.map +1 -1
  427. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +15 -45
  428. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -1
  429. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts +9 -33
  430. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -1
  431. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts +0 -11
  432. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -1
  433. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts +0 -1
  434. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts.map +1 -1
  435. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -1
  436. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
  437. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -1
  438. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +20 -0
  439. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts.map +1 -1
  440. package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts.map +1 -1
  441. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts.map +1 -1
  442. package/lib/typescript/src/games/game-2048/components/GameTile.d.ts.map +1 -1
  443. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  444. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +2 -2
  445. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  446. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts +1 -1
  447. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -1
  448. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  449. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +1 -1
  450. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -1
  451. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +1 -0
  452. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  453. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts +1 -1
  454. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -1
  455. package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts.map +1 -1
  456. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts +1 -0
  457. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts.map +1 -1
  458. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts +5 -3
  459. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts.map +1 -1
  460. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts +16 -0
  461. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts.map +1 -1
  462. package/lib/typescript/src/games/perfect-circle/components/GameBackground.d.ts.map +1 -1
  463. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  464. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +2 -2
  465. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +4 -2
  466. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
  467. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -1
  468. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts.map +1 -1
  469. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -1
  470. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -1
  471. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
  472. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -1
  473. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts +1 -1
  474. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts +10 -0
  475. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts.map +1 -1
  476. package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts.map +1 -1
  477. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts.map +1 -1
  478. package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts.map +1 -1
  479. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts.map +1 -1
  480. package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -1
  481. package/lib/typescript/src/games/snake/SnakeStore.d.ts +16 -0
  482. package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -1
  483. package/lib/typescript/src/games/snake/components/GameBackground.d.ts.map +1 -1
  484. package/lib/typescript/src/games/snake/components/GameGrid.d.ts.map +1 -1
  485. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  486. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +4 -4
  487. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
  488. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -1
  489. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
  490. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -1
  491. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  492. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +8 -3
  493. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -1
  494. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -1
  495. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -1
  496. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts.map +1 -1
  497. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts.map +1 -1
  498. package/lib/typescript/src/helpers/AbstractFruits.d.ts +207 -0
  499. package/lib/typescript/src/helpers/AbstractFruits.d.ts.map +1 -0
  500. package/lib/typescript/src/helpers/GameControlButton.d.ts +4 -7
  501. package/lib/typescript/src/helpers/GameControlButton.d.ts.map +1 -1
  502. package/lib/typescript/src/helpers/ParticleBlast.d.ts +1 -1
  503. package/lib/typescript/src/helpers/ParticleBlast.d.ts.map +1 -1
  504. package/lib/typescript/src/helpers/index.d.ts +1 -0
  505. package/lib/typescript/src/helpers/index.d.ts.map +1 -1
  506. package/lib/typescript/src/services/UtilsService.d.ts +2 -0
  507. package/lib/typescript/src/services/UtilsService.d.ts.map +1 -1
  508. package/package.json +7 -3
@@ -1 +1 @@
1
- "use strict";import 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';
1
+ "use strict";import t,{useMemo as r}from"react";import{Canvas as e,Rect as o,LinearGradient as a,vec as n,Line as h,Circle as i,Path as s,Skia as c,Group as l}from"@shopify/react-native-skia";import{BIKE_RACING_COLORS as d,BIKE_RACING_GAME_CONFIG as g}from"../BikeRacingConstants.js";import{jsx as m,jsxs as p}from"react/jsx-runtime";const u=120,y=60,f=40,x=.9,k=t=>{const r=c.Path.Make(),e=8*t,o=20*t;return r.addRect({x:-e/2,y:-o,width:e,height:o}),r},X=t=>{const r=c.Path.Make(),e=35*t,o=45*t,a=20*t;return r.moveTo(0,-a-o),r.lineTo(-e/2,-a),r.lineTo(e/2,-a),r.close(),r.moveTo(0,-a-o-15*t),r.lineTo(.4*-e,-a-15*t),r.lineTo(.4*e,-a-15*t),r.close(),r.moveTo(0,-a-o-28*t),r.lineTo(.25*-e,-a-28*t),r.lineTo(.25*e,-a-28*t),r.close(),r},w=k(x),W=X(x),T=7.2,A=-45,j=4.5,B=({width:c,height:x,roadOffset:k})=>{const{roadWidth:X,roadStartX:B,grassWidth:D,numLines:G,numTrees:E,leftTreeX:L,rightTreeX:M}=r(()=>{const t=g.LANE_WIDTH*g.ROAD_LANES,r=(c-t)/2,e=r;return{roadWidth:t,roadStartX:r,grassWidth:e,numLines:Math.ceil(x/y)+2,numTrees:Math.ceil(x/u)+2,leftTreeX:.35*e,rightTreeX:r+t+.65*e}},[c,x]),S=k%y,Y=k%u;return p(e,{style:{width:c,height:x},children:[m(o,{x:0,y:0,width:c,height:x,children:m(a,{start:n(c/2,0),end:n(c/2,x),colors:[d.SKY_BLUE,"#b0e0e6"]})}),m(o,{x:0,y:0,width:D,height:x,children:m(a,{start:n(0,0),end:n(D,0),colors:[d.GRASS_DARK,d.GRASS_GREEN]})}),m(o,{x:B+X,y:0,width:D,height:x,children:m(a,{start:n(0,0),end:n(D,0),colors:[d.GRASS_GREEN,d.GRASS_DARK]})}),m(o,{x:B,y:0,width:X,height:x,color:d.ROAD_DARK}),Array.from({length:E}).map((t,r)=>p(l,{transform:[{translateX:L},{translateY:r*u+Y+80}],children:[m(s,{path:w,color:"#5D4037"}),m(s,{path:W,color:"#2E7D32"}),m(i,{cx:-4.5,cy:A,r:T,color:"#43A047",opacity:.6})]},"left-tree-"+r)),Array.from({length:E}).map((t,r)=>p(l,{transform:[{translateX:M},{translateY:r*u+Y+80+60}],children:[m(s,{path:w,color:"#5D4037"}),m(s,{path:W,color:"#2E7D32"}),m(i,{cx:j,cy:A,r:T,color:"#43A047",opacity:.6})]},"right-tree-"+r)),[1,2].map(r=>{const e=B+r*g.LANE_WIDTH;return m(t.Fragment,{children:Array.from({length:G}).map((t,o)=>{const a=o*y+S;return m(h,{p1:n(e,a),p2:n(e,a+f),color:d.ROAD_LINE,strokeWidth:3},`line-${r}-${o}`)})},"lane-"+r)}),m(h,{p1:n(B,0),p2:n(B,x),color:d.ROAD_LINE,strokeWidth:3}),m(h,{p1:n(B+X,0),p2:n(B+X,x),color:d.ROAD_LINE,strokeWidth:3})]})},D=(t,r)=>t.width===r.width&&t.height===r.height&&t.roadOffset===r.roadOffset;export const GameBackground=t.memo(B,D);GameBackground.displayName="GameBackground";
@@ -1 +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":[]}
1
+ {"version":3,"names":["React","useMemo","Canvas","Rect","LinearGradient","vec","Line","Circle","Path","Skia","Group","BIKE_RACING_COLORS","BIKE_RACING_GAME_CONFIG","jsx","_jsx","jsxs","_jsxs","TREE_SPACING","LINE_SPACING","LINE_HEIGHT","TREE_SCALE","createTreeTrunkTemplate","scale","path","Make","trunkWidth","trunkHeight","addRect","x","y","width","height","createFoliageTemplate","foliageWidth","foliageHeight","moveTo","lineTo","close","TRUNK_TEMPLATE","FOLIAGE_TEMPLATE","HIGHLIGHT_RADIUS","HIGHLIGHT_OFFSET_Y","HIGHLIGHT_OFFSET_X","GameBackgroundComponent","roadOffset","roadWidth","roadStartX","grassWidth","numLines","numTrees","leftTreeX","rightTreeX","rw","LANE_WIDTH","ROAD_LANES","rsx","gw","Math","ceil","lineOffset","treeOffset","style","children","start","end","colors","SKY_BLUE","GRASS_DARK","GRASS_GREEN","color","ROAD_DARK","Array","from","length","map","_","i","transform","translateX","translateY","cx","cy","r","opacity","laneIndex","lineX","Fragment","p1","p2","ROAD_LINE","strokeWidth","arePropsEqual","prevProps","nextProps","GameBackground","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/bike-racing/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +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}});
1
+ "use strict";import e,{useMemo as t}from"react";import{View as r,Text as o,StyleSheet as n}from"react-native";import{ScoreBoardContainer as i}from"../../../helpers/index.js";import{BIKE_RACING_COLORS as l}from"../BikeRacingConstants.js";import{useScore as s,useTimeLeft as c,useLives as f}from"../BikeRacingStore.js";import{jsx as a,jsxs as d}from"react/jsx-runtime";const m=e.memo(({lives:e})=>{const n=t(()=>[1>e?"\ud83d\udda4":"\u2764\ufe0f",2>e?"\ud83d\udda4":"\u2764\ufe0f",3>e?"\ud83d\udda4":"\u2764\ufe0f"],[e]);return a(r,{style:h.heartsContainer,children:n.map((e,t)=>a(o,{style:h.heartIcon,children:e},t))})});m.displayName="LivesDisplay";export const ScoreBoard=e.memo(({offset:t=0})=>{const n=s(),l=c(),g=f(),y=e.useMemo(()=>{const e=l%60;return`${Math.floor(l/60).toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},[l]);return a(i,{offset:t,backgroundColor:"rgba(255, 102, 0, 0.4)",borderColor:"rgba(255, 102, 0, 0.4)",children:d(r,{style:h.rowContainer,children:[d(r,{style:h.scoreSection,children:[a(o,{style:h.label,children:"SCORE"}),a(o,{style:h.value,children:n})]}),d(r,{style:h.timeSection,children:[a(o,{style:h.label,children:"TIME"}),a(o,{style:[h.value,10>=l&&h.timeWarning],children:y})]}),d(r,{style:h.livesSection,children:[a(o,{style:h.label,children:"LIVES"}),a(m,{lives:g})]})]})})});ScoreBoard.displayName="ScoreBoard";const h=n.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:.5},value:{fontSize:25,fontWeight:"bold",color:"#ffffff"},timeWarning:{color:l.UI},heartsContainer:{flexDirection:"row",gap:4},heartIcon:{fontSize:22}});
@@ -1 +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":[]}
1
+ {"version":3,"names":["React","useMemo","View","Text","StyleSheet","ScoreBoardContainer","BIKE_RACING_COLORS","useScore","useTimeLeft","useLives","jsx","_jsx","jsxs","_jsxs","LivesDisplay","memo","lives","hearts","style","styles","heartsContainer","children","map","heart","index","heartIcon","displayName","ScoreBoard","offset","score","timeLeft","formattedTime","mins","Math","floor","secs","toString","padStart","backgroundColor","borderColor","rowContainer","scoreSection","label","value","timeSection","timeWarning","livesSection","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":[]}
@@ -1 +1 @@
1
- "use strict";export{BikeComponent}from "./BikeComponent.js";export{GameBackground}from "./GameBackground.js";export{ScoreBoard}from "./ScoreBoard.js";
1
+ "use strict";export{BikeComponent}from"./BikeComponent.js";export{GameBackground}from"./GameBackground.js";export{ScoreBoard}from"./ScoreBoard.js";
@@ -1 +1 @@
1
- "use strict";export{BikeRacing}from "./BikeRacing.js";export{BikeRacingService}from "./BikeRacingService.js";export{useBikeRacingStore}from "./BikeRacingStore.js";export * from "./BikeRacingConstants.js";
1
+ "use strict";export{BikeRacing}from"./BikeRacing.js";export{BikeRacingService}from"./BikeRacingService.js";export{useBikeRacingStore}from"./BikeRacingStore.js";export*from"./BikeRacingConstants.js";
@@ -1 +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}});
1
+ "use strict";import e from"react";import{View as t,StyleSheet as o,Dimensions as r}from"react-native";import{GestureHandlerRootView as s}from"react-native-gesture-handler";import{GameControlButton as n,GameOverModal as i,GameSettingsModal as a}from"../../helpers/index.js";import{DEFAULT_GAME_SETTINGS as l,GAME_IDS as c}from"../../services/UtilsService.js";import{playSound as f,GAME_SOUNDS as m}from"../../services/SoundsService.js";import{playHaptic as d,HapticType as p}from"../../services/HapticsService.js";import{useBlockBlastStore as u,useScore as b,useIsPlaying as S,useGameOver as h,useGameWon as g}from"./BlockBlastStore.js";import{BlockBlastService as v}from"./BlockBlastService.js";import{BLOCK_BLAST_COLORS as j,BLOCK_BLAST_GAME_CONFIG as x,getDifficultySettings as B}from"./BlockBlastConstants.js";import{ScoreBoard as C,GameArea as G,GameBackground as w}from"./components/index.js";import{jsx as y,jsxs as E}from"react/jsx-runtime";const{width:k,height:z}=r.get("window");export const BlockBlast=({settings:o=l,onSettingsChange:r,onEndGame:O,onShare:P,onShowLeaderboard:A})=>{const M=e.useMemo(()=>({difficulty:o?.difficulty||"medium",soundEnabled:o?.enableSounds??!0,hapticEnabled:o?.enableHaptics??!0,offset:o?.offset??0}),[o?.difficulty,o?.enableSounds,o?.enableHaptics,o?.offset]),{difficulty:T,soundEnabled:L,hapticEnabled:N,offset:U}=M,V=b(),H=S(),R=h(),W=g(),Y=u(e=>e.gridSize),q=e.useRef(!1),D=e.useCallback(e=>{O&&!q.current&&(O({status:e,score:V.toString()}),q.current=!0)},[O,V]),F=e.useCallback((e,t)=>u.getState().startGame(e,t),[]),J=e.useCallback(()=>u.getState().resetGame(),[]),K=e.useMemo(()=>B(T),[T]),Q=e.useMemo(()=>new v,[]);e.useEffect(()=>{const e=u.getState();e.isPlaying||e.initializeGame(K.gridSize)},[K.gridSize]);const X=e.useMemo(()=>{const e=x.CELL_GAP;return{cellSize:Math.floor(Math.min((k-40-(Y-1)*e)/Y,(z-U-100-(Y-1)*e)/Y,x.CELL_SIZE)),cellGap:e}},[Y,U]),{cellSize:Z,cellGap:$}=X;e.useEffect(()=>{Q.setCallbacks(e=>{e>0&&(f(m.BLOCK_BLAST.CLEAR,L),d(p.SUCCESS,N))},()=>{f(m.BLOCK_BLAST.PLACE,L),d(p.LIGHT,N)},()=>{f(m.BLOCK_BLAST.GAME_OVER,L),d(p.ERROR,N)})},[Q,L,N]),e.useEffect(()=>{!R&&!W||q.current||D(W?"win":"lose"),R||W||(q.current=!1)},[R,W,D]),e.useEffect(()=>()=>{Q.cleanup(),u.getState().resetGame()},[Q]),e.useEffect(()=>{if(!H)return;const e=setInterval(()=>{u.getState().decrementTime()},1e3);return()=>clearInterval(e)},[H]);const _=e.useCallback(()=>{q.current=!1,F(K.gridSize,K.gameDuration),Q.startGame(K.gridSize),f(m.BLOCK_BLAST.START,L),d(p.SUCCESS,N)},[F,Q,K.gridSize,K.gameDuration,L,N]),ee=e.useCallback(()=>{D("cancel"),J(),Q.resetGame()},[J,Q,D]),te=e.useCallback(()=>{J(),Q.resetGame()},[J,Q]),oe=e.useCallback(()=>{te()},[te]),re=e.useMemo(()=>({isPlaying:H,gameOver:R,onStartGame:_,onStopGame:ee,onShare:P,onShowLeaderboard:A,startButtonSubtext:"Place blocks to clear lines!",buttonColor:j.UI,buttonBorderColor:j.UI}),[H,R,_,ee,P,A]),se=e.useMemo(()=>({isVisible:R,score:V,onPlayAgain:oe,buttonText:"Play Again!",borderColor:"rgba(255, 105, 180, 0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:j.UI,title:W?"\ud83c\udf89 YOU WON!":"\ud83d\udca5 GAME OVER",message:W?"Time completed! Great job!":"No more moves available!"}),[R,V,oe,W]);return y(s,{style:I.container,children:E(w,{children:[y(t,{style:[I.scoreboardContainer,{top:U+15}],children:y(C,{offset:0})}),y(G,{gridSize:Y,cellSize:Z,cellGap:$,gameService:Q,offset:U+15}),y(n,{...re}),y(i,{...se}),y(a,{gameId:c.BLOCK_BLAST,settings:o||l,onSettingsChange:r})]})})};const I=o.create({container:{flex:1},scoreboardContainer:{position:"absolute",left:0,right:0,top:0,zIndex:10}});
@@ -1 +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":"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","ignoreList":[]}
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","onShare","onShowLeaderboard","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","initializeGame","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","startButtonSubtext","buttonColor","UI","buttonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","borderColor","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":"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","ignoreList":[]}
@@ -1 +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!'};
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=e=>BLOCK_BLAST_DIFFICULTY_CONFIG[e];export const DEFAULT_BLOCK_BLAST_SETTINGS={difficulty:"medium",soundEnabled:!0,hapticEnabled:!0};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:.7,DRAGGING_PIECE_SCALE:1};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,1],[0,1,0]],[[0,1,0],[1,1,1]],[[0,1,1],[1,1,0]],[[1,1,0],[0,1,1]],[[1,1,1],[1,0,0]],[[0,0,1],[1,1,1]],[[1,0,0],[1,1,1]],[[1,1,1],[0,0,1]]];export const getRandomBlockShape=()=>{const e=Math.floor(Math.random()*BLOCK_SHAPES.length);return BLOCK_SHAPES[e]};export const getRandomBlockColor=()=>{const e=["#00d4ff","#4169ff","#ff4169","#ffd700","#00ff88","#b469ff","#ff8800","#ff69b4"];return e[Math.floor(Math.random()*e.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!"};
@@ -1 +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":[]}
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":[]}
@@ -1 +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;}}
1
+ "use strict";import{useBlockBlastStore as t}from"./BlockBlastStore.js";export class BlockBlastService{setCallbacks(t,s,e){this.onClearLines=t,this.onPlacePiece=s,this.onGameOver=e}startGame(s){t.getState().startGame(s)}stopGame(){t.getState().stopGame()}resetGame(){t.getState().resetGame()}placePiece(s,e,i){const o=t.getState().placePiece(s,e,i);if(o){this.onPlacePiece&&this.onPlacePiece();const s=t.getState(),{linesCleared:e}=s.clearLines();e>0&&this.onClearLines&&this.onClearLines(e);const i=t.getState();i.addNewPiece(),i.checkGameOver()&&this.onGameOver&&this.onGameOver()}return o}canPlacePiece(s,e,i){const o=t.getState(),r=o.nextPieces.find(t=>t.id===s);if(!r)return!1;const{shape:c}=r;for(let t=0;t<c.length;t++){const s=c[t];if(s)for(let r=0;r<s.length;r++)if(1===s[r]){const s=e+t,c=i+r;if(0>s||s>=o.gridSize||0>c||c>=o.gridSize||null!==o.grid[s]?.[c])return!1}}return!0}getGridPosition(t,s,e,i,o,r){const c=o+r,n=t-e,l=s-i;if(0>n||0>l)return null;const a=Math.floor(n/c);return{row:Math.floor(l/c),col:a}}cleanup(){this.onClearLines=void 0,this.onPlacePiece=void 0,this.onGameOver=void 0}}
@@ -1 +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":"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","ignoreList":[]}
1
+ {"version":3,"names":["useBlockBlastStore","BlockBlastService","setCallbacks","onClearLines","onPlacePiece","onGameOver","startGame","gridSize","getState","stopGame","resetGame","placePiece","pieceId","row","col","store","success","freshStore","linesCleared","clearLines","storeAfterClear","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":"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","ignoreList":[]}
@@ -1 +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);
1
+ "use strict";import{create as e}from"zustand";import{subscribeWithSelector as l}from"zustand/middleware";import{immerMiddleware as t}from"../../services/UtilsService.js";import{BLOCK_BLAST_GAME_CONFIG as o,getRandomBlockShape as r,getRandomBlockColor as n}from"./BlockBlastConstants.js";const s=e=>Array(e).fill(null).map(()=>Array(e).fill(null)),c=()=>{const e=r(),l=n();if(!e||!l)throw Error("Failed to generate random piece");return{id:`piece-${Date.now()}-${Math.random()}`,shape:e.map(e=>[...e]),color:l}};export const useBlockBlastStore=e()(l(t((e,l)=>({score:0,isPlaying:!1,gameOver:!1,gameWon:!1,timeRemaining:0,gameDuration:300,grid:s(o.GRID_SIZE),gridSize:o.GRID_SIZE,nextPieces:[],selectedPieceId:null,dragPosition:null,previewPosition:null,canPlace:!1,clearingCells:[],initializeGame:l=>{const t=l||o.GRID_SIZE;e(e=>{e.grid=s(t),e.gridSize=t,e.nextPieces=Array(o.NEXT_PIECES_COUNT).fill(null).map(()=>c())})},startGame:(t,r)=>{const n=t||o.GRID_SIZE,i=r||300,a=l().nextPieces;e(e=>{e.score=0,e.isPlaying=!0,e.gameOver=!1,e.gameWon=!1,e.timeRemaining=i,e.gameDuration=i,e.grid=s(n),e.gridSize=n,0===a.length&&(e.nextPieces=Array(o.NEXT_PIECES_COUNT).fill(null).map(()=>c())),e.selectedPieceId=null,e.dragPosition=null,e.previewPosition=null,e.canPlace=!1})},stopGame:()=>{e(e=>{e.isPlaying=!1,e.selectedPieceId=null,e.dragPosition=null,e.previewPosition=null})},resetGame:()=>{e(e=>{e.score=0,e.isPlaying=!1,e.gameOver=!1,e.gameWon=!1,e.timeRemaining=0,e.grid=s(e.gridSize),e.nextPieces=Array(o.NEXT_PIECES_COUNT).fill(null).map(()=>c()),e.selectedPieceId=null,e.dragPosition=null,e.previewPosition=null,e.canPlace=!1})},updateScore:l=>{e(e=>{e.score=e.score+l})},selectPiece:l=>{e(e=>{e.selectedPieceId=l})},deselectPiece:()=>{e(e=>{e.selectedPieceId=null,e.dragPosition=null,e.previewPosition=null,e.canPlace=!1})},updateDragPosition:(l,t)=>{e(e=>{e.dragPosition={x:l,y:t}})},updatePreviewPosition:(l,t,o)=>{e(e=>{e.previewPosition={row:l,col:t},e.canPlace=o})},clearPreview:()=>{e(e=>{e.previewPosition=null,e.canPlace=!1})},placePiece:(t,r,n)=>{const s=l(),c=s.nextPieces.find(e=>e.id===t);if(!c)return!1;const{shape:i,color:a}=c;for(let e=0;e<i.length;e++)for(let l=0;l<i[e].length;l++)if(1===i[e][l]){const t=r+e,o=n+l;if(0>t||t>=s.gridSize||0>o||o>=s.gridSize||null!==s.grid[t][o])return!1}return e(e=>{for(let l=0;l<i.length;l++)for(let t=0;t<i[l].length;t++)1===i[l][t]&&(e.grid[r+l][n+t]=a);const l=i.flat().filter(e=>1===e).length;e.score+=l*o.POINTS_PER_BLOCK,e.nextPieces=e.nextPieces.filter(e=>e.id!==t),e.selectedPieceId=null,e.dragPosition=null,e.previewPosition=null,e.canPlace=!1}),!0},generateNextPieces:()=>{e(e=>{e.nextPieces=Array(o.NEXT_PIECES_COUNT).fill(null).map(()=>c())})},addNewPiece:()=>{e(e=>{e.nextPieces.push(c())})},clearLines:()=>{const t=l();let r=0;const n=[],s=[],c=t.gridSize,i=t.grid,a=[];for(let e=0;c>e;e++){let l=!0;const t=i[e];if(t){for(let e=0;c>e;e++)if(null===t[e]){l=!1;break}l&&(n.push(e),r++)}}for(let e=0;c>e;e++){let l=!0;for(let t=0;c>t;t++){const o=i[t];if(!o||null===o[e]){l=!1;break}}l&&(s.push(e),r++)}if(0===r)return{linesCleared:0,cellsToAnimate:[]};const u=new Set;return n.forEach(e=>{for(let l=0;c>l;l++){const t=`${e}-${l}`;if(!u.has(t)){u.add(t);const o=i[e]?.[l];o&&a.push({row:e,col:l,color:o})}}}),s.forEach(e=>{for(let l=0;c>l;l++){const t=`${l}-${e}`;if(!u.has(t)){u.add(t);const o=i[l]?.[e];o&&a.push({row:l,col:e,color:o})}}}),e(e=>{e.clearingCells=a,n.forEach(l=>{for(let t=0;c>t;t++)e.grid[l][t]=null}),s.forEach(l=>{for(let t=0;c>t;t++)e.grid[t][l]=null});const l=r*o.POINTS_PER_LINE;e.score+=l}),{linesCleared:r,cellsToAnimate:a}},clearClearingCells:()=>{e(e=>{e.clearingCells=[]})},checkGameOver:()=>{const t=l();for(const e of t.nextPieces)for(let l=0;l<t.gridSize;l++)for(let o=0;o<t.gridSize;o++){let r=!0;for(let n=0;n<e.shape.length;n++){for(let s=0;s<e.shape[n].length;s++)if(1===e.shape[n][s]){const e=l+n,c=o+s;if(0>e||e>=t.gridSize||0>c||c>=t.gridSize||null!==t.grid[e][c]){r=!1;break}}if(!r)break}if(r)return!1}return e(e=>{e.gameOver=!0,e.isPlaying=!1}),!0},decrementTime:()=>{e(e=>{e.timeRemaining>0&&(e.timeRemaining-=1),0===e.timeRemaining&&e.isPlaying&&(e.gameWon=!0,e.gameOver=!0,e.isPlaying=!1)})},checkWinCondition:()=>{const t=l();0===t.timeRemaining&&t.isPlaying&&e(e=>{e.gameWon=!0,e.gameOver=!0,e.isPlaying=!1})}}))));export const useScore=()=>useBlockBlastStore(e=>e.score);export const useIsPlaying=()=>useBlockBlastStore(e=>e.isPlaying);export const useGameOver=()=>useBlockBlastStore(e=>e.gameOver);export const useGameWon=()=>useBlockBlastStore(e=>e.gameWon);export const useTimeRemaining=()=>useBlockBlastStore(e=>e.timeRemaining);export const useGrid=()=>useBlockBlastStore(e=>e.grid);export const useNextPieces=()=>useBlockBlastStore(e=>e.nextPieces);export const useSelectedPieceId=()=>useBlockBlastStore(e=>e.selectedPieceId);export const useClearingCells=()=>useBlockBlastStore(e=>e.clearingCells);
@@ -1 +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":[]}
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","clearingCells","initializeGame","draft","NEXT_PIECES_COUNT","startGame","duration","currentPieces","length","stopGame","resetGame","updateScore","points","selectPiece","pieceId","deselectPiece","updateDragPosition","x","y","updatePreviewPosition","col","clearPreview","placePiece","state","piece","find","p","r","c","gridRow","gridCol","blockCount","flat","filter","cell","POINTS_PER_BLOCK","generateNextPieces","addNewPiece","push","clearLines","linesCleared","linesToClear","colsToClear","cellsToAnimate","isRowFull","rowData","isColFull","cellSet","Set","forEach","key","has","add","totalPoints","POINTS_PER_LINE","clearClearingCells","checkGameOver","decrementTime","checkWinCondition","useScore","useIsPlaying","useGameOver","useGameWon","useTimeRemaining","useGrid","useNextPieces","useSelectedPieceId","useClearingCells"],"sourceRoot":"../../../../src","sources":["games/block-blast/BlockBlastStore.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ "use strict";import t from"react";import{StyleSheet as e}from"react-native";import l,{useSharedValue as o,useAnimatedStyle as r,withTiming as a,runOnJS as i,Easing as s}from"react-native-reanimated";import{jsx as n,Fragment as c}from"react/jsx-runtime";const m=t.memo(({cell:t,cellSize:e,cellGap:o,totalCellSize:a,progress:i})=>{const s=t.col*a+o,c=t.row*a+o,m=r(()=>{const t=i.value;return{opacity:.6>t?1:1-(t-.6)/.4,transform:[{scale:.4>t?1+t/.4*.8:1.8-(t-.4)/.6*1.8}]}});return n(l.View,{style:[p.blastCell,{left:s,top:c,width:e,height:e,backgroundColor:t.color},m]})});export const BlastAnimation=t.memo(({cells:e,cellSize:l,cellGap:r,totalCellSize:p,onComplete:u})=>{const d=o(0);return t.useEffect(()=>{0!==e.length&&(d.value=0,d.value=a(1,{duration:400,easing:s.out(s.cubic)},t=>{t&&i(u)()}))},[e,d,u]),0===e.length?null:n(c,{children:e.map(t=>n(m,{cell:t,cellSize:l,cellGap:r,totalCellSize:p,progress:d},`blast-${t.row}-${t.col}`))})});BlastAnimation.displayName="BlastAnimation";const p=e.create({blastCell:{position:"absolute",borderRadius:6}});
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","Animated","useSharedValue","useAnimatedStyle","withTiming","runOnJS","Easing","jsx","_jsx","Fragment","_Fragment","BlastCell","memo","cell","cellSize","cellGap","totalCellSize","progress","x","col","y","row","animatedStyle","p","value","scale","opacity","transform","View","style","styles","blastCell","left","top","width","height","backgroundColor","color","BlastAnimation","cells","onComplete","useEffect","length","duration","easing","out","cubic","finished","children","map","displayName","create","position","borderRadius"],"sourceRoot":"../../../../../src","sources":["games/block-blast/components/BlastAnimation.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +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';
1
+ "use strict";import e from"react";import{View as t}from"react-native";import{Canvas as o,RoundedRect as r,Group as i}from"@shopify/react-native-skia";import{jsx as c,jsxs as n}from"react/jsx-runtime";const l=({shape:e,color:l,cellSize:s,cellGap:h,scale:a=1})=>{const m=s*a,p=h*a,d=m+p,f=e[0]?e[0].length*d+p:0,u=e.length*d+p;return c(t,{style:{width:f,height:u},children:c(o,{style:{width:f,height:u},children:e.map((e,t)=>e.map((e,o)=>{if(1===e){const e=o*d+p,s=t*d+p;return n(i,{children:[c(r,{x:e,y:s,width:m,height:m,r:4*a,color:l}),c(r,{x:e+2*a,y:s+2*a,width:m-4*a,height:m/3,r:3*a,color:"rgba(255, 255, 255, 0.3)"})]},`block-${t}-${o}`)}return null}))})})},s=(e,t)=>e.color===t.color&&e.cellSize===t.cellSize&&e.cellGap===t.cellGap&&e.scale===t.scale&&e.shape.length===t.shape.length&&e.shape[0]?.length===t.shape[0]?.length;export const BlockPieceComponent=e.memo(l,s);BlockPieceComponent.displayName="BlockPieceComponent";
@@ -1 +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":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,EAAEC,WAAW,EAAEC,KAAK,QAAQ,4BAA4B;AACvE,OAAOC,QAAQ,IAAIC,gBAAgB,EAAEC,UAAU,QAAQ,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAajF,MAAMC,uBAAuB,GAAGA,CAAC;EAC/BC,KAAK;EACLC,KAAK;EACLC,QAAQ;EACRC,OAAO;EACPC,KAAK,GAAG,CAAC;EACTC,CAAC,GAAG,CAAC;EACLC,CAAC,GAAG,CAAC;EACLC,UAAU,GAAG;AACW,CAAC,KAAK;EAC9B,MAAMC,cAAc,GAAGN,QAAQ,GAAGE,KAAK;EACvC,MAAMK,SAAS,GAAGN,OAAO,GAAGC,KAAK;EACjC,MAAMM,eAAe,GAAGF,cAAc,GAAGC,SAAS;;EAElD;EACA,MAAME,UAAU,GAAGX,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAACY,MAAM,GAAGF,eAAe,GAAGD,SAAS,GAAG,CAAC;EAC/E,MAAMI,WAAW,GAAGb,KAAK,CAACY,MAAM,GAAGF,eAAe,GAAGD,SAAS;;EAE9D;EACA,MAAMK,aAAa,GAAGrB,gBAAgB,CAAC,MAAM;IAC3C,IAAIc,UAAU,EAAE;MACd,OAAO;QACLQ,SAAS,EAAE,CACT;UAAEC,UAAU,EAAEX;QAAE,CAAC,EACjB;UAAEY,UAAU,EAAEX;QAAE,CAAC,EACjB;UAAEF,KAAK,EAAEV,UAAU,CAAC,GAAG,EAAE;YAAEwB,OAAO,EAAE,EAAE;YAAEC,SAAS,EAAE;UAAI,CAAC;QAAE,CAAC;MAE/D,CAAC;IACH;IACA,OAAO;MACLJ,SAAS,EAAE,CACT;QAAEC,UAAU,EAAE;MAAE,CAAC,EACjB;QAAEC,UAAU,EAAE;MAAE,CAAC,EACjB;QAAEb,KAAK,EAAEV,UAAU,CAAC,CAAC,EAAE;UAAEwB,OAAO,EAAE,EAAE;UAAEC,SAAS,EAAE;QAAI,CAAC;MAAE,CAAC;IAE7D,CAAC;EACH,CAAC,EAAE,CAACZ,UAAU,EAAEF,CAAC,EAAEC,CAAC,CAAC,CAAC;EAEtB,oBACEV,IAAA,CAACJ,QAAQ,CAAC4B,IAAI;IACZC,KAAK,EAAE,CACL;MACEC,KAAK,EAAEX,UAAU;MACjBY,MAAM,EAAEV;IACV,CAAC,EACDC,aAAa,CACb;IAAAU,QAAA,eAEF5B,IAAA,CAACP,MAAM;MAACgC,KAAK,EAAE;QAAEC,KAAK,EAAEX,UAAU;QAAEY,MAAM,EAAEV;MAAY,CAAE;MAAAW,QAAA,EACvDxB,KAAK,CAACyB,GAAG,CAAC,CAACC,GAAG,EAAEC,QAAQ,KACvBD,GAAG,CAACD,GAAG,CAAC,CAACG,IAAI,EAAEC,QAAQ,KAAK;QAC1B,IAAID,IAAI,KAAK,CAAC,EAAE;UACd,MAAME,KAAK,GAAGD,QAAQ,GAAGnB,eAAe,GAAGD,SAAS;UACpD,MAAMsB,KAAK,GAAGJ,QAAQ,GAAGjB,eAAe,GAAGD,SAAS;UAEpD,oBACEX,KAAA,CAACP,KAAK;YAAAiC,QAAA,gBAEJ5B,IAAA,CAACN,WAAW;cACVe,CAAC,EAAEyB,KAAM;cACTxB,CAAC,EAAEyB,KAAM;cACTT,KAAK,EAAEd,cAAe;cACtBe,MAAM,EAAEf,cAAe;cACvBwB,CAAC,EAAE,CAAC,GAAG5B,KAAM;cACbH,KAAK,EAAEA;YAAM,CACd,CAAC,eAEFL,IAAA,CAACN,WAAW;cACVe,CAAC,EAAEyB,KAAK,GAAG,CAAC,GAAG1B,KAAM;cACrBE,CAAC,EAAEyB,KAAK,GAAG,CAAC,GAAG3B,KAAM;cACrBkB,KAAK,EAAEd,cAAc,GAAG,CAAC,GAAGJ,KAAM;cAClCmB,MAAM,EAAGf,cAAc,GAAG,CAAG;cAC7BwB,CAAC,EAAE,CAAC,GAAG5B,KAAM;cACbH,KAAK,EAAC;YAA0B,CACjC,CAAC,eAEFL,IAAA,CAACN,WAAW;cACVe,CAAC,EAAEyB,KAAM;cACTxB,CAAC,EAAEyB,KAAK,GAAGvB,cAAc,GAAG,GAAI;cAChCc,KAAK,EAAEd,cAAe;cACtBe,MAAM,EAAEf,cAAc,GAAG,GAAI;cAC7BwB,CAAC,EAAE,CAAC,GAAG5B,KAAM;cACbH,KAAK,EAAC;YAAoB,CAC3B,CAAC;UAAA,GA3BQ,SAAS0B,QAAQ,IAAIE,QAAQ,EA4BlC,CAAC;QAEZ;QACA,OAAO,IAAI;MACb,CAAC,CACH;IAAC,CACK;EAAC,CACI,CAAC;AAEpB,CAAC;;AAED;AACA,MAAMI,aAAa,GAAGA,CAACC,SAAmC,EAAEC,SAAmC,KAAK;EAClG,OACED,SAAS,CAACjC,KAAK,KAAKkC,SAAS,CAAClC,KAAK,IACnCiC,SAAS,CAAChC,QAAQ,KAAKiC,SAAS,CAACjC,QAAQ,IACzCgC,SAAS,CAAC/B,OAAO,KAAKgC,SAAS,CAAChC,OAAO,IACvC+B,SAAS,CAAC9B,KAAK,KAAK+B,SAAS,CAAC/B,KAAK,IACnC8B,SAAS,CAAC7B,CAAC,KAAK8B,SAAS,CAAC9B,CAAC,IAC3B6B,SAAS,CAAC5B,CAAC,KAAK6B,SAAS,CAAC7B,CAAC,IAC3B4B,SAAS,CAAC3B,UAAU,KAAK4B,SAAS,CAAC5B,UAAU,IAC7C2B,SAAS,CAAClC,KAAK,CAACY,MAAM,KAAKuB,SAAS,CAACnC,KAAK,CAACY,MAAM,IACjDsB,SAAS,CAAClC,KAAK,CAAC,CAAC,CAAC,EAAEY,MAAM,KAAKuB,SAAS,CAACnC,KAAK,CAAC,CAAC,CAAC,EAAEY,MAAM;AAE7D,CAAC;AAED,OAAO,MAAMwB,mBAAmB,gBAAGhD,KAAK,CAACiD,IAAI,CAACtC,uBAAuB,EAAEkC,aAAa,CAAC;AACrFG,mBAAmB,CAACE,WAAW,GAAG,qBAAqB","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Canvas","RoundedRect","Group","jsx","_jsx","jsxs","_jsxs","BlockPieceComponentView","shape","color","cellSize","cellGap","scale","scaledCellSize","scaledGap","scaledTotalSize","pieceWidth","length","pieceHeight","style","width","height","children","map","row","rowIndex","cell","colIndex","cellX","cellY","x","y","r","arePropsEqual","prevProps","nextProps","BlockPieceComponent","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/block-blast/components/BlockPieceComponent.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +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';
1
+ "use strict";import e from"react";import{View as t,StyleSheet as r,Dimensions as i}from"react-native";import{Gesture as n,GestureDetector as o}from"react-native-gesture-handler";import{runOnJS as c}from"react-native-reanimated";import{GridComponent as s}from"./GridComponent.js";import{BlockPieceComponent as l}from"./BlockPieceComponent.js";import{useBlockBlastStore as a}from"../BlockBlastStore.js";import{BLOCK_BLAST_GAME_CONFIG as p}from"../BlockBlastConstants.js";import{jsx as d,Fragment as h,jsxs as g}from"react/jsx-runtime";const{width:u,height:f}=i.get("window"),m=e.memo(({nextPieces:e,selectedPieceId:r,cellSize:i,cellGap:n,piecesAreaHeight:o,screenWidth:c})=>{const s=i*p.PREVIEW_PIECE_SCALE,a=n*p.PREVIEW_PIECE_SCALE,g=(c-120-30*(e.length-1))/e.length;return d(h,{children:e.map((e,c)=>{if(!e||!e.shape)return null;const h=r===e.id,u=e.shape[0]?e.shape[0].length*(s+a):0,f=e.shape.length*(s+a),m=60+c*(g+30)+g/2,x=(o-f)/2;return d(t,{style:[S.pieceWrapper,{left:m-u/2,top:x,width:u,height:f,opacity:h?.3:1}],pointerEvents:"box-none",children:d(l,{shape:e.shape,color:e.color,cellSize:i,cellGap:n,scale:p.PREVIEW_PIECE_SCALE})},e.id)})})});m.displayName="PiecesRenderer";const x=({gridSize:r,cellSize:i,cellGap:h,gameService:x,offset:y})=>{const P=a(e=>e.grid),v=a(e=>e.nextPieces),z=a(e=>e.selectedPieceId),G=a(e=>e.previewPosition),A=a(e=>e.canPlace),[b,j]=e.useState({pieceId:null,x:0,y:0}),I=e.useRef({x:0,y:0}),w=e.useMemo(()=>{const e=i+h,t=r*e-h,n=r*e-h,o=y+70,c=(u-t)/2,s=Math.max(o+(f-o-80-(n+20+120))/2,o+10);return{totalCellSize:e,gridWidth:t,gridHeight:n,piecesAreaHeight:120,gridStartX:c,gridStartY:s,piecesAreaY:s+n+20,gridPadding:10}},[r,i,h,y,u,f]),{piecesAreaHeight:C,gridStartX:B,gridStartY:H,piecesAreaY:M,gridPadding:E}=w,W=e.useMemo(()=>{if(!G||!z)return null;const e=v.find(e=>e.id===z);return e?{shape:e.shape,color:e.color,row:G.row,col:G.col,canPlace:A}:null},[G,z,v,A]),Y=e.useCallback(()=>{a.getState().deselectPiece(),j({pieceId:null,x:0,y:0})},[]),k=e.useCallback((e,t)=>{const r=a.getState();if(!r.isPlaying)return;const n=u-120,o=30*(r.nextPieces.length-1);for(let c=0;c<r.nextPieces.length;c++){const s=r.nextPieces[c];if(!s||!s.shape||!s.shape[0])continue;const l=i*p.PREVIEW_PIECE_SCALE,a=h*p.PREVIEW_PIECE_SCALE,d=s.shape[0].length*(l+a),g=s.shape.length*(l+a),u=(n-o)/r.nextPieces.length,f=60+c*(u+30)+u/2-d/2,m=M+(C-g)/2,x=10;if(!(f-x>e||e>f+d+x||m-x>t||t>m+g+x)){r.selectPiece(s.id);const n=i*p.DRAGGING_PIECE_SCALE,o=h*p.DRAGGING_PIECE_SCALE,c=s.shape[0].length*(n+o),l=s.shape.length*(n+o),a=f+d/2,u=m+g/2;return I.current={x:e-a,y:t-u},void j({pieceId:s.id,x:e-I.current.x-c/2,y:t-I.current.y-l/2})}}},[i,h,M,C,u]),R=e.useCallback((e,t)=>{if(!b.pieceId)return;const r=a.getState(),n=r.nextPieces.find(e=>e.id===b.pieceId);if(!n||!n.shape||!n.shape[0])return;const o=i*p.DRAGGING_PIECE_SCALE,c=h*p.DRAGGING_PIECE_SCALE,s=n.shape[0].length*(o+c),l=n.shape.length*(o+c);j({pieceId:b.pieceId,x:e-I.current.x-s/2,y:t-I.current.y-l/2});const d=e-I.current.x,g=t-I.current.y,u=x.getGridPosition(d,g,B,H,i,h);if(u){const e=u.row-Math.floor(n.shape.length/2),t=u.col-Math.floor(n.shape[0].length/2),i=x.canPlacePiece(b.pieceId,e,t);r.updatePreviewPosition(e,t,i)}else r.clearPreview()},[b.pieceId,i,h,B,H,x]),X=e.useCallback((e,t)=>{if(!b.pieceId)return;const r=a.getState().nextPieces.find(e=>e.id===b.pieceId);if(!r||!r.shape||!r.shape[0])return;const n=e-I.current.x,o=t-I.current.y,c=x.getGridPosition(n,o,B,H,i,h);if(c){const e=c.row-Math.floor(r.shape.length/2),t=c.col-Math.floor(r.shape[0].length/2);x.placePiece(b.pieceId,e,t)}Y()},[b.pieceId,i,h,B,H,x,Y]),F=e.useMemo(()=>n.Pan().onBegin(e=>{c(k)(e.absoluteX,e.absoluteY)}).onUpdate(e=>{c(R)(e.absoluteX,e.absoluteY)}).onEnd(e=>{c(X)(e.absoluteX,e.absoluteY)}),[k,R,X]);return d(o,{gesture:F,children:g(t,{style:S.container,children:[d(t,{style:[S.gridContainer,{left:B-E,top:H-E,padding:E,paddingTop:E+20}],pointerEvents:"box-none",children:d(s,{grid:P,gridSize:r,cellSize:i,cellGap:h,previewPiece:W})}),d(t,{style:[S.piecesContainer,{top:M,left:0,right:0,height:C}],pointerEvents:"box-none",children:d(m,{nextPieces:v,selectedPieceId:z,cellSize:i,cellGap:h,piecesAreaHeight:C,screenWidth:u})}),b.pieceId&&(()=>{const e=v.find(e=>e.id===b.pieceId);return e?d(t,{style:[S.draggedPiece,{left:b.x,top:b.y}],pointerEvents:"none",children:d(l,{shape:e.shape,color:e.color,cellSize:i,cellGap:h,scale:p.DRAGGING_PIECE_SCALE})}):null})()]})})},S=r.create({container:{flex:1},gridContainer:{position:"absolute",borderRadius:10},piecesContainer:{position:"absolute"},pieceWrapper:{position:"absolute"},draggedPiece:{position:"absolute",zIndex:1e3}}),y=(e,t)=>e.gridSize===t.gridSize&&e.cellSize===t.cellSize&&e.cellGap===t.cellGap&&e.offset===t.offset&&e.gameService===t.gameService;export const GameArea=e.memo(x,y);GameArea.displayName="GameArea";