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,StyleSheet}from 'react-native';import{GestureHandlerRootView}from 'react-native-gesture-handler';import{GameControlButton,GameOverModal,GameSettingsModal}from "../../helpers/index.js";import{DEFAULT_GAME_SETTINGS,GAME_IDS}from "../../services/UtilsService.js";import{playSound,GAME_SOUNDS}from "../../services/SoundsService.js";import{playHaptic,HapticType}from "../../services/HapticsService.js";import{usePerfectCircleStore,useIsPlaying,useGameOver,useGameWon,useAccuracy}from "./PerfectCircleStore.js";import{PerfectCircleService}from "./PerfectCircleService.js";import{PERFECT_CIRCLE_COLORS,getDifficultySettings,ACCURACY_LEVELS}from "./PerfectCircleConstants.js";import{GameBackground}from "./components/GameBackground.js";import{ScoreBoard}from "./components/ScoreBoard.js";import{DrawingCanvas}from "./components/DrawingCanvas.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const PerfectCircleComponent =({settings:externalSettings = DEFAULT_GAME_SETTINGS,onSettingsChange,onEndGame})=>{const{difficulty,soundEnabled,hapticEnabled,offset}= React.useMemo(()=>({difficulty:externalSettings?.difficulty || 'medium',soundEnabled:externalSettings?.enableSounds ?? true,hapticEnabled:externalSettings?.enableHaptics ?? true,offset:externalSettings?.offset ?? 0}),[externalSettings?.difficulty,externalSettings?.enableSounds,externalSettings?.enableHaptics,externalSettings?.offset]);const isPlaying = useIsPlaying();const gameOver = useGameOver();const gameWon = useGameWon();const accuracy = useAccuracy();const gameReportedRef = React.useRef(false);const reportGameEnd = React.useCallback(status =>{if(onEndGame && !gameReportedRef.current){onEndGame({status,score:accuracy.toFixed(2)});gameReportedRef.current = true;}},[onEndGame,accuracy]);const resetGame = React.useCallback(()=> usePerfectCircleStore.getState().resetGame(),[]);const gameService = React.useMemo(()=> new PerfectCircleService(),[]);const difficultySettings = React.useMemo(()=> getDifficultySettings(difficulty),[difficulty]);const handleAccuracyCalculated = React.useCallback(calculatedAccuracy =>{if(calculatedAccuracy >= difficultySettings.minAccuracy){playSound(GAME_SOUNDS.PERFECT_CIRCLE.SUCCESS,soundEnabled);playHaptic(HapticType.SUCCESS,hapticEnabled);}else{playSound(GAME_SOUNDS.PERFECT_CIRCLE.FAIL,soundEnabled);playHaptic(HapticType.HEAVY,hapticEnabled);}},[soundEnabled,hapticEnabled,difficultySettings.minAccuracy]);React.useEffect(()=>{gameService.setCallbacks(handleAccuracyCalculated);},[gameService,handleAccuracyCalculated]);React.useEffect(()=>{if((gameOver || gameWon)&& !gameReportedRef.current){const status = gameWon ? 'win':'lose';reportGameEnd(status);}if(!gameOver && !gameWon){gameReportedRef.current = false;}},[gameOver,gameWon,reportGameEnd]);React.useEffect(()=>{return()=>{gameService.cleanup();usePerfectCircleStore.getState().resetGame();};},[gameService]);const handleStartGame = React.useCallback(()=>{gameReportedRef.current = false;gameService.startGame();playSound(GAME_SOUNDS.PERFECT_CIRCLE.START,soundEnabled);playHaptic(HapticType.SUCCESS,hapticEnabled);},[gameService,soundEnabled,hapticEnabled]);const handleStopGame = React.useCallback(()=>{reportGameEnd('cancel');resetGame();gameService.resetGame();},[resetGame,gameService,reportGameEnd]);const handleResetGame = React.useCallback(()=>{resetGame();gameService.resetGame();},[resetGame,gameService]);const handlePlayAgain = React.useCallback(()=>{handleResetGame();},[handleResetGame]);const accuracyLevel = React.useMemo(()=>{for(const level of Object.values(ACCURACY_LEVELS)){if(accuracy >= level.min){return level;}}return ACCURACY_LEVELS.POOR;},[accuracy]);const gameControlButtonProps = React.useMemo(()=>({isPlaying,gameOver,onStartGame:handleStartGame,onStopGame:handleStopGame,startButtonColor:PERFECT_CIRCLE_COLORS.UI,stopButtonColor:PERFECT_CIRCLE_COLORS.UI,startButtonBorderColor:PERFECT_CIRCLE_COLORS.UI,stopButtonBorderColor:PERFECT_CIRCLE_COLORS.UI,startButtonText:'START DRAWING',stopButtonText:'STOP GAME',startButtonSubtext:'Draw the perfect circle!'}),[isPlaying,gameOver,handleStartGame,handleStopGame]);const gameOverModalProps = React.useMemo(()=>({isVisible:gameOver,score:accuracy,onPlayAgain:handlePlayAgain,buttonText:'Try Again',primaryColor:'rgba(0,212,255,0.85)',borderColor:PERFECT_CIRCLE_COLORS.UI,buttonColor:'#ffffff',buttonBorderColor:'#ffffff',buttonTextColor:PERFECT_CIRCLE_COLORS.UI,title:gameWon ? `${accuracyLevel.emoji}${accuracyLevel.label}`:'😔 NOT QUITE!',message:gameWon ? `${accuracy}% accuracy - Amazing circle!`:`${accuracy}% accuracy - Need >50% to win`}),[gameOver,accuracy,handlePlayAgain,gameWon,accuracyLevel]);return _jsx(View,{style:styles.container,children:_jsx(GestureHandlerRootView,{style:styles.gestureRoot,children:_jsxs(GameBackground,{offset:offset,children:[_jsx(ScoreBoard,{offset:offset}),_jsx(DrawingCanvas,{gameService:gameService,offset:offset}),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{gameId:GAME_IDS.PERFECT_CIRCLE,settings:{...DEFAULT_GAME_SETTINGS,...externalSettings},onSettingsChange:onSettingsChange})]})})});};const styles = StyleSheet.create({container:{flex:1},gestureRoot:{flex:1}});const arePropsEqual =(prevProps,nextProps)=>{return prevProps.settings?.difficulty === nextProps.settings?.difficulty && prevProps.settings?.enableSounds === nextProps.settings?.enableSounds && prevProps.settings?.enableHaptics === nextProps.settings?.enableHaptics && prevProps.settings?.offset === nextProps.settings?.offset && prevProps.settings?.isVisible === nextProps.settings?.isVisible && prevProps.onSettingsChange === nextProps.onSettingsChange;};export const PerfectCircle = React.memo(PerfectCircleComponent,arePropsEqual);PerfectCircle.displayName = 'PerfectCircle';
1
+ "use strict";import e from"react";import{View as r,StyleSheet as o}from"react-native";import{GestureHandlerRootView as t}from"react-native-gesture-handler";import{GameControlButton as n,GameOverModal as i,GameSettingsModal as s}from"../../helpers/index.js";import{DEFAULT_GAME_SETTINGS as c,GAME_IDS as a}from"../../services/UtilsService.js";import{playSound as f,GAME_SOUNDS as m}from"../../services/SoundsService.js";import{playHaptic as l,HapticType as d}from"../../services/HapticsService.js";import{usePerfectCircleStore as p,useAccuracy as u,useGameState as g}from"./PerfectCircleStore.js";import{PerfectCircleService as b}from"./PerfectCircleService.js";import{PERFECT_CIRCLE_COLORS as C,getDifficultySettings as S,ACCURACY_LEVELS as h}from"./PerfectCircleConstants.js";import{GameBackground as j}from"./components/GameBackground.js";import{ScoreBoard as v}from"./components/ScoreBoard.js";import{DrawingCanvas as y}from"./components/DrawingCanvas.js";import{jsx as x,jsxs as P}from"react/jsx-runtime";const w=({settings:o=c,onSettingsChange:w,onEndGame:B,onShare:T,onShowLeaderboard:G})=>{const{difficulty:O,soundEnabled:A,hapticEnabled:D,offset:I}=e.useMemo(()=>({difficulty:o?.difficulty||"medium",soundEnabled:o?.enableSounds??!0,hapticEnabled:o?.enableHaptics??!0,offset:o?.offset??0}),[o?.difficulty,o?.enableSounds,o?.enableHaptics,o?.offset]),{isPlaying:L,gameOver:N,gameWon:U}=g(),$=u(),k=e.useRef(!1),z=e.useCallback(e=>{B&&!k.current&&(B({status:e,score:$.toFixed(2)}),k.current=!0)},[B,$]),H=e.useCallback(()=>p.getState().resetGame(),[]),Q=e.useMemo(()=>new b,[]),R=e.useMemo(()=>S(O),[O]),V=e.useCallback(e=>{e<R.minAccuracy?(f(m.PERFECT_CIRCLE.FAIL,A),l(d.HEAVY,D)):(f(m.PERFECT_CIRCLE.SUCCESS,A),l(d.SUCCESS,D))},[A,D,R.minAccuracy]);e.useEffect(()=>{Q.setCallbacks(V)},[Q,V]),e.useEffect(()=>{!N&&!U||k.current||z(U?"win":"lose"),N||U||(k.current=!1)},[N,U,z]),e.useEffect(()=>()=>{Q.cleanup(),p.getState().resetGame()},[Q]);const W=e.useCallback(()=>{k.current=!1,Q.startGame(),f(m.PERFECT_CIRCLE.START,A),l(d.SUCCESS,D)},[Q,A,D]),q=e.useCallback(()=>{z("cancel"),H(),Q.resetGame()},[H,Q,z]),F=e.useCallback(()=>{H(),Q.resetGame()},[H,Q]),J=e.useCallback(()=>{F()},[F]),K=e.useMemo(()=>{for(const e of Object.values(h))if($>=e.min)return e;return h.POOR},[$]),M=e.useMemo(()=>({isPlaying:L,gameOver:N,onStartGame:W,onStopGame:q,onShare:T,onShowLeaderboard:G,startButtonSubtext:"Draw the perfect circle!",buttonColor:C.UI,buttonBorderColor:C.UI}),[L,N,W,q,T,G]),X=e.useMemo(()=>({isVisible:N,score:$,onPlayAgain:J,buttonText:"Try Again",primaryColor:"rgba(0, 212, 255, 0.85)",borderColor:C.UI,buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:C.UI,title:U?`${K.emoji} ${K.label}`:"\ud83d\ude14 NOT QUITE!",message:U?$+"% accuracy - Amazing circle!":$+"% accuracy - Need >50% to win"}),[N,$,J,U,K]);return x(r,{style:E.container,children:x(t,{style:E.gestureRoot,children:P(j,{offset:I,children:[x(v,{offset:I}),x(y,{gameService:Q,offset:I}),x(n,{...M}),x(i,{...X}),x(s,{gameId:a.PERFECT_CIRCLE,settings:{...c,...o},onSettingsChange:w})]})})})},E=o.create({container:{flex:1},gestureRoot:{flex:1}}),B=(e,r)=>e.settings?.difficulty===r.settings?.difficulty&&e.settings?.enableSounds===r.settings?.enableSounds&&e.settings?.enableHaptics===r.settings?.enableHaptics&&e.settings?.offset===r.settings?.offset&&e.settings?.isVisible===r.settings?.isVisible&&e.onSettingsChange===r.onSettingsChange;export const PerfectCircle=e.memo(w,B);PerfectCircle.displayName="PerfectCircle";
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","GestureHandlerRootView","GameControlButton","GameOverModal","GameSettingsModal","DEFAULT_GAME_SETTINGS","GAME_IDS","playSound","GAME_SOUNDS","playHaptic","HapticType","usePerfectCircleStore","useIsPlaying","useGameOver","useGameWon","useAccuracy","PerfectCircleService","PERFECT_CIRCLE_COLORS","getDifficultySettings","ACCURACY_LEVELS","GameBackground","ScoreBoard","DrawingCanvas","jsx","_jsx","jsxs","_jsxs","PerfectCircleComponent","settings","externalSettings","onSettingsChange","onEndGame","difficulty","soundEnabled","hapticEnabled","offset","useMemo","enableSounds","enableHaptics","isPlaying","gameOver","gameWon","accuracy","gameReportedRef","useRef","reportGameEnd","useCallback","status","current","score","toFixed","resetGame","getState","gameService","difficultySettings","handleAccuracyCalculated","calculatedAccuracy","minAccuracy","PERFECT_CIRCLE","SUCCESS","FAIL","HEAVY","useEffect","setCallbacks","cleanup","handleStartGame","startGame","START","handleStopGame","handleResetGame","handlePlayAgain","accuracyLevel","level","Object","values","min","POOR","gameControlButtonProps","onStartGame","onStopGame","startButtonColor","UI","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","startButtonText","stopButtonText","startButtonSubtext","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","buttonTextColor","title","emoji","label","message","style","styles","container","children","gestureRoot","gameId","create","flex","arePropsEqual","prevProps","nextProps","PerfectCircle","memo","displayName"],"sourceRoot":"../../../../src","sources":["games/perfect-circle/PerfectCircle.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","StyleSheet","GestureHandlerRootView","GameControlButton","GameOverModal","GameSettingsModal","DEFAULT_GAME_SETTINGS","GAME_IDS","playSound","GAME_SOUNDS","playHaptic","HapticType","usePerfectCircleStore","useAccuracy","useGameState","PerfectCircleService","PERFECT_CIRCLE_COLORS","getDifficultySettings","ACCURACY_LEVELS","GameBackground","ScoreBoard","DrawingCanvas","jsx","_jsx","jsxs","_jsxs","PerfectCircleComponent","settings","externalSettings","onSettingsChange","onEndGame","onShare","onShowLeaderboard","difficulty","soundEnabled","hapticEnabled","offset","useMemo","enableSounds","enableHaptics","isPlaying","gameOver","gameWon","accuracy","gameReportedRef","useRef","reportGameEnd","useCallback","status","current","score","toFixed","resetGame","getState","gameService","difficultySettings","handleAccuracyCalculated","calculatedAccuracy","minAccuracy","PERFECT_CIRCLE","SUCCESS","FAIL","HEAVY","useEffect","setCallbacks","cleanup","handleStartGame","startGame","START","handleStopGame","handleResetGame","handlePlayAgain","accuracyLevel","level","Object","values","min","POOR","gameControlButtonProps","onStartGame","onStopGame","startButtonSubtext","buttonColor","UI","buttonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonTextColor","title","emoji","label","message","style","styles","container","children","gestureRoot","gameId","create","flex","arePropsEqual","prevProps","nextProps","PerfectCircle","memo","displayName"],"sourceRoot":"../../../../src","sources":["games/perfect-circle/PerfectCircle.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";export const PERFECT_CIRCLE_DIFFICULTY_CONFIG ={easy:{minAccuracy:70},medium:{minAccuracy:80},hard:{minAccuracy:90}};export const getDifficultySettings = difficulty =>{return PERFECT_CIRCLE_DIFFICULTY_CONFIG[difficulty];};export const DEFAULT_PERFECT_CIRCLE_SETTINGS ={difficulty:'medium',soundEnabled:true,hapticEnabled:true,minAccuracy:PERFECT_CIRCLE_DIFFICULTY_CONFIG.medium.minAccuracy};export const PERFECT_CIRCLE_GAME_CONFIG ={MIN_POINTS:20,SAMPLE_POINTS:100,STROKE_WIDTH:4,GUIDE_CIRCLE_OPACITY:0.15};export const PERFECT_CIRCLE_COLORS ={BACKGROUND:'#1a1a2e',CANVAS:'#16213e',STROKE:'#00d4ff',GUIDE:'#ffffff',SUCCESS:'#4ecca3',FAIL:'#ff6b6b',UI:'#00d4ff',TEXT:'#ffffff'};export const PERFECT_CIRCLE_THEME ={backgroundColor:'rgba(0,0,0,0.7)',headerBackgroundColor:'#00d4ff',headerTextColor:'#ffffff',sectionBackgroundColor:'rgba(0,212,255,0.15)',sectionTitleColor:'#00d4ff',buttonSelectedColor:'#00d4ff',buttonUnselectedColor:'rgba(255,255,255,0.2)',buttonSelectedTextColor:'#ffffff',buttonUnselectedTextColor:'rgba(255,255,255,0.7)',switchTrackColorFalse:'rgba(0,212,255,0.3)',switchTrackColorTrue:'#00d4ff',switchThumbColor:'#ffffff',infoTextColor:'rgba(255,255,255,0.9)'};export const PERFECT_CIRCLE_DIFFICULTY_DESCRIPTIONS ={easy:'70% accuracy needed to win',medium:'80% accuracy needed to win',hard:'90% accuracy needed to win'};export const ACCURACY_LEVELS ={PERFECT:{min:95,label:'PERFECT!',emoji:'🎯'},EXCELLENT:{min:90,label:'EXCELLENT!',emoji:'⭐'},GREAT:{min:85,label:'GREAT!',emoji:'✨'},GOOD:{min:80,label:'GOOD!',emoji:'👍'},NICE:{min:70,label:'NICE TRY!',emoji:'👌'},POOR:{min:0,label:'KEEP TRYING!',emoji:'💪'}};
1
+ "use strict";export const PERFECT_CIRCLE_DIFFICULTY_CONFIG={easy:{minAccuracy:70},medium:{minAccuracy:80},hard:{minAccuracy:90}};export const getDifficultySettings=e=>PERFECT_CIRCLE_DIFFICULTY_CONFIG[e];export const DEFAULT_PERFECT_CIRCLE_SETTINGS={difficulty:"medium",soundEnabled:!0,hapticEnabled:!0,minAccuracy:PERFECT_CIRCLE_DIFFICULTY_CONFIG.medium.minAccuracy};export const PERFECT_CIRCLE_GAME_CONFIG={MIN_POINTS:20,SAMPLE_POINTS:100,STROKE_WIDTH:4,GUIDE_CIRCLE_OPACITY:.15,GUIDE_CIRCLE_RADIUS_OFFSET:20};export const PERFECT_CIRCLE_COLORS={BACKGROUND:"#1a1a2e",CANVAS:"#16213e",STROKE:"#00d4ff",GUIDE:"#ffffff",SUCCESS:"#4ecca3",FAIL:"#ff6b6b",UI:"#00d4ff",TEXT:"#ffffff"};export const PERFECT_CIRCLE_THEME={backgroundColor:"rgba(0, 0, 0, 0.7)",headerBackgroundColor:"#00d4ff",headerTextColor:"#ffffff",sectionBackgroundColor:"rgba(0, 212, 255, 0.15)",sectionTitleColor:"#00d4ff",buttonSelectedColor:"#00d4ff",buttonUnselectedColor:"rgba(255, 255, 255, 0.2)",buttonSelectedTextColor:"#ffffff",buttonUnselectedTextColor:"rgba(255, 255, 255, 0.7)",switchTrackColorFalse:"rgba(0, 212, 255, 0.3)",switchTrackColorTrue:"#00d4ff",switchThumbColor:"#ffffff",infoTextColor:"rgba(255, 255, 255, 0.9)"};export const PERFECT_CIRCLE_DIFFICULTY_DESCRIPTIONS={easy:"70% accuracy needed to win",medium:"80% accuracy needed to win",hard:"90% accuracy needed to win"};export const ACCURACY_LEVELS={PERFECT:{min:95,label:"PERFECT!",emoji:"\ud83c\udfaf"},EXCELLENT:{min:90,label:"EXCELLENT!",emoji:"\u2b50"},GREAT:{min:85,label:"GREAT!",emoji:"\u2728"},GOOD:{min:80,label:"GOOD!",emoji:"\ud83d\udc4d"},NICE:{min:70,label:"NICE TRY!",emoji:"\ud83d\udc4c"},POOR:{min:0,label:"KEEP TRYING!",emoji:"\ud83d\udcaa"}};
@@ -1 +1 @@
1
- {"version":3,"names":["PERFECT_CIRCLE_DIFFICULTY_CONFIG","easy","minAccuracy","medium","hard","getDifficultySettings","difficulty","DEFAULT_PERFECT_CIRCLE_SETTINGS","soundEnabled","hapticEnabled","PERFECT_CIRCLE_GAME_CONFIG","MIN_POINTS","SAMPLE_POINTS","STROKE_WIDTH","GUIDE_CIRCLE_OPACITY","PERFECT_CIRCLE_COLORS","BACKGROUND","CANVAS","STROKE","GUIDE","SUCCESS","FAIL","UI","TEXT","PERFECT_CIRCLE_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","PERFECT_CIRCLE_DIFFICULTY_DESCRIPTIONS","ACCURACY_LEVELS","PERFECT","min","label","emoji","EXCELLENT","GREAT","GOOD","NICE","POOR"],"sourceRoot":"../../../../src","sources":["games/perfect-circle/PerfectCircleConstants.ts"],"mappings":";;AAEA;;AAQA;AACA,OAAO,MAAMA,gCAAgC,GAAG;EAC9CC,IAAI,EAAE;IACJC,WAAW,EAAE,EAAE,CAAE;EACnB,CAAC;EACDC,MAAM,EAAE;IACND,WAAW,EAAE,EAAE,CAAE;EACnB,CAAC;EACDE,IAAI,EAAE;IACJF,WAAW,EAAE,EAAE,CAAE;EACnB;AACF,CAAU;;AAEV;AACA,OAAO,MAAMG,qBAAqB,GAAIC,UAAsC,IAAK;EAC/E,OAAON,gCAAgC,CAACM,UAAU,CAAC;AACrD,CAAC;;AAED;AACA,OAAO,MAAMC,+BAAsD,GAAG;EACpED,UAAU,EAAE,QAAQ;EACpBE,YAAY,EAAE,IAAI;EAClBC,aAAa,EAAE,IAAI;EACnBP,WAAW,EAAEF,gCAAgC,CAACG,MAAM,CAACD;AACvD,CAAC;;AAED;AACA,OAAO,MAAMQ,0BAA0B,GAAG;EACxCC,UAAU,EAAE,EAAE;EAAE;EAChBC,aAAa,EAAE,GAAG;EAAE;EACpBC,YAAY,EAAE,CAAC;EAAE;EACjBC,oBAAoB,EAAE,IAAI,CAAE;AAC9B,CAAU;;AAEV;AACA,OAAO,MAAMC,qBAAqB,GAAG;EACnCC,UAAU,EAAE,SAAS;EACrBC,MAAM,EAAE,SAAS;EACjBC,MAAM,EAAE,SAAS;EACjBC,KAAK,EAAE,SAAS;EAChBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,SAAS;EACbC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA,OAAO,MAAMC,oBAAuC,GAAG;EACrDC,eAAe,EAAE,oBAAoB;EACrCC,qBAAqB,EAAE,SAAS;EAChCC,eAAe,EAAE,SAAS;EAC1BC,sBAAsB,EAAE,yBAAyB;EACjDC,iBAAiB,EAAE,SAAS;EAC5BC,mBAAmB,EAAE,SAAS;EAC9BC,qBAAqB,EAAE,0BAA0B;EACjDC,uBAAuB,EAAE,SAAS;EAClCC,yBAAyB,EAAE,0BAA0B;EACrDC,qBAAqB,EAAE,wBAAwB;EAC/CC,oBAAoB,EAAE,SAAS;EAC/BC,gBAAgB,EAAE,SAAS;EAC3BC,aAAa,EAAE;AACjB,CAAC;;AAED;AACA,OAAO,MAAMC,sCAAsC,GAAG;EACpDrC,IAAI,EAAE,4BAA4B;EAClCE,MAAM,EAAE,4BAA4B;EACpCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA,OAAO,MAAMmC,eAAe,GAAG;EAC7BC,OAAO,EAAE;IAAEC,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,UAAU;IAAEC,KAAK,EAAE;EAAK,CAAC;EACpDC,SAAS,EAAE;IAAEH,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,YAAY;IAAEC,KAAK,EAAE;EAAI,CAAC;EACvDE,KAAK,EAAE;IAAEJ,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,QAAQ;IAAEC,KAAK,EAAE;EAAI,CAAC;EAC/CG,IAAI,EAAE;IAAEL,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,OAAO;IAAEC,KAAK,EAAE;EAAK,CAAC;EAC9CI,IAAI,EAAE;IAAEN,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,WAAW;IAAEC,KAAK,EAAE;EAAK,CAAC;EAClDK,IAAI,EAAE;IAAEP,GAAG,EAAE,CAAC;IAAEC,KAAK,EAAE,cAAc;IAAEC,KAAK,EAAE;EAAK;AACrD,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["PERFECT_CIRCLE_DIFFICULTY_CONFIG","easy","minAccuracy","medium","hard","getDifficultySettings","difficulty","DEFAULT_PERFECT_CIRCLE_SETTINGS","soundEnabled","hapticEnabled","PERFECT_CIRCLE_GAME_CONFIG","MIN_POINTS","SAMPLE_POINTS","STROKE_WIDTH","GUIDE_CIRCLE_OPACITY","GUIDE_CIRCLE_RADIUS_OFFSET","PERFECT_CIRCLE_COLORS","BACKGROUND","CANVAS","STROKE","GUIDE","SUCCESS","FAIL","UI","TEXT","PERFECT_CIRCLE_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","PERFECT_CIRCLE_DIFFICULTY_DESCRIPTIONS","ACCURACY_LEVELS","PERFECT","min","label","emoji","EXCELLENT","GREAT","GOOD","NICE","POOR"],"sourceRoot":"../../../../src","sources":["games/perfect-circle/PerfectCircleConstants.ts"],"mappings":";;AAEA;;AAQA;AACA,OAAO,MAAMA,gCAAgC,GAAG;EAC9CC,IAAI,EAAE;IACJC,WAAW,EAAE,EAAE,CAAE;EACnB,CAAC;EACDC,MAAM,EAAE;IACND,WAAW,EAAE,EAAE,CAAE;EACnB,CAAC;EACDE,IAAI,EAAE;IACJF,WAAW,EAAE,EAAE,CAAE;EACnB;AACF,CAAU;;AAEV;AACA,OAAO,MAAMG,qBAAqB,GAAIC,UAAsC,IAAK;EAC/E,OAAON,gCAAgC,CAACM,UAAU,CAAC;AACrD,CAAC;;AAED;AACA,OAAO,MAAMC,+BAAsD,GAAG;EACpED,UAAU,EAAE,QAAQ;EACpBE,YAAY,EAAE,IAAI;EAClBC,aAAa,EAAE,IAAI;EACnBP,WAAW,EAAEF,gCAAgC,CAACG,MAAM,CAACD;AACvD,CAAC;;AAED;AACA,OAAO,MAAMQ,0BAA0B,GAAG;EACxCC,UAAU,EAAE,EAAE;EAAE;EAChBC,aAAa,EAAE,GAAG;EAAE;EACpBC,YAAY,EAAE,CAAC;EAAE;EACjBC,oBAAoB,EAAE,IAAI;EAAE;EAC5BC,0BAA0B,EAAE,EAAE,CAAE;AAClC,CAAU;;AAEV;AACA,OAAO,MAAMC,qBAAqB,GAAG;EACnCC,UAAU,EAAE,SAAS;EACrBC,MAAM,EAAE,SAAS;EACjBC,MAAM,EAAE,SAAS;EACjBC,KAAK,EAAE,SAAS;EAChBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,SAAS;EACbC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA,OAAO,MAAMC,oBAAuC,GAAG;EACrDC,eAAe,EAAE,oBAAoB;EACrCC,qBAAqB,EAAE,SAAS;EAChCC,eAAe,EAAE,SAAS;EAC1BC,sBAAsB,EAAE,yBAAyB;EACjDC,iBAAiB,EAAE,SAAS;EAC5BC,mBAAmB,EAAE,SAAS;EAC9BC,qBAAqB,EAAE,0BAA0B;EACjDC,uBAAuB,EAAE,SAAS;EAClCC,yBAAyB,EAAE,0BAA0B;EACrDC,qBAAqB,EAAE,wBAAwB;EAC/CC,oBAAoB,EAAE,SAAS;EAC/BC,gBAAgB,EAAE,SAAS;EAC3BC,aAAa,EAAE;AACjB,CAAC;;AAED;AACA,OAAO,MAAMC,sCAAsC,GAAG;EACpDtC,IAAI,EAAE,4BAA4B;EAClCE,MAAM,EAAE,4BAA4B;EACpCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA,OAAO,MAAMoC,eAAe,GAAG;EAC7BC,OAAO,EAAE;IAAEC,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,UAAU;IAAEC,KAAK,EAAE;EAAK,CAAC;EACpDC,SAAS,EAAE;IAAEH,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,YAAY;IAAEC,KAAK,EAAE;EAAI,CAAC;EACvDE,KAAK,EAAE;IAAEJ,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,QAAQ;IAAEC,KAAK,EAAE;EAAI,CAAC;EAC/CG,IAAI,EAAE;IAAEL,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,OAAO;IAAEC,KAAK,EAAE;EAAK,CAAC;EAC9CI,IAAI,EAAE;IAAEN,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE,WAAW;IAAEC,KAAK,EAAE;EAAK,CAAC;EAClDK,IAAI,EAAE;IAAEP,GAAG,EAAE,CAAC;IAAEC,KAAK,EAAE,cAAc;IAAEC,KAAK,EAAE;EAAK;AACrD,CAAU","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import{usePerfectCircleStore}from "./PerfectCircleStore.js";import{PERFECT_CIRCLE_GAME_CONFIG}from "./PerfectCircleConstants.js";export class PerfectCircleService{constructor(){}setCallbacks(onAccuracyCalculated){this.onAccuracyCalculated = onAccuracyCalculated;}startGame(){const store = usePerfectCircleStore.getState();store.startGame();}stopGame(){usePerfectCircleStore.getState().stopGame();}resetGame(){usePerfectCircleStore.getState().resetGame();}cleanup(){}calculateCircleAccuracy(points){if(points.length < PERFECT_CIRCLE_GAME_CONFIG.MIN_POINTS){return 0;}const centerX = points.reduce((sum,p)=> sum + p.x,0)/ points.length;const centerY = points.reduce((sum,p)=> sum + p.y,0)/ points.length;const radii = points.map(p =>{const dx = p.x - centerX;const dy = p.y - centerY;return Math.sqrt(dx * dx + dy * dy);});const avgRadius = radii.reduce((sum,r)=> sum + r,0)/ radii.length;if(avgRadius === 0){return 0;}const variance = radii.reduce((sum,r)=> sum + Math.pow(r - avgRadius,2),0)/ radii.length;const stdDev = Math.sqrt(variance);const coefficientOfVariation = stdDev / avgRadius;const accuracy = 100 * Math.exp(-coefficientOfVariation * 2.5);return Math.round(accuracy);}evaluateDrawing(){const store = usePerfectCircleStore.getState();const points = store.drawnPoints;if(points.length < PERFECT_CIRCLE_GAME_CONFIG.MIN_POINTS){store.setAccuracy(0);store.setGameResult(false);return;}const accuracy = this.calculateCircleAccuracy(points);store.setAccuracy(accuracy);this.onAccuracyCalculated?.(accuracy);const won = accuracy > 50;store.setGameResult(won);}finishDrawing(){this.evaluateDrawing();}}
1
+ "use strict";import{Dimensions as t}from"react-native";import{usePerfectCircleStore as r}from"./PerfectCircleStore.js";import{PERFECT_CIRCLE_GAME_CONFIG as e}from"./PerfectCircleConstants.js";const{width:c,height:n}=t.get("window"),o=c/2-e.GUIDE_CIRCLE_RADIUS_OFFSET;export class PerfectCircleService{constructor(){}setCallbacks(t){this.onAccuracyCalculated=t}startGame(){r.getState().startGame()}stopGame(){r.getState().stopGame()}resetGame(){r.getState().resetGame()}cleanup(){}fitCircle(t){const r=t.length;let e=0,c=0,n=0,o=0,a=0,s=0,i=0,h=0,f=0;for(const r of t){const t=r.x,u=r.y,l=t*t,M=u*u;e+=t,c+=u,n+=l,o+=M,a+=t*u,s+=l*t,i+=M*u,h+=l*u,f+=t*M}const u=r*n-e*e,l=r*a-e*c,M=r*o-c*c,m=.5*(r*s+r*f-e*n-e*o),d=.5*(r*h+r*i-c*n-c*o),C=u*M-l*l;if(1e-10>Math.abs(C)){const n=e/r,o=c/r;let a=0;for(const r of t)a+=Math.sqrt((r.x-n)**2+(r.y-o)**2);return{centerX:n,centerY:o,radius:a/r}}const v=(m*M-l*d)/C,p=(u*d-l*m)/C;let g=0;for(const r of t)g+=Math.sqrt((r.x-v)**2+(r.y-p)**2);return{centerX:v,centerY:p,radius:g/r}}calculateAngularCoverage(t,r,e){if(2>t.length)return 0;const c=t.map(t=>Math.atan2(t.y-e,t.x-r));let n=0;for(let t=1;t<c.length;t++){const r=c[t-1],e=c[t];if(void 0===r||void 0===e)continue;let o=e-r;for(;o>Math.PI;)o-=2*Math.PI;for(;-Math.PI>o;)o+=2*Math.PI;n+=Math.abs(o)}return Math.min(n/(2*Math.PI),1)}calculateCircleAccuracy(t,r){if(t.length<e.MIN_POINTS)return 0;const n=c/2,a=r,{centerX:s,centerY:i,radius:h}=this.fitCircle(t);if(30>h)return 0;const f=t[0],u=t[t.length-1];if(!f||!u)return 0;const l=Math.sqrt((u.x-f.x)**2+(u.y-f.y)**2),M=.15*o;if(l>M)return 0;const m=this.calculateAngularCoverage(t,s,i);if(.85>m)return 0;const d=100*Math.exp(-Math.abs(h-o)/o*3),C=100*Math.exp(-Math.sqrt((s-n)**2+(i-a)**2)/o*3);let v=0;for(const r of t){const t=Math.sqrt((r.x-s)**2+(r.y-i)**2);v+=Math.abs(t-h)/h}const p=v/t.length;return Math.round(Math.min(100,Math.max(0,.35*d+.25*C+30*Math.exp(3*-p)+5*(1-l/M)+33.33*(m-.85))))}evaluateDrawing(t=0){const c=r.getState(),o=c.drawnPoints;if(o.length<e.MIN_POINTS)return c.setAccuracy(0),void c.setGameResult(!1);const a=(n-t+100-350)/2,s=this.calculateCircleAccuracy(o,a);c.setAccuracy(s),this.onAccuracyCalculated?.(s);const i=s>50;c.setGameResult(i)}finishDrawing(t=0){this.evaluateDrawing(t)}}
@@ -1 +1 @@
1
- {"version":3,"names":["usePerfectCircleStore","PERFECT_CIRCLE_GAME_CONFIG","PerfectCircleService","constructor","setCallbacks","onAccuracyCalculated","startGame","store","getState","stopGame","resetGame","cleanup","calculateCircleAccuracy","points","length","MIN_POINTS","centerX","reduce","sum","p","x","centerY","y","radii","map","dx","dy","Math","sqrt","avgRadius","r","variance","pow","stdDev","coefficientOfVariation","accuracy","exp","round","evaluateDrawing","drawnPoints","setAccuracy","setGameResult","won","finishDrawing"],"sourceRoot":"../../../../src","sources":["games/perfect-circle/PerfectCircleService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Dimensions","usePerfectCircleStore","PERFECT_CIRCLE_GAME_CONFIG","width","screenWidth","height","screenHeight","get","GUIDE_CIRCLE_RADIUS","GUIDE_CIRCLE_RADIUS_OFFSET","PerfectCircleService","constructor","setCallbacks","onAccuracyCalculated","startGame","store","getState","stopGame","resetGame","cleanup","fitCircle","points","n","length","sumX","sumY","sumX2","sumY2","sumXY","sumX3","sumY3","sumX2Y","sumXY2","p","x","y","x2","y2","A","B","C","D","E","denom","Math","abs","centerX","centerY","radiusSum","sqrt","radius","calculateAngularCoverage","angles","map","atan2","totalAngle","i","prevAngle","currAngle","undefined","diff","PI","min","calculateCircleAccuracy","guideCircleCenterY","MIN_POINTS","guideCenterX","guideCenterY","start","end","closureDistance","maxAllowedGap","coverage","radiusDiff","radiusAccuracyScore","exp","centerDiff","centerDiffNormalized","centerAccuracyScore","totalDeviation","dist","deviation","avgDeviation","shapeConsistencyScore","closureBonus","coverageBonus","baseScore","accuracy","round","max","evaluateDrawing","offset","drawnPoints","setAccuracy","setGameResult","canvasHeight","won","finishDrawing"],"sourceRoot":"../../../../src","sources":["games/perfect-circle/PerfectCircleService.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import{create}from 'zustand';import{subscribeWithSelector}from 'zustand/middleware';import{immerMiddleware}from "../../services/UtilsService.js";export const usePerfectCircleStore = create()(subscribeWithSelector(immerMiddleware(set =>({isPlaying:false,isDrawing:false,gameOver:false,gameWon:false,accuracy:0,drawnPoints:[],startPoint:null,startGame:()=>{set(draft =>{draft.isPlaying = true;draft.isDrawing = false;draft.gameOver = false;draft.gameWon = false;draft.accuracy = 0;draft.drawnPoints = [];draft.startPoint = null;});},stopGame:()=>{set(draft =>{draft.isPlaying = false;draft.isDrawing = false;});},resetGame:()=>{set(draft =>{draft.isPlaying = false;draft.isDrawing = false;draft.gameOver = false;draft.gameWon = false;draft.accuracy = 0;draft.drawnPoints = [];draft.startPoint = null;});},startDrawing:point =>{set(draft =>{draft.isDrawing = true;draft.startPoint = point;draft.drawnPoints = [point];});},addPoint:point =>{set(draft =>{draft.drawnPoints.push(point);});},finishDrawing:()=>{set(draft =>{draft.isDrawing = false;});},setAccuracy:accuracy =>{set(draft =>{draft.accuracy = accuracy;});},setGameResult:won =>{set(draft =>{draft.gameOver = true;draft.gameWon = won;draft.isPlaying = false;draft.isDrawing = false;});},clearDrawing:()=>{set(draft =>{draft.drawnPoints = [];draft.startPoint = null;draft.isDrawing = false;draft.accuracy = 0;});}}))));export const useIsPlaying =()=> usePerfectCircleStore(state => state.isPlaying);export const useIsDrawing =()=> usePerfectCircleStore(state => state.isDrawing);export const useGameOver =()=> usePerfectCircleStore(state => state.gameOver);export const useGameWon =()=> usePerfectCircleStore(state => state.gameWon);export const useAccuracy =()=> usePerfectCircleStore(state => state.accuracy);export const useDrawnPoints =()=> usePerfectCircleStore(state => state.drawnPoints);
1
+ "use strict";import{create as e}from"zustand";import{subscribeWithSelector as r}from"zustand/middleware";import{useShallow as t}from"zustand/react/shallow";import{immerMiddleware as s}from"../../services/UtilsService.js";export const usePerfectCircleStore=e()(r(s(e=>({isPlaying:!1,isDrawing:!1,gameOver:!1,gameWon:!1,accuracy:0,drawnPoints:[],startPoint:null,startGame:()=>{e(e=>{e.isPlaying=!0,e.isDrawing=!1,e.gameOver=!1,e.gameWon=!1,e.accuracy=0,e.drawnPoints=[],e.startPoint=null})},stopGame:()=>{e(e=>{e.isPlaying=!1,e.isDrawing=!1})},resetGame:()=>{e(e=>{e.isPlaying=!1,e.isDrawing=!1,e.gameOver=!1,e.gameWon=!1,e.accuracy=0,e.drawnPoints=[],e.startPoint=null})},startDrawing:r=>{e(e=>{e.isDrawing=!0,e.startPoint=r,e.drawnPoints=[r]})},addPoint:r=>{e(e=>{e.drawnPoints.push(r)})},finishDrawing:()=>{e(e=>{e.isDrawing=!1})},setAccuracy:r=>{e(e=>{e.accuracy=r})},setGameResult:r=>{e(e=>{e.gameOver=!0,e.gameWon=r,e.isPlaying=!1,e.isDrawing=!1})},clearDrawing:()=>{e(e=>{e.drawnPoints=[],e.startPoint=null,e.isDrawing=!1,e.accuracy=0})}}))));export const useIsPlaying=()=>usePerfectCircleStore(e=>e.isPlaying);export const useIsDrawing=()=>usePerfectCircleStore(e=>e.isDrawing);export const useGameOver=()=>usePerfectCircleStore(e=>e.gameOver);export const useGameWon=()=>usePerfectCircleStore(e=>e.gameWon);export const useAccuracy=()=>usePerfectCircleStore(e=>e.accuracy);export const useDrawnPoints=()=>usePerfectCircleStore(e=>e.drawnPoints);export const useGameActions=()=>usePerfectCircleStore(t(e=>({startGame:e.startGame,stopGame:e.stopGame,resetGame:e.resetGame,startDrawing:e.startDrawing,addPoint:e.addPoint,finishDrawing:e.finishDrawing,setAccuracy:e.setAccuracy,setGameResult:e.setGameResult,clearDrawing:e.clearDrawing})));export const useGameState=()=>usePerfectCircleStore(t(e=>({isPlaying:e.isPlaying,gameOver:e.gameOver,gameWon:e.gameWon})));
@@ -1 +1 @@
1
- {"version":3,"names":["create","subscribeWithSelector","immerMiddleware","usePerfectCircleStore","set","isPlaying","isDrawing","gameOver","gameWon","accuracy","drawnPoints","startPoint","startGame","draft","stopGame","resetGame","startDrawing","point","addPoint","push","finishDrawing","setAccuracy","setGameResult","won","clearDrawing","useIsPlaying","state","useIsDrawing","useGameOver","useGameWon","useAccuracy","useDrawnPoints"],"sourceRoot":"../../../../src","sources":["games/perfect-circle/PerfectCircleStore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["create","subscribeWithSelector","useShallow","immerMiddleware","usePerfectCircleStore","set","isPlaying","isDrawing","gameOver","gameWon","accuracy","drawnPoints","startPoint","startGame","draft","stopGame","resetGame","startDrawing","point","addPoint","push","finishDrawing","setAccuracy","setGameResult","won","clearDrawing","useIsPlaying","state","useIsDrawing","useGameOver","useGameWon","useAccuracy","useDrawnPoints","useGameActions","useGameState"],"sourceRoot":"../../../../src","sources":["games/perfect-circle/PerfectCircleStore.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{View,Dimensions,StyleSheet}from 'react-native';import{Canvas,Path,Skia,Circle}from '@shopify/react-native-skia';import{Gesture,GestureDetector}from 'react-native-gesture-handler';import{runOnJS}from 'react-native-reanimated';import{usePerfectCircleStore,useDrawnPoints,useIsPlaying}from "../PerfectCircleStore.js";import{PERFECT_CIRCLE_COLORS,PERFECT_CIRCLE_GAME_CONFIG}from "../PerfectCircleConstants.js";import{playHaptic,HapticType}from "../../../services/HapticsService.js";import{playSound,GAME_SOUNDS}from "../../../services/SoundsService.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');const GUIDE_CIRCLE_RADIUS = width / 2 - 20;const DrawingCanvasComponent =({gameService,offset = 0})=>{const drawnPoints = useDrawnPoints();const isPlaying = useIsPlaying();const path = React.useMemo(()=>{if(drawnPoints.length === 0)return null;const skPath = Skia.Path.Make();const firstPoint = drawnPoints[0];if(!firstPoint)return null;skPath.moveTo(firstPoint.x,firstPoint.y);for(let i = 1;i < drawnPoints.length;i++){const point = drawnPoints[i];if(point){skPath.lineTo(point.x,point.y);}}return skPath;},[drawnPoints]);const startDrawingJS = React.useCallback((x,y)=>{usePerfectCircleStore.getState().startDrawing({x,y});playHaptic(HapticType.LIGHT,true);},[]);const addPointJS = React.useCallback((x,y)=>{usePerfectCircleStore.getState().addPoint({x,y});},[]);const finishDrawingJS = React.useCallback(()=>{usePerfectCircleStore.getState().finishDrawing();playHaptic(HapticType.MEDIUM,true);playSound(GAME_SOUNDS.PERFECT_CIRCLE.DRAW_END,true);gameService.finishDrawing();},[gameService]);const panGesture = React.useMemo(()=> Gesture.Pan().onStart(event =>{'worklet';if(isPlaying){runOnJS(startDrawingJS)(event.x,event.y);}}).onUpdate(event =>{'worklet';if(isPlaying){runOnJS(addPointJS)(event.x,event.y);}}).onEnd(()=>{'worklet';if(isPlaying){runOnJS(finishDrawingJS)();}}),[isPlaying,startDrawingJS,addPointJS,finishDrawingJS]);const{circleCenterX,circleCenterY}= React.useMemo(()=>{const canvasHeight = height - offset + 100 - 350;return{circleCenterX:width / 2,circleCenterY:canvasHeight / 2};},[offset]);return _jsx(View,{style:[styles.container,{top:offset + 260}],children:_jsx(GestureDetector,{gesture:panGesture,children:_jsxs(Canvas,{style:styles.canvas,children:[_jsx(Circle,{cx:circleCenterX,cy:circleCenterY,r:GUIDE_CIRCLE_RADIUS,color:PERFECT_CIRCLE_COLORS.GUIDE,opacity:PERFECT_CIRCLE_GAME_CONFIG.GUIDE_CIRCLE_OPACITY,style:"stroke",strokeWidth:2}),path && _jsx(Path,{path:path,color:PERFECT_CIRCLE_COLORS.STROKE,style:"stroke",strokeWidth:PERFECT_CIRCLE_GAME_CONFIG.STROKE_WIDTH,strokeCap:"round",strokeJoin:"round"})]})})});};const styles = StyleSheet.create({container:{position:'absolute',left:0,right:0,bottom:250,justifyContent:'center',alignItems:'center'},canvas:{width,height:height - 350,justifyContent:'center',alignItems:'center'}});const arePropsEqual =(prevProps,nextProps)=>{return prevProps.offset === nextProps.offset && prevProps.gameService === nextProps.gameService;};export const DrawingCanvas = React.memo(DrawingCanvasComponent,arePropsEqual);DrawingCanvas.displayName = 'DrawingCanvas';
1
+ "use strict";import e from"react";import{View as t,Dimensions as r,StyleSheet as i}from"react-native";import{Canvas as o,Path as n,Skia as s,Circle as c}from"@shopify/react-native-skia";import{Gesture as a,GestureDetector as m}from"react-native-gesture-handler";import{runOnJS as l}from"react-native-reanimated";import{usePerfectCircleStore as f,useDrawnPoints as p,useIsPlaying as u}from"../PerfectCircleStore.js";import{PERFECT_CIRCLE_COLORS as h,PERFECT_CIRCLE_GAME_CONFIG as d}from"../PerfectCircleConstants.js";import{playHaptic as v,HapticType as C}from"../../../services/HapticsService.js";import{playSound as g,GAME_SOUNDS as y}from"../../../services/SoundsService.js";import{jsx as j,jsxs as k}from"react/jsx-runtime";const{width:w,height:x}=r.get("window"),S=w/2-20,D=({gameService:r,offset:i=0})=>{const D=p(),I=u(),P=e.useMemo(()=>{if(0===D.length)return null;const e=s.Path.Make(),t=D[0];if(!t)return null;e.moveTo(t.x,t.y);for(let t=1;t<D.length;t++){const r=D[t];r&&e.lineTo(r.x,r.y)}return e},[D]),W=e.useCallback((e,t)=>{f.getState().startDrawing({x:e,y:t}),v(C.LIGHT,!0)},[]),X=e.useCallback((e,t)=>{f.getState().addPoint({x:e,y:t})},[]),Y=e.useCallback(()=>{f.getState().finishDrawing(),v(C.MEDIUM,!0),g(y.PERFECT_CIRCLE.DRAW_END,!0),r.finishDrawing(i)},[r,i]),H=e.useMemo(()=>a.Pan().onStart(e=>{I&&l(W)(e.x,e.y)}).onUpdate(e=>{I&&l(X)(e.x,e.y)}).onEnd(()=>{I&&l(Y)()}),[I,W,X,Y]),{circleCenterX:J,circleCenterY:q}=e.useMemo(()=>({circleCenterX:w/2,circleCenterY:(x-i+100-350)/2}),[i]);return j(t,{style:[b.container,{top:i+260}],children:j(m,{gesture:H,children:k(o,{style:b.canvas,children:[j(c,{cx:J,cy:q,r:S,color:h.GUIDE,opacity:d.GUIDE_CIRCLE_OPACITY,style:"stroke",strokeWidth:2}),P&&j(n,{path:P,color:h.STROKE,style:"stroke",strokeWidth:d.STROKE_WIDTH,strokeCap:"round",strokeJoin:"round"})]})})})},b=i.create({container:{position:"absolute",left:0,right:0,bottom:250,justifyContent:"center",alignItems:"center"},canvas:{width:w,height:x-350,justifyContent:"center",alignItems:"center"}}),I=(e,t)=>e.offset===t.offset&&e.gameService===t.gameService;export const DrawingCanvas=e.memo(D,I);DrawingCanvas.displayName="DrawingCanvas";
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Dimensions","StyleSheet","Canvas","Path","Skia","Circle","Gesture","GestureDetector","runOnJS","usePerfectCircleStore","useDrawnPoints","useIsPlaying","PERFECT_CIRCLE_COLORS","PERFECT_CIRCLE_GAME_CONFIG","playHaptic","HapticType","playSound","GAME_SOUNDS","jsx","_jsx","jsxs","_jsxs","width","height","get","GUIDE_CIRCLE_RADIUS","DrawingCanvasComponent","gameService","offset","drawnPoints","isPlaying","path","useMemo","length","skPath","Make","firstPoint","moveTo","x","y","i","point","lineTo","startDrawingJS","useCallback","getState","startDrawing","LIGHT","addPointJS","addPoint","finishDrawingJS","finishDrawing","MEDIUM","PERFECT_CIRCLE","DRAW_END","panGesture","Pan","onStart","event","onUpdate","onEnd","circleCenterX","circleCenterY","canvasHeight","style","styles","container","top","children","gesture","canvas","cx","cy","r","color","GUIDE","opacity","GUIDE_CIRCLE_OPACITY","strokeWidth","STROKE","STROKE_WIDTH","strokeCap","strokeJoin","create","position","left","right","bottom","justifyContent","alignItems","arePropsEqual","prevProps","nextProps","DrawingCanvas","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/perfect-circle/components/DrawingCanvas.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Dimensions","StyleSheet","Canvas","Path","Skia","Circle","Gesture","GestureDetector","runOnJS","usePerfectCircleStore","useDrawnPoints","useIsPlaying","PERFECT_CIRCLE_COLORS","PERFECT_CIRCLE_GAME_CONFIG","playHaptic","HapticType","playSound","GAME_SOUNDS","jsx","_jsx","jsxs","_jsxs","width","height","get","GUIDE_CIRCLE_RADIUS","DrawingCanvasComponent","gameService","offset","drawnPoints","isPlaying","path","useMemo","length","skPath","Make","firstPoint","moveTo","x","y","i","point","lineTo","startDrawingJS","useCallback","getState","startDrawing","LIGHT","addPointJS","addPoint","finishDrawingJS","finishDrawing","MEDIUM","PERFECT_CIRCLE","DRAW_END","panGesture","Pan","onStart","event","onUpdate","onEnd","circleCenterX","circleCenterY","canvasHeight","style","styles","container","top","children","gesture","canvas","cx","cy","r","color","GUIDE","opacity","GUIDE_CIRCLE_OPACITY","strokeWidth","STROKE","STROKE_WIDTH","strokeCap","strokeJoin","create","position","left","right","bottom","justifyContent","alignItems","arePropsEqual","prevProps","nextProps","DrawingCanvas","memo","displayName"],"sourceRoot":"../../../../../src","sources":["games/perfect-circle/components/DrawingCanvas.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{View,Dimensions}from 'react-native';import{Canvas,LinearGradient,Rect,vec,Circle}from '@shopify/react-native-skia';import{PERFECT_CIRCLE_COLORS}from "../PerfectCircleConstants.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');const verticalGridLines = Array.from({length:Math.floor(width / 80)},(_,i)=> i);const horizontalGridLines = Array.from({length:Math.floor(height / 80)},(_,i)=> i);export const GameBackground = React.memo(({children})=>{const decorativeCircles = React.useMemo(()=>{const circles = [];const circleCount = 15;for(let i = 0;i < circleCount;i++){const x = width / circleCount * i + Math.random()* 100;const y = height / circleCount * i + Math.random()* 100;const size = 20 + Math.random()* 40;const opacity = 0.05 + Math.random()* 0.1;circles.push(_jsx(Circle,{cx:x,cy:y,r:size,color:`${PERFECT_CIRCLE_COLORS.GUIDE}${Math.floor(opacity * 255).toString(16).padStart(2,'0')}`},`circle-${i}`));}return circles;},[]);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:[PERFECT_CIRCLE_COLORS.BACKGROUND,PERFECT_CIRCLE_COLORS.CANVAS,PERFECT_CIRCLE_COLORS.BACKGROUND]})}),_jsx(Rect,{x:0,y:0,width:width,height:height,children:_jsx(LinearGradient,{start:vec(width / 2,height / 2),end:vec(width,height),colors:['rgba(0,212,255,0.1)','transparent','rgba(0,212,255,0.05)']})}),decorativeCircles,verticalGridLines.map(i => _jsx(Rect,{x:i * 80,y:0,width:1,height:height,color:"rgba(255,255,255,0.03)"},`grid-v-${i}`)),horizontalGridLines.map(i => _jsx(Rect,{x:0,y:i * 80,width:width,height:1,color:"rgba(255,255,255,0.03)"},`grid-h-${i}`))]}),children]});});GameBackground.displayName = 'GameBackground';
1
+ "use strict";import r from"react";import{View as t,Dimensions as e,StyleSheet as o}from"react-native";import{Canvas as c,LinearGradient as i,Rect as a,vec as n,Circle as h}from"@shopify/react-native-skia";import{PERFECT_CIRCLE_COLORS as s}from"../PerfectCircleConstants.js";import{jsx as l,Fragment as d,jsxs as y}from"react/jsx-runtime";const{width:g,height:m}=e.get("window"),x=Array.from({length:Math.floor(g/80)},(r,t)=>({key:"grid-v-"+t,x:80*t})),f=Array.from({length:Math.floor(m/80)},(r,t)=>({key:"grid-h-"+t,y:80*t})),k=(()=>{const r=[],t=r=>{const t=43758.5453*Math.sin(12.9898*r+78.233*r);return t-Math.floor(t)};for(let e=0;15>e;e++){const o=t(2*e),c=t(3*e),i=t(5*e),a=t(7*e),n=g/15*e+100*o,h=m/15*e+100*c,l=20+40*i,d=.05+.1*a;r.push({key:"circle-"+e,cx:n,cy:h,r:l,color:`${s.GUIDE}${Math.floor(255*d).toString(16).padStart(2,"0")}`})}return r})(),p=o.create({container:{flex:1},canvas:{position:"absolute",top:0,left:0,right:0,bottom:0,width:g,height:m}}),u=r.memo(()=>l(d,{children:k.map(({key:r,cx:t,cy:e,r:o,color:c})=>l(h,{cx:t,cy:e,r:o,color:c},r))}));u.displayName="DecorativeCircles";const w=r.memo(()=>y(d,{children:[x.map(({key:r,x:t})=>l(a,{x:t,y:0,width:1,height:m,color:"rgba(255, 255, 255, 0.03)"},r)),f.map(({key:r,y:t})=>l(a,{x:0,y:t,width:g,height:1,color:"rgba(255, 255, 255, 0.03)"},r))]}));w.displayName="GridPattern";export const GameBackground=r.memo(({children:r})=>y(t,{style:p.container,children:[y(c,{style:p.canvas,children:[l(a,{x:0,y:0,width:g,height:m,children:l(i,{start:n(0,0),end:n(g,m),colors:[s.BACKGROUND,s.CANVAS,s.BACKGROUND]})}),l(a,{x:0,y:0,width:g,height:m,children:l(i,{start:n(g/2,m/2),end:n(g,m),colors:["rgba(0, 212, 255, 0.1)","transparent","rgba(0, 212, 255, 0.05)"]})}),l(u,{}),l(w,{})]}),r]}));GameBackground.displayName="GameBackground";
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Dimensions","Canvas","LinearGradient","Rect","vec","Circle","PERFECT_CIRCLE_COLORS","jsx","_jsx","jsxs","_jsxs","width","height","get","verticalGridLines","Array","from","length","Math","floor","_","i","horizontalGridLines","GameBackground","memo","children","decorativeCircles","useMemo","circles","circleCount","x","random","y","size","opacity","push","cx","cy","r","color","GUIDE","toString","padStart","style","flex","position","top","left","right","bottom","start","end","colors","BACKGROUND","CANVAS","map","displayName"],"sourceRoot":"../../../../../src","sources":["games/perfect-circle/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Dimensions","StyleSheet","Canvas","LinearGradient","Rect","vec","Circle","PERFECT_CIRCLE_COLORS","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","width","height","get","VERTICAL_GRID_DATA","Array","from","length","Math","floor","_","i","key","x","HORIZONTAL_GRID_DATA","y","DECORATIVE_CIRCLES_DATA","circles","circleCount","seededRandom","seed","sin","randX","randY","randSize","randOpacity","size","opacity","push","cx","cy","r","color","GUIDE","toString","padStart","styles","create","container","flex","canvas","position","top","left","right","bottom","DecorativeCircles","memo","children","map","displayName","GridPattern","GameBackground","style","start","end","colors","BACKGROUND","CANVAS"],"sourceRoot":"../../../../../src","sources":["games/perfect-circle/components/GameBackground.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import React from 'react';import{View,Text,StyleSheet}from 'react-native';import{useAccuracy}from "../PerfectCircleStore.js";import{PERFECT_CIRCLE_COLORS}from "../PerfectCircleConstants.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 accuracy = useAccuracy();return _jsx(ScoreBoardContainer,{offset:offset,backgroundColor:"rgba(0,212,255,0.3)",borderColor:PERFECT_CIRCLE_COLORS.UI,children:_jsx(View,{style:styles.scoreBoard,children:_jsxs(View,{style:styles.scoreSection,children:[_jsx(Text,{style:styles.scoreLabel,children:"Accuracy"}),_jsx(Text,{style:[styles.scoreValue,accuracy > 0 && styles.accuracyActive],children:accuracy})]})})});});ScoreBoard.displayName = 'ScoreBoard';const styles = StyleSheet.create({scoreBoard:{flexDirection:'row',justifyContent:'center',alignItems:'center'},scoreSection:{alignItems:'center',flex:1},scoreLabel:{fontSize:16,fontWeight:'bold',color:PERFECT_CIRCLE_COLORS.TEXT,marginBottom:4},scoreValue:{fontSize:25,fontWeight:'bold',color:PERFECT_CIRCLE_COLORS.TEXT},accuracyActive:{color:PERFECT_CIRCLE_COLORS.UI}});
1
+ "use strict";import r from"react";import{View as e,Text as o,StyleSheet as t}from"react-native";import{useAccuracy as c}from"../PerfectCircleStore.js";import{PERFECT_CIRCLE_COLORS as s}from"../PerfectCircleConstants.js";import{ScoreBoardContainer as i}from"../../../helpers/index.js";import{jsx as n,jsxs as l}from"react/jsx-runtime";export const ScoreBoard=r.memo(({offset:r=0})=>{const t=c();return n(i,{offset:r,backgroundColor:"rgba(0, 212, 255, 0.3)",borderColor:s.UI,children:n(e,{style:a.scoreBoard,children:l(e,{style:a.scoreSection,children:[n(o,{style:a.scoreLabel,children:"Accuracy"}),n(o,{style:[a.scoreValue,t>0&&a.accuracyActive],children:t})]})})})});ScoreBoard.displayName="ScoreBoard";const a=t.create({scoreBoard:{flexDirection:"row",justifyContent:"center",alignItems:"center"},scoreSection:{alignItems:"center",flex:1},scoreLabel:{fontSize:16,fontWeight:"bold",color:s.TEXT,marginBottom:4},scoreValue:{fontSize:25,fontWeight:"bold",color:s.TEXT},accuracyActive:{color:s.UI}});
@@ -1 +1 @@
1
- "use strict";export{PerfectCircle}from "./PerfectCircle.js";export{PERFECT_CIRCLE_THEME}from "./PerfectCircleConstants.js";
1
+ "use strict";export{PerfectCircle}from"./PerfectCircle.js";export{PERFECT_CIRCLE_THEME}from"./PerfectCircleConstants.js";
@@ -1 +1 @@
1
- "use strict";import React,{useEffect,useRef,useCallback,useMemo}from 'react';import{View,StyleSheet,Dimensions}from 'react-native';import{GestureHandlerRootView}from 'react-native-gesture-handler';import{usePopitFidgetStore}from "./PopitFidgetStore.js";import{PopitFidgetService}from "./PopitFidgetService.js";import{GAME_IDS,DEFAULT_GAME_SETTINGS}from "../../services/UtilsService.js";import{playSound,GAME_SOUNDS}from "../../services/SoundsService.js";import{playHaptic,HapticType}from "../../services/HapticsService.js";import{calculateTimeBasedScore}from "../../services/ScoringService.js";import{GameBackground,FidgetGrid as FidgetGridComponent,ScoreBoard}from "./components/index.js";import{GameControlButton,GameOverModal}from "../../helpers/index.js";import{GameSettingsModal}from "../../helpers/index.js";import{jsx as _jsx,jsxs as _jsxs}from "react/jsx-runtime";const{width,height}= Dimensions.get('window');const PopitFidget =({settings,onSettingsChange,onEndGame})=>{const fidgetGrid = usePopitFidgetStore(state => state.fidgetGrid);const timeElapsed = usePopitFidgetStore(state => state.timeElapsed);const isPlaying = usePopitFidgetStore(state => state.isPlaying);const gameOver = usePopitFidgetStore(state => state.gameOver);const gameWon = usePopitFidgetStore(state => state.gameWon);const gameReportedRef = useRef(false);const{difficulty = 'medium',enableSounds = true,enableHaptics = true}= settings ||{};const reportGameEnd = useCallback((status,currentTime)=>{if(onEndGame && !gameReportedRef.current){const expectedTimes ={easy:30,medium:45,hard:60};const expectedTime = expectedTimes[difficulty];const calculatedScore = status === 'win' ? calculateTimeBasedScore(currentTime,expectedTime):0;onEndGame({status,score:calculatedScore.toString()});gameReportedRef.current = true;}},[onEndGame,difficulty]);const startGame = usePopitFidgetStore(state => state.startGame);const resetGame = usePopitFidgetStore(state => state.resetGame);const setFidgetGrid = usePopitFidgetStore(state => state.setFidgetGrid);const popBubble = usePopitFidgetStore(state => state.popBubble);const incrementTime = usePopitFidgetStore(state => state.incrementTime);const serviceRef = useRef(null);useEffect(()=>{if(!serviceRef.current){serviceRef.current = new PopitFidgetService();}if(serviceRef.current && !fidgetGrid){const grid = serviceRef.current.generateFidgetGrid(difficulty);setFidgetGrid(grid);}},[fidgetGrid,setFidgetGrid,difficulty]);useEffect(()=>{return()=>{try{serviceRef.current?.stopGameTimer();}catch{}try{resetGame();}catch{}try{serviceRef.current?.cleanup();}catch{}};},[]);const service = useMemo(()=>{if(!serviceRef.current){serviceRef.current = new PopitFidgetService();}return serviceRef.current;},[]);const generateNewFidget = useCallback(()=>{const grid = service.generateFidgetGrid(difficulty);setFidgetGrid(grid);},[service,setFidgetGrid,difficulty]);const prevDifficultyRef = React.useRef(difficulty);const handleDifficultyChange = useCallback(()=>{if(prevDifficultyRef.current !== difficulty){if(!isPlaying){generateNewFidget();}prevDifficultyRef.current = difficulty;}},[difficulty,isPlaying,generateNewFidget]);useEffect(()=>{handleDifficultyChange();},[handleDifficultyChange]);React.useEffect(()=>{if(gameOver && !isPlaying && !gameReportedRef.current){if(gameWon){playSound(GAME_SOUNDS.BUBBLE_POPPER.COMPLETE,enableSounds);reportGameEnd('win',timeElapsed);}else{playSound(GAME_SOUNDS.TIME_UP,enableSounds);reportGameEnd('lose',timeElapsed);}}if(!gameOver){gameReportedRef.current = false;}},[gameOver,gameWon,isPlaying,enableSounds,reportGameEnd,timeElapsed]);useEffect(()=>{let timerInterval = null;if(isPlaying){timerInterval = setInterval(()=>{incrementTime();},1000);}return()=>{if(timerInterval){clearInterval(timerInterval);}};},[isPlaying,incrementTime]);const startGameHandler = useCallback(()=>{gameReportedRef.current = false;generateNewFidget();playSound(GAME_SOUNDS.BUBBLE_POPPER.START,enableSounds);startGame();playHaptic(HapticType.MEDIUM,enableHaptics);},[startGame,enableSounds,enableHaptics,generateNewFidget]);const stopGameHandler = useCallback(()=>{reportGameEnd('cancel',timeElapsed);service.stopGameTimer();resetGame();generateNewFidget();},[service,resetGame,generateNewFidget,reportGameEnd,timeElapsed]);const resetGameHandler = useCallback(()=>{service.stopGameTimer();resetGame();generateNewFidget();},[service,resetGame,generateNewFidget]);const handleBubblePop = useCallback((row,col)=>{if(!fidgetGrid)return;const bubble = fidgetGrid.bubbles[row]?.[col];if(!bubble || bubble.isPopped)return;playSound(GAME_SOUNDS.BUBBLE_POPPER.POP,enableSounds);popBubble(row,col);playHaptic(HapticType.LIGHT,enableHaptics);},[fidgetGrid,popBubble,enableSounds,enableHaptics]);const screenDimensions = useMemo(()=>({width,height}),[]);const bubbleSize = useMemo(()=>{if(!fidgetGrid)return 60;const availableWidth = screenDimensions.width * 0.85;const availableHeight = screenDimensions.height * 0.6;const maxSize = Math.min(availableWidth / fidgetGrid.size,availableHeight / fidgetGrid.size);return Math.max(45,Math.min(80,maxSize * 0.9));},[fidgetGrid,screenDimensions]);const gameControlButtonProps = useMemo(()=>({isPlaying,gameOver,onStartGame:startGameHandler,onStopGame:stopGameHandler,startButtonText:"START POPPING",stopButtonText:"STOP GAME",startButtonSubtext:"Pop bubbles to relax!",stopButtonSubtext:"End current game",startButtonColor:"#9c27b0",stopButtonColor:"#dc2626",startButtonBorderColor:"#ce93d8",stopButtonBorderColor:"#f87171"}),[isPlaying,gameOver,startGameHandler,stopGameHandler]);const gameOverModalProps = useMemo(()=>({isVisible:gameOver,score:timeElapsed,onPlayAgain:resetGameHandler,buttonText:"Pop Again!",primaryColor:"rgba(156,39,176,0.5)",borderColor:"rgba(156,39,176,0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:"#9c27b0",scoreFormatter:time =>{const mins = Math.floor(time / 60);const secs = time % 60;return `${mins.toString().padStart(2,'0')}:${secs.toString().padStart(2,'0')}`;},scoreLabel:"Time Elapsed"}),[gameOver,timeElapsed,resetGameHandler]);const offset = settings?.offset ?? 0;return _jsx(View,{style:styles.container,children:_jsx(GestureHandlerRootView,{children:_jsxs(View,{style:[styles.gameContainer,{paddingTop:offset}],children:[_jsx(GameBackground,{width:screenDimensions.width,height:screenDimensions.height,isPlaying:isPlaying}),_jsx(ScoreBoard,{timeElapsed:timeElapsed,offset:offset}),_jsx(View,{style:styles.gameArea,children:fidgetGrid && _jsx(FidgetGridComponent,{grid:fidgetGrid,bubbleSize:bubbleSize,onBubblePop:handleBubblePop,hapticEnabled:enableHaptics,isPlaying:isPlaying})}),_jsx(GameControlButton,{...gameControlButtonProps}),_jsx(GameOverModal,{...gameOverModalProps}),_jsx(GameSettingsModal,{gameId:GAME_IDS.POPIT_FIDGET,settings:settings || DEFAULT_GAME_SETTINGS,onSettingsChange:onSettingsChange})]})})});};const styles = StyleSheet.create({container:{flex:1},gameContainer:{flex:1,backgroundColor:'#fef7ff'},gameArea:{flex:1,justifyContent:'center',alignItems:'center',paddingHorizontal:20}});export{PopitFidget};
1
+ "use strict";import e,{useEffect as t,useRef as r,useCallback as o,useMemo as n}from"react";import{View as i,StyleSheet as s,Dimensions as a}from"react-native";import{GestureHandlerRootView as c}from"react-native-gesture-handler";import{usePopitFidgetStore as l}from"./PopitFidgetStore.js";import{PopitFidgetService as m}from"./PopitFidgetService.js";import{GAME_IDS as f,DEFAULT_GAME_SETTINGS as d}from"../../services/UtilsService.js";import{playSound as g,GAME_SOUNDS as p}from"../../services/SoundsService.js";import{playHaptic as h,HapticType as u}from"../../services/HapticsService.js";import{GameBackground as b,FidgetGrid as S,ScoreBoard as x}from"./components/index.js";import{GameControlButton as y,GameOverModal as j}from"../../helpers/index.js";import{GameSettingsModal as v}from"../../helpers/index.js";import{jsx as C,jsxs as w}from"react/jsx-runtime";const{width:P,height:B}=a.get("window"),G=({settings:s,onSettingsChange:a,onEndGame:G,onShare:T,onShowLeaderboard:A})=>{const F=l(e=>e.fidgetGrid),H=l(e=>e.timeRemaining),L=l(e=>e.score),M=l(e=>e.isPlaying),z=l(e=>e.gameOver),E=l(e=>e.gameWon),U=r(!1),{difficulty:k="medium",enableSounds:O=!0,enableHaptics:R=!0}=s||{},V=o((e,t)=>{G&&!U.current&&(G({status:e,score:t.toString()}),U.current=!0)},[G]),W=l(e=>e.startGame),Y=l(e=>e.resetGame),q=l(e=>e.setFidgetGrid),D=l(e=>e.popBubble),J=l(e=>e.decrementTime),K=r(null);t(()=>{if(K.current||(K.current=new m),K.current&&!F){const e=K.current.generateFidgetGrid(k);q(e)}},[F,q,k]),t(()=>()=>{try{K.current?.stopGameTimer()}catch{}try{Y()}catch{}try{K.current?.cleanup()}catch{}},[]);const N=n(()=>(K.current||(K.current=new m),K.current),[]),Q=o(()=>{const e=N.generateFidgetGrid(k);q(e)},[N,q,k]),X=e.useRef(k),Z=o(()=>{X.current!==k&&(M||Q(),X.current=k)},[k,M,Q]);t(()=>{Z()},[Z]),e.useEffect(()=>{!z||M||U.current||(E?(g(p.BUBBLE_POPPER.COMPLETE,O),V("win",L)):(g(p.TIME_UP,O),V("lose",L))),z||(U.current=!1)},[z,E,M,O,V,L]),t(()=>{let e=null;return M&&(e=setInterval(()=>{J()},1e3)),()=>{e&&clearInterval(e)}},[M,J]);const $=o(()=>{U.current=!1,Q(),g(p.BUBBLE_POPPER.START,O),W(),h(u.MEDIUM,R)},[W,O,R,Q]),_=o(()=>{V("cancel",L),N.stopGameTimer(),Y(),Q()},[N,Y,Q,V,L]),ee=o(()=>{N.stopGameTimer(),Y(),Q()},[N,Y,Q]),te=o((e,t)=>{if(!F)return;const r=F.bubbles[e]?.[t];r&&!r.isPopped&&(g(p.BUBBLE_POPPER.POP,O),D(e,t),h(u.LIGHT,R))},[F,D,O,R]),re=n(()=>({width:P,height:B}),[]),oe=n(()=>{if(!F)return 65;const e=.85*re.width,t=.6*re.height,r=Math.min(e/F.size,t/F.size);return Math.max(52,Math.min(85,.95*r))},[F,re]),ne=n(()=>({isPlaying:M,gameOver:z,onStartGame:$,onStopGame:_,onShare:T,onShowLeaderboard:A,startButtonSubtext:"Pop bubbles to relax!",buttonColor:"#9c27b0",buttonBorderColor:"#ce93d8"}),[M,z,$,_,T,A]),ie=n(()=>({isVisible:z,score:L,onPlayAgain:ee,buttonText:"Pop Again!",primaryColor:"rgba(156, 39, 176, 0.5)",borderColor:"rgba(156, 39, 176, 0.5)",buttonColor:"#ffffff",buttonBorderColor:"#ffffff",buttonTextColor:"#9c27b0",scoreLabel:E?"You Won!":"Time's Up!"}),[z,L,ee,E]),se=s?.offset??0;return C(i,{style:I.container,children:C(c,{children:w(i,{style:[I.gameContainer,{paddingTop:se}],children:[C(b,{width:re.width,height:re.height,isPlaying:M}),C(x,{timeRemaining:H,score:L,offset:se}),C(i,{style:I.gameArea,children:F&&C(S,{grid:F,bubbleSize:oe,onBubblePop:te,hapticEnabled:R,isPlaying:M})}),C(y,{...ne}),C(j,{...ie}),C(v,{gameId:f.POPIT_FIDGET,settings:s||d,onSettingsChange:a})]})})})},I=s.create({container:{flex:1},gameContainer:{flex:1,backgroundColor:"#fef7ff"},gameArea:{flex:1,justifyContent:"center",alignItems:"center",paddingHorizontal:20}});export{G as PopitFidget};
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","View","StyleSheet","Dimensions","GestureHandlerRootView","usePopitFidgetStore","PopitFidgetService","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","calculateTimeBasedScore","GameBackground","FidgetGrid","FidgetGridComponent","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","jsx","_jsx","jsxs","_jsxs","width","height","get","PopitFidget","settings","onSettingsChange","onEndGame","fidgetGrid","state","timeElapsed","isPlaying","gameOver","gameWon","gameReportedRef","difficulty","enableSounds","enableHaptics","reportGameEnd","status","currentTime","current","expectedTimes","easy","medium","hard","expectedTime","calculatedScore","score","toString","startGame","resetGame","setFidgetGrid","popBubble","incrementTime","serviceRef","grid","generateFidgetGrid","stopGameTimer","cleanup","service","generateNewFidget","prevDifficultyRef","handleDifficultyChange","BUBBLE_POPPER","COMPLETE","TIME_UP","timerInterval","setInterval","clearInterval","startGameHandler","START","MEDIUM","stopGameHandler","resetGameHandler","handleBubblePop","row","col","bubble","bubbles","isPopped","POP","LIGHT","screenDimensions","bubbleSize","availableWidth","availableHeight","maxSize","Math","min","size","max","gameControlButtonProps","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","buttonTextColor","scoreFormatter","time","mins","floor","secs","padStart","scoreLabel","offset","style","styles","container","children","gameContainer","paddingTop","gameArea","onBubblePop","hapticEnabled","gameId","POPIT_FIDGET","create","flex","backgroundColor","justifyContent","alignItems","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidget.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACtE,SAASC,IAAI,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAC3D,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,mBAAmB,QAA+B,uBAAoB;AAC/E,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,QAAQ,EAAkBC,qBAAqB,QAAQ,gCAA6B;AAC7F,SAASC,SAAS,EAAEC,WAAW,QAAQ,iCAA8B;AACrE,SAASC,UAAU,EAAEC,UAAU,QAAQ,kCAA+B;AACtE,SAASC,uBAAuB,QAAQ,kCAA+B;AACvE,SACEC,cAAc,EACdC,UAAU,IAAIC,mBAAmB,EACjCC,UAAU,QACL,uBAAc;AACrB,SAASC,iBAAiB,EAAEC,aAAa,QAAQ,wBAAe;AAChE,SAASC,iBAAiB,QAAQ,wBAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,MAAM;EAAEC,KAAK;EAAEC;AAAO,CAAC,GAAGvB,UAAU,CAACwB,GAAG,CAAC,QAAQ,CAAC;AAElD,MAAMC,WAAgC,GAAGA,CAAC;EACxCC,QAAQ;EACRC,gBAAgB;EAChBC;AACF,CAAC,KAAK;EACJ;EACA,MAAMC,UAAU,GAAG3B,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACD,UAAU,CAAC;EACrF,MAAME,WAAW,GAAG7B,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACC,WAAW,CAAC;EACvF,MAAMC,SAAS,GAAG9B,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACE,SAAS,CAAC;EACnF,MAAMC,QAAQ,GAAG/B,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACG,QAAQ,CAAC;EACjF,MAAMC,OAAO,GAAGhC,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACI,OAAO,CAAC;;EAE/E;EACA,MAAMC,eAAe,GAAGxC,MAAM,CAAU,KAAK,CAAC;;EAE9C;EACA,MAAM;IAAEyC,UAAU,GAAG,QAAQ;IAAEC,YAAY,GAAG,IAAI;IAAEC,aAAa,GAAG;EAAK,CAAC,GAAGZ,QAAQ,IAAI,CAAC,CAAC;;EAE3F;EACA,MAAMa,aAAa,GAAG3C,WAAW,CAAC,CAAC4C,MAAiC,EAAEC,WAAmB,KAAK;IAC5F,IAAIb,SAAS,IAAI,CAACO,eAAe,CAACO,OAAO,EAAE;MACzC;MACA;MACA;MACA,MAAMC,aAAa,GAAG;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE,EAAE;QAAEC,IAAI,EAAE;MAAG,CAAC;MACxD,MAAMC,YAAY,GAAGJ,aAAa,CAACP,UAAU,CAAC;MAE9C,MAAMY,eAAe,GAAGR,MAAM,KAAK,KAAK,GACpC9B,uBAAuB,CAAC+B,WAAW,EAAEM,YAAY,CAAC,GAClD,CAAC;MAELnB,SAAS,CAAC;QACRY,MAAM;QACNS,KAAK,EAAED,eAAe,CAACE,QAAQ,CAAC;MAClC,CAAC,CAAC;MACFf,eAAe,CAACO,OAAO,GAAG,IAAI;IAChC;EACF,CAAC,EAAE,CAACd,SAAS,EAAEQ,UAAU,CAAC,CAAC;;EAE3B;EACA,MAAMe,SAAS,GAAGjD,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACqB,SAAS,CAAC;EACnF,MAAMC,SAAS,GAAGlD,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACsB,SAAS,CAAC;EACnF,MAAMC,aAAa,GAAGnD,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACuB,aAAa,CAAC;EAC3F,MAAMC,SAAS,GAAGpD,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACwB,SAAS,CAAC;EACnF,MAAMC,aAAa,GAAGrD,mBAAmB,CAAE4B,KAAuB,IAAKA,KAAK,CAACyB,aAAa,CAAC;EAE3F,MAAMC,UAAU,GAAG7D,MAAM,CAA4B,IAAI,CAAC;;EAE1D;EACAD,SAAS,CAAC,MAAM;IACd,IAAI,CAAC8D,UAAU,CAACd,OAAO,EAAE;MACvBc,UAAU,CAACd,OAAO,GAAG,IAAIvC,kBAAkB,CAAC,CAAC;IAC/C;;IAEA;IACA,IAAIqD,UAAU,CAACd,OAAO,IAAI,CAACb,UAAU,EAAE;MACrC,MAAM4B,IAAI,GAAGD,UAAU,CAACd,OAAO,CAACgB,kBAAkB,CAACtB,UAAU,CAAC;MAC9DiB,aAAa,CAACI,IAAI,CAAC;IACrB;EACF,CAAC,EAAE,CAAC5B,UAAU,EAAEwB,aAAa,EAAEjB,UAAU,CAAC,CAAC;;EAE3C;EACA1C,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX;MACA,IAAI;QAAE8D,UAAU,CAACd,OAAO,EAAEiB,aAAa,CAAC,CAAC;MAAE,CAAC,CAAC,MAAM,CAAC;MACpD,IAAI;QAAEP,SAAS,CAAC,CAAC;MAAE,CAAC,CAAC,MAAM,CAAC;MAC5B,IAAI;QAAEI,UAAU,CAACd,OAAO,EAAEkB,OAAO,CAAC,CAAC;MAAE,CAAC,CAAC,MAAM,CAAC;IAChD,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;;EAGN;EACA,MAAMC,OAAO,GAAGhE,OAAO,CAAC,MAAM;IAC5B,IAAI,CAAC2D,UAAU,CAACd,OAAO,EAAE;MACvBc,UAAU,CAACd,OAAO,GAAG,IAAIvC,kBAAkB,CAAC,CAAC;IAC/C;IACA,OAAOqD,UAAU,CAACd,OAAO;EAC3B,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMoB,iBAAiB,GAAGlE,WAAW,CAAC,MAAM;IAC1C,MAAM6D,IAAI,GAAGI,OAAO,CAACH,kBAAkB,CAACtB,UAAU,CAAC;IACnDiB,aAAa,CAACI,IAAI,CAAC;EACrB,CAAC,EAAE,CAACI,OAAO,EAAER,aAAa,EAAEjB,UAAU,CAAC,CAAC;;EAExC;EACA,MAAM2B,iBAAiB,GAAGtE,KAAK,CAACE,MAAM,CAACyC,UAAU,CAAC;;EAElD;EACA,MAAM4B,sBAAsB,GAAGpE,WAAW,CAAC,MAAM;IAC/C;IACA,IAAImE,iBAAiB,CAACrB,OAAO,KAAKN,UAAU,EAAE;MAC5C,IAAI,CAACJ,SAAS,EAAE;QACd;QACA8B,iBAAiB,CAAC,CAAC;MACrB;MACAC,iBAAiB,CAACrB,OAAO,GAAGN,UAAU;IACxC;EACF,CAAC,EAAE,CAACA,UAAU,EAAEJ,SAAS,EAAE8B,iBAAiB,CAAC,CAAC;EAE9CpE,SAAS,CAAC,MAAM;IACdsE,sBAAsB,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACA,sBAAsB,CAAC,CAAC;;EAE5B;EACAvE,KAAK,CAACC,SAAS,CAAC,MAAM;IACpB,IAAIuC,QAAQ,IAAI,CAACD,SAAS,IAAI,CAACG,eAAe,CAACO,OAAO,EAAE;MACtD,IAAIR,OAAO,EAAE;QACX;QACA5B,SAAS,CAACC,WAAW,CAAC0D,aAAa,CAACC,QAAQ,EAAE7B,YAAY,CAAC;QAC3DE,aAAa,CAAC,KAAK,EAAER,WAAW,CAAC;MACnC,CAAC,MAAM;QACL;QACAzB,SAAS,CAACC,WAAW,CAAC4D,OAAO,EAAE9B,YAAY,CAAC;QAC5CE,aAAa,CAAC,MAAM,EAAER,WAAW,CAAC;MACpC;IACF;;IAEA;IACA,IAAI,CAACE,QAAQ,EAAE;MACbE,eAAe,CAACO,OAAO,GAAG,KAAK;IACjC;EACF,CAAC,EAAE,CAACT,QAAQ,EAAEC,OAAO,EAAEF,SAAS,EAAEK,YAAY,EAAEE,aAAa,EAAER,WAAW,CAAC,CAAC;;EAE5E;EACArC,SAAS,CAAC,MAAM;IACd,IAAI0E,aAAoC,GAAG,IAAI;IAE/C,IAAIpC,SAAS,EAAE;MACboC,aAAa,GAAGC,WAAW,CAAC,MAAM;QAChCd,aAAa,CAAC,CAAC;MACjB,CAAC,EAAE,IAAI,CAAC;IACV;IAEA,OAAO,MAAM;MACX,IAAIa,aAAa,EAAE;QACjBE,aAAa,CAACF,aAAa,CAAC;MAC9B;IACF,CAAC;EACH,CAAC,EAAE,CAACpC,SAAS,EAAEuB,aAAa,CAAC,CAAC;;EAE9B;EACA,MAAMgB,gBAAgB,GAAG3E,WAAW,CAAC,MAAM;IACzCuC,eAAe,CAACO,OAAO,GAAG,KAAK,CAAC,CAAC;IACjC;IACAoB,iBAAiB,CAAC,CAAC;;IAEnB;IACAxD,SAAS,CAACC,WAAW,CAAC0D,aAAa,CAACO,KAAK,EAAEnC,YAAY,CAAC;;IAExD;IACAc,SAAS,CAAC,CAAC;;IAEX;IACA3C,UAAU,CAACC,UAAU,CAACgE,MAAM,EAAEnC,aAAa,CAAC;EAC9C,CAAC,EAAE,CAACa,SAAS,EAAEd,YAAY,EAAEC,aAAa,EAAEwB,iBAAiB,CAAC,CAAC;;EAE/D;EACA,MAAMY,eAAe,GAAG9E,WAAW,CAAC,MAAM;IACxC2C,aAAa,CAAC,QAAQ,EAAER,WAAW,CAAC;IAEpC8B,OAAO,CAACF,aAAa,CAAC,CAAC;IACvBP,SAAS,CAAC,CAAC;IACXU,iBAAiB,CAAC,CAAC;EACrB,CAAC,EAAE,CAACD,OAAO,EAAET,SAAS,EAAEU,iBAAiB,EAAEvB,aAAa,EAAER,WAAW,CAAC,CAAC;;EAEvE;EACA,MAAM4C,gBAAgB,GAAG/E,WAAW,CAAC,MAAM;IACzCiE,OAAO,CAACF,aAAa,CAAC,CAAC;IACvBP,SAAS,CAAC,CAAC;IACXU,iBAAiB,CAAC,CAAC;EACrB,CAAC,EAAE,CAACD,OAAO,EAAET,SAAS,EAAEU,iBAAiB,CAAC,CAAC;;EAE3C;EACA,MAAMc,eAAe,GAAGhF,WAAW,CAAC,CAACiF,GAAW,EAAEC,GAAW,KAAK;IAChE,IAAI,CAACjD,UAAU,EAAE;IAEjB,MAAMkD,MAAM,GAAGlD,UAAU,CAACmD,OAAO,CAACH,GAAG,CAAC,GAAGC,GAAG,CAAC;IAC7C,IAAI,CAACC,MAAM,IAAIA,MAAM,CAACE,QAAQ,EAAE;;IAEhC;IACA3E,SAAS,CAACC,WAAW,CAAC0D,aAAa,CAACiB,GAAG,EAAE7C,YAAY,CAAC;;IAEtD;IACAiB,SAAS,CAACuB,GAAG,EAAEC,GAAG,CAAC;;IAEnB;IACAtE,UAAU,CAACC,UAAU,CAAC0E,KAAK,EAAE7C,aAAa,CAAC;;IAE3C;EACF,CAAC,EAAE,CAACT,UAAU,EAAEyB,SAAS,EAAEjB,YAAY,EAAEC,aAAa,CAAC,CAAC;;EAExD;EACA,MAAM8C,gBAAgB,GAAGvF,OAAO,CAAC,OAAO;IACtCyB,KAAK;IACLC;EACF,CAAC,CAAC,EAAE,EAAE,CAAC;;EAEP;EACA,MAAM8D,UAAU,GAAGxF,OAAO,CAAC,MAAM;IAC/B,IAAI,CAACgC,UAAU,EAAE,OAAO,EAAE;IAE1B,MAAMyD,cAAc,GAAGF,gBAAgB,CAAC9D,KAAK,GAAG,IAAI;IACpD,MAAMiE,eAAe,GAAGH,gBAAgB,CAAC7D,MAAM,GAAG,GAAG;IACrD,MAAMiE,OAAO,GAAGC,IAAI,CAACC,GAAG,CACtBJ,cAAc,GAAGzD,UAAU,CAAC8D,IAAI,EAChCJ,eAAe,GAAG1D,UAAU,CAAC8D,IAC/B,CAAC;IACD;IACA,OAAOF,IAAI,CAACG,GAAG,CAAC,EAAE,EAAEH,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEF,OAAO,GAAG,GAAG,CAAC,CAAC;EAClD,CAAC,EAAE,CAAC3D,UAAU,EAAEuD,gBAAgB,CAAC,CAAC;;EAElC;EACA,MAAMS,sBAAsB,GAAGhG,OAAO,CAAC,OAAO;IAC5CmC,SAAS;IACTC,QAAQ;IACR6D,WAAW,EAAEvB,gBAAgB;IAC7BwB,UAAU,EAAErB,eAAe;IAC3BsB,eAAe,EAAE,eAAe;IAChCC,cAAc,EAAE,WAAW;IAC3BC,kBAAkB,EAAE,uBAAuB;IAC3CC,iBAAiB,EAAE,kBAAkB;IACrCC,gBAAgB,EAAE,SAAS;IAC3BC,eAAe,EAAE,SAAS;IAC1BC,sBAAsB,EAAE,SAAS;IACjCC,qBAAqB,EAAE;EACzB,CAAC,CAAC,EAAE,CAACvE,SAAS,EAAEC,QAAQ,EAAEsC,gBAAgB,EAAEG,eAAe,CAAC,CAAC;;EAE7D;EACA,MAAM8B,kBAAkB,GAAG3G,OAAO,CAAC,OAAO;IACxC4G,SAAS,EAAExE,QAAQ;IACnBgB,KAAK,EAAElB,WAAW;IAClB2E,WAAW,EAAE/B,gBAAgB;IAC7BgC,UAAU,EAAE,YAAY;IACxBC,YAAY,EAAE,yBAAyB;IAAE;IACzCC,WAAW,EAAE,yBAAyB;IAAE;IACxCC,WAAW,EAAE,SAAS;IAAE;IACxBC,iBAAiB,EAAE,SAAS;IAAE;IAC9BC,eAAe,EAAE,SAAS;IAAE;IAC5BC,cAAc,EAAGC,IAAY,IAAK;MAChC,MAAMC,IAAI,GAAG1B,IAAI,CAAC2B,KAAK,CAACF,IAAI,GAAG,EAAE,CAAC;MAClC,MAAMG,IAAI,GAAGH,IAAI,GAAG,EAAE;MACtB,OAAO,GAAGC,IAAI,CAACjE,QAAQ,CAAC,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAID,IAAI,CAACnE,QAAQ,CAAC,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAClF,CAAC;IACDC,UAAU,EAAE;EACd,CAAC,CAAC,EAAE,CAACtF,QAAQ,EAAEF,WAAW,EAAE4C,gBAAgB,CAAC,CAAC;;EAE9C;EACA,MAAM6C,MAAM,GAAG9F,QAAQ,EAAE8F,MAAM,IAAI,CAAC;EAEpC,oBACErG,IAAA,CAACrB,IAAI;IAAC2H,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BzG,IAAA,CAAClB,sBAAsB;MAAA2H,QAAA,eACrBvG,KAAA,CAACvB,IAAI;QAAC2H,KAAK,EAAE,CAACC,MAAM,CAACG,aAAa,EAAE;UAAEC,UAAU,EAAEN;QAAO,CAAC,CAAE;QAAAI,QAAA,gBAE5DzG,IAAA,CAACR,cAAc;UACbW,KAAK,EAAE8D,gBAAgB,CAAC9D,KAAM;UAC9BC,MAAM,EAAE6D,gBAAgB,CAAC7D,MAAO;UAChCS,SAAS,EAAEA;QAAU,CACtB,CAAC,eAGFb,IAAA,CAACL,UAAU;UACTiB,WAAW,EAAEA,WAAY;UACzByF,MAAM,EAAEA;QAAO,CAChB,CAAC,eAGFrG,IAAA,CAACrB,IAAI;UAAC2H,KAAK,EAAEC,MAAM,CAACK,QAAS;UAAAH,QAAA,EAC1B/F,UAAU,iBACTV,IAAA,CAACN,mBAAmB;YAClB4C,IAAI,EAAE5B,UAAW;YACjBwD,UAAU,EAAEA,UAAW;YACvB2C,WAAW,EAAEpD,eAAgB;YAC7BqD,aAAa,EAAE3F,aAAc;YAC7BN,SAAS,EAAEA;UAAU,CACtB;QACF,CACG,CAAC,eAGPb,IAAA,CAACJ,iBAAiB;UAAA,GACZ8E;QAAsB,CAC3B,CAAC,eAGF1E,IAAA,CAACH,aAAa;UAAA,GACRwF;QAAkB,CACvB,CAAC,eAGFrF,IAAA,CAACF,iBAAiB;UAChBiH,MAAM,EAAE9H,QAAQ,CAAC+H,YAAa;UAC9BzG,QAAQ,EAAEA,QAAQ,IAAIrB,qBAAsB;UAC5CsB,gBAAgB,EAAEA;QAAiB,CACpC,CAAC;MAAA,CACI;IAAC,CACe;EAAC,CACrB,CAAC;AAEX,CAAC;AAED,MAAM+F,MAAM,GAAG3H,UAAU,CAACqI,MAAM,CAAC;EAC/BT,SAAS,EAAE;IACTU,IAAI,EAAE;EACR,CAAC;EACDR,aAAa,EAAE;IACbQ,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE,SAAS,CAAE;EAC9B,CAAC;EACDP,QAAQ,EAAE;IACRM,IAAI,EAAE,CAAC;IACPE,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAEF,SAAShH,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","View","StyleSheet","Dimensions","GestureHandlerRootView","usePopitFidgetStore","PopitFidgetService","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","GameBackground","FidgetGrid","FidgetGridComponent","ScoreBoard","GameControlButton","GameOverModal","GameSettingsModal","jsx","_jsx","jsxs","_jsxs","width","height","get","PopitFidget","settings","onSettingsChange","onEndGame","onShare","onShowLeaderboard","fidgetGrid","state","timeRemaining","score","isPlaying","gameOver","gameWon","gameReportedRef","difficulty","enableSounds","enableHaptics","reportGameEnd","status","currentScore","current","toString","startGame","resetGame","setFidgetGrid","popBubble","decrementTime","serviceRef","grid","generateFidgetGrid","stopGameTimer","cleanup","service","generateNewFidget","prevDifficultyRef","handleDifficultyChange","BUBBLE_POPPER","COMPLETE","TIME_UP","timerInterval","setInterval","clearInterval","startGameHandler","START","MEDIUM","stopGameHandler","resetGameHandler","handleBubblePop","row","col","bubble","bubbles","isPopped","POP","LIGHT","screenDimensions","bubbleSize","availableWidth","availableHeight","maxSize","Math","min","size","max","gameControlButtonProps","onStartGame","onStopGame","startButtonSubtext","buttonColor","buttonBorderColor","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","borderColor","buttonTextColor","scoreLabel","offset","style","styles","container","children","gameContainer","paddingTop","gameArea","onBubblePop","hapticEnabled","gameId","POPIT_FIDGET","create","flex","backgroundColor","justifyContent","alignItems","paddingHorizontal"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidget.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";export const POPIT_FIDGET_GAME_CONFIG ={GAME_DURATION:120,POINTS_PER_BUBBLE:10,COMPLETION_BONUS:500,TIME_BONUS_MULTIPLIER:5,BUBBLE_SIZE:40,ANIMATION_DURATION:300,PARTICLE_COUNT:4,PARTICLE_LIFETIME:800,GRID_SIZES:{easy:5,medium:6,hard:7}};export const POPIT_FIDGET_ANIMATION_CONFIG ={POP_SCALE:1.3,POP_DURATION:200,FADE_DURATION:300,BOUNCE_SCALE:0.9,PARTICLE_VELOCITY:3,PARTICLE_GRAVITY:0.2};export const POPIT_FIDGET_COLORS ={BACKGROUND:'#f5f5f5',FIDGET_BORDER:'#333',FIDGET_SHADOW:'rgba(0,0,0,0.3)',SCORE:'#4a90e2',UI:'#6c5ce7',POPPED_BUBBLE:'#d0d0d0',PARTICLE_GLOW:'rgba(255,255,255,0.9)',FIDGET_BASE:'#ffffff',BUBBLE_SHADOW:'rgba(0,0,0,0.2)',BUBBLE_HIGHLIGHT:'rgba(255,255,255,0.6)'};export const RAINBOW_COLORS = ['#E91E63','#F44336','#FF5722','#FF9800','#FFC107','#8E24AA','#CDDC39','#8BC34A','#4CAF50','#009688','#00BCD4','#03A9F4','#2196F3','#3F51B5','#9C27B0','#E91E63' ];export const BUBBLE_COLORS = RAINBOW_COLORS;export const POPIT_FIDGET_THEME ={backgroundColor:'rgba(0,0,0,0.7)',headerBackgroundColor:'#9c27b0',headerTextColor:'#ffffff',sectionBackgroundColor:'rgba(156,39,176,0.15)',sectionTitleColor:'#9c27b0',buttonSelectedColor:'#9c27b0',buttonUnselectedColor:'rgba(255,255,255,0.2)',buttonSelectedTextColor:'#ffffff',buttonUnselectedTextColor:'rgba(255,255,255,0.7)',switchTrackColorFalse:'rgba(156,39,176,0.3)',switchTrackColorTrue:'#9c27b0',switchThumbColor:'#ffffff',infoTextColor:'rgba(255,255,255,0.9)'};export const POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS ={easy:'Smaller fidget grids,relaxing pace',medium:'Medium grids,satisfying pops',hard:'Large complex shapes,ultimate satisfaction!'};
1
+ "use strict";export const POPIT_FIDGET_GAME_CONFIG={GAME_DURATION:120,POINTS_PER_BUBBLE:10,COMPLETION_BONUS:500,TIME_BONUS_MULTIPLIER:5,BUBBLE_SIZE:46,ANIMATION_DURATION:300,PARTICLE_COUNT:4,PARTICLE_LIFETIME:800,GRID_SIZES:{easy:5,medium:6,hard:6}};export const POPIT_FIDGET_ANIMATION_CONFIG={POP_SCALE:1.3,POP_DURATION:200,FADE_DURATION:300,BOUNCE_SCALE:.9,PARTICLE_VELOCITY:3,PARTICLE_GRAVITY:.2};export const POPIT_FIDGET_COLORS={BACKGROUND:"#f5f5f5",FIDGET_BORDER:"#333",FIDGET_SHADOW:"rgba(0,0,0,0.3)",SCORE:"#4a90e2",UI:"#6c5ce7",POPPED_BUBBLE:"#d0d0d0",PARTICLE_GLOW:"rgba(255,255,255,0.9)",FIDGET_BASE:"#ffffff",BUBBLE_SHADOW:"rgba(0,0,0,0.2)",BUBBLE_HIGHLIGHT:"rgba(255,255,255,0.6)"};export const RAINBOW_COLORS=["#E91E63","#F44336","#FF5722","#FF9800","#FFC107","#8E24AA","#CDDC39","#8BC34A","#4CAF50","#009688","#00BCD4","#03A9F4","#2196F3","#3F51B5","#9C27B0","#E91E63"];export const BUBBLE_COLORS=RAINBOW_COLORS;export const POPIT_FIDGET_THEME={backgroundColor:"rgba(0, 0, 0, 0.7)",headerBackgroundColor:"#9c27b0",headerTextColor:"#ffffff",sectionBackgroundColor:"rgba(156, 39, 176, 0.15)",sectionTitleColor:"#9c27b0",buttonSelectedColor:"#9c27b0",buttonUnselectedColor:"rgba(255, 255, 255, 0.2)",buttonSelectedTextColor:"#ffffff",buttonUnselectedTextColor:"rgba(255, 255, 255, 0.7)",switchTrackColorFalse:"rgba(156, 39, 176, 0.3)",switchTrackColorTrue:"#9c27b0",switchThumbColor:"#ffffff",infoTextColor:"rgba(255, 255, 255, 0.9)"};export const POPIT_FIDGET_DIFFICULTY_DESCRIPTIONS={easy:"Smaller fidget grids, relaxing pace",medium:"Medium grids, satisfying pops",hard:"Large complex shapes, ultimate satisfaction!"};
@@ -1 +1 @@
1
- "use strict";import{Dimensions}from 'react-native';import{POPIT_FIDGET_GAME_CONFIG as GAME_CONFIG,POPIT_FIDGET_ANIMATION_CONFIG as ANIMATION_CONFIG,POPIT_FIDGET_COLORS as COLORS,RAINBOW_COLORS,BUBBLE_COLORS}from "./PopitFidgetConstants.js";const{width,height}= Dimensions.get('window');export{GAME_CONFIG,ANIMATION_CONFIG,COLORS,BUBBLE_COLORS};export class PopitFidgetService{gameTimerRef = null;constructor(){}generateFidgetGrid(difficulty){const availableWidth = width * 0.85;const availableHeight = height * 0.6;const gridSize = GAME_CONFIG.GRID_SIZES[difficulty];const maxSize = Math.min(availableWidth / gridSize,availableHeight / gridSize);const bubbleSize = Math.max(45,Math.min(80,maxSize * 0.9));const spacing = bubbleSize * 1.1;const gridWidth =(gridSize - 1)* spacing + bubbleSize;const gridHeight =(gridSize - 1)* spacing + bubbleSize;const bubbles = [];for(let row = 0;row < gridSize;row++){bubbles[row] = [];for(let col = 0;col < gridSize;col++){const x = col * spacing + bubbleSize / 2;const y = row * spacing + bubbleSize / 2;bubbles[row][col] ={id:`${row}-${col}`,row,col,x,y,isPopped:false,color:this.getRainbowColorForPosition(row,gridSize),animationProgress:0};}}return{size:gridSize,bubbles,centerX:gridWidth / 2,centerY:gridHeight / 2,width:gridWidth,height:gridHeight};}getRainbowColorForPosition(row,totalRows){const colorIndex = Math.floor(row / totalRows * RAINBOW_COLORS.length);return RAINBOW_COLORS[colorIndex] || RAINBOW_COLORS[0];}checkAllBubblesPopped(grid){for(let row = 0;row < grid.size;row++){for(let col = 0;col < grid.size;col++){const bubble = grid.bubbles[row]?.[col];if(bubble && !bubble.isPopped){return false;}}}return true;}calculateCompletionPercentage(grid){let totalBubbles = 0;let poppedBubbles = 0;for(let row = 0;row < grid.size;row++){for(let col = 0;col < grid.size;col++){const bubble = grid.bubbles[row]?.[col];if(bubble){totalBubbles++;if(bubble.isPopped){poppedBubbles++;}}}}return totalBubbles > 0 ? poppedBubbles / totalBubbles * 100:0;}startGameTimer(duration,onTick,onComplete){this.stopGameTimer();let timeLeft = duration;this.gameTimerRef = setInterval(()=>{timeLeft -= 1;onTick(timeLeft);if(timeLeft <= 0){this.stopGameTimer();onComplete();}},1000);}stopGameTimer(){if(this.gameTimerRef){clearInterval(this.gameTimerRef);this.gameTimerRef = null;}}cleanup(){this.stopGameTimer();}}
1
+ "use strict";import{Dimensions as t}from"react-native";import{POPIT_FIDGET_GAME_CONFIG as e,POPIT_FIDGET_ANIMATION_CONFIG as r,POPIT_FIDGET_COLORS as o,RAINBOW_COLORS as i,BUBBLE_COLORS as s}from"./PopitFidgetConstants.js";const{width:n,height:l}=t.get("window");export{e as GAME_CONFIG,r as ANIMATION_CONFIG,o as COLORS,s as BUBBLE_COLORS};export class PopitFidgetService{gameTimerRef=null;constructor(){}generateFidgetGrid(t){const r=.85*n,o=.6*l,i=e.GRID_SIZES[t],s=Math.max(52,Math.min(85,.95*Math.min(r/i,o/i))),a=1.02*s,c=(i-1)*a+s,h=(i-1)*a+s,p=[];for(let t=0;i>t;t++){p[t]=[];for(let e=0;i>e;e++){const r=e*a+s/2,o=t*a+s/2;p[t][e]={id:`${t}-${e}`,row:t,col:e,x:r,y:o,isPopped:!1,color:this.getRainbowColorForPosition(t,i),animationProgress:0}}}return{size:i,bubbles:p,centerX:c/2,centerY:h/2,width:c,height:h}}getRainbowColorForPosition(t,e){const r=Math.floor(t/e*i.length);return i[r]||i[0]}checkAllBubblesPopped(t){for(let e=0;e<t.size;e++)for(let r=0;r<t.size;r++){const o=t.bubbles[e]?.[r];if(o&&!o.isPopped)return!1}return!0}calculateCompletionPercentage(t){let e=0,r=0;for(let o=0;o<t.size;o++)for(let i=0;i<t.size;i++){const s=t.bubbles[o]?.[i];s&&(e++,s.isPopped&&r++)}return e>0?r/e*100:0}startGameTimer(t,e,r){this.stopGameTimer();let o=t;this.gameTimerRef=setInterval(()=>{o-=1,e(o),o>0||(this.stopGameTimer(),r())},1e3)}stopGameTimer(){this.gameTimerRef&&(clearInterval(this.gameTimerRef),this.gameTimerRef=null)}cleanup(){this.stopGameTimer()}}
@@ -1 +1 @@
1
- {"version":3,"names":["Dimensions","POPIT_FIDGET_GAME_CONFIG","GAME_CONFIG","POPIT_FIDGET_ANIMATION_CONFIG","ANIMATION_CONFIG","POPIT_FIDGET_COLORS","COLORS","RAINBOW_COLORS","BUBBLE_COLORS","width","height","get","PopitFidgetService","gameTimerRef","constructor","generateFidgetGrid","difficulty","availableWidth","availableHeight","gridSize","GRID_SIZES","maxSize","Math","min","bubbleSize","max","spacing","gridWidth","gridHeight","bubbles","row","col","x","y","id","isPopped","color","getRainbowColorForPosition","animationProgress","size","centerX","centerY","totalRows","colorIndex","floor","length","checkAllBubblesPopped","grid","bubble","calculateCompletionPercentage","totalBubbles","poppedBubbles","startGameTimer","duration","onTick","onComplete","stopGameTimer","timeLeft","setInterval","clearInterval","cleanup"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidgetService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Dimensions","POPIT_FIDGET_GAME_CONFIG","GAME_CONFIG","POPIT_FIDGET_ANIMATION_CONFIG","ANIMATION_CONFIG","POPIT_FIDGET_COLORS","COLORS","RAINBOW_COLORS","BUBBLE_COLORS","width","height","get","PopitFidgetService","gameTimerRef","constructor","generateFidgetGrid","difficulty","availableWidth","availableHeight","gridSize","GRID_SIZES","maxSize","Math","min","bubbleSize","max","spacing","gridWidth","gridHeight","bubbles","row","col","x","y","id","isPopped","color","getRainbowColorForPosition","animationProgress","size","centerX","centerY","totalRows","colorIndex","floor","length","checkAllBubblesPopped","grid","bubble","calculateCompletionPercentage","totalBubbles","poppedBubbles","startGameTimer","duration","onTick","onComplete","stopGameTimer","timeLeft","setInterval","clearInterval","cleanup"],"sourceRoot":"../../../../src","sources":["games/popit-fidget/PopitFidgetService.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";import{create}from 'zustand';import{subscribeWithSelector}from 'zustand/middleware';import{immerMiddleware}from "../../services/UtilsService.js";export const usePopitFidgetStore = create()(subscribeWithSelector(immerMiddleware((set,get)=>({timeElapsed:0,isPlaying:false,gameOver:false,gameWon:false,fidgetGrid:null,bubblesPopped:0,totalBubbles:0,bubbleStates:{},startGame:_gameDuration =>{set(draft =>{draft.isPlaying = true;draft.gameOver = false;draft.gameWon = false;draft.timeElapsed = 0;draft.bubblesPopped = 0;});},stopGame:()=>{set(draft =>{draft.isPlaying = false;draft.gameOver = true;});},resetGame:()=>{set(draft =>{draft.timeElapsed = 0;draft.isPlaying = false;draft.gameOver = false;draft.gameWon = false;draft.fidgetGrid = null;draft.bubblesPopped = 0;draft.totalBubbles = 0;});},setFidgetGrid:grid =>{const totalCount = grid.size * grid.size;set(draft =>{draft.fidgetGrid = grid;draft.totalBubbles = totalCount;draft.bubblesPopped = 0;draft.bubbleStates ={};for(let row = 0;row < grid.size;row++){for(let col = 0;col < grid.size;col++){const bubble = grid.bubbles[row]?.[col];if(bubble){draft.bubbleStates[bubble.id] ={isPopped:bubble.isPopped || false,popTime:bubble.popTime};}}}});},popBubble:(row,col)=>{set(draft =>{if(!draft.fidgetGrid)return;const bubble = draft.fidgetGrid.bubbles[row]?.[col];if(!bubble)return;const bubbleState = draft.bubbleStates[bubble.id];if(bubbleState?.isPopped)return;draft.bubbleStates[bubble.id] ={isPopped:true,popTime:Date.now()};draft.bubblesPopped = draft.bubblesPopped + 1;});const state = get();if(state.isPlaying){get().checkGameWon();}},incrementTime:()=>{set(draft =>{draft.timeElapsed = draft.timeElapsed + 1;});},checkGameWon:()=>{const state = get();if(!state.fidgetGrid)return;let allPopped = true;for(let row = 0;row < state.fidgetGrid.size;row++){for(let col = 0;col < state.fidgetGrid.size;col++){const bubble = state.fidgetGrid.bubbles[row]?.[col];if(bubble){const bubbleState = state.bubbleStates[bubble.id];if(!bubbleState?.isPopped){allPopped = false;break;}}}if(!allPopped)break;}if(allPopped && state.isPlaying){set(draft =>{draft.isPlaying = false;draft.gameWon = true;draft.gameOver = true;});}}}))));
1
+ "use strict";import{create as e}from"zustand";import{subscribeWithSelector as t}from"zustand/middleware";import{immerMiddleware as o}from"../../services/UtilsService.js";export const usePopitFidgetStore=e()(t(o((e,t)=>({timeRemaining:60,isPlaying:!1,gameOver:!1,gameWon:!1,fidgetGrid:null,bubblesPopped:0,totalBubbles:0,score:0,bubbleStates:{},startGame:(t=60)=>{e(e=>{e.isPlaying=!0,e.gameOver=!1,e.gameWon=!1,e.timeRemaining=t,e.bubblesPopped=0,e.score=0})},stopGame:()=>{e(e=>{e.isPlaying=!1,e.gameOver=!0})},resetGame:()=>{e(e=>{e.timeRemaining=60,e.isPlaying=!1,e.gameOver=!1,e.gameWon=!1,e.fidgetGrid=null,e.bubblesPopped=0,e.totalBubbles=0,e.score=0})},setFidgetGrid:t=>{const o=t.size*t.size;e(e=>{e.fidgetGrid=t,e.totalBubbles=o,e.bubblesPopped=0,e.bubbleStates={};for(let o=0;o<t.size;o++)for(let s=0;s<t.size;s++){const i=t.bubbles[o]?.[s];i&&(e.bubbleStates[i.id]={isPopped:i.isPopped||!1,popTime:i.popTime})}})},popBubble:(o,s)=>{e(e=>{if(!e.fidgetGrid)return;const t=e.fidgetGrid.bubbles[o]?.[s];if(!t)return;const i=e.bubbleStates[t.id];i?.isPopped||(e.bubbleStates[t.id]={isPopped:!0,popTime:Date.now()},e.bubblesPopped=e.bubblesPopped+1,e.score=e.score+50)}),setTimeout(()=>{t().isPlaying&&t().checkGameWon()},0)},decrementTime:()=>{e(e=>{e.timeRemaining>0&&(e.timeRemaining=e.timeRemaining-1)}),setTimeout(()=>{const e=t();e.isPlaying&&0>=e.timeRemaining&&t().checkGameLost()},0)},checkGameLost:()=>{const o=t();o.isPlaying&&0>=o.timeRemaining&&e(e=>{e.isPlaying=!1,e.gameWon=!1,e.gameOver=!0})},checkGameWon:()=>{const o=t();if(!o.fidgetGrid)return;let s=!0;for(let e=0;e<o.fidgetGrid.size;e++){for(let t=0;t<o.fidgetGrid.size;t++){const i=o.fidgetGrid.bubbles[e]?.[t];if(i){const e=o.bubbleStates[i.id];if(!e?.isPopped){s=!1;break}}}if(!s)break}s&&o.isPlaying&&e(e=>{e.isPlaying=!1,e.gameWon=!0,e.gameOver=!0})}}))));