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{View,Dimensions}from 'react-native';import{Canvas,LinearGradient,Rect,vec,Circle,RoundedRect}from '@shopify/react-native-skia';import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');const PUZZLE_COLORS = ['#E91E63','#F44336','#FF5722','#FF9800','#FFC107','#CDDC39','#4CAF50','#009688','#00BCD4','#2196F3','#3F51B5','#9C27B0' ];export const GameBackground = React.memo(({children})=>{const generateFloatingTiles = React.useMemo(()=>{const elements = [];const tileCount = 25;for(let i = 0;i < tileCount;i++){const baseX = width / tileCount * i;const baseY = height / tileCount * i;const x = baseX + Math.sin(i * 0.5)* 50 + Math.random()* 100;const y = baseY + Math.cos(i * 0.7)* 60 + Math.random()* 120;const tileSize = 20 + Math.random()* 20;const colorIndex = i % PUZZLE_COLORS.length;const opacity = 0.3 + Math.sin(i)* 0.15;const tileX = Math.max(tileSize / 2,Math.min(width - tileSize,x));const tileY = Math.max(tileSize / 2,Math.min(height - tileSize,y));if(i % 4 === 0){elements.push(_jsx(RoundedRect,{x:tileX,y:tileY,width:tileSize,height:tileSize,r:tileSize * 0.2,color:`${PUZZLE_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`square-tile-${i}`));}else if(i % 4 === 1){elements.push(_jsx(RoundedRect,{x:tileX,y:tileY,width:tileSize * 0.6,height:tileSize,r:tileSize * 0.15,color:`${PUZZLE_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`rect-tile-${i}`));}else if(i % 4 === 2){elements.push(_jsx(RoundedRect,{x:tileX,y:tileY,width:tileSize * 1.2,height:tileSize * 0.8,r:tileSize * 0.1,color:`${PUZZLE_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`wide-tile-${i}`));}else{elements.push(_jsx(Circle,{cx:tileX + tileSize / 2,cy:tileY + tileSize / 2,r:tileSize / 2,color:`${PUZZLE_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`circle-tile-${i}`));}}return elements;},[width,height]);return _jsxs(View,{style:{flex:1},children:[_jsxs(Canvas,{style:{position:'absolute',top:0,left:0,right:0,bottom:0,width,height},children:[_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width,height),colors:[`${PUZZLE_COLORS[0]}30`,`${PUZZLE_COLORS[3]}25`,`${PUZZLE_COLORS[6]}30`,`${PUZZLE_COLORS[9]}25`,`${PUZZLE_COLORS[11]}30` ]})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width / 2,height / 2),colors:[`${PUZZLE_COLORS[1]}20`,'transparent',`${PUZZLE_COLORS[4]}20`,'transparent',`${PUZZLE_COLORS[7]}20`,'transparent']})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(width,0),end:vec(0,height),colors:[`${PUZZLE_COLORS[2]}15`,'transparent',`${PUZZLE_COLORS[5]}15`,'transparent',`${PUZZLE_COLORS[8]}15`,'transparent']})}),generateFloatingTiles,_jsx(RoundedRect,{x:width * 0.08,y:height * 0.12,width:50,height:50,r:8,color:`${PUZZLE_COLORS[0]}50`}),_jsx(RoundedRect,{x:width * 0.85,y:height * 0.82,width:45,height:45,r:7,color:`${PUZZLE_COLORS[3]}50`}),_jsx(RoundedRect,{x:width * 0.82,y:height * 0.18,width:40,height:40,r:6,color:`${PUZZLE_COLORS[6]}50`}),_jsx(RoundedRect,{x:width * 0.12,y:height * 0.75,width:55,height:55,r:9,color:`${PUZZLE_COLORS[9]}50`}),_jsx(RoundedRect,{x:width * 0.47,y:height * 0.08,width:35,height:35,r:5,color:`${PUZZLE_COLORS[11]}50`}),_jsx(RoundedRect,{x:width * 0.15,y:height * 0.47,width:42,height:42,r:6,color:`${PUZZLE_COLORS[5]}50`}),_jsx(RoundedRect,{x:width * 0.75,y:height * 0.57,width:38,height:38,r:6,color:`${PUZZLE_COLORS[8]}50`}),_jsx(RoundedRect,{x:width * 0.57,y:height * 0.87,width:32,height:32,r:5,color:`${PUZZLE_COLORS[1]}50`}),_jsx(Circle,{cx:width * 0.25,cy:height * 0.25,r:18,color:`${PUZZLE_COLORS[4]}45`}),_jsx(Circle,{cx:width * 0.65,cy:height * 0.35,r:22,color:`${PUZZLE_COLORS[7]}45`}),_jsx(Circle,{cx:width * 0.35,cy:height * 0.65,r:16,color:`${PUZZLE_COLORS[10]}45`}),Array.from({length:Math.floor(width / 60)},(_,i)=> _jsx(Rect,{x:i * 60,y:0,width:1,height:height,color:"rgba(255,255,255,0.05)"},`grid-v-${i}`)),Array.from({length:Math.floor(height / 60)},(_,i)=> _jsx(Rect,{x:0,y:i * 60,width:width,height:1,color:"rgba(255,255,255,0.05)"},`grid-h-${i}`))]}),children]});});GameBackground.displayName = 'GameBackground';
1
+ "use strict";import t,{useMemo as r}from"react";import{View as h,Dimensions as o}from"react-native";import{Canvas as e,LinearGradient as i,Rect as c,vec as a,Circle as l,RoundedRect as n}from"@shopify/react-native-skia";import{jsx as d,jsxs as s}from"react/jsx-runtime";const{width:g,height:x}=o.get("window"),y=["#E91E63","#F44336","#FF5722","#FF9800","#FFC107","#CDDC39","#4CAF50","#009688","#00BCD4","#2196F3","#3F51B5","#9C27B0"];export const GameBackground=t.memo(({children:t})=>{const o=r(()=>{const t=[];for(let r=0;25>r;r++){const h=x/25*r,o=g/25*r+50*Math.sin(.5*r)+100*Math.random(),e=h+60*Math.cos(.7*r)+120*Math.random(),i=20+20*Math.random(),c=r%12,a=.3+.15*Math.sin(r),s=Math.max(i/2,Math.min(g-i,o)),w=Math.max(i/2,Math.min(x-i,e));r%4==0?t.push(d(n,{x:s,y:w,width:i,height:i,r:.2*i,color:`${y[c]}${Math.floor(255*a).toString(16).padStart(2,"0")}`},"square-tile-"+r)):r%4==1?t.push(d(n,{x:s,y:w,width:.6*i,height:i,r:.15*i,color:`${y[c]}${Math.floor(255*a).toString(16).padStart(2,"0")}`},"rect-tile-"+r)):r%4==2?t.push(d(n,{x:s,y:w,width:1.2*i,height:.8*i,r:.1*i,color:`${y[c]}${Math.floor(255*a).toString(16).padStart(2,"0")}`},"wide-tile-"+r)):t.push(d(l,{cx:s+i/2,cy:w+i/2,r:i/2,color:`${y[c]}${Math.floor(255*a).toString(16).padStart(2,"0")}`},"circle-tile-"+r))}return t},[]),w=r(()=>{const t=[],r=Math.floor(g/60),h=Math.floor(x/60);for(let h=0;r>h;h++)t.push(d(c,{x:60*h,y:0,width:1,height:x,color:"rgba(255, 255, 255, 0.05)"},"grid-v-"+h));for(let r=0;h>r;r++)t.push(d(c,{x:0,y:60*r,width:g,height:1,color:"rgba(255, 255, 255, 0.05)"},"grid-h-"+r));return t},[]);return s(h,{style:{flex:1},children:[s(e,{style:{position:"absolute",top:0,left:0,right:0,bottom:0,width:g,height:x},children:[d(c,{x:0,y:0,width:g,height:x,children:d(i,{start:a(0,0),end:a(g,x),colors:[y[0]+"30",y[3]+"25",y[6]+"30",y[9]+"25",y[11]+"30"]})}),d(c,{x:0,y:0,width:g,height:x,children:d(i,{start:a(0,0),end:a(g/2,x/2),colors:[y[1]+"20","transparent",y[4]+"20","transparent",y[7]+"20","transparent"]})}),d(c,{x:0,y:0,width:g,height:x,children:d(i,{start:a(g,0),end:a(0,x),colors:[y[2]+"15","transparent",y[5]+"15","transparent",y[8]+"15","transparent"]})}),o,d(n,{x:.08*g,y:.12*x,width:50,height:50,r:8,color:y[0]+"50"}),d(n,{x:.85*g,y:.82*x,width:45,height:45,r:7,color:y[3]+"50"}),d(n,{x:.82*g,y:.18*x,width:40,height:40,r:6,color:y[6]+"50"}),d(n,{x:.12*g,y:.75*x,width:55,height:55,r:9,color:y[9]+"50"}),d(n,{x:.47*g,y:.08*x,width:35,height:35,r:5,color:y[11]+"50"}),d(n,{x:.15*g,y:.47*x,width:42,height:42,r:6,color:y[5]+"50"}),d(n,{x:.75*g,y:.57*x,width:38,height:38,r:6,color:y[8]+"50"}),d(n,{x:.57*g,y:.87*x,width:32,height:32,r:5,color:y[1]+"50"}),d(l,{cx:.25*g,cy:.25*x,r:18,color:y[4]+"45"}),d(l,{cx:.65*g,cy:.35*x,r:22,color:y[7]+"45"}),d(l,{cx:.35*g,cy:.65*x,r:16,color:y[10]+"45"}),w]}),t]})});GameBackground.displayName="GameBackground";
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Dimensions","Canvas","LinearGradient","Rect","vec","Circle","RoundedRect","jsx","_jsx","jsxs","_jsxs","width","height","get","PUZZLE_COLORS","GameBackground","memo","children","generateFloatingTiles","useMemo","elements","tileCount","i","baseX","baseY","x","Math","sin","random","y","cos","tileSize","colorIndex","length","opacity","tileX","max","min","tileY","push","r","color","floor","toString","padStart","cx","cy","style","flex","position","top","left","right","bottom","start","end","colors","Array","from","_","displayName"],"sourceRoot":"../../../../../src","sources":["games/sliding-numbers/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","View","Dimensions","Canvas","LinearGradient","Rect","vec","Circle","RoundedRect","jsx","_jsx","jsxs","_jsxs","width","height","get","PUZZLE_COLORS","GameBackground","memo","children","generateFloatingTiles","elements","tileCount","i","baseX","baseY","x","Math","sin","random","y","cos","tileSize","colorIndex","length","opacity","tileX","max","min","tileY","push","r","color","floor","toString","padStart","cx","cy","gridLines","lines","verticalCount","horizontalCount","style","flex","position","top","left","right","bottom","start","end","colors","displayName"],"sourceRoot":"../../../../../src","sources":["games/sliding-numbers/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React,{useMemo}from 'react';import{View,StyleSheet,Dimensions}from 'react-native';import Animated,{useAnimatedStyle,withSpring,useSharedValue,withSequence}from 'react-native-reanimated';import{NumbersTile}from "./NumbersTile.js";import{useTiles,useGridSize,useEmptyPosition,useSlidingNumbersStore}from "../SlidingNumbersStore.js";import{SLIDING_NUMBERS_GAME_CONFIG,SLIDING_NUMBERS_ANIMATION_CONFIG}from "../SlidingNumbersConstants.js";import{jsx as _jsx}from "react/jsx-runtime";export const NumbersGrid = React.memo(({difficulty})=>{const tiles = useTiles();const gridSize = useGridSize();const emptyPosition = useEmptyPosition();const isPlaying = useSlidingNumbersStore(state => state.isPlaying);const isCompleted = useSlidingNumbersStore(state => state.isCompleted);const moveTile = useSlidingNumbersStore(state => state.moveTile);const checkCompletion = useSlidingNumbersStore(state => state.checkCompletion);const completionScale = useSharedValue(1);const gridDimensions = useMemo(()=>{const gap = SLIDING_NUMBERS_GAME_CONFIG.TILE_GAP;const padding =(gap + 8)* 2;const{width:screenWidth}= Dimensions.get('window');const maxAvailableWidth = screenWidth - padding - 40;const availableForTiles = maxAvailableWidth - gap *(gridSize - 1);const optimalTileSize = Math.floor(availableForTiles / gridSize);const minTileSize = 45;const maxTileSize = 80;const tileSize = Math.max(minTileSize,Math.min(maxTileSize,optimalTileSize));const tilesWidth = tileSize * gridSize;const gapsWidth = gap *(gridSize - 1);const contentSize = tilesWidth + gapsWidth;const totalSize = contentSize + padding;return{width:totalSize,height:totalSize,contentWidth:contentSize,contentHeight:contentSize,tileSize,gap};},[gridSize]);const gridLayout = useMemo(()=>{const layout = [];for(let row = 0;row < gridSize;row++){layout[row] = [];for(let col = 0;col < gridSize;col++){const rowArray = layout[row];if(rowArray){rowArray[col] = null;}}}tiles.forEach(tile =>{const{row,col}= tile.position;if(row >= 0 && row < gridSize && col >= 0 && col < gridSize && layout[row]){layout[row][col] = tile;}});return layout;},[tiles,gridSize]);const handleTilePress = React.useCallback(tileId =>{if(!isPlaying || isCompleted)return;const success = moveTile(tileId);if(success){checkCompletion(difficulty);}},[isPlaying,isCompleted,moveTile,checkCompletion,difficulty]);const isTileMovable = React.useCallback(tile =>{if(!tile || tile.value === 0 || !isPlaying || isCompleted)return false;const emptyPos = emptyPosition;const rowDiff = Math.abs(tile.position.row - emptyPos.row);const colDiff = Math.abs(tile.position.col - emptyPos.col);return rowDiff === 1 && colDiff === 0 || rowDiff === 0 && colDiff === 1;},[emptyPosition,isPlaying,isCompleted]);const animatedGridStyle = useAnimatedStyle(()=>({transform:[{scale:completionScale.value}]}));React.useEffect(()=>{if(isCompleted){completionScale.value = withSequence(withSpring(1.1,SLIDING_NUMBERS_ANIMATION_CONFIG.COMPLETION_CELEBRATION),withSpring(1,SLIDING_NUMBERS_ANIMATION_CONFIG.COMPLETION_CELEBRATION));}},[isCompleted]);const gridContainerStyle = useMemo(()=> [styles.gridContainer,{width:gridDimensions.width,height:gridDimensions.height},animatedGridStyle],[gridDimensions.width,gridDimensions.height,animatedGridStyle]);const getTileSlotStyle = React.useCallback(tileSize => [styles.tileSlot,{width:tileSize,height:tileSize}],[]);return _jsx(Animated.View,{style:gridContainerStyle,children:gridLayout.map((row,rowIndex)=> _jsx(View,{style:styles.row,children:row.map((tile,colIndex)=> _jsx(View,{style:getTileSlotStyle(gridDimensions.tileSize),children:tile && tile.value !== 0 && _jsx(NumbersTile,{tile:tile,onPress:handleTilePress,isMovable:isTileMovable(tile),tileSize:gridDimensions.tileSize})},`${rowIndex}-${colIndex}`))},rowIndex))});});const styles = StyleSheet.create({gridContainer:{backgroundColor:'#FFFFFF',borderRadius:20,padding:SLIDING_NUMBERS_GAME_CONFIG.TILE_GAP + 8,shadowColor:'#000',shadowOffset:{width:0,height:4},shadowOpacity:0.1,shadowRadius:8,elevation:8,alignSelf:'center'},row:{flexDirection:'row',justifyContent:'center',alignItems:'center'},tileSlot:{justifyContent:'center',alignItems:'center',margin:SLIDING_NUMBERS_GAME_CONFIG.TILE_GAP / 2}});NumbersGrid.displayName = 'NumbersGrid';
1
+ "use strict";import t,{useMemo as e,useCallback as r,useEffect as i}from"react";import{View as o,StyleSheet as n,Dimensions as s}from"react-native";import a,{useAnimatedStyle as c,withSpring as l,useSharedValue as d,withSequence as h}from"react-native-reanimated";import{NumbersTile as m}from"./NumbersTile.js";import{useTiles as u,useGridSize as f,useEmptyPosition as g,useSlidingNumbersStore as w}from"../SlidingNumbersStore.js";import{SLIDING_NUMBERS_GAME_CONFIG as p,SLIDING_NUMBERS_ANIMATION_CONFIG as b}from"../SlidingNumbersConstants.js";import{jsx as j}from"react/jsx-runtime";export const NumbersGrid=t.memo(({difficulty:t})=>{const n=u(),S=f(),C=g(),F=w(t=>t.isPlaying),M=w(t=>t.isCompleted),N=w(t=>t.moveTile),v=w(t=>t.checkCompletion),x=d(1),G=e(()=>{const t=p.TILE_GAP,e=2*(t+8),{width:r}=s.get("window"),i=Math.max(45,Math.min(80,Math.floor((r-e-40-t*(S-1))/S))),o=i*S+t*(S-1),n=o+e;return{width:n,height:n,contentWidth:o,contentHeight:o,tileSize:i,gap:t}},[S]),z=e(()=>{const t=[];for(let e=0;S>e;e++){t[e]=[];for(let r=0;S>r;r++){const i=t[e];i&&(i[r]=null)}}return n.forEach(e=>{const{row:r,col:i}=e.position;r>=0&&S>r&&i>=0&&S>i&&t[r]&&(t[r][i]=e)}),t},[n,S]),I=r(e=>{F&&!M&&N(e)&&v(t)},[F,M,N,v,t]),O=r(t=>{if(!t||0===t.value||!F||M)return!1;const e=Math.abs(t.position.row-C.row),r=Math.abs(t.position.col-C.col);return 1===e&&0===r||0===e&&1===r},[C,F,M]),R=c(()=>({transform:[{scale:x.value}]}));i(()=>{M&&(x.value=h(l(1.1,b.COMPLETION_CELEBRATION),l(1,b.COMPLETION_CELEBRATION)))},[M,x]);const $=e(()=>[y.gridContainer,{width:G.width,height:G.height},R],[G.width,G.height,R]),k=e(()=>[y.tileSlot,{width:G.tileSize,height:G.tileSize}],[G.tileSize]);return j(a.View,{style:$,children:z.map((t,e)=>j(o,{style:y.row,children:t.map((t,r)=>j(o,{style:k,children:t&&0!==t.value&&j(m,{tile:t,onPress:I,isMovable:O(t),tileSize:G.tileSize})},`${e}-${r}`))},e))})});const y=n.create({gridContainer:{backgroundColor:"#FFFFFF",borderRadius:20,padding:p.TILE_GAP+8,shadowColor:"#000",shadowOffset:{width:0,height:4},shadowOpacity:.1,shadowRadius:8,elevation:8,alignSelf:"center"},row:{flexDirection:"row",justifyContent:"center",alignItems:"center"},tileSlot:{justifyContent:"center",alignItems:"center",margin:p.TILE_GAP/2}});NumbersGrid.displayName="NumbersGrid";
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","View","StyleSheet","Dimensions","Animated","useAnimatedStyle","withSpring","useSharedValue","withSequence","NumbersTile","useTiles","useGridSize","useEmptyPosition","useSlidingNumbersStore","SLIDING_NUMBERS_GAME_CONFIG","SLIDING_NUMBERS_ANIMATION_CONFIG","jsx","_jsx","NumbersGrid","memo","difficulty","tiles","gridSize","emptyPosition","isPlaying","state","isCompleted","moveTile","checkCompletion","completionScale","gridDimensions","gap","TILE_GAP","padding","width","screenWidth","get","maxAvailableWidth","availableForTiles","optimalTileSize","Math","floor","minTileSize","maxTileSize","tileSize","max","min","tilesWidth","gapsWidth","contentSize","totalSize","height","contentWidth","contentHeight","gridLayout","layout","row","col","rowArray","forEach","tile","position","handleTilePress","useCallback","tileId","success","isTileMovable","value","emptyPos","rowDiff","abs","colDiff","animatedGridStyle","transform","scale","useEffect","COMPLETION_CELEBRATION","gridContainerStyle","styles","gridContainer","getTileSlotStyle","tileSlot","style","children","map","rowIndex","colIndex","onPress","isMovable","create","backgroundColor","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","alignSelf","flexDirection","justifyContent","alignItems","margin","displayName"],"sourceRoot":"../../../../../src","sources":["games/sliding-numbers/components/NumbersGrid.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","useCallback","useEffect","View","StyleSheet","Dimensions","Animated","useAnimatedStyle","withSpring","useSharedValue","withSequence","NumbersTile","useTiles","useGridSize","useEmptyPosition","useSlidingNumbersStore","SLIDING_NUMBERS_GAME_CONFIG","SLIDING_NUMBERS_ANIMATION_CONFIG","jsx","_jsx","NumbersGrid","memo","difficulty","tiles","gridSize","emptyPosition","isPlaying","state","isCompleted","moveTile","checkCompletion","completionScale","gridDimensions","gap","TILE_GAP","padding","width","screenWidth","get","maxAvailableWidth","availableForTiles","optimalTileSize","Math","floor","minTileSize","maxTileSize","tileSize","max","min","tilesWidth","gapsWidth","contentSize","totalSize","height","contentWidth","contentHeight","gridLayout","layout","row","col","rowArray","forEach","tile","position","handleTilePress","tileId","success","isTileMovable","value","rowDiff","abs","colDiff","animatedGridStyle","transform","scale","COMPLETION_CELEBRATION","gridContainerStyle","styles","gridContainer","tileSlotStyle","tileSlot","style","children","map","rowIndex","colIndex","onPress","isMovable","create","backgroundColor","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","alignSelf","flexDirection","justifyContent","alignItems","margin","displayName"],"sourceRoot":"../../../../../src","sources":["games/sliding-numbers/components/NumbersGrid.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{StyleSheet,TouchableOpacity,Text}from 'react-native';import Animated,{useSharedValue,useAnimatedStyle,withSpring,runOnJS}from 'react-native-reanimated';import{SLIDING_NUMBERS_COLORS,SLIDING_NUMBERS_GAME_CONFIG,SLIDING_NUMBERS_ANIMATION_CONFIG,NUMBER_WORDS}from "../SlidingNumbersConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity);export const NumbersTile = React.memo(({tile,onPress,isMovable,tileSize})=>{const scale = useSharedValue(1);const opacity = useSharedValue(tile.value === 0 ? 0:1);const handlePress = React.useCallback(()=>{if(tile.value !== 0 && isMovable){scale.value = withSpring(0.95,SLIDING_NUMBERS_ANIMATION_CONFIG.TILE_PRESS,()=>{scale.value = withSpring(1,SLIDING_NUMBERS_ANIMATION_CONFIG.TILE_PRESS);});runOnJS(onPress)(tile.id);}},[tile.value,tile.id,isMovable,onPress,scale]);const animatedStyle = useAnimatedStyle(()=>({transform:[{scale:scale.value}],opacity:opacity.value}));if(tile.value === 0){return null;}const{tileColor,numberWord}= React.useMemo(()=>{const colorIndex =(tile.value - 1)% SLIDING_NUMBERS_COLORS.TILE_COLORS.length;const color = SLIDING_NUMBERS_COLORS.TILE_COLORS[colorIndex] || SLIDING_NUMBERS_COLORS.TILE_COLORS[0];const word = NUMBER_WORDS[tile.value] || '';return{tileColor:color,numberWord:word};},[tile.value]);const{numberFontSize,wordFontSize}= React.useMemo(()=>({numberFontSize:Math.max(16,tileSize * 0.4),wordFontSize:Math.max(8,tileSize * 0.15)}),[tileSize]);return _jsxs(AnimatedTouchableOpacity,{style:[styles.tile,{width:tileSize,height:tileSize,backgroundColor:tileColor,borderColor:tile.isCorrect ? 'transparent':'#FF4444',borderWidth:tile.isCorrect ? 0:2},animatedStyle],onPress:handlePress,activeOpacity:0.8,disabled:!isMovable || tile.value === 0,children:[_jsx(Text,{style:[styles.number,{fontSize:numberFontSize}],children:tile.value}),_jsx(Text,{style:[styles.word,{fontSize:wordFontSize}],children:numberWord})]});},(prevProps,nextProps)=>{return prevProps.tile.id === nextProps.tile.id && prevProps.tile.value === nextProps.tile.value && prevProps.tile.isCorrect === nextProps.tile.isCorrect && prevProps.tile.position.row === nextProps.tile.position.row && prevProps.tile.position.col === nextProps.tile.position.col && prevProps.isMovable === nextProps.isMovable && prevProps.tileSize === nextProps.tileSize;});const styles = StyleSheet.create({tile:{margin:SLIDING_NUMBERS_GAME_CONFIG.TILE_GAP / 2,justifyContent:'center',alignItems:'center',borderRadius:16,shadowColor:'#000',shadowOffset:{width:0,height:3},shadowOpacity:0.15,shadowRadius:6,elevation:6},number:{fontWeight:'bold',color:'#000000',textAlign:'center',marginBottom:2},word:{fontWeight:'normal',color:'#000000',textAlign:'center'}});NumbersTile.displayName = 'NumbersTile';
1
+ "use strict";import t,{useCallback as e,useMemo as r}from"react";import{StyleSheet as o,TouchableOpacity as i,Text as n}from"react-native";import s,{useSharedValue as a,useAnimatedStyle as l,withSpring as m,runOnJS as c}from"react-native-reanimated";import{SLIDING_NUMBERS_COLORS as d,SLIDING_NUMBERS_GAME_CONFIG as u,SLIDING_NUMBERS_ANIMATION_CONFIG as h,NUMBER_WORDS as b}from"../SlidingNumbersConstants.js";import{jsx as f,jsxs as g}from"react/jsx-runtime";const p=s.createAnimatedComponent(i);export const NumbersTile=t.memo(({tile:t,onPress:o,isMovable:i,tileSize:s})=>{const u=a(1),S=a(0===t.value?0:1),y=e(()=>{0!==t.value&&i&&(u.value=m(.95,h.TILE_PRESS,()=>{u.value=m(1,h.TILE_PRESS)}),c(o)(t.id))},[t.value,t.id,i,o,u]),z=l(()=>({transform:[{scale:u.value}],opacity:S.value}));if(0===t.value)return null;const{tileColor:C,numberWord:x}=r(()=>{const e=(t.value-1)%d.TILE_COLORS.length;return{tileColor:d.TILE_COLORS[e]||d.TILE_COLORS[0],numberWord:b[t.value]||""}},[t.value]),{numberFontSize:F,wordFontSize:j}=r(()=>({numberFontSize:Math.max(16,.4*s),wordFontSize:Math.max(8,.15*s)}),[s]),v=r(()=>[w.tile,{width:s,height:s,backgroundColor:C,borderColor:t.isCorrect?"transparent":"#FF4444",borderWidth:t.isCorrect?0:2},z],[s,C,t.isCorrect,z]),W=r(()=>[w.number,{fontSize:F}],[F]),N=r(()=>[w.word,{fontSize:j}],[j]);return g(p,{style:v,onPress:y,activeOpacity:.8,disabled:!i||0===t.value,children:[f(n,{style:W,children:t.value}),f(n,{style:N,children:x})]})},(t,e)=>t.tile.id===e.tile.id&&t.tile.value===e.tile.value&&t.tile.isCorrect===e.tile.isCorrect&&t.tile.position.row===e.tile.position.row&&t.tile.position.col===e.tile.position.col&&t.isMovable===e.isMovable&&t.tileSize===e.tileSize);const w=o.create({tile:{margin:u.TILE_GAP/2,justifyContent:"center",alignItems:"center",borderRadius:16,shadowColor:"#000",shadowOffset:{width:0,height:3},shadowOpacity:.15,shadowRadius:6,elevation:6},number:{fontWeight:"bold",color:"#000000",textAlign:"center",marginBottom:2},word:{fontWeight:"normal",color:"#000000",textAlign:"center"}});NumbersTile.displayName="NumbersTile";
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","TouchableOpacity","Text","Animated","useSharedValue","useAnimatedStyle","withSpring","runOnJS","SLIDING_NUMBERS_COLORS","SLIDING_NUMBERS_GAME_CONFIG","SLIDING_NUMBERS_ANIMATION_CONFIG","NUMBER_WORDS","jsx","_jsx","jsxs","_jsxs","AnimatedTouchableOpacity","createAnimatedComponent","NumbersTile","memo","tile","onPress","isMovable","tileSize","scale","opacity","value","handlePress","useCallback","TILE_PRESS","id","animatedStyle","transform","tileColor","numberWord","useMemo","colorIndex","TILE_COLORS","length","color","word","numberFontSize","wordFontSize","Math","max","style","styles","width","height","backgroundColor","borderColor","isCorrect","borderWidth","activeOpacity","disabled","children","number","fontSize","prevProps","nextProps","position","row","col","create","margin","TILE_GAP","justifyContent","alignItems","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","fontWeight","textAlign","marginBottom","displayName"],"sourceRoot":"../../../../../src","sources":["games/sliding-numbers/components/NumbersTile.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","StyleSheet","TouchableOpacity","Text","Animated","useSharedValue","useAnimatedStyle","withSpring","runOnJS","SLIDING_NUMBERS_COLORS","SLIDING_NUMBERS_GAME_CONFIG","SLIDING_NUMBERS_ANIMATION_CONFIG","NUMBER_WORDS","jsx","_jsx","jsxs","_jsxs","AnimatedTouchableOpacity","createAnimatedComponent","NumbersTile","memo","tile","onPress","isMovable","tileSize","scale","opacity","value","handlePress","TILE_PRESS","id","animatedStyle","transform","tileColor","numberWord","colorIndex","TILE_COLORS","length","color","word","numberFontSize","wordFontSize","Math","max","tileStyle","styles","width","height","backgroundColor","borderColor","isCorrect","borderWidth","numberStyle","number","fontSize","wordStyle","style","activeOpacity","disabled","children","prevProps","nextProps","position","row","col","create","margin","TILE_GAP","justifyContent","alignItems","borderRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","fontWeight","textAlign","marginBottom","displayName"],"sourceRoot":"../../../../../src","sources":["games/sliding-numbers/components/NumbersTile.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React,{useMemo}from 'react';import{View,Text,StyleSheet}from 'react-native';import{useTimeElapsed}from "../SlidingNumbersStore.js";import{SlidingNumbersService}from "../SlidingNumbersService.js";import{ScoreBoardContainer}from "../../../helpers/index.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const ScoreBoard = React.memo(({offset = 0})=>{const gameService = useMemo(()=> new SlidingNumbersService(),[]);const timeElapsed = useTimeElapsed();const formattedTime = useMemo(()=> gameService.formatTime(timeElapsed),[gameService,timeElapsed]);return _jsx(ScoreBoardContainer,{offset:offset,backgroundColor:"rgba(245,245,220,0.6)",borderColor:"rgba(255,255,255,0.3)",children:_jsx(View,{style:styles.scoreBoard,children:_jsxs(View,{style:styles.scoreSection,children:[_jsx(Text,{style:styles.scoreLabel,children:"Time Elapsed"}),_jsx(Text,{style:[styles.timeValue,{color:'#3b82f6'}],children:formattedTime})]})})});});const styles = StyleSheet.create({scoreBoard:{flexDirection:'row',justifyContent:'space-between',alignItems:'center'},scoreSection:{alignItems:'center',flex:1},scoreLabel:{fontSize:16,fontWeight:'bold',color:'#4a5568',marginBottom:4},timeValue:{fontSize:25,fontWeight:'bold'},hintText:{fontSize:18,fontWeight:'600',color:'#10b981'}});ScoreBoard.displayName = 'ScoreBoard';
1
+ "use strict";import e,{useMemo as o}from"react";import{View as r,Text as t,StyleSheet as i}from"react-native";import{useTimeLeft as n}from"../SlidingNumbersStore.js";import{ScoreBoardContainer as s}from"../../../helpers/index.js";import{jsx as c,jsxs as l}from"react/jsx-runtime";const a=e=>`${Math.floor(e/60)}:${(""+e%60).padStart(2,"0")}`;export const ScoreBoard=e.memo(({offset:e=0})=>{const i=n(),m=o(()=>a(i),[i]),d=o(()=>[f.timeValue,{color:"#3b82f6"}],[]);return c(s,{offset:e,backgroundColor:"rgba(245, 245, 220, 0.6)",borderColor:"rgba(255, 255, 255, 0.3)",children:c(r,{style:f.scoreBoard,children:l(r,{style:f.scoreSection,children:[c(t,{style:f.scoreLabel,children:"Time Left"}),c(t,{style:d,children:m})]})})})});const f=i.create({scoreBoard:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},scoreSection:{alignItems:"center",flex:1},scoreLabel:{fontSize:16,fontWeight:"bold",color:"#4a5568",marginBottom:4},timeValue:{fontSize:25,fontWeight:"bold"},hintText:{fontSize:18,fontWeight:"600",color:"#10b981"}});ScoreBoard.displayName="ScoreBoard";
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","View","Text","StyleSheet","useTimeElapsed","SlidingNumbersService","ScoreBoardContainer","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","offset","gameService","timeElapsed","formattedTime","formatTime","backgroundColor","borderColor","children","style","styles","scoreBoard","scoreSection","scoreLabel","timeValue","color","create","flexDirection","justifyContent","alignItems","flex","fontSize","fontWeight","marginBottom","hintText","displayName"],"sourceRoot":"../../../../../src","sources":["games/sliding-numbers/components/ScoreBoard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,qBAAqB,QAAQ,6BAA0B;AAChE,SAASC,mBAAmB,QAAQ,2BAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMvD,OAAO,MAAMC,UAAqC,gBAAGZ,KAAK,CAACa,IAAI,CAAC,CAAC;EAACC,MAAM,GAAG;AAAC,CAAC,KAAK;EAChF,MAAMC,WAAW,GAAGd,OAAO,CAAC,MAAM,IAAIK,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC;EAClE,MAAMU,WAAW,GAAGX,cAAc,CAAC,CAAC;EAEpC,MAAMY,aAAa,GAAGhB,OAAO,CAAC,MAAMc,WAAW,CAACG,UAAU,CAACF,WAAW,CAAC,EAAE,CAACD,WAAW,EAAEC,WAAW,CAAC,CAAC;EAEpG,oBACEP,IAAA,CAACF,mBAAmB;IAClBO,MAAM,EAAEA,MAAO;IACfK,eAAe,EAAC,0BAA0B;IAC1CC,WAAW,EAAC,0BAA0B;IAAAC,QAAA,eAEtCZ,IAAA,CAACP,IAAI;MAACoB,KAAK,EAAEC,MAAM,CAACC,UAAW;MAAAH,QAAA,eAC/BV,KAAA,CAACT,IAAI;QAACoB,KAAK,EAAEC,MAAM,CAACE,YAAa;QAAAJ,QAAA,gBAC/BZ,IAAA,CAACN,IAAI;UAACmB,KAAK,EAAEC,MAAM,CAACG,UAAW;UAAAL,QAAA,EAAC;QAAY,CAAM,CAAC,eACnDZ,IAAA,CAACN,IAAI;UAACmB,KAAK,EAAE,CAACC,MAAM,CAACI,SAAS,EAAE;YAAEC,KAAK,EAAE;UAAU,CAAC,CAAE;UAAAP,QAAA,EACnDJ;QAAa,CACV,CAAC;MAAA,CACH;IAAC,CACH;EAAC,CACc,CAAC;AAE1B,CAAC,CAAC;AAEF,MAAMM,MAAM,GAAGnB,UAAU,CAACyB,MAAM,CAAC;EAC/BL,UAAU,EAAE;IACVM,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE;EACd,CAAC;EACDP,YAAY,EAAE;IACZO,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE;EACR,CAAC;EACDP,UAAU,EAAE;IACVQ,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBP,KAAK,EAAE,SAAS;IAAE;IAClBQ,YAAY,EAAE;EAChB,CAAC;EACDT,SAAS,EAAE;IACTO,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDE,QAAQ,EAAE;IACRH,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBP,KAAK,EAAE,SAAS,CAAE;EACpB;AACF,CAAC,CAAC;AAEFhB,UAAU,CAAC0B,WAAW,GAAG,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","View","Text","StyleSheet","useTimeLeft","ScoreBoardContainer","jsx","_jsx","jsxs","_jsxs","formatTime","seconds","minutes","Math","floor","remainingSeconds","toString","padStart","ScoreBoard","memo","offset","timeLeft","formattedTime","timeValueStyle","styles","timeValue","color","backgroundColor","borderColor","children","style","scoreBoard","scoreSection","scoreLabel","create","flexDirection","justifyContent","alignItems","flex","fontSize","fontWeight","marginBottom","hintText","displayName"],"sourceRoot":"../../../../../src","sources":["games/sliding-numbers/components/ScoreBoard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SAASC,WAAW,QAAQ,2BAAwB;AACpD,SAASC,mBAAmB,QAAQ,2BAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMvD;AACA,MAAMC,UAAU,GAAIC,OAAe,IAAa;EAC9C,MAAMC,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,GAAG,EAAE,CAAC;EACxC,MAAMI,gBAAgB,GAAGJ,OAAO,GAAG,EAAE;EACrC,OAAO,GAAGC,OAAO,IAAIG,gBAAgB,CAACC,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACrE,CAAC;AAED,OAAO,MAAMC,UAAqC,gBAAGnB,KAAK,CAACoB,IAAI,CAAC,CAAC;EAACC,MAAM,GAAG;AAAC,CAAC,KAAK;EAChF,MAAMC,QAAQ,GAAGjB,WAAW,CAAC,CAAC;;EAE9B;EACA,MAAMkB,aAAa,GAAGtB,OAAO,CAAC,MAAMU,UAAU,CAACW,QAAQ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;;EAErE;EACA,MAAME,cAAc,GAAGvB,OAAO,CAAC,MAAM,CAACwB,MAAM,CAACC,SAAS,EAAE;IAAEC,KAAK,EAAE;EAAU,CAAC,CAAC,EAAE,EAAE,CAAC;EAElF,oBACEnB,IAAA,CAACF,mBAAmB;IAClBe,MAAM,EAAEA,MAAO;IACfO,eAAe,EAAC,0BAA0B;IAC1CC,WAAW,EAAC,0BAA0B;IAAAC,QAAA,eAEtCtB,IAAA,CAACN,IAAI;MAAC6B,KAAK,EAAEN,MAAM,CAACO,UAAW;MAAAF,QAAA,eAC/BpB,KAAA,CAACR,IAAI;QAAC6B,KAAK,EAAEN,MAAM,CAACQ,YAAa;QAAAH,QAAA,gBAC/BtB,IAAA,CAACL,IAAI;UAAC4B,KAAK,EAAEN,MAAM,CAACS,UAAW;UAAAJ,QAAA,EAAC;QAAS,CAAM,CAAC,eAChDtB,IAAA,CAACL,IAAI;UAAC4B,KAAK,EAAEP,cAAe;UAAAM,QAAA,EACzBP;QAAa,CACV,CAAC;MAAA,CACH;IAAC,CACH;EAAC,CACc,CAAC;AAE1B,CAAC,CAAC;AAEF,MAAME,MAAM,GAAGrB,UAAU,CAAC+B,MAAM,CAAC;EAC/BH,UAAU,EAAE;IACVI,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE;EACd,CAAC;EACDL,YAAY,EAAE;IACZK,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE;EACR,CAAC;EACDL,UAAU,EAAE;IACVM,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBd,KAAK,EAAE,SAAS;IAAE;IAClBe,YAAY,EAAE;EAChB,CAAC;EACDhB,SAAS,EAAE;IACTc,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDE,QAAQ,EAAE;IACRH,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBd,KAAK,EAAE,SAAS,CAAE;EACpB;AACF,CAAC,CAAC;AAEFR,UAAU,CAACyB,WAAW,GAAG,YAAY","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";export{NumbersTile}from "./NumbersTile.js";export{NumbersGrid}from "./NumbersGrid.js";export{ScoreBoard}from "./ScoreBoard.js";export{GameBackground}from "./GameBackground.js";
1
+ "use strict";export{NumbersTile}from"./NumbersTile.js";export{NumbersGrid}from"./NumbersGrid.js";export{ScoreBoard}from"./ScoreBoard.js";export{GameBackground}from"./GameBackground.js";
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{View,StyleSheet}from 'react-native';import{GestureHandlerRootView,Gesture,GestureDetector}from 'react-native-gesture-handler';import{runOnJS}from 'react-native-reanimated';import{GameControlButton,GameOverModal,GameSettingsModal}from "../../helpers/index.js";import{DEFAULT_GAME_SETTINGS,GAME_IDS}from "../../services/UtilsService.js";import{GameBackground,GameGrid,ScoreBoard}from "./components/index.js";import{useSnakeStore,useScore,useIsPlaying,useIsGameOver}from "./SnakeStore.js";import{SNAKE_COLORS}from "./SnakeConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const Snake = React.memo(({settings,onSettingsChange,onEndGame})=>{const score = useScore();const isPlaying = useIsPlaying();const isGameOver = useIsGameOver();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 = useSnakeStore(state => state.startGame);const stopGame = useSnakeStore(state => state.stopGame);const resetGame = useSnakeStore(state => state.resetGame);const initializeGame = useSnakeStore(state => state.initializeGame);const updateSettings = useSnakeStore(state => state.updateSettings);const changeDirection = useSnakeStore(state => state.changeDirection);const prevSettingsRef = React.useRef({enableSounds:true,enableHaptics:true});const prevDifficultyRef = React.useRef('easy');React.useEffect(()=>{const enableSounds = settings?.enableSounds ?? true;const enableHaptics = settings?.enableHaptics ?? true;if(prevSettingsRef.current.enableSounds !== enableSounds || prevSettingsRef.current.enableHaptics !== enableHaptics){prevSettingsRef.current ={enableSounds,enableHaptics};updateSettings(enableSounds,enableHaptics);}},[updateSettings,settings?.enableSounds,settings?.enableHaptics]);React.useEffect(()=>{const difficulty = settings?.difficulty || 'easy';if(prevDifficultyRef.current !== difficulty){prevDifficultyRef.current = difficulty;initializeGame(difficulty);}},[initializeGame,settings?.difficulty]);React.useEffect(()=>{if(isGameOver && !gameReportedRef.current){reportGameEnd('lose');}if(!isGameOver){gameReportedRef.current = false;}},[isGameOver,reportGameEnd]);const handleStartGame = React.useCallback(()=>{gameReportedRef.current = false;startGame();},[startGame]);const handleResetGame = React.useCallback(()=>{resetGame();},[resetGame]);const handleStopGame = React.useCallback(()=>{reportGameEnd('cancel');stopGame();},[stopGame,reportGameEnd]);const handleSwipe = React.useCallback(direction =>{try{if(!isPlaying)return;requestAnimationFrame(()=>{try{changeDirection(direction);}catch(error){console.error('Direction change error:',error);}});}catch(error){console.error('Swipe handler error:',error);}},[isPlaying,changeDirection]);const panGesture = React.useMemo(()=> Gesture.Pan().onEnd(event =>{const threshold = 30;const absX = Math.abs(event.translationX);const absY = Math.abs(event.translationY);if(absX > threshold || absY > threshold){if(absX > absY){if(event.translationX > 0){runOnJS(handleSwipe)('RIGHT');}else{runOnJS(handleSwipe)('LEFT');}}else{if(event.translationY > 0){runOnJS(handleSwipe)('DOWN');}else{runOnJS(handleSwipe)('UP');}}}}),[handleSwipe]);const gameControlButtonProps = React.useMemo(()=>({isPlaying,gameOver:isGameOver,onStartGame:handleStartGame,onStopGame:handleStopGame,onResetGame:handleResetGame,startButtonText:'Start Slithering!',startButtonSubtext:'Swipe to move or turn.',startButtonColor:SNAKE_COLORS.BUTTON_PRIMARY,startButtonBorderColor:SNAKE_COLORS.BUTTON_SECONDARY}),[isPlaying,isGameOver,handleStartGame,handleStopGame,handleResetGame]);const gameOverModalProps = React.useMemo(()=>({isVisible:isGameOver,score,onPlayAgain:handleResetGame,buttonText:'Play Again!',primaryColor:"rgba(0,204,106,0.5)",borderColor:"rgba(0,204,106,0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:"#00cc6a",scoreFormatter:s => `${s}`}),[isGameOver,score,handleResetGame]);const gameSettingsModalProps = React.useMemo(()=>({gameId:GAME_IDS.SNAKE,settings:settings || DEFAULT_GAME_SETTINGS,onSettingsChange}),[settings,onSettingsChange]);const offset = settings?.offset ?? 0;return _jsx(GameBackground,{children:_jsxs(GestureHandlerRootView,{style:styles.container,children:[_jsx(GestureDetector,{gesture:panGesture,children:_jsx(View,{style:styles.container,children:_jsx(View,{style:[styles.gridContainer,{paddingTop:offset}],children:_jsx(GameGrid,{})})})}),_jsx(ScoreBoard,{offset:offset}),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{...gameSettingsModalProps})]})});});Snake.displayName = 'Snake';const styles = StyleSheet.create({container:{flex:1},gridContainer:{flex:1,justifyContent:'center',alignItems:'center'}});
1
+ "use strict";import e from"react";import{View as t,StyleSheet as r}from"react-native";import{GestureHandlerRootView as o,Gesture as n,GestureDetector as a}from"react-native-gesture-handler";import{runOnJS as s}from"react-native-reanimated";import{GameControlButton as i,GameOverModal as c,GameSettingsModal as m}from"../../helpers/index.js";import{DEFAULT_GAME_SETTINGS as l,GAME_IDS as f}from"../../services/UtilsService.js";import{GameBackground as d,GameGrid as p,ScoreBoard as g}from"./components/index.js";import{useScore as u,useGameActions as S,useGameState as h}from"./SnakeStore.js";import{SNAKE_COLORS as b}from"./SnakeConstants.js";import{jsx as y,jsxs as C}from"react/jsx-runtime";export const Snake=e.memo(({settings:r,onSettingsChange:j,onEndGame:G,onShare:v,onShowLeaderboard:k})=>{const P=u(),{isPlaying:T,isGameOver:w}=h(),{startGame:A,stopGame:B,resetGame:F,initializeGame:H,updateSettings:I,changeDirection:L}=S(),O=e.useRef(!1),D=e.useCallback(e=>{G&&!O.current&&(G({status:e,score:P.toString()}),O.current=!0)},[G,P]),E=e.useRef({enableSounds:!0,enableHaptics:!0}),M=e.useRef("easy");e.useEffect(()=>{const e=r?.enableSounds??!0,t=r?.enableHaptics??!0;E.current.enableSounds===e&&E.current.enableHaptics===t||(E.current={enableSounds:e,enableHaptics:t},I(e,t))},[I,r?.enableSounds,r?.enableHaptics]),e.useEffect(()=>{const e=r?.difficulty||"easy";M.current!==e&&(M.current=e,H(e))},[H,r?.difficulty]),e.useEffect(()=>{w&&!O.current&&D("lose"),w||(O.current=!1)},[w,D]);const U=e.useCallback(()=>{O.current=!1,A()},[A]),q=e.useCallback(()=>{F()},[F]),z=e.useCallback(()=>{D("cancel"),B()},[B,D]),N=e.useCallback(e=>{try{if(!T)return;requestAnimationFrame(()=>{try{L(e)}catch(e){}})}catch(e){}},[T,L]),R=e.useMemo(()=>n.Pan().onEnd(e=>{const t=Math.abs(e.translationX),r=Math.abs(e.translationY);(t>30||r>30)&&(t>r?e.translationX>0?s(N)("RIGHT"):s(N)("LEFT"):e.translationY>0?s(N)("DOWN"):s(N)("UP"))}),[N]),V=e.useMemo(()=>({isPlaying:T,gameOver:w,onStartGame:U,onStopGame:z,onShare:v,onShowLeaderboard:k,startButtonSubtext:"Swipe to move or turn.",buttonColor:b.BUTTON_PRIMARY,buttonBorderColor:b.BUTTON_SECONDARY}),[T,w,U,z,v,k]),W=e.useMemo(()=>({isVisible:w,score:P,onPlayAgain:q,buttonText:"Play Again!",primaryColor:"rgba(0, 204, 106, 0.5)",borderColor:"rgba(0, 204, 106, 0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:"#00cc6a",scoreFormatter:e=>""+e}),[w,P,q]),J=e.useMemo(()=>({gameId:f.SNAKE,settings:r||l,onSettingsChange:j}),[r,j]),K=r?.offset??0;return y(d,{children:C(o,{style:x.container,children:[y(a,{gesture:R,children:y(t,{style:x.container,children:y(t,{style:[x.gridContainer,{paddingTop:K}],children:y(p,{})})})}),y(g,{offset:K}),y(i,{...V}),y(c,{...W}),y(m,{...J})]})})});Snake.displayName="Snake";const x=r.create({container:{flex:1},gridContainer:{flex:1,justifyContent:"center",alignItems:"center"}});
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","GestureHandlerRootView","Gesture","GestureDetector","runOnJS","GameControlButton","GameOverModal","GameSettingsModal","DEFAULT_GAME_SETTINGS","GAME_IDS","GameBackground","GameGrid","ScoreBoard","useSnakeStore","useScore","useIsPlaying","useIsGameOver","SNAKE_COLORS","jsx","_jsx","jsxs","_jsxs","Snake","memo","settings","onSettingsChange","onEndGame","score","isPlaying","isGameOver","gameReportedRef","useRef","reportGameEnd","useCallback","status","current","toString","startGame","state","stopGame","resetGame","initializeGame","updateSettings","changeDirection","prevSettingsRef","enableSounds","enableHaptics","prevDifficultyRef","useEffect","difficulty","handleStartGame","handleResetGame","handleStopGame","handleSwipe","direction","requestAnimationFrame","error","console","panGesture","useMemo","Pan","onEnd","event","threshold","absX","Math","abs","translationX","absY","translationY","gameControlButtonProps","gameOver","onStartGame","onStopGame","onResetGame","startButtonText","startButtonSubtext","startButtonColor","BUTTON_PRIMARY","startButtonBorderColor","BUTTON_SECONDARY","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","buttonTextColor","scoreFormatter","s","gameSettingsModalProps","gameId","SNAKE","offset","children","style","styles","container","gesture","gridContainer","paddingTop","displayName","create","flex","justifyContent","alignItems"],"sourceRoot":"../../../../src","sources":["games/snake/Snake.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","StyleSheet","GestureHandlerRootView","Gesture","GestureDetector","runOnJS","GameControlButton","GameOverModal","GameSettingsModal","DEFAULT_GAME_SETTINGS","GAME_IDS","GameBackground","GameGrid","ScoreBoard","useScore","useGameActions","useGameState","SNAKE_COLORS","jsx","_jsx","jsxs","_jsxs","Snake","memo","settings","onSettingsChange","onEndGame","onShare","onShowLeaderboard","score","isPlaying","isGameOver","startGame","stopGame","resetGame","initializeGame","updateSettings","changeDirection","gameReportedRef","useRef","reportGameEnd","useCallback","status","current","toString","prevSettingsRef","enableSounds","enableHaptics","prevDifficultyRef","useEffect","difficulty","handleStartGame","handleResetGame","handleStopGame","handleSwipe","direction","requestAnimationFrame","error","console","panGesture","useMemo","Pan","onEnd","event","threshold","absX","Math","abs","translationX","absY","translationY","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonSubtext","buttonColor","BUTTON_PRIMARY","buttonBorderColor","BUTTON_SECONDARY","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonTextColor","scoreFormatter","s","gameSettingsModalProps","gameId","SNAKE","offset","children","style","styles","container","gesture","gridContainer","paddingTop","displayName","create","flex","justifyContent","alignItems"],"sourceRoot":"../../../../src","sources":["games/snake/Snake.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import{Dimensions}from 'react-native';const{width}= Dimensions.get('window');export const SNAKE_GAME_CONFIG ={GRID_SIZE:20,CELL_SIZE:Math.floor((width - 40)/ 20),GAME_SPEED:{easy:400,medium:300,hard:200},POINTS_PER_FOOD:10,POINTS_PER_SPECIAL_FOOD:25,DIFFICULTY_MULTIPLIER:{easy:1,medium:2,hard:3},SPECIAL_FOOD_CHANCE:0.15,SPECIAL_FOOD_DURATION:5000,INITIAL_SNAKE_LENGTH:3};export const SNAKE_COLORS ={BACKGROUND:'#252541',GRID_LINE:'rgba(255,255,255,0.15)',SNAKE_HEAD:'#00ff88',SNAKE_BODY:'#00cc6a',SNAKE_TAIL:'#00994d',SNAKE_OUTLINE:'#004d26',FOOD_NORMAL:'#ff4757',FOOD_SPECIAL:'#ffa502',FOOD_GLOW:'rgba(255,71,87,0.5)',SCORE_TEXT:'#ffffff',SCORE_BACKGROUND:'rgba(0,255,136,0.2)',BUTTON_PRIMARY:'#00cc6a',BUTTON_SECONDARY:'#00994d',MODAL_PRIMARY:'rgba(0,255,136,0.95)',MODAL_BORDER:'rgba(0,204,106,0.9)',MODAL_BUTTON:'#00ff88',MODAL_BUTTON_BORDER:'#00cc6a',COLLISION_COLOR:'#ff4757'};export const DIRECTIONS ={UP:{x:0,y:-1},DOWN:{x:0,y:1},LEFT:{x:-1,y:0},RIGHT:{x:1,y:0}};export const SNAKE_THEME ={backgroundColor:'rgba(0,0,0,0.7)',headerBackgroundColor:'#00cc6a',headerTextColor:'#ffffff',sectionBackgroundColor:'rgba(0,204,106,0.15)',sectionTitleColor:'#00cc6a',buttonSelectedColor:'#00cc6a',buttonUnselectedColor:'rgba(255,255,255,0.2)',buttonSelectedTextColor:'#ffffff',buttonUnselectedTextColor:'rgba(255,255,255,0.7)',switchTrackColorFalse:'rgba(0,204,106,0.3)',switchTrackColorTrue:'#00cc6a',switchThumbColor:'#ffffff',infoTextColor:'rgba(255,255,255,0.9)'};export const SNAKE_DIFFICULTY_DESCRIPTIONS ={easy:'Slow speed 1x points Perfect for beginners',medium:'Medium speed 2x points Balanced challenge',hard:'Fast speed 3x points Expert level'};export const SNAKE_SOUNDS ={EAT:{text:'Nom!',pitch:1.2,rate:1.5},SPECIAL:{text:'Bonus!',pitch:1.5,rate:2.0},COLLISION:{text:'Ouch!',pitch:0.8,rate:1.2},WIN:{text:'Victory!',pitch:1.6,rate:1.8},LOSE:{text:'Game Over',pitch:0.8,rate:1.2}};
1
+ "use strict";import{Dimensions as e}from"react-native";const{width:t}=e.get("window");export const SNAKE_GAME_CONFIG={GRID_SIZE:20,CELL_SIZE:Math.floor((t-40)/20),GAME_SPEED:{easy:400,medium:300,hard:200},POINTS_PER_FOOD:10,POINTS_PER_SPECIAL_FOOD:25,DIFFICULTY_MULTIPLIER:{easy:1,medium:2,hard:3},SPECIAL_FOOD_CHANCE:.15,SPECIAL_FOOD_DURATION:5e3,INITIAL_SNAKE_LENGTH:3};export const SNAKE_COLORS={BACKGROUND:"#252541",GRID_LINE:"rgba(255, 255, 255, 0.15)",SNAKE_HEAD:"#00ff88",SNAKE_BODY:"#00cc6a",SNAKE_TAIL:"#00994d",SNAKE_OUTLINE:"#004d26",FOOD_NORMAL:"#ff4757",FOOD_SPECIAL:"#ffa502",FOOD_GLOW:"rgba(255, 71, 87, 0.5)",SCORE_TEXT:"#ffffff",SCORE_BACKGROUND:"rgba(0, 255, 136, 0.2)",BUTTON_PRIMARY:"#00cc6a",BUTTON_SECONDARY:"#00994d",MODAL_PRIMARY:"rgba(0, 255, 136, 0.95)",MODAL_BORDER:"rgba(0, 204, 106, 0.9)",MODAL_BUTTON:"#00ff88",MODAL_BUTTON_BORDER:"#00cc6a",COLLISION_COLOR:"#ff4757"};export const DIRECTIONS={UP:{x:0,y:-1},DOWN:{x:0,y:1},LEFT:{x:-1,y:0},RIGHT:{x:1,y:0}};export const SNAKE_THEME={backgroundColor:"rgba(0, 0, 0, 0.7)",headerBackgroundColor:"#00cc6a",headerTextColor:"#ffffff",sectionBackgroundColor:"rgba(0, 204, 106, 0.15)",sectionTitleColor:"#00cc6a",buttonSelectedColor:"#00cc6a",buttonUnselectedColor:"rgba(255, 255, 255, 0.2)",buttonSelectedTextColor:"#ffffff",buttonUnselectedTextColor:"rgba(255, 255, 255, 0.7)",switchTrackColorFalse:"rgba(0, 204, 106, 0.3)",switchTrackColorTrue:"#00cc6a",switchThumbColor:"#ffffff",infoTextColor:"rgba(255, 255, 255, 0.9)"};export const SNAKE_DIFFICULTY_DESCRIPTIONS={easy:"Slow speed \u2022 1x points \u2022 Perfect for beginners",medium:"Medium speed \u2022 2x points \u2022 Balanced challenge",hard:"Fast speed \u2022 3x points \u2022 Expert level"};export const SNAKE_SOUNDS={EAT:{text:"Nom!",pitch:1.2,rate:1.5},SPECIAL:{text:"Bonus!",pitch:1.5,rate:2},COLLISION:{text:"Ouch!",pitch:.8,rate:1.2},WIN:{text:"Victory!",pitch:1.6,rate:1.8},LOSE:{text:"Game Over",pitch:.8,rate:1.2}};
@@ -1 +1 @@
1
- "use strict";import{SNAKE_GAME_CONFIG,DIRECTIONS}from "./SnakeConstants.js";export class SnakeService{nextId = 1;initializeSnake(){const centerX = Math.floor(SNAKE_GAME_CONFIG.GRID_SIZE / 2);const centerY = Math.floor(SNAKE_GAME_CONFIG.GRID_SIZE / 2);const snake = [];for(let i = 0;i < SNAKE_GAME_CONFIG.INITIAL_SNAKE_LENGTH;i++){snake.push({id:this.nextId++,x:centerX - i,y:centerY});}return snake;}generateFood(snake,isSpecial = false){let position;let attempts = 0;const maxAttempts = 100;do{position ={x:Math.floor(Math.random()* SNAKE_GAME_CONFIG.GRID_SIZE),y:Math.floor(Math.random()* SNAKE_GAME_CONFIG.GRID_SIZE)};attempts++;}while(attempts < maxAttempts && this.isPositionOnSnake(position,snake));const food ={id:this.nextId++,x:position.x,y:position.y,isSpecial};if(isSpecial){food.expiresAt = Date.now()+ SNAKE_GAME_CONFIG.SPECIAL_FOOD_DURATION;}return food;}isPositionOnSnake(position,snake){return snake.some(segment => segment.x === position.x && segment.y === position.y);}moveSnake(snake,direction){const head = snake[0];if(!head)return snake;const directionVector = DIRECTIONS[direction];const newHead ={id:this.nextId++,x:head.x + directionVector.x,y:head.y + directionVector.y};const newSnake = [newHead,...snake];newSnake.pop();return newSnake;}checkWallCollision(head){return head.x < 0 || head.x >= SNAKE_GAME_CONFIG.GRID_SIZE || head.y < 0 || head.y >= SNAKE_GAME_CONFIG.GRID_SIZE;}checkSelfCollision(snake){const head = snake[0];if(!head)return false;for(let i = 1;i < snake.length;i++){const segment = snake[i];if(segment && head.x === segment.x && head.y === segment.y){return true;}}return false;}checkFoodCollision(head,food){return head.x === food.x && head.y === food.y;}growSnake(snake){const tail = snake[snake.length - 1];if(!tail)return snake;const newSegment ={id:this.nextId++,x:tail.x,y:tail.y};return [...snake,newSegment];}isValidDirectionChange(currentDirection,newDirection){const opposites ={UP:'DOWN',DOWN:'UP',LEFT:'RIGHT',RIGHT:'LEFT'};return opposites[currentDirection] !== newDirection;}getOppositeDirection(direction){const opposites ={UP:'DOWN',DOWN:'UP',LEFT:'RIGHT',RIGHT:'LEFT'};return opposites[direction];}resetIdCounter(){this.nextId = 1;}isSpecialFoodExpired(food){if(!food.isSpecial || !food.expiresAt)return false;return Date.now()> food.expiresAt;}calculateScore(isSpecialFood,difficulty){const baseScore = isSpecialFood ? SNAKE_GAME_CONFIG.POINTS_PER_SPECIAL_FOOD:SNAKE_GAME_CONFIG.POINTS_PER_FOOD;const difficultyMultiplier = SNAKE_GAME_CONFIG.DIFFICULTY_MULTIPLIER[difficulty];return baseScore * difficultyMultiplier;}}
1
+ "use strict";import{SNAKE_GAME_CONFIG as t,DIRECTIONS as e}from"./SnakeConstants.js";export class SnakeService{nextId=1;initializeSnake(){const e=Math.floor(t.GRID_SIZE/2),r=Math.floor(t.GRID_SIZE/2),n=[];for(let i=0;i<t.INITIAL_SNAKE_LENGTH;i++)n.push({id:this.nextId++,x:e-i,y:r});return n}generateFood(e,r=!1){let n,i=0;do{n={x:Math.floor(Math.random()*t.GRID_SIZE),y:Math.floor(Math.random()*t.GRID_SIZE)},i++}while(100>i&&this.isPositionOnSnake(n,e));const o={id:this.nextId++,x:n.x,y:n.y,isSpecial:r};return r&&(o.expiresAt=Date.now()+t.SPECIAL_FOOD_DURATION),o}isPositionOnSnake(t,e){return e.some(e=>e.x===t.x&&e.y===t.y)}moveSnake(t,r){const n=t[0];if(!n)return t;const i=e[r],o=[{id:this.nextId++,x:n.x+i.x,y:n.y+i.y},...t];return o.pop(),o}checkWallCollision(e){return 0>e.x||e.x>=t.GRID_SIZE||0>e.y||e.y>=t.GRID_SIZE}checkSelfCollision(t){const e=t[0];if(!e)return!1;for(let r=1;r<t.length;r++){const n=t[r];if(n&&e.x===n.x&&e.y===n.y)return!0}return!1}checkFoodCollision(t,e){return t.x===e.x&&t.y===e.y}growSnake(t){const e=t[t.length-1];if(!e)return t;const r={id:this.nextId++,x:e.x,y:e.y};return[...t,r]}isValidDirectionChange(t,e){return{UP:"DOWN",DOWN:"UP",LEFT:"RIGHT",RIGHT:"LEFT"}[t]!==e}getOppositeDirection(t){return{UP:"DOWN",DOWN:"UP",LEFT:"RIGHT",RIGHT:"LEFT"}[t]}resetIdCounter(){this.nextId=1}isSpecialFoodExpired(t){return!(!t.isSpecial||!t.expiresAt)&&Date.now()>t.expiresAt}calculateScore(e,r){return(e?t.POINTS_PER_SPECIAL_FOOD:t.POINTS_PER_FOOD)*t.DIFFICULTY_MULTIPLIER[r]}}
@@ -1 +1 @@
1
- "use strict";import{create}from 'zustand';import{subscribeWithSelector}from 'zustand/middleware';import{immerMiddleware}from "../../services/UtilsService.js";import{SnakeService}from "./SnakeService.js";import{SNAKE_GAME_CONFIG,SNAKE_SOUNDS}from "./SnakeConstants.js";import{playSound}from "../../services/SoundsService.js";import{playHaptic,HapticType}from "../../services/HapticsService.js";const gameService = new SnakeService();export const useSnakeStore = create()(subscribeWithSelector(immerMiddleware((set,get)=>({snake:gameService.initializeSnake(),food:null,direction:'RIGHT',nextDirection:'RIGHT',score:0,timeLeft:300,isPlaying:false,isGameOver:false,isPaused:false,difficulty:'easy',enableSounds:true,enableHaptics:true,moveTimer:null,countdownTimer:null,startGame:()=>{const state = get();if(state.moveTimer)clearInterval(state.moveTimer);if(state.countdownTimer)clearInterval(state.countdownTimer);const initialFood = gameService.generateFood(state.snake,false);const gameSpeed = SNAKE_GAME_CONFIG.GAME_SPEED[state.difficulty];const moveTimer = setInterval(()=>{const currentState = get();if(currentState.isPlaying && !currentState.isPaused){currentState.gameLoop();}},gameSpeed);const countdownTimer = setInterval(()=>{const currentState = get();if(currentState.isPlaying && !currentState.isPaused){currentState.decrementTime();}},1000);set(state =>{state.isPlaying = true;state.isPaused = false;state.food = initialFood;state.moveTimer = moveTimer;state.countdownTimer = countdownTimer;});},stopGame:()=>{const state = get();if(state.moveTimer)clearInterval(state.moveTimer);if(state.countdownTimer)clearInterval(state.countdownTimer);playSound(SNAKE_SOUNDS.LOSE,state.enableSounds);playHaptic(HapticType.MEDIUM,state.enableHaptics);state.initializeGame(state.difficulty);},pauseGame:()=>{set(state =>{state.isPaused = true;});},resumeGame:()=>{set(state =>{state.isPaused = false;});},resetGame:()=>{const state = get();state.initializeGame(state.difficulty);},initializeGame:(difficulty = 'easy')=>{const state = get();if(state.moveTimer)clearInterval(state.moveTimer);if(state.countdownTimer)clearInterval(state.countdownTimer);gameService.resetIdCounter();const newSnake = gameService.initializeSnake();const timeLimit = difficulty === 'easy' ? 300:600;set(state =>{state.snake = newSnake;state.food = null;state.direction = 'RIGHT';state.nextDirection = 'RIGHT';state.score = 0;state.timeLeft = timeLimit;state.isPlaying = false;state.isGameOver = false;state.isPaused = false;state.difficulty = difficulty;state.moveTimer = null;state.countdownTimer = null;});},changeDirection:newDirection =>{const state = get();if(!state.isPlaying || state.isPaused)return;if(gameService.isValidDirectionChange(state.direction,newDirection)){set(state =>{state.nextDirection = newDirection;});}},gameLoop:()=>{const state = get();if(!state.isPlaying || state.isPaused || state.isGameOver)return;set(draft =>{draft.direction = draft.nextDirection;const newSnake = gameService.moveSnake(draft.snake,draft.direction);const head = newSnake[0];if(!head)return;if(gameService.checkWallCollision(head)){draft.isGameOver = true;draft.isPlaying = false;if(draft.moveTimer){clearInterval(draft.moveTimer);draft.moveTimer = null;}if(draft.countdownTimer){clearInterval(draft.countdownTimer);draft.countdownTimer = null;}playSound(SNAKE_SOUNDS.COLLISION,draft.enableSounds);playHaptic(HapticType.HEAVY,draft.enableHaptics);return;}if(gameService.checkSelfCollision(newSnake)){draft.isGameOver = true;draft.isPlaying = false;if(draft.moveTimer){clearInterval(draft.moveTimer);draft.moveTimer = null;}if(draft.countdownTimer){clearInterval(draft.countdownTimer);draft.countdownTimer = null;}playSound(SNAKE_SOUNDS.COLLISION,draft.enableSounds);playHaptic(HapticType.HEAVY,draft.enableHaptics);return;}if(draft.food && gameService.checkFoodCollision(head,draft.food)){const grownSnake = gameService.growSnake(newSnake);draft.snake = grownSnake;const points = gameService.calculateScore(draft.food.isSpecial,draft.difficulty);draft.score += points;const sound = draft.food.isSpecial ? SNAKE_SOUNDS.SPECIAL:SNAKE_SOUNDS.EAT;playSound(sound,draft.enableSounds);playHaptic(draft.food.isSpecial ? HapticType.HEAVY:HapticType.MEDIUM,draft.enableHaptics);const isSpecial = Math.random()< SNAKE_GAME_CONFIG.SPECIAL_FOOD_CHANCE;draft.food = gameService.generateFood(grownSnake,isSpecial);}else{draft.snake = newSnake;}if(draft.food && gameService.isSpecialFoodExpired(draft.food)){draft.food = gameService.generateFood(draft.snake,false);}});},updateSettings:(enableSounds,enableHaptics)=>{set(state =>{state.enableSounds = enableSounds;state.enableHaptics = enableHaptics;});},decrementTime:()=>{set(state =>{if(state.timeLeft > 0){state.timeLeft--;}else{state.isGameOver = true;state.isPlaying = false;if(state.moveTimer){clearInterval(state.moveTimer);state.moveTimer = null;}if(state.countdownTimer){clearInterval(state.countdownTimer);state.countdownTimer = null;}}});}}))));export const useSnake =()=> useSnakeStore(state => state.snake);export const useFood =()=> useSnakeStore(state => state.food);export const useScore =()=> useSnakeStore(state => state.score);export const useTimeLeft =()=> useSnakeStore(state => state.timeLeft);export const useIsPlaying =()=> useSnakeStore(state => state.isPlaying);export const useIsGameOver =()=> useSnakeStore(state => state.isGameOver);export const useIsPaused =()=> useSnakeStore(state => state.isPaused);
1
+ "use strict";import{create as e}from"zustand";import{subscribeWithSelector as t}from"zustand/middleware";import{useShallow as s}from"zustand/react/shallow";import{immerMiddleware as n}from"../../services/UtilsService.js";import{SnakeService as r}from"./SnakeService.js";import{SNAKE_GAME_CONFIG as a,SNAKE_SOUNDS as o}from"./SnakeConstants.js";import{playSound as i}from"../../services/SoundsService.js";import{playHaptic as l,HapticType as c}from"../../services/HapticsService.js";const u=new r;export const useSnakeStore=e()(t(n((e,t)=>({snake:u.initializeSnake(),food:null,direction:"RIGHT",nextDirection:"RIGHT",score:0,timeLeft:300,isPlaying:!1,isGameOver:!1,isPaused:!1,difficulty:"medium",enableSounds:!0,enableHaptics:!0,moveTimer:null,countdownTimer:null,startGame:()=>{const s=t();s.moveTimer&&clearInterval(s.moveTimer),s.countdownTimer&&clearInterval(s.countdownTimer);const n=u.generateFood(s.snake,!1),r=a.GAME_SPEED[s.difficulty],o=setInterval(()=>{const e=t();e.isPlaying&&!e.isPaused&&e.gameLoop()},r),i=setInterval(()=>{const e=t();e.isPlaying&&!e.isPaused&&e.decrementTime()},1e3);e(e=>{e.isPlaying=!0,e.isPaused=!1,e.food=n,e.moveTimer=o,e.countdownTimer=i})},stopGame:()=>{const e=t();e.moveTimer&&clearInterval(e.moveTimer),e.countdownTimer&&clearInterval(e.countdownTimer),i(o.LOSE,e.enableSounds),l(c.MEDIUM,e.enableHaptics),e.initializeGame(e.difficulty)},pauseGame:()=>{e(e=>{e.isPaused=!0})},resumeGame:()=>{e(e=>{e.isPaused=!1})},resetGame:()=>{const e=t();e.initializeGame(e.difficulty)},initializeGame:(s="medium")=>{const n=t();n.moveTimer&&clearInterval(n.moveTimer),n.countdownTimer&&clearInterval(n.countdownTimer),u.resetIdCounter();const r=u.initializeSnake(),a="easy"===s?180:"medium"===s?300:600;e(e=>{e.snake=r,e.food=null,e.direction="RIGHT",e.nextDirection="RIGHT",e.score=0,e.timeLeft=a,e.isPlaying=!1,e.isGameOver=!1,e.isPaused=!1,e.difficulty=s,e.moveTimer=null,e.countdownTimer=null})},changeDirection:s=>{const n=t();n.isPlaying&&!n.isPaused&&u.isValidDirectionChange(n.direction,s)&&e(e=>{e.nextDirection=s})},gameLoop:()=>{const s=t();!s.isPlaying||s.isPaused||s.isGameOver||e(e=>{e.direction=e.nextDirection;const t=u.moveSnake(e.snake,e.direction),s=t[0];if(s){if(u.checkWallCollision(s))return e.isGameOver=!0,e.isPlaying=!1,e.moveTimer&&(clearInterval(e.moveTimer),e.moveTimer=null),e.countdownTimer&&(clearInterval(e.countdownTimer),e.countdownTimer=null),i(o.COLLISION,e.enableSounds),void l(c.HEAVY,e.enableHaptics);if(u.checkSelfCollision(t))return e.isGameOver=!0,e.isPlaying=!1,e.moveTimer&&(clearInterval(e.moveTimer),e.moveTimer=null),e.countdownTimer&&(clearInterval(e.countdownTimer),e.countdownTimer=null),i(o.COLLISION,e.enableSounds),void l(c.HEAVY,e.enableHaptics);if(e.food&&u.checkFoodCollision(s,e.food)){const s=u.growSnake(t);e.snake=s;const n=u.calculateScore(e.food.isSpecial,e.difficulty);e.score+=n;const r=e.food.isSpecial?o.SPECIAL:o.EAT;i(r,e.enableSounds),l(e.food.isSpecial?c.HEAVY:c.MEDIUM,e.enableHaptics);const m=Math.random()<a.SPECIAL_FOOD_CHANCE;e.food=u.generateFood(s,m)}else e.snake=t;e.food&&u.isSpecialFoodExpired(e.food)&&(e.food=u.generateFood(e.snake,!1))}})},updateSettings:(t,s)=>{e(e=>{e.enableSounds=t,e.enableHaptics=s})},decrementTime:()=>{e(e=>{e.timeLeft>0?e.timeLeft--:(e.isGameOver=!0,e.isPlaying=!1,e.moveTimer&&(clearInterval(e.moveTimer),e.moveTimer=null),e.countdownTimer&&(clearInterval(e.countdownTimer),e.countdownTimer=null))})}}))));export const useSnake=()=>useSnakeStore(e=>e.snake);export const useFood=()=>useSnakeStore(e=>e.food);export const useScore=()=>useSnakeStore(e=>e.score);export const useTimeLeft=()=>useSnakeStore(e=>e.timeLeft);export const useIsPlaying=()=>useSnakeStore(e=>e.isPlaying);export const useIsGameOver=()=>useSnakeStore(e=>e.isGameOver);export const useIsPaused=()=>useSnakeStore(e=>e.isPaused);export const useDifficulty=()=>useSnakeStore(e=>e.difficulty);export const useGameActions=()=>useSnakeStore(s(e=>({startGame:e.startGame,stopGame:e.stopGame,resetGame:e.resetGame,pauseGame:e.pauseGame,resumeGame:e.resumeGame,initializeGame:e.initializeGame,changeDirection:e.changeDirection,updateSettings:e.updateSettings})));export const useGameState=()=>useSnakeStore(s(e=>({isPlaying:e.isPlaying,isGameOver:e.isGameOver,isPaused:e.isPaused})));
@@ -1 +1 @@
1
- {"version":3,"names":["create","subscribeWithSelector","immerMiddleware","SnakeService","SNAKE_GAME_CONFIG","SNAKE_SOUNDS","playSound","playHaptic","HapticType","gameService","useSnakeStore","set","get","snake","initializeSnake","food","direction","nextDirection","score","timeLeft","isPlaying","isGameOver","isPaused","difficulty","enableSounds","enableHaptics","moveTimer","countdownTimer","startGame","state","clearInterval","initialFood","generateFood","gameSpeed","GAME_SPEED","setInterval","currentState","gameLoop","decrementTime","stopGame","LOSE","MEDIUM","initializeGame","pauseGame","resumeGame","resetGame","resetIdCounter","newSnake","timeLimit","changeDirection","newDirection","isValidDirectionChange","draft","moveSnake","head","checkWallCollision","COLLISION","HEAVY","checkSelfCollision","checkFoodCollision","grownSnake","growSnake","points","calculateScore","isSpecial","sound","SPECIAL","EAT","Math","random","SPECIAL_FOOD_CHANCE","isSpecialFoodExpired","updateSettings","useSnake","useFood","useScore","useTimeLeft","useIsPlaying","useIsGameOver","useIsPaused"],"sourceRoot":"../../../../src","sources":["games/snake/SnakeStore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["create","subscribeWithSelector","useShallow","immerMiddleware","SnakeService","SNAKE_GAME_CONFIG","SNAKE_SOUNDS","playSound","playHaptic","HapticType","gameService","useSnakeStore","set","get","snake","initializeSnake","food","direction","nextDirection","score","timeLeft","isPlaying","isGameOver","isPaused","difficulty","enableSounds","enableHaptics","moveTimer","countdownTimer","startGame","state","clearInterval","initialFood","generateFood","gameSpeed","GAME_SPEED","setInterval","currentState","gameLoop","decrementTime","stopGame","LOSE","MEDIUM","initializeGame","pauseGame","resumeGame","resetGame","resetIdCounter","newSnake","timeLimit","changeDirection","newDirection","isValidDirectionChange","draft","moveSnake","head","checkWallCollision","COLLISION","HEAVY","checkSelfCollision","checkFoodCollision","grownSnake","growSnake","points","calculateScore","isSpecial","sound","SPECIAL","EAT","Math","random","SPECIAL_FOOD_CHANCE","isSpecialFoodExpired","updateSettings","useSnake","useFood","useScore","useTimeLeft","useIsPlaying","useIsGameOver","useIsPaused","useDifficulty","useGameActions","useGameState"],"sourceRoot":"../../../../src","sources":["games/snake/SnakeStore.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{Canvas,Rect,LinearGradient,vec,Circle,RoundedRect}from '@shopify/react-native-skia';import{Dimensions,View}from 'react-native';import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');const SNAKE_NEON_COLORS = ['#00ff88','#00ffaa','#00cc6a','#00dd77','#00ff99','#00ee77','#00bb55','#00aa44' ];export const GameBackground = React.memo(({children})=>{const generateFloatingElements = React.useMemo(()=>{const elements = [];const elementCount = 20;for(let i = 0;i < elementCount;i++){const baseX = width / elementCount * i;const baseY = height / elementCount * i;const x = baseX + Math.sin(i * 0.5)* 60 + Math.random()* 80;const y = baseY + Math.cos(i * 0.7)* 70 + Math.random()* 100;const size = 15 + Math.random()* 25;const colorIndex = i % SNAKE_NEON_COLORS.length;const opacity = 0.15 + Math.sin(i)* 0.1;const elementX = Math.max(size / 2,Math.min(width - size,x));const elementY = Math.max(size / 2,Math.min(height - size,y));if(i % 3 === 0){elements.push(_jsx(Circle,{cx:elementX + size / 2,cy:elementY + size / 2,r:size / 2,color:`${SNAKE_NEON_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`circle-${i}`));}else{elements.push(_jsx(RoundedRect,{x:elementX,y:elementY,width:size,height:size,r:size * 0.3,color:`${SNAKE_NEON_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`rect-${i}`));}}return elements;},[]);return _jsxs(View,{style:{flex:1},children:[_jsxs(Canvas,{style:{position:'absolute',top:0,left:0,right:0,bottom:0,width,height},children:[_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width,height),colors:['#1a1a2e','#252541','#1e3a3a','#1a2e1a','#1a1a2e' ]})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width / 2,height / 2),colors:[`${SNAKE_NEON_COLORS[0]}15`,'transparent',`${SNAKE_NEON_COLORS[1]}10`,'transparent',`${SNAKE_NEON_COLORS[4]}15`,'transparent']})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(width,0),end:vec(0,height),colors:[`${SNAKE_NEON_COLORS[2]}12`,'transparent',`${SNAKE_NEON_COLORS[5]}10`,'transparent',`${SNAKE_NEON_COLORS[3]}12`,'transparent']})}),generateFloatingElements,_jsx(Circle,{cx:width * 0.12,cy:height * 0.15,r:35,color:`${SNAKE_NEON_COLORS[0]}30`}),_jsx(RoundedRect,{x:width * 0.82,y:height * 0.78,width:45,height:45,r:12,color:`${SNAKE_NEON_COLORS[1]}35`}),_jsx(Circle,{cx:width * 0.85,cy:height * 0.2,r:28,color:`${SNAKE_NEON_COLORS[2]}30`}),_jsx(RoundedRect,{x:width * 0.08,y:height * 0.75,width:50,height:50,r:15,color:`${SNAKE_NEON_COLORS[3]}35`}),_jsx(Circle,{cx:width * 0.5,cy:height * 0.1,r:25,color:`${SNAKE_NEON_COLORS[4]}28`}),_jsx(RoundedRect,{x:width * 0.1,y:height * 0.45,width:40,height:40,r:10,color:`${SNAKE_NEON_COLORS[5]}32`}),_jsx(Circle,{cx:width * 0.88,cy:height * 0.55,r:30,color:`${SNAKE_NEON_COLORS[6]}30`}),_jsx(RoundedRect,{x:width * 0.55,y:height * 0.85,width:35,height:35,r:8,color:`${SNAKE_NEON_COLORS[7]}33`}),_jsx(Circle,{cx:width * 0.3,cy:height * 0.3,r:20,color:`${SNAKE_NEON_COLORS[0]}25`}),_jsx(Circle,{cx:width * 0.7,cy:height * 0.4,r:24,color:`${SNAKE_NEON_COLORS[1]}28`}),_jsx(Circle,{cx:width * 0.4,cy:height * 0.65,r:18,color:`${SNAKE_NEON_COLORS[2]}26`}),Array.from({length:Math.floor(width / 70)},(_,i)=> _jsx(Rect,{x:i * 70,y:0,width:1,height:height,color:"rgba(0,255,136,0.04)"},`grid-v-${i}`)),Array.from({length:Math.floor(height / 70)},(_,i)=> _jsx(Rect,{x:0,y:i * 70,width:width,height:1,color:"rgba(0,255,136,0.04)"},`grid-h-${i}`))]}),children]});});GameBackground.displayName = 'GameBackground';
1
+ "use strict";import t from"react";import{Canvas as r,Rect as e,LinearGradient as o,vec as c,Circle as a,RoundedRect as h}from"@shopify/react-native-skia";import{Dimensions as i,View as n,StyleSheet as l}from"react-native";import{jsx as s,Fragment as d,jsxs as y}from"react/jsx-runtime";const{width:x,height:g}=i.get("window"),m=["#00ff88","#00ffaa","#00cc6a","#00dd77","#00ff99","#00ee77","#00bb55","#00aa44"],p=(()=>{const t=[],r=t=>{const r=43758.5453*Math.sin(12.9898*t+78.233*t);return r-Math.floor(r)};for(let e=0;20>e;e++){const o=x/20*e,c=g/20*e,a=r(2*e),h=r(3*e),i=r(5*e),n=o+60*Math.sin(.5*e)+80*a,l=c+70*Math.cos(.7*e)+100*h,s=15+25*i,d=e%8,y=.15+.1*Math.sin(e),p=Math.max(s/2,Math.min(x-s,n)),f=Math.max(s/2,Math.min(g-s,l)),w=`${m[d]}${Math.floor(255*y).toString(16).padStart(2,"0")}`;t.push({type:e%3==0?"circle":"rect",key:"element-"+e,x:p,y:f,size:s,color:w})}return t})(),f=Array.from({length:Math.floor(x/70)},(t,r)=>70*r),w=Array.from({length:Math.floor(g/70)},(t,r)=>70*r),M=t.memo(()=>s(d,{children:p.map(({type:t,key:r,x:e,y:o,size:c,color:i})=>"circle"===t?s(a,{cx:e+c/2,cy:o+c/2,r:c/2,color:i},r):s(h,{x:e,y:o,width:c,height:c,r:.3*c,color:i},r))}));M.displayName="FloatingElements";const u=t.memo(()=>y(d,{children:[f.map((t,r)=>s(e,{x:t,y:0,width:1,height:g,color:"rgba(0, 255, 136, 0.04)"},"grid-v-"+r)),w.map((t,r)=>s(e,{x:0,y:t,width:x,height:1,color:"rgba(0, 255, 136, 0.04)"},"grid-h-"+r))]}));u.displayName="GridPattern";const b=l.create({container:{flex:1},canvas:{position:"absolute",top:0,left:0,right:0,bottom:0,width:x,height:g}});export const GameBackground=t.memo(({children:t})=>y(n,{style:b.container,children:[y(r,{style:b.canvas,children:[s(e,{x:0,y:0,width:x,height:g,children:s(o,{start:c(0,0),end:c(x,g),colors:["#1a1a2e","#252541","#1e3a3a","#1a2e1a","#1a1a2e"]})}),s(e,{x:0,y:0,width:x,height:g,children:s(o,{start:c(0,0),end:c(x/2,g/2),colors:[m[0]+"15","transparent",m[1]+"10","transparent",m[4]+"15","transparent"]})}),s(e,{x:0,y:0,width:x,height:g,children:s(o,{start:c(x,0),end:c(0,g),colors:[m[2]+"12","transparent",m[5]+"10","transparent",m[3]+"12","transparent"]})}),s(M,{}),s(a,{cx:.12*x,cy:.15*g,r:35,color:m[0]+"30"}),s(h,{x:.82*x,y:.78*g,width:45,height:45,r:12,color:m[1]+"35"}),s(a,{cx:.85*x,cy:.2*g,r:28,color:m[2]+"30"}),s(h,{x:.08*x,y:.75*g,width:50,height:50,r:15,color:m[3]+"35"}),s(a,{cx:.5*x,cy:.1*g,r:25,color:m[4]+"28"}),s(h,{x:.1*x,y:.45*g,width:40,height:40,r:10,color:m[5]+"32"}),s(a,{cx:.88*x,cy:.55*g,r:30,color:m[6]+"30"}),s(h,{x:.55*x,y:.85*g,width:35,height:35,r:8,color:m[7]+"33"}),s(a,{cx:.3*x,cy:.3*g,r:20,color:m[0]+"25"}),s(a,{cx:.7*x,cy:.4*g,r:24,color:m[1]+"28"}),s(a,{cx:.4*x,cy:.65*g,r:18,color:m[2]+"26"}),s(u,{})]}),t]}));GameBackground.displayName="GameBackground";