react-native-games 0.7.0 → 1.0.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 (459) hide show
  1. package/README.md +507 -84
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +13 -21
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +1 -1
  5. package/lib/module/games/balloon-blaster/components/GameArea.js +1 -1
  6. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  7. package/lib/module/games/balloon-blaster/components/GameBackground.js +24 -17
  8. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  9. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +47 -47
  10. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  11. package/lib/module/games/candy-crush/CandyCrush.js +131 -0
  12. package/lib/module/games/candy-crush/CandyCrush.js.map +1 -0
  13. package/lib/module/games/candy-crush/CandyCrushConstants.js +125 -0
  14. package/lib/module/games/candy-crush/CandyCrushConstants.js.map +1 -0
  15. package/lib/module/games/candy-crush/CandyCrushService.js +370 -0
  16. package/lib/module/games/candy-crush/CandyCrushService.js.map +1 -0
  17. package/lib/module/games/candy-crush/CandyCrushStore.js +303 -0
  18. package/lib/module/games/candy-crush/CandyCrushStore.js.map +1 -0
  19. package/lib/module/games/candy-crush/components/CandyItem.js +191 -0
  20. package/lib/module/games/candy-crush/components/CandyItem.js.map +1 -0
  21. package/lib/module/games/candy-crush/components/GameBackground.js +85 -0
  22. package/lib/module/games/candy-crush/components/GameBackground.js.map +1 -0
  23. package/lib/module/games/candy-crush/components/GameGrid.js +314 -0
  24. package/lib/module/games/candy-crush/components/GameGrid.js.map +1 -0
  25. package/lib/module/games/candy-crush/components/ScoreBoard.js +79 -0
  26. package/lib/module/games/candy-crush/components/ScoreBoard.js.map +1 -0
  27. package/lib/module/games/candy-crush/components/index.js +7 -0
  28. package/lib/module/games/candy-crush/components/index.js.map +1 -0
  29. package/lib/module/games/candy-crush/index.js +6 -0
  30. package/lib/module/games/candy-crush/index.js.map +1 -0
  31. package/lib/module/games/colors-sort/ColorsSort.js +143 -0
  32. package/lib/module/games/colors-sort/ColorsSort.js.map +1 -0
  33. package/lib/module/games/colors-sort/ColorsSortConstants.js +72 -0
  34. package/lib/module/games/colors-sort/ColorsSortConstants.js.map +1 -0
  35. package/lib/module/games/colors-sort/ColorsSortService.js +255 -0
  36. package/lib/module/games/colors-sort/ColorsSortService.js.map +1 -0
  37. package/lib/module/games/colors-sort/ColorsSortStore.js +257 -0
  38. package/lib/module/games/colors-sort/ColorsSortStore.js.map +1 -0
  39. package/lib/module/games/colors-sort/components/ColorContainer.js +140 -0
  40. package/lib/module/games/colors-sort/components/ColorContainer.js.map +1 -0
  41. package/lib/module/games/colors-sort/components/GameBackground.js +135 -0
  42. package/lib/module/games/colors-sort/components/GameBackground.js.map +1 -0
  43. package/lib/module/games/colors-sort/components/ScoreBoard.js +70 -0
  44. package/lib/module/games/colors-sort/components/ScoreBoard.js.map +1 -0
  45. package/lib/module/games/colors-sort/components/index.js +6 -0
  46. package/lib/module/games/colors-sort/components/index.js.map +1 -0
  47. package/lib/module/games/dino-jump/DinoJump.js +209 -0
  48. package/lib/module/games/dino-jump/DinoJump.js.map +1 -0
  49. package/lib/module/games/dino-jump/DinoJumpConstants.js +189 -0
  50. package/lib/module/games/dino-jump/DinoJumpConstants.js.map +1 -0
  51. package/lib/module/games/dino-jump/DinoJumpService.js +270 -0
  52. package/lib/module/games/dino-jump/DinoJumpService.js.map +1 -0
  53. package/lib/module/games/dino-jump/DinoJumpStore.js +381 -0
  54. package/lib/module/games/dino-jump/DinoJumpStore.js.map +1 -0
  55. package/lib/module/games/dino-jump/components/DinoSprite.js +418 -0
  56. package/lib/module/games/dino-jump/components/DinoSprite.js.map +1 -0
  57. package/lib/module/games/dino-jump/components/GameArea.js +68 -0
  58. package/lib/module/games/dino-jump/components/GameArea.js.map +1 -0
  59. package/lib/module/games/dino-jump/components/GameBackground.js +444 -0
  60. package/lib/module/games/dino-jump/components/GameBackground.js.map +1 -0
  61. package/lib/module/games/dino-jump/components/ObstacleSprite.js +306 -0
  62. package/lib/module/games/dino-jump/components/ObstacleSprite.js.map +1 -0
  63. package/lib/module/games/dino-jump/components/ScoreBoard.js +105 -0
  64. package/lib/module/games/dino-jump/components/ScoreBoard.js.map +1 -0
  65. package/lib/module/games/dino-jump/components/StarSprite.js +45 -0
  66. package/lib/module/games/dino-jump/components/StarSprite.js.map +1 -0
  67. package/lib/module/games/dino-jump/components/index.js +9 -0
  68. package/lib/module/games/dino-jump/components/index.js.map +1 -0
  69. package/lib/module/games/flappy-bird/FlappyBird.js +126 -0
  70. package/lib/module/games/flappy-bird/FlappyBird.js.map +1 -0
  71. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +90 -0
  72. package/lib/module/games/flappy-bird/FlappyBirdConstants.js.map +1 -0
  73. package/lib/module/games/flappy-bird/FlappyBirdStore.js +300 -0
  74. package/lib/module/games/flappy-bird/FlappyBirdStore.js.map +1 -0
  75. package/lib/module/games/flappy-bird/components/Bird.js +87 -0
  76. package/lib/module/games/flappy-bird/components/Bird.js.map +1 -0
  77. package/lib/module/games/flappy-bird/components/GameArea.js +87 -0
  78. package/lib/module/games/flappy-bird/components/GameArea.js.map +1 -0
  79. package/lib/module/games/flappy-bird/components/GameBackground.js +79 -0
  80. package/lib/module/games/flappy-bird/components/GameBackground.js.map +1 -0
  81. package/lib/module/games/flappy-bird/components/Pipes.js +172 -0
  82. package/lib/module/games/flappy-bird/components/Pipes.js.map +1 -0
  83. package/lib/module/games/flappy-bird/components/ScoreBoard.js +73 -0
  84. package/lib/module/games/flappy-bird/components/ScoreBoard.js.map +1 -0
  85. package/lib/module/games/flappy-bird/components/index.js +8 -0
  86. package/lib/module/games/flappy-bird/components/index.js.map +1 -0
  87. package/lib/module/games/fruit-merger/FruitMerger.js +120 -0
  88. package/lib/module/games/fruit-merger/FruitMerger.js.map +1 -0
  89. package/lib/module/games/fruit-merger/FruitMergerConstants.js +119 -0
  90. package/lib/module/games/fruit-merger/FruitMergerConstants.js.map +1 -0
  91. package/lib/module/games/fruit-merger/FruitMergerService.js +13 -0
  92. package/lib/module/games/fruit-merger/FruitMergerService.js.map +1 -0
  93. package/lib/module/games/fruit-merger/FruitMergerStore.js +315 -0
  94. package/lib/module/games/fruit-merger/FruitMergerStore.js.map +1 -0
  95. package/lib/module/games/fruit-merger/components/FruitItem.js +102 -0
  96. package/lib/module/games/fruit-merger/components/FruitItem.js.map +1 -0
  97. package/lib/module/games/fruit-merger/components/GameArea.js +103 -0
  98. package/lib/module/games/fruit-merger/components/GameArea.js.map +1 -0
  99. package/lib/module/games/fruit-merger/components/GameBackground.js +498 -0
  100. package/lib/module/games/fruit-merger/components/GameBackground.js.map +1 -0
  101. package/lib/module/games/fruit-merger/components/ScoreBoard.js +58 -0
  102. package/lib/module/games/fruit-merger/components/ScoreBoard.js.map +1 -0
  103. package/lib/module/games/fruit-merger/components/index.js +7 -0
  104. package/lib/module/games/fruit-merger/components/index.js.map +1 -0
  105. package/lib/module/games/fruit-ninja/FruitNinja.js +14 -22
  106. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -1
  107. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +1 -1
  108. package/lib/module/games/fruit-ninja/components/GameArea.js +1 -1
  109. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -1
  110. package/lib/module/games/fruit-ninja/components/GameBackground.js +70 -45
  111. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -1
  112. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +47 -46
  113. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -1
  114. package/lib/module/games/game-2048/Game2048.js +149 -0
  115. package/lib/module/games/game-2048/Game2048.js.map +1 -0
  116. package/lib/module/games/game-2048/Game2048Constants.js +263 -0
  117. package/lib/module/games/game-2048/Game2048Constants.js.map +1 -0
  118. package/lib/module/games/game-2048/Game2048Service.js +457 -0
  119. package/lib/module/games/game-2048/Game2048Service.js.map +1 -0
  120. package/lib/module/games/game-2048/Game2048Store.js +236 -0
  121. package/lib/module/games/game-2048/Game2048Store.js.map +1 -0
  122. package/lib/module/games/game-2048/components/GameBackground.js +247 -0
  123. package/lib/module/games/game-2048/components/GameBackground.js.map +1 -0
  124. package/lib/module/games/game-2048/components/GameGrid.js +139 -0
  125. package/lib/module/games/game-2048/components/GameGrid.js.map +1 -0
  126. package/lib/module/games/game-2048/components/GameTile.js +72 -0
  127. package/lib/module/games/game-2048/components/GameTile.js.map +1 -0
  128. package/lib/module/games/game-2048/components/ScoreBoard.js +52 -0
  129. package/lib/module/games/game-2048/components/ScoreBoard.js.map +1 -0
  130. package/lib/module/games/game-2048/components/index.js +7 -0
  131. package/lib/module/games/game-2048/components/index.js.map +1 -0
  132. package/lib/module/games/maze-runner/MazeRunner.js +51 -41
  133. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  134. package/lib/module/games/maze-runner/MazeRunnerService.js +19 -17
  135. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  136. package/lib/module/games/maze-runner/components/ScoreBoard.js +32 -42
  137. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  138. package/lib/module/games/popit-fidget/PopitFidget.js +57 -66
  139. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -1
  140. package/lib/module/games/popit-fidget/PopitFidgetStore.js +6 -44
  141. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -1
  142. package/lib/module/games/popit-fidget/components/ScoreBoard.js +31 -45
  143. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -1
  144. package/lib/module/games/sliding-numbers/SlidingNumbers.js +159 -0
  145. package/lib/module/games/sliding-numbers/SlidingNumbers.js.map +1 -0
  146. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +207 -0
  147. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js.map +1 -0
  148. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +248 -0
  149. package/lib/module/games/sliding-numbers/SlidingNumbersService.js.map +1 -0
  150. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +274 -0
  151. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js.map +1 -0
  152. package/lib/module/games/sliding-numbers/components/GameBackground.js +259 -0
  153. package/lib/module/games/sliding-numbers/components/GameBackground.js.map +1 -0
  154. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +174 -0
  155. package/lib/module/games/sliding-numbers/components/NumbersGrid.js.map +1 -0
  156. package/lib/module/games/sliding-numbers/components/NumbersTile.js +116 -0
  157. package/lib/module/games/sliding-numbers/components/NumbersTile.js.map +1 -0
  158. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +64 -0
  159. package/lib/module/games/sliding-numbers/components/ScoreBoard.js.map +1 -0
  160. package/lib/module/games/sliding-numbers/components/index.js +7 -0
  161. package/lib/module/games/sliding-numbers/components/index.js.map +1 -0
  162. package/lib/module/games/snake/Snake.js +189 -0
  163. package/lib/module/games/snake/Snake.js.map +1 -0
  164. package/lib/module/games/snake/SnakeConstants.js +138 -0
  165. package/lib/module/games/snake/SnakeConstants.js.map +1 -0
  166. package/lib/module/games/snake/SnakeService.js +148 -0
  167. package/lib/module/games/snake/SnakeService.js.map +1 -0
  168. package/lib/module/games/snake/SnakeStore.js +182 -0
  169. package/lib/module/games/snake/SnakeStore.js.map +1 -0
  170. package/lib/module/games/snake/components/GameBackground.js +221 -0
  171. package/lib/module/games/snake/components/GameBackground.js.map +1 -0
  172. package/lib/module/games/snake/components/GameGrid.js +153 -0
  173. package/lib/module/games/snake/components/GameGrid.js.map +1 -0
  174. package/lib/module/games/snake/components/ScoreBoard.js +51 -0
  175. package/lib/module/games/snake/components/ScoreBoard.js.map +1 -0
  176. package/lib/module/games/snake/components/index.js +6 -0
  177. package/lib/module/games/snake/components/index.js.map +1 -0
  178. package/lib/module/games/snake/index.js +6 -0
  179. package/lib/module/games/snake/index.js.map +1 -0
  180. package/lib/module/games/space-fighter/SpaceFighter.js +22 -26
  181. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -1
  182. package/lib/module/games/space-fighter/SpaceFighterService.js +7 -6
  183. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -1
  184. package/lib/module/games/space-fighter/SpaceFighterStore.js +25 -11
  185. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -1
  186. package/lib/module/games/space-fighter/components/GameArea.js +1 -7
  187. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -1
  188. package/lib/module/games/space-fighter/components/ScoreBoard.js +47 -48
  189. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -1
  190. package/lib/module/games/whack-a-mole/WhackAMole.js +17 -10
  191. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -1
  192. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +1 -1
  193. package/lib/module/games/whack-a-mole/components/GameBackground.js +37 -30
  194. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -1
  195. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +32 -38
  196. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -1
  197. package/lib/module/helpers/AnimationFrame.js.map +1 -0
  198. package/lib/module/helpers/AnimationTracker.js.map +1 -0
  199. package/lib/module/helpers/ErrorHandler.js.map +1 -0
  200. package/lib/module/helpers/GameControlButton.js.map +1 -0
  201. package/lib/module/{shared/helpers → helpers}/GameOverModal.js +6 -3
  202. package/lib/module/helpers/GameOverModal.js.map +1 -0
  203. package/lib/module/{shared/helpers → helpers}/GameSettingsModal.js +5 -5
  204. package/lib/module/helpers/GameSettingsModal.js.map +1 -0
  205. package/lib/module/{shared/helpers → helpers}/ParticleBlast.js +3 -2
  206. package/lib/module/helpers/ParticleBlast.js.map +1 -0
  207. package/lib/module/helpers/ScoreBoardContainer.js +34 -0
  208. package/lib/module/helpers/ScoreBoardContainer.js.map +1 -0
  209. package/lib/module/{shared/helpers → helpers}/index.js +1 -1
  210. package/lib/module/helpers/index.js.map +1 -0
  211. package/lib/module/index.js +9 -0
  212. package/lib/module/index.js.map +1 -1
  213. package/lib/module/services/GamesConstants.js +100 -5
  214. package/lib/module/services/GamesConstants.js.map +1 -1
  215. package/lib/module/services/GamesService.js +108 -42
  216. package/lib/module/services/GamesService.js.map +1 -1
  217. package/lib/module/services/SoundsService.js +132 -1
  218. package/lib/module/services/SoundsService.js.map +1 -1
  219. package/lib/module/services/UtilsService.js +32 -0
  220. package/lib/module/services/UtilsService.js.map +1 -0
  221. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +1 -1
  222. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  223. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +1 -0
  224. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  225. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +5 -1
  226. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  227. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts +4 -0
  228. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts.map +1 -0
  229. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +104 -0
  230. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts.map +1 -0
  231. package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts +40 -0
  232. package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts.map +1 -0
  233. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts +48 -0
  234. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts.map +1 -0
  235. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts +13 -0
  236. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts.map +1 -0
  237. package/lib/typescript/src/games/candy-crush/components/GameBackground.d.ts +5 -0
  238. package/lib/typescript/src/games/candy-crush/components/GameBackground.d.ts.map +1 -0
  239. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts +3 -0
  240. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts.map +1 -0
  241. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts +6 -0
  242. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts.map +1 -0
  243. package/lib/typescript/src/games/candy-crush/components/index.d.ts +5 -0
  244. package/lib/typescript/src/games/candy-crush/components/index.d.ts.map +1 -0
  245. package/lib/typescript/src/games/candy-crush/index.d.ts +4 -0
  246. package/lib/typescript/src/games/candy-crush/index.d.ts.map +1 -0
  247. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts +4 -0
  248. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts.map +1 -0
  249. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts +54 -0
  250. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts.map +1 -0
  251. package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts +66 -0
  252. package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts.map +1 -0
  253. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts +48 -0
  254. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts.map +1 -0
  255. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts +11 -0
  256. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts.map +1 -0
  257. package/lib/typescript/src/games/colors-sort/components/GameBackground.d.ts +7 -0
  258. package/lib/typescript/src/games/colors-sort/components/GameBackground.d.ts.map +1 -0
  259. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts +7 -0
  260. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts.map +1 -0
  261. package/lib/typescript/src/games/colors-sort/components/index.d.ts +4 -0
  262. package/lib/typescript/src/games/colors-sort/components/index.d.ts.map +1 -0
  263. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts +4 -0
  264. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts.map +1 -0
  265. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +97 -0
  266. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts.map +1 -0
  267. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +40 -0
  268. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts.map +1 -0
  269. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +103 -0
  270. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts.map +1 -0
  271. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts +3 -0
  272. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts.map +1 -0
  273. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts +8 -0
  274. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts.map +1 -0
  275. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts +8 -0
  276. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts.map +1 -0
  277. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts +3 -0
  278. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts.map +1 -0
  279. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts +7 -0
  280. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts.map +1 -0
  281. package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts +3 -0
  282. package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts.map +1 -0
  283. package/lib/typescript/src/games/dino-jump/components/index.d.ts +7 -0
  284. package/lib/typescript/src/games/dino-jump/components/index.d.ts.map +1 -0
  285. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts +4 -0
  286. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts.map +1 -0
  287. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts +83 -0
  288. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts.map +1 -0
  289. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +53 -0
  290. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts.map +1 -0
  291. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts +8 -0
  292. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts.map +1 -0
  293. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts +8 -0
  294. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts.map +1 -0
  295. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts +8 -0
  296. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts.map +1 -0
  297. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts +9 -0
  298. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts.map +1 -0
  299. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts +7 -0
  300. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts.map +1 -0
  301. package/lib/typescript/src/games/flappy-bird/components/index.d.ts +6 -0
  302. package/lib/typescript/src/games/flappy-bird/components/index.d.ts.map +1 -0
  303. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts +4 -0
  304. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts.map +1 -0
  305. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts +115 -0
  306. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts.map +1 -0
  307. package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts +5 -0
  308. package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts.map +1 -0
  309. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts +43 -0
  310. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts.map +1 -0
  311. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts +10 -0
  312. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts.map +1 -0
  313. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts +8 -0
  314. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts.map +1 -0
  315. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts +8 -0
  316. package/lib/typescript/src/games/fruit-merger/components/GameBackground.d.ts.map +1 -0
  317. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts +7 -0
  318. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts.map +1 -0
  319. package/lib/typescript/src/games/fruit-merger/components/index.d.ts +5 -0
  320. package/lib/typescript/src/games/fruit-merger/components/index.d.ts.map +1 -0
  321. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +1 -1
  322. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -1
  323. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts +1 -0
  324. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -1
  325. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +5 -1
  326. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -1
  327. package/lib/typescript/src/games/game-2048/Game2048.d.ts +4 -0
  328. package/lib/typescript/src/games/game-2048/Game2048.d.ts.map +1 -0
  329. package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts +163 -0
  330. package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts.map +1 -0
  331. package/lib/typescript/src/games/game-2048/Game2048Service.d.ts +113 -0
  332. package/lib/typescript/src/games/game-2048/Game2048Service.d.ts.map +1 -0
  333. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +48 -0
  334. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts.map +1 -0
  335. package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts +7 -0
  336. package/lib/typescript/src/games/game-2048/components/GameBackground.d.ts.map +1 -0
  337. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts +7 -0
  338. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts.map +1 -0
  339. package/lib/typescript/src/games/game-2048/components/GameTile.d.ts +13 -0
  340. package/lib/typescript/src/games/game-2048/components/GameTile.d.ts.map +1 -0
  341. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts +7 -0
  342. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts.map +1 -0
  343. package/lib/typescript/src/games/game-2048/components/index.d.ts +5 -0
  344. package/lib/typescript/src/games/game-2048/components/index.d.ts.map +1 -0
  345. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -1
  346. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  347. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +1 -0
  348. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  349. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +1 -0
  350. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  351. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +1 -1
  352. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -1
  353. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +2 -5
  354. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -1
  355. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +2 -2
  356. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -1
  357. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts +4 -0
  358. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts.map +1 -0
  359. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts +108 -0
  360. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts.map +1 -0
  361. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts +34 -0
  362. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts.map +1 -0
  363. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts +56 -0
  364. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts.map +1 -0
  365. package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts +7 -0
  366. package/lib/typescript/src/games/sliding-numbers/components/GameBackground.d.ts.map +1 -0
  367. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts +7 -0
  368. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts.map +1 -0
  369. package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts +11 -0
  370. package/lib/typescript/src/games/sliding-numbers/components/NumbersTile.d.ts.map +1 -0
  371. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts +7 -0
  372. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts.map +1 -0
  373. package/lib/typescript/src/games/sliding-numbers/components/index.d.ts +5 -0
  374. package/lib/typescript/src/games/sliding-numbers/components/index.d.ts.map +1 -0
  375. package/lib/typescript/src/games/snake/Snake.d.ts +4 -0
  376. package/lib/typescript/src/games/snake/Snake.d.ts.map +1 -0
  377. package/lib/typescript/src/games/snake/SnakeConstants.d.ts +93 -0
  378. package/lib/typescript/src/games/snake/SnakeConstants.d.ts.map +1 -0
  379. package/lib/typescript/src/games/snake/SnakeService.d.ts +30 -0
  380. package/lib/typescript/src/games/snake/SnakeService.d.ts.map +1 -0
  381. package/lib/typescript/src/games/snake/SnakeStore.d.ts +43 -0
  382. package/lib/typescript/src/games/snake/SnakeStore.d.ts.map +1 -0
  383. package/lib/typescript/src/games/snake/components/GameBackground.d.ts +5 -0
  384. package/lib/typescript/src/games/snake/components/GameBackground.d.ts.map +1 -0
  385. package/lib/typescript/src/games/snake/components/GameGrid.d.ts +3 -0
  386. package/lib/typescript/src/games/snake/components/GameGrid.d.ts.map +1 -0
  387. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts +7 -0
  388. package/lib/typescript/src/games/snake/components/ScoreBoard.d.ts.map +1 -0
  389. package/lib/typescript/src/games/snake/components/index.d.ts +4 -0
  390. package/lib/typescript/src/games/snake/components/index.d.ts.map +1 -0
  391. package/lib/typescript/src/games/snake/index.d.ts +4 -0
  392. package/lib/typescript/src/games/snake/index.d.ts.map +1 -0
  393. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +1 -1
  394. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -1
  395. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -1
  396. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts +2 -0
  397. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -1
  398. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -1
  399. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +5 -1
  400. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -1
  401. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +1 -1
  402. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -1
  403. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts +1 -0
  404. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -1
  405. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts +1 -0
  406. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -1
  407. package/lib/typescript/src/helpers/AnimationFrame.d.ts.map +1 -0
  408. package/lib/typescript/src/helpers/AnimationTracker.d.ts.map +1 -0
  409. package/lib/typescript/src/helpers/ErrorHandler.d.ts.map +1 -0
  410. package/lib/typescript/src/helpers/GameControlButton.d.ts.map +1 -0
  411. package/lib/typescript/src/{shared/helpers → helpers}/GameOverModal.d.ts +2 -0
  412. package/lib/typescript/src/helpers/GameOverModal.d.ts.map +1 -0
  413. package/lib/typescript/src/{shared/helpers → helpers}/GameSettingsModal.d.ts +1 -1
  414. package/lib/typescript/src/helpers/GameSettingsModal.d.ts.map +1 -0
  415. package/lib/typescript/src/helpers/ParticleBlast.d.ts.map +1 -0
  416. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts +9 -0
  417. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts.map +1 -0
  418. package/lib/typescript/src/{shared/helpers → helpers}/index.d.ts +2 -1
  419. package/lib/typescript/src/helpers/index.d.ts.map +1 -0
  420. package/lib/typescript/src/index.d.ts +9 -0
  421. package/lib/typescript/src/index.d.ts.map +1 -1
  422. package/lib/typescript/src/services/GamesConstants.d.ts +162 -0
  423. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  424. package/lib/typescript/src/services/GamesService.d.ts +3 -25
  425. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  426. package/lib/typescript/src/services/SoundsService.d.ts +103 -0
  427. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -1
  428. package/lib/typescript/src/services/UtilsService.d.ts +38 -0
  429. package/lib/typescript/src/services/UtilsService.d.ts.map +1 -0
  430. package/package.json +1 -1
  431. package/lib/module/shared/helpers/AnimationFrame.js.map +0 -1
  432. package/lib/module/shared/helpers/AnimationTracker.js.map +0 -1
  433. package/lib/module/shared/helpers/ErrorHandler.js.map +0 -1
  434. package/lib/module/shared/helpers/GameControlButton.js.map +0 -1
  435. package/lib/module/shared/helpers/GameOverModal.js.map +0 -1
  436. package/lib/module/shared/helpers/GameSettingsModal.js.map +0 -1
  437. package/lib/module/shared/helpers/ParticleBlast.js.map +0 -1
  438. package/lib/module/shared/helpers/ResponsiveScoreBoard.js +0 -81
  439. package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +0 -1
  440. package/lib/module/shared/helpers/index.js.map +0 -1
  441. package/lib/typescript/src/shared/helpers/AnimationFrame.d.ts.map +0 -1
  442. package/lib/typescript/src/shared/helpers/AnimationTracker.d.ts.map +0 -1
  443. package/lib/typescript/src/shared/helpers/ErrorHandler.d.ts.map +0 -1
  444. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +0 -1
  445. package/lib/typescript/src/shared/helpers/GameOverModal.d.ts.map +0 -1
  446. package/lib/typescript/src/shared/helpers/GameSettingsModal.d.ts.map +0 -1
  447. package/lib/typescript/src/shared/helpers/ParticleBlast.d.ts.map +0 -1
  448. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +0 -42
  449. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +0 -1
  450. package/lib/typescript/src/shared/helpers/index.d.ts.map +0 -1
  451. /package/lib/module/{shared/helpers → helpers}/AnimationFrame.js +0 -0
  452. /package/lib/module/{shared/helpers → helpers}/AnimationTracker.js +0 -0
  453. /package/lib/module/{shared/helpers → helpers}/ErrorHandler.js +0 -0
  454. /package/lib/module/{shared/helpers → helpers}/GameControlButton.js +0 -0
  455. /package/lib/typescript/src/{shared/helpers → helpers}/AnimationFrame.d.ts +0 -0
  456. /package/lib/typescript/src/{shared/helpers → helpers}/AnimationTracker.d.ts +0 -0
  457. /package/lib/typescript/src/{shared/helpers → helpers}/ErrorHandler.d.ts +0 -0
  458. /package/lib/typescript/src/{shared/helpers → helpers}/GameControlButton.d.ts +0 -0
  459. /package/lib/typescript/src/{shared/helpers → helpers}/ParticleBlast.d.ts +0 -0
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { GameControlButton, GameOverModal, GameSettingsModal } from "../../helpers/index.js";
6
+ import { GAME_IDS, DEFAULT_GAME_SETTINGS } from "../../services/UtilsService.js";
7
+ import { GameBackground, GameGrid, ScoreBoard } from "./components/index.js";
8
+ import { useCandyCrushStore, useScore, useIsPlaying, useIsGameOver } from "./CandyCrushStore.js";
9
+ import { CANDY_CRUSH_COLORS } from "./CandyCrushConstants.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export const CandyCrush = /*#__PURE__*/React.memo(({
12
+ settings,
13
+ onSettingsChange
14
+ }) => {
15
+ // Zustand store selectors for optimal re-renders
16
+ const score = useScore();
17
+ const isPlaying = useIsPlaying();
18
+ const isGameOver = useIsGameOver();
19
+
20
+ // Store actions (memoized to prevent re-creation)
21
+ const startGame = useCandyCrushStore(state => state.startGame);
22
+ const stopGame = useCandyCrushStore(state => state.stopGame);
23
+ const resetGame = useCandyCrushStore(state => state.resetGame);
24
+ const initializeGame = useCandyCrushStore(state => state.initializeGame);
25
+ const updateSettings = useCandyCrushStore(state => state.updateSettings);
26
+
27
+ // Update settings when they change
28
+ React.useEffect(() => {
29
+ const enableSounds = settings?.enableSounds ?? true;
30
+ const enableHaptics = settings?.enableHaptics ?? true;
31
+ updateSettings(enableSounds, enableHaptics);
32
+ }, [settings?.enableSounds, settings?.enableHaptics, updateSettings]);
33
+
34
+ // Initialize on mount and when difficulty changes
35
+ React.useEffect(() => {
36
+ const difficulty = settings?.difficulty || 'easy';
37
+ initializeGame(difficulty);
38
+ }, [settings?.difficulty, initializeGame]);
39
+
40
+ // Game control handlers
41
+ const handleStartGame = React.useCallback(() => {
42
+ startGame();
43
+ }, [startGame]);
44
+ const handleResetGame = React.useCallback(() => {
45
+ resetGame();
46
+ }, [resetGame]);
47
+ const handleStopGame = React.useCallback(() => {
48
+ stopGame();
49
+ }, [stopGame]);
50
+
51
+ // Memoized GameControlButton props
52
+ const gameControlButtonProps = React.useMemo(() => ({
53
+ isPlaying,
54
+ gameOver: isGameOver,
55
+ onStartGame: handleStartGame,
56
+ onStopGame: handleStopGame,
57
+ onResetGame: handleResetGame,
58
+ startButtonText: 'Start Crushing!',
59
+ startButtonSubtext: 'Match 3 or more',
60
+ startButtonColor: CANDY_CRUSH_COLORS.BUTTON_PRIMARY,
61
+ startButtonBorderColor: CANDY_CRUSH_COLORS.BUTTON_SECONDARY
62
+ }), [isPlaying, isGameOver, handleStartGame, handleStopGame, handleResetGame]);
63
+
64
+ // Memoized GameOverModal props
65
+ const gameOverModalProps = React.useMemo(() => ({
66
+ isVisible: isGameOver,
67
+ score,
68
+ onPlayAgain: handleResetGame,
69
+ buttonText: 'Crush Again!',
70
+ primaryColor: CANDY_CRUSH_COLORS.MODAL_PRIMARY,
71
+ borderColor: CANDY_CRUSH_COLORS.MODAL_BORDER,
72
+ buttonColor: CANDY_CRUSH_COLORS.MODAL_BUTTON,
73
+ buttonBorderColor: CANDY_CRUSH_COLORS.MODAL_BUTTON_BORDER,
74
+ scoreFormatter: s => `${s}`,
75
+ additionalInfo: 'Time\'s up!'
76
+ }), [isGameOver, score, handleResetGame]);
77
+
78
+ // Memoized GameSettingsModal props
79
+ const gameSettingsModalProps = React.useMemo(() => ({
80
+ gameId: GAME_IDS.CANDY_CRUSH,
81
+ settings: settings || DEFAULT_GAME_SETTINGS,
82
+ onSettingsChange
83
+ }), [settings, onSettingsChange]);
84
+
85
+ // Get offset from settings
86
+ const offset = settings?.offset ?? 0;
87
+
88
+ // Memoized dynamic styles based on offset
89
+ const dynamicStyles = React.useMemo(() => ({
90
+ gridContainer: {
91
+ ...styles.gridContainer,
92
+ paddingTop: offset
93
+ }
94
+ }), [offset]);
95
+ return /*#__PURE__*/_jsx(GameBackground, {
96
+ children: /*#__PURE__*/_jsxs(View, {
97
+ style: styles.container,
98
+ children: [/*#__PURE__*/_jsx(View, {
99
+ style: dynamicStyles.gridContainer,
100
+ children: /*#__PURE__*/_jsx(GameGrid, {})
101
+ }), /*#__PURE__*/_jsx(ScoreBoard, {
102
+ offset: offset
103
+ }), /*#__PURE__*/_jsx(GameControlButton, {
104
+ ...gameControlButtonProps
105
+ }), /*#__PURE__*/_jsx(GameOverModal, {
106
+ ...gameOverModalProps
107
+ }), /*#__PURE__*/_jsx(GameSettingsModal, {
108
+ ...gameSettingsModalProps
109
+ })]
110
+ })
111
+ });
112
+ });
113
+ CandyCrush.displayName = 'CandyCrush';
114
+ const styles = StyleSheet.create({
115
+ container: {
116
+ flex: 1
117
+ },
118
+ gridContainer: {
119
+ flex: 1,
120
+ justifyContent: 'center',
121
+ alignItems: 'center'
122
+ },
123
+ scoreboardContainer: {
124
+ position: 'absolute',
125
+ top: 0,
126
+ left: 0,
127
+ right: 0,
128
+ zIndex: 10
129
+ }
130
+ });
131
+ //# sourceMappingURL=CandyCrush.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","GameControlButton","GameOverModal","GameSettingsModal","GAME_IDS","DEFAULT_GAME_SETTINGS","GameBackground","GameGrid","ScoreBoard","useCandyCrushStore","useScore","useIsPlaying","useIsGameOver","CANDY_CRUSH_COLORS","jsx","_jsx","jsxs","_jsxs","CandyCrush","memo","settings","onSettingsChange","score","isPlaying","isGameOver","startGame","state","stopGame","resetGame","initializeGame","updateSettings","useEffect","enableSounds","enableHaptics","difficulty","handleStartGame","useCallback","handleResetGame","handleStopGame","gameControlButtonProps","useMemo","gameOver","onStartGame","onStopGame","onResetGame","startButtonText","startButtonSubtext","startButtonColor","BUTTON_PRIMARY","startButtonBorderColor","BUTTON_SECONDARY","gameOverModalProps","isVisible","onPlayAgain","buttonText","primaryColor","MODAL_PRIMARY","borderColor","MODAL_BORDER","buttonColor","MODAL_BUTTON","buttonBorderColor","MODAL_BUTTON_BORDER","scoreFormatter","s","additionalInfo","gameSettingsModalProps","gameId","CANDY_CRUSH","offset","dynamicStyles","gridContainer","styles","paddingTop","children","style","container","displayName","create","flex","justifyContent","alignItems","scoreboardContainer","position","top","left","right","zIndex"],"sourceRoot":"../../../../src","sources":["games/candy-crush/CandyCrush.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ // Candy Crush Game Constants
4
+ export const CANDY_CRUSH_GAME_CONFIG = {
5
+ GRID_SIZE: 8,
6
+ CANDY_TYPES: 6,
7
+ MIN_MATCH: 3,
8
+ ANIMATION_DURATION: 300,
9
+ FALL_DURATION: 400,
10
+ SWAP_DURATION: 200,
11
+ POINTS_PER_CANDY: 10,
12
+ COMBO_MULTIPLIER: 1.5,
13
+ SPECIAL_CANDY_THRESHOLD: 4
14
+ };
15
+ export const CANDY_COLORS = ['#FF3B30',
16
+ // Bright Red
17
+ '#34C759',
18
+ // Bright Green
19
+ '#007AFF',
20
+ // Bright Blue
21
+ '#FFCC00',
22
+ // Bright Yellow
23
+ '#9D4EDD',
24
+ // Bright Purple (replaced cyan)
25
+ '#FF6B9D' // Bright Pink
26
+ ];
27
+ export const CANDY_TYPES = {
28
+ NORMAL: 'normal',
29
+ STRIPED_HORIZONTAL: 'striped_h',
30
+ STRIPED_VERTICAL: 'striped_v',
31
+ WRAPPED: 'wrapped',
32
+ COLOR_BOMB: 'color_bomb'
33
+ };
34
+ export const CANDY_CRUSH_COLORS = {
35
+ BACKGROUND: '#2C3E50',
36
+ GRID_BACKGROUND: 'rgba(255, 149, 0, 0.1)',
37
+ GRID_BORDER: 'rgba(255, 149, 0, 0.3)',
38
+ SELECTED: 'rgba(255, 149, 0, 0.5)',
39
+ BUTTON_PRIMARY: '#FF9500',
40
+ BUTTON_SECONDARY: '#E68600',
41
+ SCORE_BACKGROUND: 'rgba(255, 149, 0, 0.4)',
42
+ SCORE_TEXT: '#FFFFFF',
43
+ TIME_GOOD: '#FF9500',
44
+ TIME_WARNING: '#FF9500',
45
+ TIME_CRITICAL: '#FF9500',
46
+ COMBO_TEXT: '#FF9500',
47
+ MODAL_PRIMARY: 'rgba(255, 149, 0, 0.95)',
48
+ MODAL_BORDER: 'rgba(230, 134, 0, 0.9)',
49
+ MODAL_BUTTON: '#FF9500',
50
+ MODAL_BUTTON_BORDER: '#E68600'
51
+ };
52
+ export const DIFFICULTY_CONFIG = {
53
+ easy: {
54
+ gameDuration: 60,
55
+ // 1 minute
56
+ candyTypes: 4
57
+ },
58
+ medium: {
59
+ gameDuration: 180,
60
+ // 3 minutes
61
+ candyTypes: 5
62
+ },
63
+ hard: {
64
+ gameDuration: 300,
65
+ // 5 minutes
66
+ candyTypes: 6
67
+ }
68
+ };
69
+ export const CANDY_CRUSH_SOUNDS = {
70
+ MATCH: {
71
+ text: 'Pop!',
72
+ pitch: 1.2,
73
+ rate: 1.5
74
+ },
75
+ SWAP: {
76
+ text: 'Swap',
77
+ pitch: 1.0,
78
+ rate: 1.8
79
+ },
80
+ SPECIAL: {
81
+ text: 'Boom!',
82
+ pitch: 1.5,
83
+ rate: 2.0
84
+ },
85
+ COMBO: {
86
+ text: 'Combo!',
87
+ pitch: 1.8,
88
+ rate: 2.2
89
+ },
90
+ WIN: {
91
+ text: 'Victory!',
92
+ pitch: 1.6,
93
+ rate: 1.8
94
+ },
95
+ LOSE: {
96
+ text: 'Game Over',
97
+ pitch: 0.8,
98
+ rate: 1.2
99
+ }
100
+ };
101
+
102
+ // Theme for settings modal
103
+ export const CANDY_CRUSH_THEME = {
104
+ backgroundColor: '#2C3E50',
105
+ headerBackgroundColor: '#FF9500',
106
+ headerTextColor: '#FFFFFF',
107
+ sectionBackgroundColor: 'rgba(255, 149, 0, 0.15)',
108
+ sectionTitleColor: '#FF9500',
109
+ buttonSelectedColor: '#FF9500',
110
+ buttonUnselectedColor: 'rgba(255, 149, 0, 0.2)',
111
+ buttonSelectedTextColor: '#FFFFFF',
112
+ buttonUnselectedTextColor: '#FF9500',
113
+ switchTrackColorFalse: 'rgba(255, 149, 0, 0.3)',
114
+ switchTrackColorTrue: '#FF9500',
115
+ switchThumbColor: '#FFFFFF',
116
+ infoTextColor: 'rgba(255, 255, 255, 0.7)'
117
+ };
118
+
119
+ // Difficulty descriptions
120
+ export const CANDY_CRUSH_DIFFICULTY_DESCRIPTIONS = {
121
+ easy: '1 minute • 4 candy types',
122
+ medium: '3 minutes • 5 candy types',
123
+ hard: '5 minutes • 6 candy types'
124
+ };
125
+ //# sourceMappingURL=CandyCrushConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CANDY_CRUSH_GAME_CONFIG","GRID_SIZE","CANDY_TYPES","MIN_MATCH","ANIMATION_DURATION","FALL_DURATION","SWAP_DURATION","POINTS_PER_CANDY","COMBO_MULTIPLIER","SPECIAL_CANDY_THRESHOLD","CANDY_COLORS","NORMAL","STRIPED_HORIZONTAL","STRIPED_VERTICAL","WRAPPED","COLOR_BOMB","CANDY_CRUSH_COLORS","BACKGROUND","GRID_BACKGROUND","GRID_BORDER","SELECTED","BUTTON_PRIMARY","BUTTON_SECONDARY","SCORE_BACKGROUND","SCORE_TEXT","TIME_GOOD","TIME_WARNING","TIME_CRITICAL","COMBO_TEXT","MODAL_PRIMARY","MODAL_BORDER","MODAL_BUTTON","MODAL_BUTTON_BORDER","DIFFICULTY_CONFIG","easy","gameDuration","candyTypes","medium","hard","CANDY_CRUSH_SOUNDS","MATCH","text","pitch","rate","SWAP","SPECIAL","COMBO","WIN","LOSE","CANDY_CRUSH_THEME","backgroundColor","headerBackgroundColor","headerTextColor","sectionBackgroundColor","sectionTitleColor","buttonSelectedColor","buttonUnselectedColor","buttonSelectedTextColor","buttonUnselectedTextColor","switchTrackColorFalse","switchTrackColorTrue","switchThumbColor","infoTextColor","CANDY_CRUSH_DIFFICULTY_DESCRIPTIONS"],"sourceRoot":"../../../../src","sources":["games/candy-crush/CandyCrushConstants.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,370 @@
1
+ "use strict";
2
+
3
+ import { Animated } from 'react-native';
4
+ import { CANDY_CRUSH_GAME_CONFIG, CANDY_COLORS, CANDY_TYPES } from "./CandyCrushConstants.js";
5
+ export class CandyCrushService {
6
+ nextCandyId = 1;
7
+
8
+ // Create empty grid
9
+ createGrid() {
10
+ return Array(CANDY_CRUSH_GAME_CONFIG.GRID_SIZE).fill(null).map(() => Array(CANDY_CRUSH_GAME_CONFIG.GRID_SIZE).fill(null));
11
+ }
12
+
13
+ // Initialize grid with random candies (ensuring no initial matches)
14
+ initializeGrid(candyTypes) {
15
+ const grid = this.createGrid();
16
+ const size = CANDY_CRUSH_GAME_CONFIG.GRID_SIZE;
17
+ for (let row = 0; row < size; row++) {
18
+ for (let col = 0; col < size; col++) {
19
+ let candyType;
20
+ let attempts = 0;
21
+
22
+ // Generate candy type that doesn't create initial matches
23
+ do {
24
+ candyType = Math.floor(Math.random() * candyTypes);
25
+ attempts++;
26
+ } while (attempts < 10 && this.wouldCreateMatch(grid, row, col, candyType));
27
+ const candy = {
28
+ id: this.nextCandyId++,
29
+ row,
30
+ col,
31
+ type: candyType,
32
+ specialType: CANDY_TYPES.NORMAL,
33
+ animatedValue: new Animated.Value(1),
34
+ scaleValue: new Animated.Value(1),
35
+ isMatched: false,
36
+ isFalling: false
37
+ };
38
+ const gridRow = grid[row];
39
+ if (gridRow) {
40
+ gridRow[col] = candy;
41
+ }
42
+ }
43
+ }
44
+ return grid;
45
+ }
46
+
47
+ // Check if placing candy would create a match
48
+ wouldCreateMatch(grid, row, col, type) {
49
+ // Check horizontal
50
+ let horizontalCount = 1;
51
+
52
+ // Check left
53
+ for (let c = col - 1; c >= 0; c--) {
54
+ const gridRow = grid[row];
55
+ const candy = gridRow ? gridRow[c] : null;
56
+ if (candy && candy.type === type) {
57
+ horizontalCount++;
58
+ } else {
59
+ break;
60
+ }
61
+ }
62
+
63
+ // Check right
64
+ for (let c = col + 1; c < CANDY_CRUSH_GAME_CONFIG.GRID_SIZE; c++) {
65
+ const gridRow = grid[row];
66
+ const candy = gridRow ? gridRow[c] : null;
67
+ if (candy && candy.type === type) {
68
+ horizontalCount++;
69
+ } else {
70
+ break;
71
+ }
72
+ }
73
+ if (horizontalCount >= CANDY_CRUSH_GAME_CONFIG.MIN_MATCH) {
74
+ return true;
75
+ }
76
+
77
+ // Check vertical
78
+ let verticalCount = 1;
79
+
80
+ // Check up
81
+ for (let r = row - 1; r >= 0; r--) {
82
+ const gridRow = grid[r];
83
+ const candy = gridRow ? gridRow[col] : null;
84
+ if (candy && candy.type === type) {
85
+ verticalCount++;
86
+ } else {
87
+ break;
88
+ }
89
+ }
90
+
91
+ // Check down
92
+ for (let r = row + 1; r < CANDY_CRUSH_GAME_CONFIG.GRID_SIZE; r++) {
93
+ const gridRow = grid[r];
94
+ const candy = gridRow ? gridRow[col] : null;
95
+ if (candy && candy.type === type) {
96
+ verticalCount++;
97
+ } else {
98
+ break;
99
+ }
100
+ }
101
+ return verticalCount >= CANDY_CRUSH_GAME_CONFIG.MIN_MATCH;
102
+ }
103
+
104
+ // Check if two candies can be swapped
105
+ canSwap(candy1, candy2) {
106
+ const rowDiff = Math.abs(candy1.row - candy2.row);
107
+ const colDiff = Math.abs(candy1.col - candy2.col);
108
+
109
+ // Must be adjacent (horizontally or vertically)
110
+ return rowDiff === 1 && colDiff === 0 || rowDiff === 0 && colDiff === 1;
111
+ }
112
+
113
+ // Swap two candies
114
+ swapCandies(grid, candy1, candy2) {
115
+ const row1 = candy1.row;
116
+ const col1 = candy1.col;
117
+ const row2 = candy2.row;
118
+ const col2 = candy2.col;
119
+
120
+ // Get references from grid
121
+ const gridRow1 = grid[row1];
122
+ const gridRow2 = grid[row2];
123
+ if (gridRow1 && gridRow2) {
124
+ const temp1 = gridRow1[col1];
125
+ const temp2 = gridRow2[col2];
126
+
127
+ // Swap in grid
128
+ gridRow1[col1] = temp2 || null;
129
+ gridRow2[col2] = temp1 || null;
130
+
131
+ // Update positions (these are mutable in Immer draft)
132
+ if (temp1) {
133
+ temp1.row = row2;
134
+ temp1.col = col2;
135
+ }
136
+ if (temp2) {
137
+ temp2.row = row1;
138
+ temp2.col = col1;
139
+ }
140
+ }
141
+ }
142
+
143
+ // Find all matches in the grid
144
+ findMatches(grid) {
145
+ const matches = [];
146
+ const matchedSet = new Set();
147
+ const size = CANDY_CRUSH_GAME_CONFIG.GRID_SIZE;
148
+
149
+ // Check horizontal matches
150
+ for (let row = 0; row < size; row++) {
151
+ for (let col = 0; col < size - 2; col++) {
152
+ const gridRow = grid[row];
153
+ if (!gridRow) continue;
154
+ const candy1 = gridRow[col];
155
+ const candy2 = gridRow[col + 1];
156
+ const candy3 = gridRow[col + 2];
157
+ if (candy1 && candy2 && candy3 && candy1.type === candy2.type && candy2.type === candy3.type) {
158
+ let matchLength = 3;
159
+ const matchCandies = [candy1, candy2, candy3];
160
+
161
+ // Check for longer matches
162
+ for (let c = col + 3; c < size; c++) {
163
+ const nextCandy = gridRow[c];
164
+ if (nextCandy && nextCandy.type === candy1.type) {
165
+ matchLength++;
166
+ matchCandies.push(nextCandy);
167
+ } else {
168
+ break;
169
+ }
170
+ }
171
+
172
+ // Add to matches
173
+ matchCandies.forEach(candy => {
174
+ if (!matchedSet.has(candy.id)) {
175
+ matchedSet.add(candy.id);
176
+ matches.push(candy);
177
+ }
178
+ });
179
+ col += matchLength - 1;
180
+ }
181
+ }
182
+ }
183
+
184
+ // Check vertical matches
185
+ for (let col = 0; col < size; col++) {
186
+ for (let row = 0; row < size - 2; row++) {
187
+ const gridRow1 = grid[row];
188
+ const gridRow2 = grid[row + 1];
189
+ const gridRow3 = grid[row + 2];
190
+ if (!gridRow1 || !gridRow2 || !gridRow3) continue;
191
+ const candy1 = gridRow1[col];
192
+ const candy2 = gridRow2[col];
193
+ const candy3 = gridRow3[col];
194
+ if (candy1 && candy2 && candy3 && candy1.type === candy2.type && candy2.type === candy3.type) {
195
+ let matchLength = 3;
196
+ const matchCandies = [candy1, candy2, candy3];
197
+
198
+ // Check for longer matches
199
+ for (let r = row + 3; r < size; r++) {
200
+ const nextRow = grid[r];
201
+ const nextCandy = nextRow ? nextRow[col] : null;
202
+ if (nextCandy && nextCandy.type === candy1.type) {
203
+ matchLength++;
204
+ matchCandies.push(nextCandy);
205
+ } else {
206
+ break;
207
+ }
208
+ }
209
+
210
+ // Add to matches
211
+ matchCandies.forEach(candy => {
212
+ if (!matchedSet.has(candy.id)) {
213
+ matchedSet.add(candy.id);
214
+ matches.push(candy);
215
+ }
216
+ });
217
+ row += matchLength - 1;
218
+ }
219
+ }
220
+ }
221
+ const score = matches.length * CANDY_CRUSH_GAME_CONFIG.POINTS_PER_CANDY;
222
+ return {
223
+ matches,
224
+ score,
225
+ hasMatches: matches.length > 0
226
+ };
227
+ }
228
+
229
+ // Remove matched candies from grid
230
+ removeMatches(grid, matches) {
231
+ matches.forEach(candy => {
232
+ const gridRow = grid[candy.row];
233
+ if (gridRow) {
234
+ gridRow[candy.col] = null;
235
+ }
236
+ });
237
+ }
238
+
239
+ // Apply gravity - make candies fall down
240
+ applyGravity(grid) {
241
+ let hasMoved = false;
242
+ const size = CANDY_CRUSH_GAME_CONFIG.GRID_SIZE;
243
+
244
+ // Process from bottom to top
245
+ for (let col = 0; col < size; col++) {
246
+ for (let row = size - 1; row >= 0; row--) {
247
+ const gridRow = grid[row];
248
+ if (!gridRow) continue;
249
+ const candy = gridRow[col];
250
+ if (candy) {
251
+ // Find the lowest empty position below this candy
252
+ let newRow = row;
253
+ for (let r = row + 1; r < size; r++) {
254
+ const checkRow = grid[r];
255
+ if (checkRow && !checkRow[col]) {
256
+ newRow = r;
257
+ } else {
258
+ break;
259
+ }
260
+ }
261
+
262
+ // Move candy down if there's an empty space
263
+ if (newRow !== row) {
264
+ const targetRow = grid[newRow];
265
+ if (targetRow) {
266
+ targetRow[col] = candy;
267
+ gridRow[col] = null;
268
+ candy.row = newRow;
269
+ candy.isFalling = true;
270
+ hasMoved = true;
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ return hasMoved;
277
+ }
278
+
279
+ // Fill empty spaces with new candies
280
+ fillEmptySpaces(grid, candyTypes) {
281
+ const newCandies = [];
282
+ const size = CANDY_CRUSH_GAME_CONFIG.GRID_SIZE;
283
+ for (let col = 0; col < size; col++) {
284
+ // Count empty spaces in this column
285
+ let emptyCount = 0;
286
+ for (let row = 0; row < size; row++) {
287
+ const gridRow = grid[row];
288
+ if (gridRow && !gridRow[col]) {
289
+ emptyCount++;
290
+ }
291
+ }
292
+
293
+ // Fill from top
294
+ for (let i = 0; i < emptyCount; i++) {
295
+ const row = i;
296
+ const candy = {
297
+ id: this.nextCandyId++,
298
+ row,
299
+ col,
300
+ type: Math.floor(Math.random() * candyTypes),
301
+ specialType: CANDY_TYPES.NORMAL,
302
+ animatedValue: new Animated.Value(0),
303
+ scaleValue: new Animated.Value(1),
304
+ isMatched: false,
305
+ isFalling: true
306
+ };
307
+ const gridRow = grid[row];
308
+ if (gridRow) {
309
+ gridRow[col] = candy;
310
+ newCandies.push(candy);
311
+ }
312
+ }
313
+ }
314
+ return newCandies;
315
+ }
316
+
317
+ // Check if there are any possible moves
318
+ hasPossibleMoves(grid) {
319
+ const size = CANDY_CRUSH_GAME_CONFIG.GRID_SIZE;
320
+ for (let row = 0; row < size; row++) {
321
+ for (let col = 0; col < size; col++) {
322
+ const gridRow = grid[row];
323
+ if (!gridRow) continue;
324
+ const candy = gridRow[col];
325
+ if (!candy) continue;
326
+
327
+ // Try swapping with right neighbor
328
+ if (col < size - 1) {
329
+ const rightCandy = gridRow[col + 1];
330
+ if (rightCandy) {
331
+ this.swapCandies(grid, candy, rightCandy);
332
+ const result = this.findMatches(grid);
333
+ this.swapCandies(grid, candy, rightCandy); // Swap back
334
+
335
+ if (result.hasMatches) {
336
+ return true;
337
+ }
338
+ }
339
+ }
340
+
341
+ // Try swapping with bottom neighbor
342
+ if (row < size - 1) {
343
+ const bottomRow = grid[row + 1];
344
+ const bottomCandy = bottomRow ? bottomRow[col] : null;
345
+ if (bottomCandy) {
346
+ this.swapCandies(grid, candy, bottomCandy);
347
+ const result = this.findMatches(grid);
348
+ this.swapCandies(grid, candy, bottomCandy); // Swap back
349
+
350
+ if (result.hasMatches) {
351
+ return true;
352
+ }
353
+ }
354
+ }
355
+ }
356
+ }
357
+ return false;
358
+ }
359
+
360
+ // Get candy color
361
+ getCandyColor(type) {
362
+ return CANDY_COLORS[type % CANDY_COLORS.length] || CANDY_COLORS[0];
363
+ }
364
+
365
+ // Reset candy ID counter
366
+ resetIdCounter() {
367
+ this.nextCandyId = 1;
368
+ }
369
+ }
370
+ //# sourceMappingURL=CandyCrushService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Animated","CANDY_CRUSH_GAME_CONFIG","CANDY_COLORS","CANDY_TYPES","CandyCrushService","nextCandyId","createGrid","Array","GRID_SIZE","fill","map","initializeGrid","candyTypes","grid","size","row","col","candyType","attempts","Math","floor","random","wouldCreateMatch","candy","id","type","specialType","NORMAL","animatedValue","Value","scaleValue","isMatched","isFalling","gridRow","horizontalCount","c","MIN_MATCH","verticalCount","r","canSwap","candy1","candy2","rowDiff","abs","colDiff","swapCandies","row1","col1","row2","col2","gridRow1","gridRow2","temp1","temp2","findMatches","matches","matchedSet","Set","candy3","matchLength","matchCandies","nextCandy","push","forEach","has","add","gridRow3","nextRow","score","length","POINTS_PER_CANDY","hasMatches","removeMatches","applyGravity","hasMoved","newRow","checkRow","targetRow","fillEmptySpaces","newCandies","emptyCount","i","hasPossibleMoves","rightCandy","result","bottomRow","bottomCandy","getCandyColor","resetIdCounter"],"sourceRoot":"../../../../src","sources":["games/candy-crush/CandyCrushService.ts"],"mappings":"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","ignoreList":[]}