react-native-games 0.6.0 → 0.8.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 (344) hide show
  1. package/README.md +148 -23
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +5 -8
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/candy-crush/CandyCrush.js +121 -0
  5. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -0
  6. package/lib/module/games/candy-crush/CandyCrushConstants.js +125 -0
  7. package/lib/module/games/candy-crush/CandyCrushConstants.js.map +1 -0
  8. package/lib/module/games/candy-crush/CandyCrushService.js +370 -0
  9. package/lib/module/games/candy-crush/CandyCrushService.js.map +1 -0
  10. package/lib/module/games/candy-crush/CandyCrushStore.js +305 -0
  11. package/lib/module/games/candy-crush/CandyCrushStore.js.map +1 -0
  12. package/lib/module/games/candy-crush/components/CandyItem.js +191 -0
  13. package/lib/module/games/candy-crush/components/CandyItem.js.map +1 -0
  14. package/lib/module/games/candy-crush/components/GameBackground.js +85 -0
  15. package/lib/module/games/candy-crush/components/GameBackground.js.map +1 -0
  16. package/lib/module/games/candy-crush/components/GameGrid.js +314 -0
  17. package/lib/module/games/candy-crush/components/GameGrid.js.map +1 -0
  18. package/lib/module/games/candy-crush/components/ScoreBoard.js +112 -0
  19. package/lib/module/games/candy-crush/components/ScoreBoard.js.map +1 -0
  20. package/lib/module/games/candy-crush/components/index.js +7 -0
  21. package/lib/module/games/candy-crush/components/index.js.map +1 -0
  22. package/lib/module/games/candy-crush/index.js +6 -0
  23. package/lib/module/games/candy-crush/index.js.map +1 -0
  24. package/lib/module/games/color-sort/ColorSort.js +130 -0
  25. package/lib/module/games/color-sort/ColorSort.js.map +1 -0
  26. package/lib/module/games/color-sort/ColorSortConstants.js +68 -0
  27. package/lib/module/games/color-sort/ColorSortConstants.js.map +1 -0
  28. package/lib/module/games/color-sort/ColorSortService.js +255 -0
  29. package/lib/module/games/color-sort/ColorSortService.js.map +1 -0
  30. package/lib/module/games/color-sort/ColorSortStore.js +258 -0
  31. package/lib/module/games/color-sort/ColorSortStore.js.map +1 -0
  32. package/lib/module/games/color-sort/components/ColorContainer.js +140 -0
  33. package/lib/module/games/color-sort/components/ColorContainer.js.map +1 -0
  34. package/lib/module/games/color-sort/components/GameBackground.js +135 -0
  35. package/lib/module/games/color-sort/components/GameBackground.js.map +1 -0
  36. package/lib/module/games/color-sort/components/ScoreBoard.js +78 -0
  37. package/lib/module/games/color-sort/components/ScoreBoard.js.map +1 -0
  38. package/lib/module/games/color-sort/components/index.js +6 -0
  39. package/lib/module/games/color-sort/components/index.js.map +1 -0
  40. package/lib/module/games/dino-jump/DinoJump.js +209 -0
  41. package/lib/module/games/dino-jump/DinoJump.js.map +1 -0
  42. package/lib/module/games/dino-jump/DinoJumpConstants.js +179 -0
  43. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -0
  44. package/lib/module/games/dino-jump/DinoJumpService.js +268 -0
  45. package/lib/module/games/dino-jump/DinoJumpService.js.map +1 -0
  46. package/lib/module/games/dino-jump/DinoJumpStore.js +387 -0
  47. package/lib/module/games/dino-jump/DinoJumpStore.js.map +1 -0
  48. package/lib/module/games/dino-jump/components/DinoSprite.js +409 -0
  49. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -0
  50. package/lib/module/games/dino-jump/components/GameArea.js +68 -0
  51. package/lib/module/games/dino-jump/components/GameArea.js.map +1 -0
  52. package/lib/module/games/dino-jump/components/GameBackground.js +421 -0
  53. package/lib/module/games/dino-jump/components/GameBackground.js.map +1 -0
  54. package/lib/module/games/dino-jump/components/ObstacleSprite.js +306 -0
  55. package/lib/module/games/dino-jump/components/ObstacleSprite.js.map +1 -0
  56. package/lib/module/games/dino-jump/components/ScoreBoard.js +107 -0
  57. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -0
  58. package/lib/module/games/dino-jump/components/StarSprite.js +45 -0
  59. package/lib/module/games/dino-jump/components/StarSprite.js.map +1 -0
  60. package/lib/module/games/dino-jump/components/index.js +9 -0
  61. package/lib/module/games/dino-jump/components/index.js.map +1 -0
  62. package/lib/module/games/flappy-bird/FlappyBird.js +131 -0
  63. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -0
  64. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +90 -0
  65. package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -0
  66. package/lib/module/games/flappy-bird/FlappyBirdStore.js +276 -0
  67. package/lib/module/games/flappy-bird/FlappyBirdStore.js.map +1 -0
  68. package/lib/module/games/flappy-bird/components/Bird.js +87 -0
  69. package/lib/module/games/flappy-bird/components/Bird.js.map +1 -0
  70. package/lib/module/games/flappy-bird/components/GameArea.js +86 -0
  71. package/lib/module/games/flappy-bird/components/GameArea.js.map +1 -0
  72. package/lib/module/games/flappy-bird/components/GameBackground.js +112 -0
  73. package/lib/module/games/flappy-bird/components/GameBackground.js.map +1 -0
  74. package/lib/module/games/flappy-bird/components/Pipes.js +175 -0
  75. package/lib/module/games/flappy-bird/components/Pipes.js.map +1 -0
  76. package/lib/module/games/flappy-bird/components/ScoreBoard.js +72 -0
  77. package/lib/module/games/flappy-bird/components/ScoreBoard.js.map +1 -0
  78. package/lib/module/games/flappy-bird/components/index.js +8 -0
  79. package/lib/module/games/flappy-bird/components/index.js.map +1 -0
  80. package/lib/module/games/fruit-merger/FruitMerger.js +112 -0
  81. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -0
  82. package/lib/module/games/fruit-merger/FruitMergerConstants.js +119 -0
  83. package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -0
  84. package/lib/module/games/fruit-merger/FruitMergerService.js +13 -0
  85. package/lib/module/games/fruit-merger/FruitMergerService.js.map +1 -0
  86. package/lib/module/games/fruit-merger/FruitMergerStore.js +318 -0
  87. package/lib/module/games/fruit-merger/FruitMergerStore.js.map +1 -0
  88. package/lib/module/games/fruit-merger/components/FruitItem.js +102 -0
  89. package/lib/module/games/fruit-merger/components/FruitItem.js.map +1 -0
  90. package/lib/module/games/fruit-merger/components/GameArea.js +123 -0
  91. package/lib/module/games/fruit-merger/components/GameArea.js.map +1 -0
  92. package/lib/module/games/fruit-merger/components/GameBackground.js +477 -0
  93. package/lib/module/games/fruit-merger/components/GameBackground.js.map +1 -0
  94. package/lib/module/games/fruit-merger/components/ScoreBoard.js +66 -0
  95. package/lib/module/games/fruit-merger/components/ScoreBoard.js.map +1 -0
  96. package/lib/module/games/fruit-merger/components/index.js +7 -0
  97. package/lib/module/games/fruit-merger/components/index.js.map +1 -0
  98. package/lib/module/games/fruit-ninja/FruitNinja.js +6 -9
  99. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  100. package/lib/module/games/game-2048/Game2048.js +120 -0
  101. package/lib/module/games/game-2048/Game2048.js.map +1 -0
  102. package/lib/module/games/game-2048/Game2048Constants.js +263 -0
  103. package/lib/module/games/game-2048/Game2048Constants.js.map +1 -0
  104. package/lib/module/games/game-2048/Game2048Service.js +457 -0
  105. package/lib/module/games/game-2048/Game2048Service.js.map +1 -0
  106. package/lib/module/games/game-2048/Game2048Store.js +238 -0
  107. package/lib/module/games/game-2048/Game2048Store.js.map +1 -0
  108. package/lib/module/games/game-2048/components/GameBackground.js +247 -0
  109. package/lib/module/games/game-2048/components/GameBackground.js.map +1 -0
  110. package/lib/module/games/game-2048/components/GameGrid.js +139 -0
  111. package/lib/module/games/game-2048/components/GameGrid.js.map +1 -0
  112. package/lib/module/games/game-2048/components/GameTile.js +72 -0
  113. package/lib/module/games/game-2048/components/GameTile.js.map +1 -0
  114. package/lib/module/games/game-2048/components/ScoreBoard.js +70 -0
  115. package/lib/module/games/game-2048/components/ScoreBoard.js.map +1 -0
  116. package/lib/module/games/game-2048/components/index.js +7 -0
  117. package/lib/module/games/game-2048/components/index.js.map +1 -0
  118. package/lib/module/games/maze-runner/MazeRunner.js +33 -31
  119. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  120. package/lib/module/games/popit-fidget/PopitFidget.js +34 -32
  121. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  122. package/lib/module/games/sliding-numbers/SlidingNumbers.js +161 -0
  123. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -0
  124. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +207 -0
  125. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js.map +1 -0
  126. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +248 -0
  127. package/lib/module/games/sliding-numbers/SlidingNumbersService.js.map +1 -0
  128. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +275 -0
  129. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js.map +1 -0
  130. package/lib/module/games/sliding-numbers/components/GameBackground.js +259 -0
  131. package/lib/module/games/sliding-numbers/components/GameBackground.js.map +1 -0
  132. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +174 -0
  133. package/lib/module/games/sliding-numbers/components/NumbersGrid.js.map +1 -0
  134. package/lib/module/games/sliding-numbers/components/NumbersTile.js +116 -0
  135. package/lib/module/games/sliding-numbers/components/NumbersTile.js.map +1 -0
  136. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +66 -0
  137. package/lib/module/games/sliding-numbers/components/ScoreBoard.js.map +1 -0
  138. package/lib/module/games/sliding-numbers/components/index.js +7 -0
  139. package/lib/module/games/sliding-numbers/components/index.js.map +1 -0
  140. package/lib/module/games/snake/Snake.js +192 -0
  141. package/lib/module/games/snake/Snake.js.map +1 -0
  142. package/lib/module/games/snake/SnakeConstants.js +138 -0
  143. package/lib/module/games/snake/SnakeConstants.js.map +1 -0
  144. package/lib/module/games/snake/SnakeService.js +148 -0
  145. package/lib/module/games/snake/SnakeService.js.map +1 -0
  146. package/lib/module/games/snake/SnakeStore.js +184 -0
  147. package/lib/module/games/snake/SnakeStore.js.map +1 -0
  148. package/lib/module/games/snake/components/GameBackground.js +221 -0
  149. package/lib/module/games/snake/components/GameBackground.js.map +1 -0
  150. package/lib/module/games/snake/components/GameGrid.js +153 -0
  151. package/lib/module/games/snake/components/GameGrid.js.map +1 -0
  152. package/lib/module/games/snake/components/ScoreBoard.js +57 -0
  153. package/lib/module/games/snake/components/ScoreBoard.js.map +1 -0
  154. package/lib/module/games/snake/components/index.js +6 -0
  155. package/lib/module/games/snake/components/index.js.map +1 -0
  156. package/lib/module/games/snake/index.js +6 -0
  157. package/lib/module/games/snake/index.js.map +1 -0
  158. package/lib/module/games/space-fighter/SpaceFighter.js +7 -10
  159. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  160. package/lib/module/games/whack-a-mole/WhackAMole.js +6 -6
  161. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  162. package/lib/module/games/whack-a-mole/components/GameBackground.js +7 -8
  163. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -1
  164. package/lib/module/index.js +8 -0
  165. package/lib/module/index.js.map +1 -1
  166. package/lib/module/services/GamesConstants.js +58 -2
  167. package/lib/module/services/GamesConstants.js.map +1 -1
  168. package/lib/module/services/GamesService.js +40 -0
  169. package/lib/module/services/GamesService.js.map +1 -1
  170. package/lib/module/services/SoundsService.js +132 -1
  171. package/lib/module/services/SoundsService.js.map +1 -1
  172. package/lib/module/shared/helpers/GameOverModal.js +6 -3
  173. package/lib/module/shared/helpers/GameOverModal.js.map +1 -1
  174. package/lib/module/shared/helpers/GameSettingsModal.js +3 -3
  175. package/lib/module/shared/helpers/GameSettingsModal.js.map +1 -1
  176. package/lib/module/shared/helpers/ParticleBlast.js +3 -2
  177. package/lib/module/shared/helpers/ParticleBlast.js.map +1 -1
  178. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  179. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts +4 -0
  180. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts.map +1 -0
  181. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +104 -0
  182. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts.map +1 -0
  183. package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts +40 -0
  184. package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts.map +1 -0
  185. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts +48 -0
  186. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts.map +1 -0
  187. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts +13 -0
  188. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts.map +1 -0
  189. package/lib/typescript/src/games/candy-crush/components/GameBackground.d.ts +5 -0
  190. package/lib/typescript/src/games/candy-crush/components/GameBackground.d.ts.map +1 -0
  191. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts +3 -0
  192. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts.map +1 -0
  193. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts +3 -0
  194. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts.map +1 -0
  195. package/lib/typescript/src/games/candy-crush/components/index.d.ts +5 -0
  196. package/lib/typescript/src/games/candy-crush/components/index.d.ts.map +1 -0
  197. package/lib/typescript/src/games/candy-crush/index.d.ts +4 -0
  198. package/lib/typescript/src/games/candy-crush/index.d.ts.map +1 -0
  199. package/lib/typescript/src/games/color-sort/ColorSort.d.ts +4 -0
  200. package/lib/typescript/src/games/color-sort/ColorSort.d.ts.map +1 -0
  201. package/lib/typescript/src/games/color-sort/ColorSortConstants.d.ts +52 -0
  202. package/lib/typescript/src/games/color-sort/ColorSortConstants.d.ts.map +1 -0
  203. package/lib/typescript/src/games/color-sort/ColorSortService.d.ts +66 -0
  204. package/lib/typescript/src/games/color-sort/ColorSortService.d.ts.map +1 -0
  205. package/lib/typescript/src/games/color-sort/ColorSortStore.d.ts +48 -0
  206. package/lib/typescript/src/games/color-sort/ColorSortStore.d.ts.map +1 -0
  207. package/lib/typescript/src/games/color-sort/components/ColorContainer.d.ts +11 -0
  208. package/lib/typescript/src/games/color-sort/components/ColorContainer.d.ts.map +1 -0
  209. package/lib/typescript/src/games/color-sort/components/GameBackground.d.ts +7 -0
  210. package/lib/typescript/src/games/color-sort/components/GameBackground.d.ts.map +1 -0
  211. package/lib/typescript/src/games/color-sort/components/ScoreBoard.d.ts +3 -0
  212. package/lib/typescript/src/games/color-sort/components/ScoreBoard.d.ts.map +1 -0
  213. package/lib/typescript/src/games/color-sort/components/index.d.ts +4 -0
  214. package/lib/typescript/src/games/color-sort/components/index.d.ts.map +1 -0
  215. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts +4 -0
  216. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -0
  217. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +95 -0
  218. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts.map +1 -0
  219. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +40 -0
  220. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts.map +1 -0
  221. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +103 -0
  222. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts.map +1 -0
  223. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts +3 -0
  224. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -0
  225. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts +8 -0
  226. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts.map +1 -0
  227. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts +7 -0
  228. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts.map +1 -0
  229. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts +3 -0
  230. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts.map +1 -0
  231. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts +3 -0
  232. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts.map +1 -0
  233. package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts +3 -0
  234. package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts.map +1 -0
  235. package/lib/typescript/src/games/dino-jump/components/index.d.ts +7 -0
  236. package/lib/typescript/src/games/dino-jump/components/index.d.ts.map +1 -0
  237. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts +4 -0
  238. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -0
  239. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts +83 -0
  240. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -0
  241. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +53 -0
  242. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts.map +1 -0
  243. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts +8 -0
  244. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts.map +1 -0
  245. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts +8 -0
  246. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts.map +1 -0
  247. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts +7 -0
  248. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts.map +1 -0
  249. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts +8 -0
  250. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts.map +1 -0
  251. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts +3 -0
  252. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts.map +1 -0
  253. package/lib/typescript/src/games/flappy-bird/components/index.d.ts +6 -0
  254. package/lib/typescript/src/games/flappy-bird/components/index.d.ts.map +1 -0
  255. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts +4 -0
  256. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -0
  257. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts +115 -0
  258. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -0
  259. package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts +5 -0
  260. package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts.map +1 -0
  261. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts +43 -0
  262. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts.map +1 -0
  263. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts +10 -0
  264. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts.map +1 -0
  265. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts +8 -0
  266. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts.map +1 -0
  267. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts +7 -0
  268. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts.map +1 -0
  269. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts +3 -0
  270. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts.map +1 -0
  271. package/lib/typescript/src/games/fruit-merger/components/index.d.ts +5 -0
  272. package/lib/typescript/src/games/fruit-merger/components/index.d.ts.map +1 -0
  273. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  274. package/lib/typescript/src/games/game-2048/Game2048.d.ts +4 -0
  275. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -0
  276. package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts +163 -0
  277. package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts.map +1 -0
  278. package/lib/typescript/src/games/game-2048/Game2048Service.d.ts +113 -0
  279. package/lib/typescript/src/games/game-2048/Game2048Service.d.ts.map +1 -0
  280. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +48 -0
  281. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts.map +1 -0
  282. package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts +7 -0
  283. package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts.map +1 -0
  284. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts +7 -0
  285. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts.map +1 -0
  286. package/lib/typescript/src/games/game-2048/components/GameTile.d.ts +13 -0
  287. package/lib/typescript/src/games/game-2048/components/GameTile.d.ts.map +1 -0
  288. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts +3 -0
  289. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts.map +1 -0
  290. package/lib/typescript/src/games/game-2048/components/index.d.ts +5 -0
  291. package/lib/typescript/src/games/game-2048/components/index.d.ts.map +1 -0
  292. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  293. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  294. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts +4 -0
  295. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -0
  296. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts +108 -0
  297. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts.map +1 -0
  298. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts +34 -0
  299. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts.map +1 -0
  300. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts +56 -0
  301. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts.map +1 -0
  302. package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts +7 -0
  303. package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts.map +1 -0
  304. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts +7 -0
  305. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts.map +1 -0
  306. package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts +11 -0
  307. package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts.map +1 -0
  308. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts +3 -0
  309. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts.map +1 -0
  310. package/lib/typescript/src/games/sliding-numbers/components/index.d.ts +5 -0
  311. package/lib/typescript/src/games/sliding-numbers/components/index.d.ts.map +1 -0
  312. package/lib/typescript/src/games/snake/Snake.d.ts +4 -0
  313. package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -0
  314. package/lib/typescript/src/games/snake/SnakeConstants.d.ts +93 -0
  315. package/lib/typescript/src/games/snake/SnakeConstants.d.ts.map +1 -0
  316. package/lib/typescript/src/games/snake/SnakeService.d.ts +30 -0
  317. package/lib/typescript/src/games/snake/SnakeService.d.ts.map +1 -0
  318. package/lib/typescript/src/games/snake/SnakeStore.d.ts +43 -0
  319. package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -0
  320. package/lib/typescript/src/games/snake/components/GameBackground.d.ts +5 -0
  321. package/lib/typescript/src/games/snake/components/GameBackground.d.ts.map +1 -0
  322. package/lib/typescript/src/games/snake/components/GameGrid.d.ts +3 -0
  323. package/lib/typescript/src/games/snake/components/GameGrid.d.ts.map +1 -0
  324. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts +3 -0
  325. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts.map +1 -0
  326. package/lib/typescript/src/games/snake/components/index.d.ts +4 -0
  327. package/lib/typescript/src/games/snake/components/index.d.ts.map +1 -0
  328. package/lib/typescript/src/games/snake/index.d.ts +4 -0
  329. package/lib/typescript/src/games/snake/index.d.ts.map +1 -0
  330. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  331. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  332. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -1
  333. package/lib/typescript/src/index.d.ts +8 -0
  334. package/lib/typescript/src/index.d.ts.map +1 -1
  335. package/lib/typescript/src/services/GamesConstants.d.ts +156 -0
  336. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  337. package/lib/typescript/src/services/GamesService.d.ts +10 -2
  338. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  339. package/lib/typescript/src/services/SoundsService.d.ts +103 -0
  340. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -1
  341. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts +2 -0
  342. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +1 -1
  343. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +1 -1
  344. package/package.json +1 -1
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, Text, StyleSheet } from 'react-native';
5
+ import { useScore, useTimeRemaining, useComboCount } from "../CandyCrushStore.js";
6
+ import { CANDY_CRUSH_COLORS } from "../CandyCrushConstants.js";
7
+ import { RESPONSIVE_SCOREBOARD_CONTAINER, RESPONSIVE_SCOREBOARD_FONTS } from "../../../shared/helpers/index.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export const ScoreBoard = /*#__PURE__*/React.memo(() => {
10
+ const score = useScore();
11
+ const timeRemaining = useTimeRemaining();
12
+ const comboCount = useComboCount();
13
+
14
+ // Memoized time display calculation
15
+ const timeDisplay = React.useMemo(() => {
16
+ const minutes = Math.floor(timeRemaining / 60);
17
+ const seconds = timeRemaining % 60;
18
+ return `${minutes}:${seconds.toString().padStart(2, '0')}`;
19
+ }, [timeRemaining]);
20
+
21
+ // Memoized color based on time remaining
22
+ const timeColor = React.useMemo(() => {
23
+ if (timeRemaining <= 30) return CANDY_CRUSH_COLORS.TIME_CRITICAL;
24
+ if (timeRemaining <= 60) return CANDY_CRUSH_COLORS.TIME_WARNING;
25
+ return CANDY_CRUSH_COLORS.TIME_GOOD;
26
+ }, [timeRemaining]);
27
+ return /*#__PURE__*/_jsx(View, {
28
+ style: styles.container,
29
+ children: /*#__PURE__*/_jsxs(View, {
30
+ style: styles.scoreContainer,
31
+ children: [/*#__PURE__*/_jsxs(View, {
32
+ style: styles.scoreRow,
33
+ children: [/*#__PURE__*/_jsxs(View, {
34
+ style: styles.scoreItem,
35
+ children: [/*#__PURE__*/_jsx(Text, {
36
+ style: styles.label,
37
+ children: "Score"
38
+ }), /*#__PURE__*/_jsx(Text, {
39
+ style: styles.value,
40
+ children: score
41
+ })]
42
+ }), /*#__PURE__*/_jsxs(View, {
43
+ style: styles.scoreItem,
44
+ children: [/*#__PURE__*/_jsx(Text, {
45
+ style: styles.label,
46
+ children: "Time"
47
+ }), /*#__PURE__*/_jsx(Text, {
48
+ style: [styles.value, {
49
+ color: timeColor
50
+ }],
51
+ children: timeDisplay
52
+ })]
53
+ })]
54
+ }), comboCount > 1 && /*#__PURE__*/_jsx(View, {
55
+ style: styles.comboContainer,
56
+ children: /*#__PURE__*/_jsxs(Text, {
57
+ style: styles.comboText,
58
+ children: ["COMBO x", comboCount, "!"]
59
+ })
60
+ })]
61
+ })
62
+ });
63
+ });
64
+ ScoreBoard.displayName = 'ScoreBoard';
65
+ const styles = StyleSheet.create({
66
+ container: {
67
+ ...RESPONSIVE_SCOREBOARD_CONTAINER,
68
+ marginHorizontal: 20,
69
+ marginTop: 10
70
+ },
71
+ scoreContainer: {
72
+ backgroundColor: CANDY_CRUSH_COLORS.SCORE_BACKGROUND,
73
+ borderRadius: 15,
74
+ padding: 15,
75
+ borderWidth: 2,
76
+ borderColor: CANDY_CRUSH_COLORS.GRID_BORDER
77
+ },
78
+ scoreRow: {
79
+ flexDirection: 'row',
80
+ justifyContent: 'space-around',
81
+ marginBottom: 10
82
+ },
83
+ scoreItem: {
84
+ alignItems: 'center'
85
+ },
86
+ label: {
87
+ fontSize: RESPONSIVE_SCOREBOARD_FONTS.labelSize,
88
+ color: 'rgba(255, 255, 255, 0.7)',
89
+ marginBottom: 4
90
+ },
91
+ value: {
92
+ fontSize: RESPONSIVE_SCOREBOARD_FONTS.valueSize,
93
+ color: CANDY_CRUSH_COLORS.SCORE_TEXT,
94
+ fontWeight: 'bold'
95
+ },
96
+ comboContainer: {
97
+ marginTop: 8,
98
+ alignItems: 'center'
99
+ },
100
+ comboText: {
101
+ fontSize: 16,
102
+ fontWeight: 'bold',
103
+ color: CANDY_CRUSH_COLORS.COMBO_TEXT,
104
+ textShadowColor: 'rgba(0, 0, 0, 0.3)',
105
+ textShadowOffset: {
106
+ width: 1,
107
+ height: 1
108
+ },
109
+ textShadowRadius: 2
110
+ }
111
+ });
112
+ //# sourceMappingURL=ScoreBoard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","useScore","useTimeRemaining","useComboCount","CANDY_CRUSH_COLORS","RESPONSIVE_SCOREBOARD_CONTAINER","RESPONSIVE_SCOREBOARD_FONTS","jsx","_jsx","jsxs","_jsxs","ScoreBoard","memo","score","timeRemaining","comboCount","timeDisplay","useMemo","minutes","Math","floor","seconds","toString","padStart","timeColor","TIME_CRITICAL","TIME_WARNING","TIME_GOOD","style","styles","container","children","scoreContainer","scoreRow","scoreItem","label","value","color","comboContainer","comboText","displayName","create","marginHorizontal","marginTop","backgroundColor","SCORE_BACKGROUND","borderRadius","padding","borderWidth","borderColor","GRID_BORDER","flexDirection","justifyContent","marginBottom","alignItems","fontSize","labelSize","valueSize","SCORE_TEXT","fontWeight","COMBO_TEXT","textShadowColor","textShadowOffset","width","height","textShadowRadius"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/ScoreBoard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SAASC,QAAQ,EAAEC,gBAAgB,EAAEC,aAAa,QAAQ,uBAAoB;AAC9E,SAASC,kBAAkB,QAAQ,2BAAwB;AAC3D,SAASC,+BAA+B,EAAEC,2BAA2B,QAAQ,kCAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEvG,OAAO,MAAMC,UAAoB,gBAAGd,KAAK,CAACe,IAAI,CAAC,MAAM;EACnD,MAAMC,KAAK,GAAGZ,QAAQ,CAAC,CAAC;EACxB,MAAMa,aAAa,GAAGZ,gBAAgB,CAAC,CAAC;EACxC,MAAMa,UAAU,GAAGZ,aAAa,CAAC,CAAC;;EAElC;EACA,MAAMa,WAAW,GAAGnB,KAAK,CAACoB,OAAO,CAAC,MAAM;IACtC,MAAMC,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACN,aAAa,GAAG,EAAE,CAAC;IAC9C,MAAMO,OAAO,GAAGP,aAAa,GAAG,EAAE;IAClC,OAAO,GAAGI,OAAO,IAAIG,OAAO,CAACC,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;EAC5D,CAAC,EAAE,CAACT,aAAa,CAAC,CAAC;;EAEnB;EACA,MAAMU,SAAS,GAAG3B,KAAK,CAACoB,OAAO,CAAC,MAAM;IACpC,IAAIH,aAAa,IAAI,EAAE,EAAE,OAAOV,kBAAkB,CAACqB,aAAa;IAChE,IAAIX,aAAa,IAAI,EAAE,EAAE,OAAOV,kBAAkB,CAACsB,YAAY;IAC/D,OAAOtB,kBAAkB,CAACuB,SAAS;EACrC,CAAC,EAAE,CAACb,aAAa,CAAC,CAAC;EAEnB,oBACEN,IAAA,CAACV,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BrB,KAAA,CAACZ,IAAI;MAAC8B,KAAK,EAAEC,MAAM,CAACG,cAAe;MAAAD,QAAA,gBACjCrB,KAAA,CAACZ,IAAI;QAAC8B,KAAK,EAAEC,MAAM,CAACI,QAAS;QAAAF,QAAA,gBAC3BrB,KAAA,CAACZ,IAAI;UAAC8B,KAAK,EAAEC,MAAM,CAACK,SAAU;UAAAH,QAAA,gBAC5BvB,IAAA,CAACT,IAAI;YAAC6B,KAAK,EAAEC,MAAM,CAACM,KAAM;YAAAJ,QAAA,EAAC;UAAK,CAAM,CAAC,eACvCvB,IAAA,CAACT,IAAI;YAAC6B,KAAK,EAAEC,MAAM,CAACO,KAAM;YAAAL,QAAA,EAAElB;UAAK,CAAO,CAAC;QAAA,CACrC,CAAC,eAEPH,KAAA,CAACZ,IAAI;UAAC8B,KAAK,EAAEC,MAAM,CAACK,SAAU;UAAAH,QAAA,gBAC5BvB,IAAA,CAACT,IAAI;YAAC6B,KAAK,EAAEC,MAAM,CAACM,KAAM;YAAAJ,QAAA,EAAC;UAAI,CAAM,CAAC,eACtCvB,IAAA,CAACT,IAAI;YAAC6B,KAAK,EAAE,CAACC,MAAM,CAACO,KAAK,EAAE;cAAEC,KAAK,EAAEb;YAAU,CAAC,CAAE;YAAAO,QAAA,EAAEf;UAAW,CAAO,CAAC;QAAA,CACnE,CAAC;MAAA,CACH,CAAC,EAGND,UAAU,GAAG,CAAC,iBACbP,IAAA,CAACV,IAAI;QAAC8B,KAAK,EAAEC,MAAM,CAACS,cAAe;QAAAP,QAAA,eACjCrB,KAAA,CAACX,IAAI;UAAC6B,KAAK,EAAEC,MAAM,CAACU,SAAU;UAAAR,QAAA,GAAC,SAAO,EAAChB,UAAU,EAAC,GAAC;QAAA,CAAM;MAAC,CACtD,CACP;IAAA,CACG;EAAC,CACH,CAAC;AAEX,CAAC,CAAC;AAEFJ,UAAU,CAAC6B,WAAW,GAAG,YAAY;AAErC,MAAMX,MAAM,GAAG7B,UAAU,CAACyC,MAAM,CAAC;EAC/BX,SAAS,EAAE;IACT,GAAGzB,+BAA+B;IAClCqC,gBAAgB,EAAE,EAAE;IACpBC,SAAS,EAAE;EACb,CAAC;EACDX,cAAc,EAAE;IACdY,eAAe,EAAExC,kBAAkB,CAACyC,gBAAgB;IACpDC,YAAY,EAAE,EAAE;IAChBC,OAAO,EAAE,EAAE;IACXC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE7C,kBAAkB,CAAC8C;EAClC,CAAC;EACDjB,QAAQ,EAAE;IACRkB,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,cAAc;IAC9BC,YAAY,EAAE;EAChB,CAAC;EACDnB,SAAS,EAAE;IACToB,UAAU,EAAE;EACd,CAAC;EACDnB,KAAK,EAAE;IACLoB,QAAQ,EAAEjD,2BAA2B,CAACkD,SAAS;IAC/CnB,KAAK,EAAE,0BAA0B;IACjCgB,YAAY,EAAE;EAChB,CAAC;EACDjB,KAAK,EAAE;IACLmB,QAAQ,EAAEjD,2BAA2B,CAACmD,SAAS;IAC/CpB,KAAK,EAAEjC,kBAAkB,CAACsD,UAAU;IACpCC,UAAU,EAAE;EACd,CAAC;EACDrB,cAAc,EAAE;IACdK,SAAS,EAAE,CAAC;IACZW,UAAU,EAAE;EACd,CAAC;EACDf,SAAS,EAAE;IACTgB,QAAQ,EAAE,EAAE;IACZI,UAAU,EAAE,MAAM;IAClBtB,KAAK,EAAEjC,kBAAkB,CAACwD,UAAU;IACpCC,eAAe,EAAE,oBAAoB;IACrCC,gBAAgB,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACzCC,gBAAgB,EAAE;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ export { GameBackground } from "./GameBackground.js";
4
+ export { GameGrid } from "./GameGrid.js";
5
+ export { ScoreBoard } from "./ScoreBoard.js";
6
+ export { CandyItem } from "./CandyItem.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GameBackground","GameGrid","ScoreBoard","CandyItem"],"sourceRoot":"../../../../../src","sources":["games/candy-crush/components/index.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,SAAS,QAAQ,gBAAa","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export { CandyCrush } from "./CandyCrush.js";
4
+ export { useCandyCrushStore } from "./CandyCrushStore.js";
5
+ export * from "./CandyCrushConstants.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CandyCrush","useCandyCrushStore"],"sourceRoot":"../../../../src","sources":["games/candy-crush/index.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,iBAAc;AACzC,SAASC,kBAAkB,QAAQ,sBAAmB;AACtD,cAAc,0BAAuB","ignoreList":[]}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useCallback, useMemo } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { useColorSortStore, useIsPlaying, useIsGameOver, useTime, useContainers, useSelectedContainerId } from "./ColorSortStore.js";
6
+ import { ColorContainer, ScoreBoard, GameBackground } from "./components/index.js";
7
+ import { GameControlButton, GameOverModal } from "../../shared/helpers/index.js";
8
+ import { GameSettingsModal } from "../../shared/helpers/index.js";
9
+ import { COLOR_SORT_COLORS } from "./ColorSortConstants.js";
10
+ import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/GamesService.js";
11
+ import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
12
+ import { playHaptic, HapticType } from "../../services/HapticsService.js";
13
+ import { formatTime, getGridLayout } from "./ColorSortService.js";
14
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ export const ColorSort = /*#__PURE__*/React.memo(({
16
+ settings = DEFAULT_GAME_SETTINGS,
17
+ onSettingsChange
18
+ }) => {
19
+ const isPlaying = useIsPlaying();
20
+ const isGameOver = useIsGameOver();
21
+ const time = useTime();
22
+ const containers = useContainers();
23
+ const selectedContainerId = useSelectedContainerId();
24
+ const initializeGame = useColorSortStore(state => state.initializeGame);
25
+ const startGame = useColorSortStore(state => state.startGame);
26
+ const stopGame = useColorSortStore(state => state.stopGame);
27
+ const resetGame = useColorSortStore(state => state.resetGame);
28
+ const selectContainer = useColorSortStore(state => state.selectContainer);
29
+ const difficulty = settings.difficulty;
30
+ const gridStyle = useMemo(() => getGridLayout(difficulty), [difficulty]);
31
+ useEffect(() => {
32
+ initializeGame(difficulty);
33
+ }, [difficulty, initializeGame]);
34
+ const handleStartGame = useCallback(() => {
35
+ initializeGame(difficulty);
36
+ startGame();
37
+ playSound(GAME_SOUNDS.COLOR_SORT.START, settings.enableSounds);
38
+ playHaptic(HapticType.MEDIUM, settings.enableHaptics);
39
+ }, [difficulty, initializeGame, startGame, settings.enableSounds, settings.enableHaptics]);
40
+ const handleStopGame = useCallback(() => {
41
+ stopGame();
42
+ }, [stopGame]);
43
+ const handleResetGame = useCallback(() => {
44
+ resetGame();
45
+ initializeGame(difficulty);
46
+ }, [resetGame, initializeGame, difficulty]);
47
+ const handleContainerPress = useCallback(containerId => {
48
+ if (!isPlaying || isGameOver) return;
49
+ selectContainer(containerId, settings);
50
+ }, [isPlaying, isGameOver, selectContainer, settings]);
51
+
52
+ // Memoize GameControlButton props to prevent re-renders (CRITICAL)
53
+ const gameControlButtonProps = useMemo(() => ({
54
+ isPlaying,
55
+ gameOver: isGameOver,
56
+ onStartGame: handleStartGame,
57
+ onStopGame: handleStopGame,
58
+ startButtonText: "START SORTING",
59
+ stopButtonText: "STOP",
60
+ startButtonSubtext: "Sort colors!",
61
+ startButtonColor: COLOR_SORT_COLORS.BUTTON_PRIMARY,
62
+ startButtonBorderColor: COLOR_SORT_COLORS.BUTTON_SECONDARY
63
+ }), [isPlaying, isGameOver, handleStartGame, handleStopGame]);
64
+
65
+ // Memoize GameOverModal props to prevent re-renders
66
+ const gameOverModalProps = useMemo(() => ({
67
+ isVisible: isGameOver,
68
+ score: time,
69
+ onPlayAgain: handleResetGame,
70
+ buttonText: "Sort Again!",
71
+ primaryColor: "rgba(255, 140, 66, 0.95)",
72
+ borderColor: COLOR_SORT_COLORS.BUTTON_PRIMARY,
73
+ buttonColor: COLOR_SORT_COLORS.BUTTON_PRIMARY,
74
+ buttonBorderColor: COLOR_SORT_COLORS.BUTTON_SECONDARY,
75
+ scoreLabel: "Completion Time",
76
+ scoreFormatter: formatTime
77
+ }), [isGameOver, time, handleResetGame]);
78
+
79
+ // Memoize GameSettingsModal props
80
+ const gameSettingsModalProps = useMemo(() => ({
81
+ gameId: GAME_IDS.COLOR_SORT,
82
+ settings,
83
+ onSettingsChange
84
+ }), [settings, onSettingsChange]);
85
+ return /*#__PURE__*/_jsx(GameBackground, {
86
+ children: /*#__PURE__*/_jsxs(View, {
87
+ style: styles.container,
88
+ children: [/*#__PURE__*/_jsx(ScoreBoard, {}), /*#__PURE__*/_jsx(View, {
89
+ style: styles.gameArea,
90
+ children: /*#__PURE__*/_jsx(View, {
91
+ style: [styles.containersGrid, gridStyle],
92
+ children: containers.map(container => /*#__PURE__*/_jsx(ColorContainer, {
93
+ container: container,
94
+ isSelected: selectedContainerId === container.id,
95
+ onPress: () => handleContainerPress(container.id),
96
+ difficulty: difficulty
97
+ }, container.id))
98
+ })
99
+ }), /*#__PURE__*/_jsx(GameControlButton, {
100
+ ...gameControlButtonProps
101
+ }), /*#__PURE__*/_jsx(GameOverModal, {
102
+ ...gameOverModalProps
103
+ }), /*#__PURE__*/_jsx(GameSettingsModal, {
104
+ ...gameSettingsModalProps
105
+ })]
106
+ })
107
+ });
108
+ });
109
+ const styles = StyleSheet.create({
110
+ container: {
111
+ flex: 1
112
+ },
113
+ gameArea: {
114
+ flex: 1,
115
+ justifyContent: 'center',
116
+ alignItems: 'center',
117
+ paddingTop: 100,
118
+ paddingBottom: 120
119
+ },
120
+ containersGrid: {
121
+ flexDirection: 'row',
122
+ flexWrap: 'wrap',
123
+ justifyContent: 'center',
124
+ alignItems: 'flex-end',
125
+ gap: 15,
126
+ paddingHorizontal: 10
127
+ }
128
+ });
129
+ ColorSort.displayName = 'ColorSort';
130
+ //# sourceMappingURL=ColorSort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useCallback","useMemo","View","StyleSheet","useColorSortStore","useIsPlaying","useIsGameOver","useTime","useContainers","useSelectedContainerId","ColorContainer","ScoreBoard","GameBackground","GameControlButton","GameOverModal","GameSettingsModal","COLOR_SORT_COLORS","GAME_IDS","DEFAULT_GAME_SETTINGS","playSound","GAME_SOUNDS","playHaptic","HapticType","formatTime","getGridLayout","jsx","_jsx","jsxs","_jsxs","ColorSort","memo","settings","onSettingsChange","isPlaying","isGameOver","time","containers","selectedContainerId","initializeGame","state","startGame","stopGame","resetGame","selectContainer","difficulty","gridStyle","handleStartGame","COLOR_SORT","START","enableSounds","MEDIUM","enableHaptics","handleStopGame","handleResetGame","handleContainerPress","containerId","gameControlButtonProps","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","startButtonColor","BUTTON_PRIMARY","startButtonBorderColor","BUTTON_SECONDARY","gameOverModalProps","isVisible","score","onPlayAgain","buttonText","primaryColor","borderColor","buttonColor","buttonBorderColor","scoreLabel","scoreFormatter","gameSettingsModalProps","gameId","children","style","styles","container","gameArea","containersGrid","map","isSelected","id","onPress","create","flex","justifyContent","alignItems","paddingTop","paddingBottom","flexDirection","flexWrap","gap","paddingHorizontal","displayName"],"sourceRoot":"../../../../src","sources":["games/color-sort/ColorSort.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ import { Dimensions } from 'react-native';
4
+ const {
5
+ width,
6
+ height
7
+ } = Dimensions.get('window');
8
+ export const COLOR_SORT_COLORS = {
9
+ BACKGROUND: '#FFF5E6',
10
+ // Warm cream/peach background
11
+ PIECE_ORANGE: '#FF6B35',
12
+ PIECE_PINK: '#FF1493',
13
+ PIECE_GREEN: '#32CD32',
14
+ PIECE_RED: '#FF4444',
15
+ PIECE_YELLOW: '#FFD700',
16
+ PIECE_BLUE: '#4169E1',
17
+ PIECE_PURPLE: '#9370DB',
18
+ BASE_SILVER: '#C0C0C0',
19
+ BASE_DARK: '#A8A8A8',
20
+ SCREW_WHITE: '#F5F5F5',
21
+ BUTTON_PRIMARY: '#FF6B35',
22
+ BUTTON_SECONDARY: '#FF8C42',
23
+ SCORE_TEXT: '#FFFFFF',
24
+ SELECTED_GLOW: '#FFD700'
25
+ };
26
+
27
+ // Game Configuration
28
+ export const COLOR_SORT_GAME_CONFIG = {
29
+ SCREEN_WIDTH: width,
30
+ SCREEN_HEIGHT: height,
31
+ PIECE_SIZE: 50,
32
+ CONTAINER_SIZE: 60,
33
+ CONTAINER_SPACING: 20,
34
+ PIECE_SPACING: 5
35
+ };
36
+
37
+ // Game Constants
38
+ export const COLOR_SORT_CONSTANTS = {
39
+ baseScore: 10,
40
+ moveScore: 10,
41
+ perfectBonus: 100
42
+ };
43
+ export const PIECE_COLORS = [COLOR_SORT_COLORS.PIECE_RED, COLOR_SORT_COLORS.PIECE_GREEN, COLOR_SORT_COLORS.PIECE_BLUE, COLOR_SORT_COLORS.PIECE_YELLOW, COLOR_SORT_COLORS.PIECE_PURPLE, COLOR_SORT_COLORS.PIECE_ORANGE, COLOR_SORT_COLORS.PIECE_PINK];
44
+
45
+ // Game Settings Theme
46
+ export const COLOR_SORT_THEME = {
47
+ backgroundColor: '#FFF5E6',
48
+ headerBackgroundColor: '#FF6B35',
49
+ headerTextColor: '#FFFFFF',
50
+ sectionBackgroundColor: '#FFE8CC',
51
+ sectionTitleColor: '#FF6B35',
52
+ buttonSelectedColor: '#FF6B35',
53
+ buttonUnselectedColor: '#FFA366',
54
+ buttonSelectedTextColor: '#FFFFFF',
55
+ buttonUnselectedTextColor: '#FFFFFF',
56
+ switchTrackColorFalse: '#D0D0D0',
57
+ switchTrackColorTrue: '#FF6B35',
58
+ switchThumbColor: '#FFFFFF',
59
+ infoTextColor: '#666666'
60
+ };
61
+
62
+ // Difficulty Descriptions
63
+ export const COLOR_SORT_DIFFICULTY_DESCRIPTIONS = {
64
+ easy: '4 containers, 3 colors, 3 pieces each - Perfect for beginners',
65
+ medium: '5 containers, 4 colors, 3 pieces each - Standard challenge',
66
+ hard: '6 containers, 5 colors, 4 pieces each - Expert level!'
67
+ };
68
+ //# sourceMappingURL=ColorSortConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Dimensions","width","height","get","COLOR_SORT_COLORS","BACKGROUND","PIECE_ORANGE","PIECE_PINK","PIECE_GREEN","PIECE_RED","PIECE_YELLOW","PIECE_BLUE","PIECE_PURPLE","BASE_SILVER","BASE_DARK","SCREW_WHITE","BUTTON_PRIMARY","BUTTON_SECONDARY","SCORE_TEXT","SELECTED_GLOW","COLOR_SORT_GAME_CONFIG","SCREEN_WIDTH","SCREEN_HEIGHT","PIECE_SIZE","CONTAINER_SIZE","CONTAINER_SPACING","PIECE_SPACING","COLOR_SORT_CONSTANTS","baseScore","moveScore","perfectBonus","PIECE_COLORS","COLOR_SORT_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","COLOR_SORT_DIFFICULTY_DESCRIPTIONS","easy","medium","hard"],"sourceRoot":"../../../../src","sources":["games/color-sort/ColorSortConstants.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,MAAM;EAAEC,KAAK;EAAEC;AAAO,CAAC,GAAGF,UAAU,CAACG,GAAG,CAAC,QAAQ,CAAC;AAElD,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,UAAU,EAAE,SAAS;EAAE;EACvBC,YAAY,EAAE,SAAS;EACvBC,UAAU,EAAE,SAAS;EACrBC,WAAW,EAAE,SAAS;EACtBC,SAAS,EAAE,SAAS;EACpBC,YAAY,EAAE,SAAS;EACvBC,UAAU,EAAE,SAAS;EACrBC,YAAY,EAAE,SAAS;EACvBC,WAAW,EAAE,SAAS;EACtBC,SAAS,EAAE,SAAS;EACpBC,WAAW,EAAE,SAAS;EACtBC,cAAc,EAAE,SAAS;EACzBC,gBAAgB,EAAE,SAAS;EAC3BC,UAAU,EAAE,SAAS;EACrBC,aAAa,EAAE;AACjB,CAAC;;AAED;AACA,OAAO,MAAMC,sBAAsB,GAAG;EACpCC,YAAY,EAAEpB,KAAK;EACnBqB,aAAa,EAAEpB,MAAM;EACrBqB,UAAU,EAAE,EAAE;EACdC,cAAc,EAAE,EAAE;EAClBC,iBAAiB,EAAE,EAAE;EACrBC,aAAa,EAAE;AACjB,CAAC;;AAED;AACA,OAAO,MAAMC,oBAAoB,GAAG;EAClCC,SAAS,EAAE,EAAE;EACbC,SAAS,EAAE,EAAE;EACbC,YAAY,EAAE;AAChB,CAAC;AAED,OAAO,MAAMC,YAAY,GAAG,CAC1B3B,iBAAiB,CAACK,SAAS,EAC3BL,iBAAiB,CAACI,WAAW,EAC7BJ,iBAAiB,CAACO,UAAU,EAC5BP,iBAAiB,CAACM,YAAY,EAC9BN,iBAAiB,CAACQ,YAAY,EAC9BR,iBAAiB,CAACE,YAAY,EAC9BF,iBAAiB,CAACG,UAAU,CAC7B;;AAED;AACA,OAAO,MAAMyB,gBAAgB,GAAG;EAC9BC,eAAe,EAAE,SAAS;EAC1BC,qBAAqB,EAAE,SAAS;EAChCC,eAAe,EAAE,SAAS;EAC1BC,sBAAsB,EAAE,SAAS;EACjCC,iBAAiB,EAAE,SAAS;EAC5BC,mBAAmB,EAAE,SAAS;EAC9BC,qBAAqB,EAAE,SAAS;EAChCC,uBAAuB,EAAE,SAAS;EAClCC,yBAAyB,EAAE,SAAS;EACpCC,qBAAqB,EAAE,SAAS;EAChCC,oBAAoB,EAAE,SAAS;EAC/BC,gBAAgB,EAAE,SAAS;EAC3BC,aAAa,EAAE;AACjB,CAAC;;AAED;AACA,OAAO,MAAMC,kCAAkC,GAAG;EAChDC,IAAI,EAAE,+DAA+D;EACrEC,MAAM,EAAE,4DAA4D;EACpEC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * ColorSort Game Service
5
+ * Handles all utility functions, game logic, and background generation
6
+ */
7
+
8
+ import { Dimensions } from 'react-native';
9
+ const {
10
+ width,
11
+ height
12
+ } = Dimensions.get('window');
13
+
14
+ // ==================== TYPES ====================
15
+
16
+ // ==================== CONSTANTS ====================
17
+
18
+ // Color sort themed vibrant colors
19
+ export const SORT_COLORS = ['#FF6B35',
20
+ // Primary orange
21
+ '#FF4444',
22
+ // Red
23
+ '#FF8C42',
24
+ // Light orange
25
+ '#FFD700',
26
+ // Yellow
27
+ '#32CD32',
28
+ // Green
29
+ '#4169E1',
30
+ // Blue
31
+ '#FF1493',
32
+ // Pink
33
+ '#9370DB',
34
+ // Purple
35
+ '#00BCD4',
36
+ // Cyan
37
+ '#FFA366',
38
+ // Peach
39
+ '#CDDC39',
40
+ // Lime
41
+ '#E91E63' // Magenta
42
+ ];
43
+
44
+ // ==================== GAME UTILITIES ====================
45
+
46
+ /**
47
+ * Format time in seconds to MM:SS format
48
+ */
49
+ export const formatTime = seconds => {
50
+ const mins = Math.floor(seconds / 60);
51
+ const secs = seconds % 60;
52
+ return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
53
+ };
54
+
55
+ /**
56
+ * Get grid layout style based on difficulty
57
+ */
58
+ export const getGridLayout = difficulty => {
59
+ switch (difficulty) {
60
+ case 'easy':
61
+ return {
62
+ maxWidth: 400
63
+ };
64
+ // 4 containers in 1 row
65
+ case 'medium':
66
+ return {
67
+ maxWidth: 300
68
+ };
69
+ // 3 in top, 2 in bottom
70
+ case 'hard':
71
+ return {
72
+ maxWidth: 300
73
+ };
74
+ // 3 in top, 3 in bottom
75
+ default:
76
+ return {
77
+ maxWidth: 400
78
+ };
79
+ }
80
+ };
81
+
82
+ /**
83
+ * Get piece height based on difficulty
84
+ */
85
+ export const getPieceHeight = (difficulty, baseSize) => {
86
+ switch (difficulty) {
87
+ case 'easy':
88
+ return baseSize - 8;
89
+ // 42px
90
+ case 'medium':
91
+ return baseSize - 10;
92
+ // 40px
93
+ case 'hard':
94
+ return baseSize - 18;
95
+ // 32px
96
+ default:
97
+ return baseSize - 10;
98
+ }
99
+ };
100
+
101
+ // ==================== BACKGROUND GENERATION ====================
102
+
103
+ /**
104
+ * Generate floating color blocks for background
105
+ */
106
+ export const generateFloatingBlocks = () => {
107
+ const elements = [];
108
+ const blockCount = 25;
109
+ for (let i = 0; i < blockCount; i++) {
110
+ const baseX = width / blockCount * i;
111
+ const baseY = height / blockCount * i;
112
+ const x = baseX + Math.sin(i * 0.5) * 50 + Math.random() * 100;
113
+ const y = baseY + Math.cos(i * 0.7) * 60 + Math.random() * 120;
114
+ const blockSize = 20 + Math.random() * 20;
115
+ const colorIndex = i % SORT_COLORS.length;
116
+ const opacity = 0.3 + Math.sin(i) * 0.15;
117
+ const blockX = Math.max(blockSize / 2, Math.min(width - blockSize, x));
118
+ const blockY = Math.max(blockSize / 2, Math.min(height - blockSize, y));
119
+ const color = `${SORT_COLORS[colorIndex]}${Math.floor(opacity * 255).toString(16).padStart(2, '0')}`;
120
+ let type;
121
+ if (i % 4 === 0) type = 'square';else if (i % 4 === 1) type = 'rect';else if (i % 4 === 2) type = 'wide';else type = 'circle';
122
+ elements.push({
123
+ key: `${type}-${i}`,
124
+ type,
125
+ x: blockX,
126
+ y: blockY,
127
+ size: blockSize,
128
+ color
129
+ });
130
+ }
131
+ return elements;
132
+ };
133
+
134
+ /**
135
+ * Get decorative blocks positioned around the screen
136
+ */
137
+ export const getDecorativeBlocks = () => [{
138
+ key: 'top-left',
139
+ x: width * 0.08,
140
+ y: height * 0.12,
141
+ size: 50,
142
+ r: 8,
143
+ color: `${SORT_COLORS[0]}50`
144
+ }, {
145
+ key: 'bottom-right',
146
+ x: width * 0.85,
147
+ y: height * 0.82,
148
+ size: 45,
149
+ r: 7,
150
+ color: `${SORT_COLORS[3]}50`
151
+ }, {
152
+ key: 'top-right',
153
+ x: width * 0.82,
154
+ y: height * 0.18,
155
+ size: 40,
156
+ r: 6,
157
+ color: `${SORT_COLORS[4]}50`
158
+ }, {
159
+ key: 'bottom-left',
160
+ x: width * 0.12,
161
+ y: height * 0.75,
162
+ size: 55,
163
+ r: 9,
164
+ color: `${SORT_COLORS[5]}50`
165
+ }, {
166
+ key: 'top-center',
167
+ x: width * 0.47,
168
+ y: height * 0.08,
169
+ size: 35,
170
+ r: 5,
171
+ color: `${SORT_COLORS[7]}50`
172
+ }, {
173
+ key: 'middle-left',
174
+ x: width * 0.15,
175
+ y: height * 0.47,
176
+ size: 42,
177
+ r: 6,
178
+ color: `${SORT_COLORS[6]}50`
179
+ }, {
180
+ key: 'middle-right',
181
+ x: width * 0.75,
182
+ y: height * 0.57,
183
+ size: 38,
184
+ r: 6,
185
+ color: `${SORT_COLORS[8]}50`
186
+ }, {
187
+ key: 'bottom-center',
188
+ x: width * 0.57,
189
+ y: height * 0.87,
190
+ size: 32,
191
+ r: 5,
192
+ color: `${SORT_COLORS[1]}50`
193
+ }];
194
+
195
+ /**
196
+ * Get decorative circles for variety
197
+ */
198
+ export const getDecorativeCircles = () => [{
199
+ key: 'circle-1',
200
+ cx: width * 0.25,
201
+ cy: height * 0.25,
202
+ r: 18,
203
+ color: `${SORT_COLORS[10]}45`
204
+ }, {
205
+ key: 'circle-2',
206
+ cx: width * 0.65,
207
+ cy: height * 0.35,
208
+ r: 22,
209
+ color: `${SORT_COLORS[11]}45`
210
+ }, {
211
+ key: 'circle-3',
212
+ cx: width * 0.35,
213
+ cy: height * 0.65,
214
+ r: 16,
215
+ color: `${SORT_COLORS[9]}45`
216
+ }];
217
+
218
+ /**
219
+ * Get gradient colors for background layers
220
+ */
221
+ export const getGradientColors = () => ({
222
+ main: [`${SORT_COLORS[0]}30`,
223
+ // Orange
224
+ `${SORT_COLORS[3]}25`,
225
+ // Yellow
226
+ `${SORT_COLORS[4]}30`,
227
+ // Green
228
+ `${SORT_COLORS[5]}25`,
229
+ // Blue
230
+ `${SORT_COLORS[7]}30` // Purple
231
+ ],
232
+ overlay: [`${SORT_COLORS[1]}20`,
233
+ // Red
234
+ 'transparent', `${SORT_COLORS[6]}20`,
235
+ // Pink
236
+ 'transparent', `${SORT_COLORS[8]}20`,
237
+ // Cyan
238
+ 'transparent'],
239
+ diagonal: [`${SORT_COLORS[2]}15`,
240
+ // Light orange
241
+ 'transparent', `${SORT_COLORS[10]}15`,
242
+ // Lime
243
+ 'transparent', `${SORT_COLORS[9]}15`,
244
+ // Peach
245
+ 'transparent']
246
+ });
247
+
248
+ // ==================== SERVICE CLASS ====================
249
+
250
+ export class ColorSortService {
251
+ cleanup() {
252
+ // Cleanup logic if needed
253
+ }
254
+ }
255
+ //# sourceMappingURL=ColorSortService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Dimensions","width","height","get","SORT_COLORS","formatTime","seconds","mins","Math","floor","secs","toString","padStart","getGridLayout","difficulty","maxWidth","getPieceHeight","baseSize","generateFloatingBlocks","elements","blockCount","i","baseX","baseY","x","sin","random","y","cos","blockSize","colorIndex","length","opacity","blockX","max","min","blockY","color","type","push","key","size","getDecorativeBlocks","r","getDecorativeCircles","cx","cy","getGradientColors","main","overlay","diagonal","ColorSortService","cleanup"],"sourceRoot":"../../../../src","sources":["games/color-sort/ColorSortService.ts"],"mappings":"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","ignoreList":[]}