react-native-games 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/README.md +101 -30
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -167
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -182
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -1
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +1 -318
  7. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -183
  8. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +1 -237
  9. package/lib/module/games/balloon-blaster/components/GameArea.js +1 -156
  10. package/lib/module/games/balloon-blaster/components/GameBackground.js +1 -476
  11. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +1 -112
  12. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  13. package/lib/module/games/balloon-blaster/components/index.js +1 -7
  14. package/lib/module/games/bike-racing/BikeRacing.js +1 -0
  15. package/lib/module/games/bike-racing/BikeRacing.js.map +1 -0
  16. package/lib/module/games/bike-racing/BikeRacingConstants.js +1 -0
  17. package/lib/module/games/bike-racing/BikeRacingConstants.js.map +1 -0
  18. package/lib/module/games/bike-racing/BikeRacingService.js +1 -0
  19. package/lib/module/games/bike-racing/BikeRacingService.js.map +1 -0
  20. package/lib/module/games/bike-racing/BikeRacingStore.js +1 -0
  21. package/lib/module/games/bike-racing/BikeRacingStore.js.map +1 -0
  22. package/lib/module/games/bike-racing/components/BikeComponent.js +1 -0
  23. package/lib/module/games/bike-racing/components/BikeComponent.js.map +1 -0
  24. package/lib/module/games/bike-racing/components/GameBackground.js +1 -0
  25. package/lib/module/games/bike-racing/components/GameBackground.js.map +1 -0
  26. package/lib/module/games/bike-racing/components/ScoreBoard.js +1 -0
  27. package/lib/module/games/bike-racing/components/ScoreBoard.js.map +1 -0
  28. package/lib/module/games/bike-racing/components/index.js +1 -0
  29. package/lib/module/games/bike-racing/components/index.js.map +1 -0
  30. package/lib/module/games/bike-racing/index.js +1 -0
  31. package/lib/module/games/bike-racing/index.js.map +1 -0
  32. package/lib/module/games/block-blast/BlockBlast.js +1 -0
  33. package/lib/module/games/block-blast/BlockBlast.js.map +1 -0
  34. package/lib/module/games/block-blast/BlockBlastConstants.js +1 -0
  35. package/lib/module/games/block-blast/BlockBlastConstants.js.map +1 -0
  36. package/lib/module/games/block-blast/BlockBlastService.js +1 -0
  37. package/lib/module/games/block-blast/BlockBlastService.js.map +1 -0
  38. package/lib/module/games/block-blast/BlockBlastStore.js +1 -0
  39. package/lib/module/games/block-blast/BlockBlastStore.js.map +1 -0
  40. package/lib/module/games/block-blast/components/BlockPieceComponent.js +1 -0
  41. package/lib/module/games/block-blast/components/BlockPieceComponent.js.map +1 -0
  42. package/lib/module/games/block-blast/components/GameArea.js +1 -0
  43. package/lib/module/games/block-blast/components/GameArea.js.map +1 -0
  44. package/lib/module/games/block-blast/components/GameBackground.js +1 -0
  45. package/lib/module/games/block-blast/components/GameBackground.js.map +1 -0
  46. package/lib/module/games/block-blast/components/GridComponent.js +1 -0
  47. package/lib/module/games/block-blast/components/GridComponent.js.map +1 -0
  48. package/lib/module/games/block-blast/components/ScoreBoard.js +1 -0
  49. package/lib/module/games/block-blast/components/ScoreBoard.js.map +1 -0
  50. package/lib/module/games/block-blast/components/index.js +1 -0
  51. package/lib/module/games/block-blast/components/index.js.map +1 -0
  52. package/lib/module/games/block-blast/index.js +1 -0
  53. package/lib/module/games/block-blast/index.js.map +1 -0
  54. package/lib/module/games/bubble-shooter/BubbleShooter.js +1 -0
  55. package/lib/module/games/bubble-shooter/BubbleShooter.js.map +1 -0
  56. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js +1 -0
  57. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js.map +1 -0
  58. package/lib/module/games/bubble-shooter/BubbleShooterService.js +1 -0
  59. package/lib/module/games/bubble-shooter/BubbleShooterService.js.map +1 -0
  60. package/lib/module/games/bubble-shooter/BubbleShooterStore.js +1 -0
  61. package/lib/module/games/bubble-shooter/BubbleShooterStore.js.map +1 -0
  62. package/lib/module/games/bubble-shooter/components/GameArea.js +1 -0
  63. package/lib/module/games/bubble-shooter/components/GameArea.js.map +1 -0
  64. package/lib/module/games/bubble-shooter/components/GameBackground.js +1 -0
  65. package/lib/module/games/bubble-shooter/components/GameBackground.js.map +1 -0
  66. package/lib/module/games/bubble-shooter/components/ScoreBoard.js +1 -0
  67. package/lib/module/games/bubble-shooter/components/ScoreBoard.js.map +1 -0
  68. package/lib/module/games/bubble-shooter/components/index.js +1 -0
  69. package/lib/module/games/bubble-shooter/components/index.js.map +1 -0
  70. package/lib/module/games/bubble-shooter/index.js +1 -0
  71. package/lib/module/games/bubble-shooter/index.js.map +1 -0
  72. package/lib/module/games/candy-crush/CandyCrush.js +1 -131
  73. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -1
  74. package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -125
  75. package/lib/module/games/candy-crush/CandyCrushConstants.js.map +1 -1
  76. package/lib/module/games/candy-crush/CandyCrushService.js +1 -370
  77. package/lib/module/games/candy-crush/CandyCrushStore.js +1 -303
  78. package/lib/module/games/candy-crush/components/CandyItem.js +1 -191
  79. package/lib/module/games/candy-crush/components/GameBackground.js +1 -85
  80. package/lib/module/games/candy-crush/components/GameGrid.js +1 -314
  81. package/lib/module/games/candy-crush/components/ScoreBoard.js +1 -79
  82. package/lib/module/games/candy-crush/components/index.js +1 -7
  83. package/lib/module/games/candy-crush/index.js +1 -6
  84. package/lib/module/games/car-racing/CarRacing.js +1 -0
  85. package/lib/module/games/car-racing/CarRacing.js.map +1 -0
  86. package/lib/module/games/car-racing/CarRacingConstants.js +1 -0
  87. package/lib/module/games/car-racing/CarRacingConstants.js.map +1 -0
  88. package/lib/module/games/car-racing/CarRacingService.js +1 -0
  89. package/lib/module/games/car-racing/CarRacingService.js.map +1 -0
  90. package/lib/module/games/car-racing/CarRacingStore.js +1 -0
  91. package/lib/module/games/car-racing/CarRacingStore.js.map +1 -0
  92. package/lib/module/games/car-racing/components/CarComponent.js +1 -0
  93. package/lib/module/games/car-racing/components/CarComponent.js.map +1 -0
  94. package/lib/module/games/car-racing/components/GameBackground.js +1 -0
  95. package/lib/module/games/car-racing/components/GameBackground.js.map +1 -0
  96. package/lib/module/games/car-racing/components/ScoreBoard.js +1 -0
  97. package/lib/module/games/car-racing/components/ScoreBoard.js.map +1 -0
  98. package/lib/module/games/car-racing/components/index.js +1 -0
  99. package/lib/module/games/car-racing/components/index.js.map +1 -0
  100. package/lib/module/games/colors-sort/ColorsSort.js +1 -143
  101. package/lib/module/games/colors-sort/ColorsSort.js.map +1 -1
  102. package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -72
  103. package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -1
  104. package/lib/module/games/colors-sort/ColorsSortService.js +1 -255
  105. package/lib/module/games/colors-sort/ColorsSortStore.js +1 -257
  106. package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -1
  107. package/lib/module/games/colors-sort/components/ColorContainer.js +1 -140
  108. package/lib/module/games/colors-sort/components/GameBackground.js +1 -135
  109. package/lib/module/games/colors-sort/components/ScoreBoard.js +1 -70
  110. package/lib/module/games/colors-sort/components/index.js +1 -6
  111. package/lib/module/games/dino-jump/DinoJump.js +1 -209
  112. package/lib/module/games/dino-jump/DinoJump.js.map +1 -1
  113. package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -189
  114. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -1
  115. package/lib/module/games/dino-jump/DinoJumpService.js +1 -270
  116. package/lib/module/games/dino-jump/DinoJumpStore.js +1 -381
  117. package/lib/module/games/dino-jump/components/DinoSprite.js +1 -418
  118. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -1
  119. package/lib/module/games/dino-jump/components/GameArea.js +1 -68
  120. package/lib/module/games/dino-jump/components/GameBackground.js +1 -444
  121. package/lib/module/games/dino-jump/components/ObstacleSprite.js +1 -306
  122. package/lib/module/games/dino-jump/components/ScoreBoard.js +1 -105
  123. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -1
  124. package/lib/module/games/dino-jump/components/StarSprite.js +1 -45
  125. package/lib/module/games/dino-jump/components/index.js +1 -9
  126. package/lib/module/games/flappy-bird/FlappyBird.js +1 -126
  127. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -1
  128. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -90
  129. package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -1
  130. package/lib/module/games/flappy-bird/FlappyBirdStore.js +1 -300
  131. package/lib/module/games/flappy-bird/components/Bird.js +1 -87
  132. package/lib/module/games/flappy-bird/components/GameArea.js +1 -87
  133. package/lib/module/games/flappy-bird/components/GameBackground.js +1 -79
  134. package/lib/module/games/flappy-bird/components/Pipes.js +1 -172
  135. package/lib/module/games/flappy-bird/components/ScoreBoard.js +1 -73
  136. package/lib/module/games/flappy-bird/components/index.js +1 -8
  137. package/lib/module/games/fruit-merger/FruitMerger.js +1 -120
  138. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -1
  139. package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -119
  140. package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -1
  141. package/lib/module/games/fruit-merger/FruitMergerService.js +1 -13
  142. package/lib/module/games/fruit-merger/FruitMergerStore.js +1 -315
  143. package/lib/module/games/fruit-merger/components/FruitItem.js +1 -102
  144. package/lib/module/games/fruit-merger/components/GameArea.js +1 -103
  145. package/lib/module/games/fruit-merger/components/GameBackground.js +1 -498
  146. package/lib/module/games/fruit-merger/components/ScoreBoard.js +1 -58
  147. package/lib/module/games/fruit-merger/components/index.js +1 -7
  148. package/lib/module/games/fruit-ninja/FruitNinja.js +1 -134
  149. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  150. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -148
  151. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -1
  152. package/lib/module/games/fruit-ninja/FruitNinjaService.js +1 -311
  153. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -191
  154. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -1
  155. package/lib/module/games/fruit-ninja/components/FruitComponent.js +1 -99
  156. package/lib/module/games/fruit-ninja/components/GameArea.js +1 -215
  157. package/lib/module/games/fruit-ninja/components/GameBackground.js +1 -1267
  158. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +1 -92
  159. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  160. package/lib/module/games/fruit-ninja/components/index.js +1 -7
  161. package/lib/module/games/game-2048/Game2048.js +1 -149
  162. package/lib/module/games/game-2048/Game2048.js.map +1 -1
  163. package/lib/module/games/game-2048/Game2048Constants.js +1 -263
  164. package/lib/module/games/game-2048/Game2048Constants.js.map +1 -1
  165. package/lib/module/games/game-2048/Game2048Service.js +1 -457
  166. package/lib/module/games/game-2048/Game2048Store.js +1 -236
  167. package/lib/module/games/game-2048/components/GameBackground.js +1 -247
  168. package/lib/module/games/game-2048/components/GameGrid.js +1 -139
  169. package/lib/module/games/game-2048/components/GameTile.js +1 -72
  170. package/lib/module/games/game-2048/components/ScoreBoard.js +1 -52
  171. package/lib/module/games/game-2048/components/index.js +1 -7
  172. package/lib/module/games/maze-runner/MazeRunner.js +1 -267
  173. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  174. package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -100
  175. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -1
  176. package/lib/module/games/maze-runner/MazeRunnerService.js +1 -586
  177. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +1 -150
  178. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +1 -370
  179. package/lib/module/games/maze-runner/components/GameBackground.js +1 -175
  180. package/lib/module/games/maze-runner/components/ScoreBoard.js +1 -61
  181. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +1 -209
  182. package/lib/module/games/maze-runner/components/StaticGameBackground.js +1 -169
  183. package/lib/module/games/maze-runner/components/WallComponent.js +1 -91
  184. package/lib/module/games/maze-runner/components/index.js +1 -8
  185. package/lib/module/games/perfect-circle/PerfectCircle.js +1 -0
  186. package/lib/module/games/perfect-circle/PerfectCircle.js.map +1 -0
  187. package/lib/module/games/perfect-circle/PerfectCircleConstants.js +1 -0
  188. package/lib/module/games/perfect-circle/PerfectCircleConstants.js.map +1 -0
  189. package/lib/module/games/perfect-circle/PerfectCircleService.js +1 -0
  190. package/lib/module/games/perfect-circle/PerfectCircleService.js.map +1 -0
  191. package/lib/module/games/perfect-circle/PerfectCircleStore.js +1 -0
  192. package/lib/module/games/perfect-circle/PerfectCircleStore.js.map +1 -0
  193. package/lib/module/games/perfect-circle/components/DrawingCanvas.js +1 -0
  194. package/lib/module/games/perfect-circle/components/DrawingCanvas.js.map +1 -0
  195. package/lib/module/games/perfect-circle/components/GameBackground.js +1 -0
  196. package/lib/module/games/perfect-circle/components/GameBackground.js.map +1 -0
  197. package/lib/module/games/perfect-circle/components/ScoreBoard.js +1 -0
  198. package/lib/module/games/perfect-circle/components/ScoreBoard.js.map +1 -0
  199. package/lib/module/games/perfect-circle/index.js +1 -0
  200. package/lib/module/games/perfect-circle/index.js.map +1 -0
  201. package/lib/module/games/popit-fidget/PopitFidget.js +1 -285
  202. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  203. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -113
  204. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -1
  205. package/lib/module/games/popit-fidget/PopitFidgetService.js +1 -132
  206. package/lib/module/games/popit-fidget/PopitFidgetStore.js +1 -125
  207. package/lib/module/games/popit-fidget/components/BubbleComponent.js +1 -198
  208. package/lib/module/games/popit-fidget/components/FidgetGrid.js +1 -165
  209. package/lib/module/games/popit-fidget/components/GameBackground.js +1 -177
  210. package/lib/module/games/popit-fidget/components/ScoreBoard.js +1 -61
  211. package/lib/module/games/popit-fidget/components/index.js +1 -7
  212. package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -159
  213. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -1
  214. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -207
  215. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js.map +1 -1
  216. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +1 -248
  217. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +1 -274
  218. package/lib/module/games/sliding-numbers/components/GameBackground.js +1 -259
  219. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +1 -174
  220. package/lib/module/games/sliding-numbers/components/NumbersTile.js +1 -116
  221. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +1 -64
  222. package/lib/module/games/sliding-numbers/components/index.js +1 -7
  223. package/lib/module/games/snake/Snake.js +1 -189
  224. package/lib/module/games/snake/Snake.js.map +1 -1
  225. package/lib/module/games/snake/SnakeConstants.js +1 -138
  226. package/lib/module/games/snake/SnakeConstants.js.map +1 -1
  227. package/lib/module/games/snake/SnakeService.js +1 -148
  228. package/lib/module/games/snake/SnakeStore.js +1 -182
  229. package/lib/module/games/snake/SnakeStore.js.map +1 -1
  230. package/lib/module/games/snake/components/GameBackground.js +1 -221
  231. package/lib/module/games/snake/components/GameGrid.js +1 -153
  232. package/lib/module/games/snake/components/ScoreBoard.js +1 -51
  233. package/lib/module/games/snake/components/ScoreBoard.js.map +1 -1
  234. package/lib/module/games/snake/components/index.js +1 -6
  235. package/lib/module/games/snake/index.js +1 -6
  236. package/lib/module/games/space-fighter/SpaceFighter.js +1 -165
  237. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  238. package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -108
  239. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -1
  240. package/lib/module/games/space-fighter/SpaceFighterService.js +1 -326
  241. package/lib/module/games/space-fighter/SpaceFighterStore.js +1 -209
  242. package/lib/module/games/space-fighter/components/AsteroidComponent.js +1 -113
  243. package/lib/module/games/space-fighter/components/GameArea.js +1 -289
  244. package/lib/module/games/space-fighter/components/GameBackground.js +1 -239
  245. package/lib/module/games/space-fighter/components/ScoreBoard.js +1 -136
  246. package/lib/module/games/space-fighter/components/Spacecraft3D.js +1 -202
  247. package/lib/module/games/space-fighter/components/SpacecraftPath.js +1 -52
  248. package/lib/module/games/space-fighter/components/index.js +1 -9
  249. package/lib/module/games/whack-a-mole/WhackAMole.js +1 -270
  250. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  251. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -115
  252. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -1
  253. package/lib/module/games/whack-a-mole/WhackAMoleService.js +1 -120
  254. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -172
  255. package/lib/module/games/whack-a-mole/components/GameBackground.js +1 -477
  256. package/lib/module/games/whack-a-mole/components/GameGrid.js +1 -97
  257. package/lib/module/games/whack-a-mole/components/GameHole.js +1 -196
  258. package/lib/module/games/whack-a-mole/components/MoleCharacter.js +1 -241
  259. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +1 -67
  260. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  261. package/lib/module/games/whack-a-mole/components/index.js +1 -8
  262. package/lib/module/helpers/AnimationFrame.js +1 -120
  263. package/lib/module/helpers/AnimationTracker.js +1 -89
  264. package/lib/module/helpers/ErrorHandler.js +1 -269
  265. package/lib/module/helpers/GameControlButton.js +1 -219
  266. package/lib/module/helpers/GameOverModal.js +1 -144
  267. package/lib/module/helpers/GameOverModal.js.map +1 -1
  268. package/lib/module/helpers/GameSettingsModal.js +1 -287
  269. package/lib/module/helpers/GameSettingsModal.js.map +1 -1
  270. package/lib/module/helpers/ParticleBlast.js +1 -134
  271. package/lib/module/helpers/ScoreBoardContainer.js +1 -34
  272. package/lib/module/helpers/ScoreBoardContainer.js.map +1 -1
  273. package/lib/module/helpers/index.js +1 -12
  274. package/lib/module/index.js +1 -22
  275. package/lib/module/index.js.map +1 -1
  276. package/lib/module/services/GamesConstants.js +1 -178
  277. package/lib/module/services/GamesConstants.js.map +1 -1
  278. package/lib/module/services/GamesService.js +1 -112
  279. package/lib/module/services/GamesService.js.map +1 -1
  280. package/lib/module/services/HapticsService.js +1 -77
  281. package/lib/module/services/ScoringService.js +1 -0
  282. package/lib/module/services/ScoringService.js.map +1 -0
  283. package/lib/module/services/SoundsService.js +1 -302
  284. package/lib/module/services/SoundsService.js.map +1 -1
  285. package/lib/module/services/UtilsService.js +1 -32
  286. package/lib/module/services/UtilsService.js.map +1 -1
  287. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  288. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +1 -1
  289. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  290. package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts +4 -0
  291. package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts.map +1 -0
  292. package/lib/typescript/src/games/bike-racing/BikeRacingConstants.d.ts +76 -0
  293. package/lib/typescript/src/games/bike-racing/BikeRacingConstants.d.ts.map +1 -0
  294. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts +22 -0
  295. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts.map +1 -0
  296. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts +72 -0
  297. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts.map +1 -0
  298. package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts +12 -0
  299. package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts.map +1 -0
  300. package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts +9 -0
  301. package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts.map +1 -0
  302. package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts +7 -0
  303. package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts.map +1 -0
  304. package/lib/typescript/src/games/bike-racing/components/index.d.ts +4 -0
  305. package/lib/typescript/src/games/bike-racing/components/index.d.ts.map +1 -0
  306. package/lib/typescript/src/games/bike-racing/index.d.ts +5 -0
  307. package/lib/typescript/src/games/bike-racing/index.d.ts.map +1 -0
  308. package/lib/typescript/src/games/block-blast/BlockBlast.d.ts +4 -0
  309. package/lib/typescript/src/games/block-blast/BlockBlast.d.ts.map +1 -0
  310. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts +82 -0
  311. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts.map +1 -0
  312. package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts +17 -0
  313. package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts.map +1 -0
  314. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts +62 -0
  315. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts.map +1 -0
  316. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts +14 -0
  317. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts.map +1 -0
  318. package/lib/typescript/src/games/block-blast/components/GameArea.d.ts +12 -0
  319. package/lib/typescript/src/games/block-blast/components/GameArea.d.ts.map +1 -0
  320. package/lib/typescript/src/games/block-blast/components/GameBackground.d.ts +7 -0
  321. package/lib/typescript/src/games/block-blast/components/GameBackground.d.ts.map +1 -0
  322. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts +17 -0
  323. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts.map +1 -0
  324. package/lib/typescript/src/games/block-blast/components/ScoreBoard.d.ts +7 -0
  325. package/lib/typescript/src/games/block-blast/components/ScoreBoard.d.ts.map +1 -0
  326. package/lib/typescript/src/games/block-blast/components/index.d.ts +6 -0
  327. package/lib/typescript/src/games/block-blast/components/index.d.ts.map +1 -0
  328. package/lib/typescript/src/games/block-blast/index.d.ts +5 -0
  329. package/lib/typescript/src/games/block-blast/index.d.ts.map +1 -0
  330. package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts +4 -0
  331. package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts.map +1 -0
  332. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts +61 -0
  333. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts.map +1 -0
  334. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts +26 -0
  335. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts.map +1 -0
  336. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts +62 -0
  337. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts.map +1 -0
  338. package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts +9 -0
  339. package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts.map +1 -0
  340. package/lib/typescript/src/games/bubble-shooter/components/GameBackground.d.ts +8 -0
  341. package/lib/typescript/src/games/bubble-shooter/components/GameBackground.d.ts.map +1 -0
  342. package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts +7 -0
  343. package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts.map +1 -0
  344. package/lib/typescript/src/games/bubble-shooter/components/index.d.ts +4 -0
  345. package/lib/typescript/src/games/bubble-shooter/components/index.d.ts.map +1 -0
  346. package/lib/typescript/src/games/bubble-shooter/index.d.ts +3 -0
  347. package/lib/typescript/src/games/bubble-shooter/index.d.ts.map +1 -0
  348. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts.map +1 -1
  349. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +7 -7
  350. package/lib/typescript/src/games/car-racing/CarRacing.d.ts +4 -0
  351. package/lib/typescript/src/games/car-racing/CarRacing.d.ts.map +1 -0
  352. package/lib/typescript/src/games/car-racing/CarRacingConstants.d.ts +76 -0
  353. package/lib/typescript/src/games/car-racing/CarRacingConstants.d.ts.map +1 -0
  354. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts +22 -0
  355. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts.map +1 -0
  356. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts +72 -0
  357. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts.map +1 -0
  358. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts +13 -0
  359. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts.map +1 -0
  360. package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts +9 -0
  361. package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts.map +1 -0
  362. package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts +7 -0
  363. package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts.map +1 -0
  364. package/lib/typescript/src/games/car-racing/components/index.d.ts +4 -0
  365. package/lib/typescript/src/games/car-racing/components/index.d.ts.map +1 -0
  366. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -1
  367. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -1
  368. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -1
  369. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -1
  370. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -1
  371. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -1
  372. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -1
  373. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -1
  374. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  375. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  376. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -1
  377. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  378. package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts +4 -0
  379. package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts.map +1 -0
  380. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts +81 -0
  381. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts.map +1 -0
  382. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts +14 -0
  383. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts.map +1 -0
  384. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts +40 -0
  385. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts.map +1 -0
  386. package/lib/typescript/src/games/perfect-circle/components/DrawingCanvas.d.ts +9 -0
  387. package/lib/typescript/src/games/perfect-circle/components/DrawingCanvas.d.ts.map +1 -0
  388. package/lib/typescript/src/games/perfect-circle/components/GameBackground.d.ts +8 -0
  389. package/lib/typescript/src/games/perfect-circle/components/GameBackground.d.ts.map +1 -0
  390. package/lib/typescript/src/games/perfect-circle/components/ScoreBoard.d.ts +7 -0
  391. package/lib/typescript/src/games/perfect-circle/components/ScoreBoard.d.ts.map +1 -0
  392. package/lib/typescript/src/games/perfect-circle/index.d.ts +3 -0
  393. package/lib/typescript/src/games/perfect-circle/index.d.ts.map +1 -0
  394. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  395. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -1
  396. package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -1
  397. package/lib/typescript/src/games/snake/SnakeStore.d.ts +4 -0
  398. package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -1
  399. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts.map +1 -1
  400. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  401. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  402. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +1 -1
  403. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
  404. package/lib/typescript/src/helpers/GameOverModal.d.ts +3 -0
  405. package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -1
  406. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts.map +1 -1
  407. package/lib/typescript/src/index.d.ts +6 -1
  408. package/lib/typescript/src/index.d.ts.map +1 -1
  409. package/lib/typescript/src/services/GamesConstants.d.ts +57 -7
  410. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  411. package/lib/typescript/src/services/GamesService.d.ts +2 -1
  412. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  413. package/lib/typescript/src/services/ScoringService.d.ts +2 -0
  414. package/lib/typescript/src/services/ScoringService.d.ts.map +1 -0
  415. package/lib/typescript/src/services/SoundsService.d.ts +88 -0
  416. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -1
  417. package/lib/typescript/src/services/UtilsService.d.ts +12 -1
  418. package/lib/typescript/src/services/UtilsService.d.ts.map +1 -1
  419. package/package.json +2 -2
@@ -1,165 +1 @@
1
- "use strict";
2
-
3
- import React, { useMemo, useCallback } from 'react';
4
- import { View, StyleSheet } from 'react-native';
5
- import { RAINBOW_COLORS } from "../PopitFidgetConstants.js";
6
- import BubbleComponent from "./BubbleComponent.js";
7
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
- const FidgetGrid = ({
9
- grid,
10
- bubbleSize,
11
- onBubblePop,
12
- hapticEnabled = true,
13
- isPlaying
14
- }) => {
15
- const padding = 20;
16
-
17
- // Memoize row color calculation to prevent recalculation
18
- const getRowColor = useCallback(rowIndex => {
19
- const colorIndex = Math.floor(rowIndex / (grid.size - 1) * (RAINBOW_COLORS.length - 1));
20
- return RAINBOW_COLORS[colorIndex] || RAINBOW_COLORS[0];
21
- }, [grid.size]);
22
-
23
- // Memoize container dimensions to prevent recalculation
24
- const containerDimensions = useMemo(() => ({
25
- width: grid.width + padding * 2,
26
- height: grid.height + padding * 2
27
- }), [grid.width, grid.height, padding]);
28
-
29
- // Memoize bubble pop handlers using a stable reference pattern
30
- const bubblePopHandlers = useMemo(() => {
31
- const handlers = {};
32
- grid.bubbles.forEach((row, rowIndex) => {
33
- row.forEach((bubble, colIndex) => {
34
- if (bubble) {
35
- handlers[bubble.id] = () => onBubblePop(rowIndex, colIndex);
36
- }
37
- });
38
- });
39
- return handlers;
40
- }, [grid.bubbles, onBubblePop]);
41
- return /*#__PURE__*/_jsxs(View, {
42
- style: [styles.container, containerDimensions],
43
- children: [/*#__PURE__*/_jsxs(View, {
44
- style: [styles.backgroundContainer, styles.fidget3D, {
45
- ...containerDimensions,
46
- borderRadius: 20,
47
- overflow: 'hidden'
48
- }],
49
- children: [/*#__PURE__*/_jsx(View, {
50
- style: [styles.outerBorder, {
51
- ...containerDimensions,
52
- borderRadius: 20
53
- }]
54
- }), /*#__PURE__*/_jsx(View, {
55
- style: [styles.innerRecess, {
56
- position: 'absolute',
57
- left: 8,
58
- top: 8,
59
- width: containerDimensions.width - 16,
60
- height: containerDimensions.height - 16,
61
- borderRadius: 12,
62
- overflow: 'hidden'
63
- }],
64
- children: grid.bubbles.map((_, rowIndex) => {
65
- const rowHeight = grid.height / grid.size;
66
- const rowColor = getRowColor(rowIndex);
67
- return /*#__PURE__*/_jsx(View, {
68
- style: {
69
- position: 'absolute',
70
- left: padding - 8,
71
- top: padding - 8 + rowIndex * rowHeight,
72
- width: grid.width,
73
- height: rowHeight,
74
- backgroundColor: `${rowColor}50`
75
- }
76
- }, `row-bg-${rowIndex}`);
77
- })
78
- })]
79
- }), /*#__PURE__*/_jsx(View, {
80
- style: {
81
- position: 'absolute',
82
- left: padding,
83
- top: padding
84
- },
85
- children: grid.bubbles.map((row, _rowIndex) => row.map((bubble, _colIndex) => {
86
- if (!bubble) return null;
87
- const bubbleHandler = bubblePopHandlers[bubble.id];
88
- if (!bubbleHandler) return null;
89
- return /*#__PURE__*/_jsx(BubbleComponent, {
90
- bubble: bubble,
91
- size: bubbleSize,
92
- onPop: bubbleHandler,
93
- hapticEnabled: hapticEnabled,
94
- isPlaying: isPlaying
95
- }, bubble.id);
96
- }))
97
- })]
98
- });
99
- };
100
- const styles = StyleSheet.create({
101
- container: {
102
- position: 'relative',
103
- padding: 15
104
- // Removed flex: 1 since we now use explicit width/height
105
- // The parent gameArea container handles centering
106
- },
107
- backgroundContainer: {
108
- position: 'absolute'
109
- },
110
- fidget3D: {
111
- // Deep shadow for authentic Pop It depth
112
- shadowColor: '#000',
113
- shadowOffset: {
114
- width: 0,
115
- height: 8
116
- },
117
- shadowOpacity: 0.4,
118
- shadowRadius: 12,
119
- elevation: 12
120
- },
121
- outerBorder: {
122
- position: 'absolute',
123
- backgroundColor: '#f0f0f0',
124
- // Raised border gradient effect using multiple borders
125
- borderWidth: 2,
126
- borderTopColor: '#ffffff',
127
- borderLeftColor: '#ffffff',
128
- borderRightColor: '#cccccc',
129
- borderBottomColor: '#aaaaaa'
130
- },
131
- innerRecess: {
132
- backgroundColor: '#e8e8e8',
133
- // Recessed inner area with inverted lighting
134
- borderWidth: 1,
135
- borderTopColor: '#cccccc',
136
- borderLeftColor: '#cccccc',
137
- borderRightColor: '#ffffff',
138
- borderBottomColor: '#ffffff',
139
- // Inner shadow effect
140
- shadowColor: '#000',
141
- shadowOffset: {
142
- width: 0,
143
- height: -2
144
- },
145
- shadowOpacity: 0.2,
146
- shadowRadius: 4,
147
- elevation: -2
148
- }
149
- });
150
-
151
- // Memoized FidgetGrid component to prevent unnecessary re-renders
152
- const MemoizedFidgetGrid = /*#__PURE__*/React.memo(FidgetGrid, (prevProps, nextProps) => {
153
- // Only re-render if grid structure, bubble states, or key props change
154
- return prevProps.grid.size === nextProps.grid.size && prevProps.grid.width === nextProps.grid.width && prevProps.grid.height === nextProps.grid.height && prevProps.bubbleSize === nextProps.bubbleSize && prevProps.hapticEnabled === nextProps.hapticEnabled && prevProps.isPlaying === nextProps.isPlaying && prevProps.onBubblePop === nextProps.onBubblePop &&
155
- // Check if bubble states have changed
156
- JSON.stringify(prevProps.grid.bubbles.map(row => row.map(bubble => bubble ? {
157
- id: bubble.id,
158
- isPopped: bubble.isPopped
159
- } : null))) === JSON.stringify(nextProps.grid.bubbles.map(row => row.map(bubble => bubble ? {
160
- id: bubble.id,
161
- isPopped: bubble.isPopped
162
- } : null)));
163
- });
164
- export default MemoizedFidgetGrid;
165
- //# sourceMappingURL=FidgetGrid.js.map
1
+ "use strict";import React,{useMemo,useCallback}from 'react';import{View,StyleSheet}from 'react-native';import{RAINBOW_COLORS}from "../PopitFidgetConstants.js";import BubbleComponent from "./BubbleComponent.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const FidgetGrid =({grid,bubbleSize,onBubblePop,hapticEnabled = true,isPlaying})=>{const padding = 20;const getRowColor = useCallback(rowIndex =>{const colorIndex = Math.floor(rowIndex /(grid.size - 1)*(RAINBOW_COLORS.length - 1));return RAINBOW_COLORS[colorIndex] || RAINBOW_COLORS[0];},[grid.size]);const containerDimensions = useMemo(()=>({width:grid.width + padding * 2,height:grid.height + padding * 2}),[grid.width,grid.height,padding]);const bubblePopHandlers = useMemo(()=>{const handlers ={};grid.bubbles.forEach((row,rowIndex)=>{row.forEach((bubble,colIndex)=>{if(bubble){handlers[bubble.id] =()=> onBubblePop(rowIndex,colIndex);}});});return handlers;},[grid.bubbles,onBubblePop]);return _jsxs(View,{style:[styles.container,containerDimensions],children:[_jsxs(View,{style:[styles.backgroundContainer,styles.fidget3D,{...containerDimensions,borderRadius:20,overflow:'hidden'}],children:[_jsx(View,{style:[styles.outerBorder,{...containerDimensions,borderRadius:20}]}),_jsx(View,{style:[styles.innerRecess,{position:'absolute',left:8,top:8,width:containerDimensions.width - 16,height:containerDimensions.height - 16,borderRadius:12,overflow:'hidden'}],children:grid.bubbles.map((_,rowIndex)=>{const rowHeight = grid.height / grid.size;const rowColor = getRowColor(rowIndex);return _jsx(View,{style:{position:'absolute',left:padding - 8,top:padding - 8 + rowIndex * rowHeight,width:grid.width,height:rowHeight,backgroundColor:`${rowColor}50`}},`row-bg-${rowIndex}`);})})]}),_jsx(View,{style:{position:'absolute',left:padding,top:padding},children:grid.bubbles.map((row,_rowIndex)=> row.map((bubble,_colIndex)=>{if(!bubble)return null;const bubbleHandler = bubblePopHandlers[bubble.id];if(!bubbleHandler)return null;return _jsx(BubbleComponent,{bubble:bubble,size:bubbleSize,onPop:bubbleHandler,hapticEnabled:hapticEnabled,isPlaying:isPlaying},bubble.id);}))})]});};const styles = StyleSheet.create({container:{position:'relative',padding:15},backgroundContainer:{position:'absolute'},fidget3D:{shadowColor:'#000',shadowOffset:{width:0,height:8},shadowOpacity:0.4,shadowRadius:12,elevation:12},outerBorder:{position:'absolute',backgroundColor:'#f0f0f0',borderWidth:2,borderTopColor:'#ffffff',borderLeftColor:'#ffffff',borderRightColor:'#cccccc',borderBottomColor:'#aaaaaa'},innerRecess:{backgroundColor:'#e8e8e8',borderWidth:1,borderTopColor:'#cccccc',borderLeftColor:'#cccccc',borderRightColor:'#ffffff',borderBottomColor:'#ffffff',shadowColor:'#000',shadowOffset:{width:0,height:-2},shadowOpacity:0.2,shadowRadius:4,elevation:-2}});const MemoizedFidgetGrid = React.memo(FidgetGrid,(prevProps,nextProps)=>{return prevProps.grid.size === nextProps.grid.size && prevProps.grid.width === nextProps.grid.width && prevProps.grid.height === nextProps.grid.height && prevProps.bubbleSize === nextProps.bubbleSize && prevProps.hapticEnabled === nextProps.hapticEnabled && prevProps.isPlaying === nextProps.isPlaying && prevProps.onBubblePop === nextProps.onBubblePop && JSON.stringify(prevProps.grid.bubbles.map(row => row.map(bubble => bubble ?{id:bubble.id,isPopped:bubble.isPopped}:null)))=== JSON.stringify(nextProps.grid.bubbles.map(row => row.map(bubble => bubble ?{id:bubble.id,isPopped:bubble.isPopped}:null)));});export default MemoizedFidgetGrid;
@@ -1,177 +1 @@
1
- "use strict";
2
-
3
- import React from 'react';
4
- import { StyleSheet, View } from 'react-native';
5
- import { Canvas, LinearGradient, Rect, Circle, vec } from '@shopify/react-native-skia';
6
- import { RAINBOW_COLORS } from "../PopitFidgetConstants.js";
7
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
- const GameBackground = ({
9
- width,
10
- height
11
- }) => {
12
- // Generate static colorful floating bubble decorations with subtle positioning variations
13
- const generateFloatingBubbles = React.useMemo(() => {
14
- const bubbles = [];
15
- const bubbleCount = 15; // Reduced count for better performance
16
-
17
- for (let i = 0; i < bubbleCount; i++) {
18
- const baseX = width / bubbleCount * i;
19
- const baseY = height / bubbleCount * i;
20
-
21
- // Add subtle random offset for natural look
22
- const x = baseX + Math.sin(i * 0.5) * 30 + Math.random() * 60;
23
- const y = baseY + Math.cos(i * 0.7) * 40 + Math.random() * 80;
24
- const radius = 8 + Math.random() * 12;
25
- const colorIndex = i % RAINBOW_COLORS.length; // Cycle through colors for consistency
26
- const opacity = 0.2 + Math.sin(i) * 0.1; // Subtle opacity variation
27
-
28
- bubbles.push(/*#__PURE__*/_jsx(Circle, {
29
- cx: Math.max(radius, Math.min(width - radius, x)),
30
- cy: Math.max(radius, Math.min(height - radius, y)),
31
- r: radius,
32
- color: `${RAINBOW_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2, '0')}`
33
- }, `floating-bubble-${i}`));
34
- }
35
- return bubbles;
36
- }, [width, height]);
37
- return /*#__PURE__*/_jsx(View, {
38
- style: StyleSheet.absoluteFillObject,
39
- children: /*#__PURE__*/_jsxs(Canvas, {
40
- style: {
41
- width,
42
- height
43
- },
44
- children: [/*#__PURE__*/_jsx(Rect, {
45
- x: 0,
46
- y: 0,
47
- width: width,
48
- height: height,
49
- children: /*#__PURE__*/_jsx(LinearGradient, {
50
- start: vec(0, 0),
51
- end: vec(width, height),
52
- colors: [`${RAINBOW_COLORS[0]}40`,
53
- // Vibrant pink
54
- `${RAINBOW_COLORS[2]}35`,
55
- // Vibrant orange
56
- `${RAINBOW_COLORS[4]}40`,
57
- // Vibrant yellow
58
- `${RAINBOW_COLORS[6]}35`,
59
- // Vibrant lime
60
- `${RAINBOW_COLORS[8]}40`,
61
- // Vibrant green
62
- `${RAINBOW_COLORS[10]}35`,
63
- // Vibrant cyan
64
- `${RAINBOW_COLORS[12]}40`,
65
- // Vibrant blue
66
- `${RAINBOW_COLORS[14]}35` // Vibrant purple
67
- ]
68
- })
69
- }), /*#__PURE__*/_jsx(Rect, {
70
- x: 0,
71
- y: 0,
72
- width: width,
73
- height: height,
74
- children: /*#__PURE__*/_jsx(LinearGradient, {
75
- start: vec(0, 0),
76
- end: vec(width / 2, height / 2),
77
- colors: [`${RAINBOW_COLORS[1]}25`,
78
- // Bright red
79
- 'transparent', `${RAINBOW_COLORS[5]}25`,
80
- // Bright deep purple
81
- 'transparent', `${RAINBOW_COLORS[9]}25`,
82
- // Bright teal
83
- 'transparent', `${RAINBOW_COLORS[13]}25`,
84
- // Bright indigo
85
- 'transparent']
86
- })
87
- }), /*#__PURE__*/_jsx(Rect, {
88
- x: 0,
89
- y: 0,
90
- width: width,
91
- height: height,
92
- children: /*#__PURE__*/_jsx(LinearGradient, {
93
- start: vec(width, 0),
94
- end: vec(0, height),
95
- colors: [`${RAINBOW_COLORS[3]}20`,
96
- // Bright orange
97
- 'transparent', `${RAINBOW_COLORS[7]}20`,
98
- // Bright light green
99
- 'transparent', `${RAINBOW_COLORS[11]}20`,
100
- // Bright light blue
101
- 'transparent']
102
- })
103
- }), generateFloatingBubbles, /*#__PURE__*/_jsx(Circle, {
104
- cx: width * 0.1,
105
- cy: height * 0.15,
106
- r: 40,
107
- color: `${RAINBOW_COLORS[0]}30` // Vibrant pink
108
- }), /*#__PURE__*/_jsx(Circle, {
109
- cx: width * 0.9,
110
- cy: height * 0.85,
111
- r: 35,
112
- color: `${RAINBOW_COLORS[3]}30` // Vibrant orange
113
- }), /*#__PURE__*/_jsx(Circle, {
114
- cx: width * 0.85,
115
- cy: height * 0.2,
116
- r: 30,
117
- color: `${RAINBOW_COLORS[8]}30` // Vibrant green
118
- }), /*#__PURE__*/_jsx(Circle, {
119
- cx: width * 0.15,
120
- cy: height * 0.8,
121
- r: 45,
122
- color: `${RAINBOW_COLORS[12]}30` // Vibrant blue
123
- }), /*#__PURE__*/_jsx(Circle, {
124
- cx: width * 0.5,
125
- cy: height * 0.1,
126
- r: 25,
127
- color: `${RAINBOW_COLORS[14]}30` // Vibrant purple
128
- }), /*#__PURE__*/_jsx(Circle, {
129
- cx: width * 0.2,
130
- cy: height * 0.5,
131
- r: 32,
132
- color: `${RAINBOW_COLORS[6]}30` // Vibrant lime
133
- }), /*#__PURE__*/_jsx(Circle, {
134
- cx: width * 0.8,
135
- cy: height * 0.6,
136
- r: 28,
137
- color: `${RAINBOW_COLORS[10]}30` // Vibrant cyan
138
- }), /*#__PURE__*/_jsx(Circle, {
139
- cx: width * 0.6,
140
- cy: height * 0.9,
141
- r: 20,
142
- color: `${RAINBOW_COLORS[1]}30` // Vibrant red
143
- }), /*#__PURE__*/_jsx(Circle, {
144
- cx: width * 0.3,
145
- cy: height * 0.25,
146
- r: 24,
147
- color: `${RAINBOW_COLORS[4]}30` // Vibrant yellow
148
- }), /*#__PURE__*/_jsx(Circle, {
149
- cx: width * 0.7,
150
- cy: height * 0.35,
151
- r: 26,
152
- color: `${RAINBOW_COLORS[9]}30` // Vibrant teal
153
- }), Array.from({
154
- length: Math.floor(width / 40)
155
- }, (_, i) => /*#__PURE__*/_jsx(Rect, {
156
- x: i * 40,
157
- y: 0,
158
- width: 1,
159
- height: height,
160
- color: "rgba(0, 0, 0, 0.02)"
161
- }, `grid-v-${i}`)), Array.from({
162
- length: Math.floor(height / 40)
163
- }, (_, i) => /*#__PURE__*/_jsx(Rect, {
164
- x: 0,
165
- y: i * 40,
166
- width: width,
167
- height: 1,
168
- color: "rgba(0, 0, 0, 0.02)"
169
- }, `grid-h-${i}`))]
170
- })
171
- });
172
- };
173
-
174
- // Memoize GameBackground to prevent unnecessary re-renders
175
- const MemoizedGameBackground = /*#__PURE__*/React.memo(GameBackground);
176
- export default MemoizedGameBackground;
177
- //# sourceMappingURL=GameBackground.js.map
1
+ "use strict";import React from 'react';import{StyleSheet,View}from 'react-native';import{Canvas,LinearGradient,Rect,Circle,vec}from '@shopify/react-native-skia';import{RAINBOW_COLORS}from "../PopitFidgetConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const GameBackground =({width,height})=>{const generateFloatingBubbles = React.useMemo(()=>{const bubbles = [];const bubbleCount = 15;for(let i = 0;i < bubbleCount;i++){const baseX = width / bubbleCount * i;const baseY = height / bubbleCount * i;const x = baseX + Math.sin(i * 0.5)* 30 + Math.random()* 60;const y = baseY + Math.cos(i * 0.7)* 40 + Math.random()* 80;const radius = 8 + Math.random()* 12;const colorIndex = i % RAINBOW_COLORS.length;const opacity = 0.2 + Math.sin(i)* 0.1;bubbles.push(_jsx(Circle,{cx:Math.max(radius,Math.min(width - radius,x)),cy:Math.max(radius,Math.min(height - radius,y)),r:radius,color:`${RAINBOW_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`floating-bubble-${i}`));}return bubbles;},[width,height]);return _jsx(View,{style:StyleSheet.absoluteFillObject,children:_jsxs(Canvas,{style:{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:[`${RAINBOW_COLORS[0]}40`,`${RAINBOW_COLORS[2]}35`,`${RAINBOW_COLORS[4]}40`,`${RAINBOW_COLORS[6]}35`,`${RAINBOW_COLORS[8]}40`,`${RAINBOW_COLORS[10]}35`,`${RAINBOW_COLORS[12]}40`,`${RAINBOW_COLORS[14]}35` ]})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(0,0),end:vec(width / 2,height / 2),colors:[`${RAINBOW_COLORS[1]}25`,'transparent',`${RAINBOW_COLORS[5]}25`,'transparent',`${RAINBOW_COLORS[9]}25`,'transparent',`${RAINBOW_COLORS[13]}25`,'transparent']})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(width,0),end:vec(0,height),colors:[`${RAINBOW_COLORS[3]}20`,'transparent',`${RAINBOW_COLORS[7]}20`,'transparent',`${RAINBOW_COLORS[11]}20`,'transparent']})}),generateFloatingBubbles,_jsx(Circle,{cx:width * 0.1,cy:height * 0.15,r:40,color:`${RAINBOW_COLORS[0]}30`}),_jsx(Circle,{cx:width * 0.9,cy:height * 0.85,r:35,color:`${RAINBOW_COLORS[3]}30`}),_jsx(Circle,{cx:width * 0.85,cy:height * 0.2,r:30,color:`${RAINBOW_COLORS[8]}30`}),_jsx(Circle,{cx:width * 0.15,cy:height * 0.8,r:45,color:`${RAINBOW_COLORS[12]}30`}),_jsx(Circle,{cx:width * 0.5,cy:height * 0.1,r:25,color:`${RAINBOW_COLORS[14]}30`}),_jsx(Circle,{cx:width * 0.2,cy:height * 0.5,r:32,color:`${RAINBOW_COLORS[6]}30`}),_jsx(Circle,{cx:width * 0.8,cy:height * 0.6,r:28,color:`${RAINBOW_COLORS[10]}30`}),_jsx(Circle,{cx:width * 0.6,cy:height * 0.9,r:20,color:`${RAINBOW_COLORS[1]}30`}),_jsx(Circle,{cx:width * 0.3,cy:height * 0.25,r:24,color:`${RAINBOW_COLORS[4]}30`}),_jsx(Circle,{cx:width * 0.7,cy:height * 0.35,r:26,color:`${RAINBOW_COLORS[9]}30`}),Array.from({length:Math.floor(width / 40)},(_,i)=> _jsx(Rect,{x:i * 40,y:0,width:1,height:height,color:"rgba(0,0,0,0.02)"},`grid-v-${i}`)),Array.from({length:Math.floor(height / 40)},(_,i)=> _jsx(Rect,{x:0,y:i * 40,width:width,height:1,color:"rgba(0,0,0,0.02)"},`grid-h-${i}`))]})});};const MemoizedGameBackground = React.memo(GameBackground);export default MemoizedGameBackground;
@@ -1,61 +1 @@
1
- "use strict";
2
-
3
- import React from 'react';
4
- import { View, Text, StyleSheet } from 'react-native';
5
- import { ScoreBoardContainer } from "../../../helpers/index.js";
6
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- const ScoreBoard = ({
8
- timeElapsed,
9
- offset = 0
10
- }) => {
11
- // Format time as MM:SS
12
- const formatTime = seconds => {
13
- const mins = Math.floor(seconds / 60);
14
- const secs = seconds % 60;
15
- return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
16
- };
17
- return /*#__PURE__*/_jsx(ScoreBoardContainer, {
18
- offset: offset,
19
- backgroundColor: "rgba(108, 92, 231, 0.4)",
20
- borderColor: "rgba(139, 92, 246, 0.3)",
21
- children: /*#__PURE__*/_jsx(View, {
22
- style: styles.scoreBoard,
23
- children: /*#__PURE__*/_jsxs(View, {
24
- style: styles.scoreSection,
25
- children: [/*#__PURE__*/_jsx(Text, {
26
- style: styles.scoreLabel,
27
- children: "Time Elapsed"
28
- }), /*#__PURE__*/_jsx(Text, {
29
- style: styles.timeValue,
30
- children: formatTime(timeElapsed)
31
- })]
32
- })
33
- })
34
- });
35
- };
36
-
37
- // Memoize ScoreBoard to prevent unnecessary re-renders
38
- const MemoizedScoreBoard = /*#__PURE__*/React.memo(ScoreBoard);
39
- const styles = StyleSheet.create({
40
- scoreBoard: {
41
- flexDirection: 'row',
42
- justifyContent: 'center',
43
- alignItems: 'center'
44
- },
45
- scoreSection: {
46
- alignItems: 'center'
47
- },
48
- scoreLabel: {
49
- fontSize: 18,
50
- fontWeight: 'bold',
51
- color: '#ffffff',
52
- marginBottom: 4
53
- },
54
- timeValue: {
55
- fontSize: 30,
56
- fontWeight: 'bold',
57
- color: '#1e1b4b' // Dark purple color for Pop It theme
58
- }
59
- });
60
- export default MemoizedScoreBoard;
61
- //# sourceMappingURL=ScoreBoard.js.map
1
+ "use strict";import React from 'react';import{View,Text,StyleSheet}from 'react-native';import{ScoreBoardContainer}from "../../../helpers/index.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const ScoreBoard =({timeElapsed,offset = 0})=>{const formatTime = seconds =>{const mins = Math.floor(seconds / 60);const secs = seconds % 60;return `${mins.toString().padStart(2,'0')}:${secs.toString().padStart(2,'0')}`;};return _jsx(ScoreBoardContainer,{offset:offset,backgroundColor:"rgba(108,92,231,0.4)",borderColor:"rgba(139,92,246,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,children:formatTime(timeElapsed)})]})})});};const MemoizedScoreBoard = React.memo(ScoreBoard);const styles = StyleSheet.create({scoreBoard:{flexDirection:'row',justifyContent:'center',alignItems:'center'},scoreSection:{alignItems:'center'},scoreLabel:{fontSize:16,fontWeight:'bold',color:'#ffffff',marginBottom:4},timeValue:{fontSize:25,fontWeight:'bold',color:'#1e1b4b'}});export default MemoizedScoreBoard;
@@ -1,7 +1 @@
1
- "use strict";
2
-
3
- export { default as BubbleComponent } from "./BubbleComponent.js";
4
- export { default as FidgetGrid } from "./FidgetGrid.js";
5
- export { default as ScoreBoard } from "./ScoreBoard.js";
6
- export { default as GameBackground } from "./GameBackground.js";
7
- //# sourceMappingURL=index.js.map
1
+ "use strict";export{default as BubbleComponent}from "./BubbleComponent.js";export{default as FidgetGrid}from "./FidgetGrid.js";export{default as ScoreBoard}from "./ScoreBoard.js";export{default as GameBackground}from "./GameBackground.js";
@@ -1,159 +1 @@
1
- "use strict";
2
-
3
- import React, { useEffect, useMemo, useCallback } from 'react';
4
- import { View, StyleSheet } from 'react-native';
5
- import { GestureHandlerRootView } from 'react-native-gesture-handler';
6
- import { useSlidingNumbersStore } from "./SlidingNumbersStore.js";
7
- import { SlidingNumbersService } from "./SlidingNumbersService.js";
8
- import { GameBackground, NumbersGrid, ScoreBoard } from "./components/index.js";
9
- import { GameControlButton, GameOverModal } from "../../helpers/index.js";
10
- import { GameSettingsModal } from "../../helpers/index.js";
11
- import { SLIDING_NUMBERS_COLORS } from "./SlidingNumbersConstants.js";
12
- import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/UtilsService.js";
13
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
- export const SlidingNumbers = /*#__PURE__*/React.memo(({
15
- settings = DEFAULT_GAME_SETTINGS,
16
- onSettingsChange
17
- }) => {
18
- // Read UI-critical state independently to minimize re-renders
19
- const isPlaying = useSlidingNumbersStore(state => state.isPlaying);
20
- const isCompleted = useSlidingNumbersStore(state => state.isCompleted);
21
- const score = useSlidingNumbersStore(state => state.score);
22
-
23
- // Get store actions independently (these don't cause re-renders)
24
- const initializePuzzle = useSlidingNumbersStore(state => state.initializePuzzle);
25
- const shufflePuzzle = useSlidingNumbersStore(state => state.shufflePuzzle);
26
- const startGame = useSlidingNumbersStore(state => state.startGame);
27
- const stopGame = useSlidingNumbersStore(state => state.stopGame);
28
- const resetGame = useSlidingNumbersStore(state => state.resetGame);
29
- const decrementTime = useSlidingNumbersStore(state => state.decrementTime);
30
-
31
- // Get difficulty from external settings
32
- const difficulty = settings?.difficulty || 'easy';
33
-
34
- // Memoized game service creation to prevent recreation
35
- const gameService = useMemo(() => new SlidingNumbersService(), []);
36
-
37
- // Memoized difficulty settings
38
- const difficultySettings = useMemo(() => gameService.getDifficultySettings(difficulty), [gameService, difficulty]);
39
-
40
- // Initialize puzzle when difficulty changes
41
- useEffect(() => {
42
- initializePuzzle(difficultySettings.gridSize);
43
- }, [difficulty, difficultySettings.gridSize, initializePuzzle]);
44
-
45
- // Game timer effect
46
- useEffect(() => {
47
- if (isPlaying) {
48
- gameService.startTimer(() => {
49
- decrementTime();
50
- });
51
- } else {
52
- gameService.stopTimer();
53
- }
54
- return () => {
55
- gameService.stopTimer();
56
- };
57
- }, [isPlaying, gameService, decrementTime]);
58
-
59
- // Cleanup on unmount
60
- useEffect(() => {
61
- return () => {
62
- gameService.cleanup();
63
- };
64
- }, [gameService]);
65
-
66
- // Memoized game control handlers
67
- const handleStartGame = useCallback(() => {
68
- shufflePuzzle();
69
- startGame();
70
- }, [shufflePuzzle, startGame]);
71
- const handleStopGame = useCallback(() => {
72
- stopGame();
73
- }, [stopGame]);
74
- const handleResetGame = useCallback(() => {
75
- resetGame();
76
- // Re-initialize with current difficulty from settings
77
- initializePuzzle(difficultySettings.gridSize);
78
- }, [resetGame, initializePuzzle, difficultySettings.gridSize]);
79
-
80
- // Memoize GameControlButton props to prevent re-renders (CRITICAL)
81
- const gameControlButtonProps = useMemo(() => ({
82
- isPlaying,
83
- gameOver: isCompleted,
84
- onStartGame: handleStartGame,
85
- onStopGame: handleStopGame,
86
- startButtonText: "START GAME",
87
- stopButtonText: "STOP GAME",
88
- startButtonSubtext: "Shuffle and begin solving!",
89
- stopButtonSubtext: "End current game",
90
- startButtonColor: SLIDING_NUMBERS_COLORS.START_BUTTON,
91
- stopButtonColor: "#dc2626",
92
- startButtonBorderColor: SLIDING_NUMBERS_COLORS.BUTTON_BORDER,
93
- stopButtonBorderColor: "#f87171"
94
- }), [isPlaying, isCompleted, handleStartGame, handleStopGame]);
95
-
96
- // Memoize GameOverModal props
97
- const gameOverModalProps = useMemo(() => ({
98
- isVisible: isCompleted,
99
- score,
100
- onPlayAgain: handleResetGame,
101
- buttonText: "Play Again!",
102
- primaryColor: SLIDING_NUMBERS_COLORS.COMPLETION_OVERLAY,
103
- borderColor: "rgba(245, 158, 11, 0.9)",
104
- buttonColor: SLIDING_NUMBERS_COLORS.START_BUTTON,
105
- buttonBorderColor: SLIDING_NUMBERS_COLORS.BUTTON_BORDER
106
- }), [isCompleted, score, handleResetGame]);
107
-
108
- // Memoize GameSettingsModal props
109
- const gameSettingsModalProps = useMemo(() => ({
110
- gameId: GAME_IDS.SLIDING_NUMBERS,
111
- settings: settings || DEFAULT_GAME_SETTINGS,
112
- onSettingsChange
113
- }), [settings, onSettingsChange]);
114
-
115
- // Get offset from settings
116
- const offset = settings?.offset ?? 0;
117
-
118
- // Memoized dynamic styles based on offset
119
- const dynamicStyles = useMemo(() => ({
120
- gameArea: {
121
- ...styles.gameArea,
122
- marginTop: offset // Add margin to shift grid down while maintaining centering
123
- }
124
- }), [offset]);
125
- return /*#__PURE__*/_jsx(View, {
126
- style: styles.container,
127
- children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
128
- children: /*#__PURE__*/_jsxs(GameBackground, {
129
- children: [/*#__PURE__*/_jsx(View, {
130
- style: dynamicStyles.gameArea,
131
- children: /*#__PURE__*/_jsx(NumbersGrid, {
132
- difficulty: difficulty
133
- })
134
- }), /*#__PURE__*/_jsx(ScoreBoard, {
135
- offset: offset
136
- }), /*#__PURE__*/_jsx(GameControlButton, {
137
- ...gameControlButtonProps
138
- }), /*#__PURE__*/_jsx(GameOverModal, {
139
- ...gameOverModalProps
140
- }), /*#__PURE__*/_jsx(GameSettingsModal, {
141
- ...gameSettingsModalProps
142
- })]
143
- })
144
- })
145
- });
146
- });
147
- const styles = StyleSheet.create({
148
- container: {
149
- flex: 1,
150
- backgroundColor: SLIDING_NUMBERS_COLORS.BACKGROUND
151
- },
152
- gameArea: {
153
- flex: 1,
154
- justifyContent: 'center',
155
- alignItems: 'center'
156
- }
157
- });
158
- SlidingNumbers.displayName = 'SlidingNumbers';
159
- //# sourceMappingURL=SlidingNumbers.js.map
1
+ "use strict";import React,{useEffect,useMemo,useCallback}from 'react';import{View,StyleSheet}from 'react-native';import{GestureHandlerRootView}from 'react-native-gesture-handler';import{useSlidingNumbersStore}from "./SlidingNumbersStore.js";import{SlidingNumbersService}from "./SlidingNumbersService.js";import{GameBackground,NumbersGrid,ScoreBoard}from "./components/index.js";import{GameControlButton,GameOverModal}from "../../helpers/index.js";import{GameSettingsModal}from "../../helpers/index.js";import{SLIDING_NUMBERS_COLORS}from "./SlidingNumbersConstants.js";import{GAME_IDS,DEFAULT_GAME_SETTINGS}from "../../services/UtilsService.js";import{calculateTimeBasedScore}from "../../services/ScoringService.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";export const SlidingNumbers = React.memo(({settings = DEFAULT_GAME_SETTINGS,onSettingsChange,onEndGame})=>{const score = useSlidingNumbersStore(state => state.score);const timeElapsed = useSlidingNumbersStore(state => state.timeElapsed);const isPlaying = useSlidingNumbersStore(state => state.isPlaying);const isCompleted = useSlidingNumbersStore(state => state.isCompleted);const gameReportedRef = React.useRef(false);const difficulty = settings?.difficulty || 'easy';const reportGameEnd = React.useCallback(status =>{if(onEndGame && !gameReportedRef.current){const expectedTimes ={easy:120,medium:180,hard:240};const expectedTime = expectedTimes[difficulty];const calculatedScore = status === 'win' ? calculateTimeBasedScore(timeElapsed,expectedTime):0;onEndGame({status,score:calculatedScore.toString()});gameReportedRef.current = true;}},[onEndGame,timeElapsed,difficulty]);const initializePuzzle = useSlidingNumbersStore(state => state.initializePuzzle);const shufflePuzzle = useSlidingNumbersStore(state => state.shufflePuzzle);const startGame = useSlidingNumbersStore(state => state.startGame);const stopGame = useSlidingNumbersStore(state => state.stopGame);const resetGame = useSlidingNumbersStore(state => state.resetGame);const decrementTime = useSlidingNumbersStore(state => state.decrementTime);const gameService = useMemo(()=> new SlidingNumbersService(),[]);const difficultySettings = useMemo(()=> gameService.getDifficultySettings(difficulty),[gameService,difficulty]);useEffect(()=>{initializePuzzle(difficultySettings.gridSize);},[difficulty,difficultySettings.gridSize,initializePuzzle]);useEffect(()=>{if(isPlaying){gameService.startTimer(()=>{decrementTime();});}else{gameService.stopTimer();}return()=>{gameService.stopTimer();};},[isPlaying,gameService,decrementTime]);useEffect(()=>{if(isCompleted && !gameReportedRef.current){reportGameEnd('win');}if(!isCompleted){gameReportedRef.current = false;}},[isCompleted,reportGameEnd]);useEffect(()=>{return()=>{gameService.cleanup();};},[gameService]);const handleStartGame = useCallback(()=>{gameReportedRef.current = false;shufflePuzzle();startGame();},[shufflePuzzle,startGame]);const handleStopGame = useCallback(()=>{reportGameEnd('cancel');stopGame();},[stopGame,reportGameEnd]);const handleResetGame = useCallback(()=>{resetGame();initializePuzzle(difficultySettings.gridSize);},[resetGame,initializePuzzle,difficultySettings.gridSize]);const gameControlButtonProps = useMemo(()=>({isPlaying,gameOver:isCompleted,onStartGame:handleStartGame,onStopGame:handleStopGame,startButtonText:"START GAME",stopButtonText:"STOP GAME",startButtonSubtext:"Shuffle and begin solving!",stopButtonSubtext:"End current game",startButtonColor:SLIDING_NUMBERS_COLORS.START_BUTTON,stopButtonColor:"#dc2626",startButtonBorderColor:SLIDING_NUMBERS_COLORS.BUTTON_BORDER,stopButtonBorderColor:"#f87171"}),[isPlaying,isCompleted,handleStartGame,handleStopGame]);const gameOverModalProps = useMemo(()=>({isVisible:isCompleted,score,onPlayAgain:handleResetGame,buttonText:"Play Again!",primaryColor:"rgba(245,158,11,0.5)",borderColor:"rgba(245,158,11,0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:"#f59e0b"}),[isCompleted,score,handleResetGame]);const gameSettingsModalProps = useMemo(()=>({gameId:GAME_IDS.SLIDING_NUMBERS,settings:settings || DEFAULT_GAME_SETTINGS,onSettingsChange}),[settings,onSettingsChange]);const offset = settings?.offset ?? 0;const dynamicStyles = useMemo(()=>({gameArea:{...styles.gameArea,marginTop:offset}}),[offset]);return _jsx(View,{style:styles.container,children:_jsx(GestureHandlerRootView,{children:_jsxs(GameBackground,{children:[_jsx(View,{style:dynamicStyles.gameArea,children:_jsx(NumbersGrid,{difficulty:difficulty})}),_jsx(ScoreBoard,{offset:offset}),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{...gameSettingsModalProps})]})})});});const styles = StyleSheet.create({container:{flex:1,backgroundColor:SLIDING_NUMBERS_COLORS.BACKGROUND},gameArea:{flex:1,justifyContent:'center',alignItems:'center'}});SlidingNumbers.displayName = 'SlidingNumbers';
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useCallback","View","StyleSheet","GestureHandlerRootView","useSlidingNumbersStore","SlidingNumbersService","GameBackground","NumbersGrid","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","SLIDING_NUMBERS_COLORS","GAME_IDS","DEFAULT_GAME_SETTINGS","jsx","_jsx","jsxs","_jsxs","SlidingNumbers","memo","settings","onSettingsChange","isPlaying","state","isCompleted","score","initializePuzzle","shufflePuzzle","startGame","stopGame","resetGame","decrementTime","difficulty","gameService","difficultySettings","getDifficultySettings","gridSize","startTimer","stopTimer","cleanup","handleStartGame","handleStopGame","handleResetGame","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","START_BUTTON","stopButtonColor","startButtonBorderColor","BUTTON_BORDER","stopButtonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","COMPLETION_OVERLAY","borderColor","buttonColor","buttonBorderColor","gameSettingsModalProps","gameId","SLIDING_NUMBERS","offset","dynamicStyles","gameArea","styles","marginTop","style","container","children","create","flex","backgroundColor","BACKGROUND","justifyContent","alignItems","displayName"],"sourceRoot":"../../../../src","sources":["games/sliding-numbers/SlidingNumbers.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useMemo","useCallback","View","StyleSheet","GestureHandlerRootView","useSlidingNumbersStore","SlidingNumbersService","GameBackground","NumbersGrid","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","SLIDING_NUMBERS_COLORS","GAME_IDS","DEFAULT_GAME_SETTINGS","calculateTimeBasedScore","jsx","_jsx","jsxs","_jsxs","SlidingNumbers","memo","settings","onSettingsChange","onEndGame","score","state","timeElapsed","isPlaying","isCompleted","gameReportedRef","useRef","difficulty","reportGameEnd","status","current","expectedTimes","easy","medium","hard","expectedTime","calculatedScore","toString","initializePuzzle","shufflePuzzle","startGame","stopGame","resetGame","decrementTime","gameService","difficultySettings","getDifficultySettings","gridSize","startTimer","stopTimer","cleanup","handleStartGame","handleStopGame","handleResetGame","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","START_BUTTON","stopButtonColor","startButtonBorderColor","BUTTON_BORDER","stopButtonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","buttonTextColor","gameSettingsModalProps","gameId","SLIDING_NUMBERS","offset","dynamicStyles","gameArea","styles","marginTop","style","container","children","create","flex","backgroundColor","BACKGROUND","justifyContent","alignItems","displayName"],"sourceRoot":"../../../../src","sources":["games/sliding-numbers/SlidingNumbers.tsx"],"mappings":"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","ignoreList":[]}