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,381 @@
1
+ "use strict";
2
+
3
+ import { create } from 'zustand';
4
+ import { subscribeWithSelector } from 'zustand/middleware';
5
+ import { immerMiddleware } from "../../services/UtilsService.js";
6
+ import { DINO_JUMP_CONSTANTS, DINO_JUMP_GAME_CONFIG, getGroundY } from "./DinoJumpConstants.js";
7
+ import { playSound, GAME_SOUNDS } from "../../services/SoundsService.js";
8
+ import { playHaptic, HapticType } from "../../services/HapticsService.js";
9
+ export const useDinoJumpStore = create()(subscribeWithSelector(immerMiddleware((set, get) => ({
10
+ // Initial state
11
+ isPlaying: false,
12
+ isGameOver: false,
13
+ isPaused: false,
14
+ // Dinosaur initial state
15
+ dinosaurY: 47,
16
+ // Ground level (dinosaur height)
17
+ dinosaurVelocityY: 0,
18
+ dinosaurState: 'running',
19
+ isJumping: false,
20
+ isDucking: false,
21
+ // Game objects
22
+ obstacles: [],
23
+ clouds: [],
24
+ stars: [],
25
+ collisionBlasts: [],
26
+ // Game metrics
27
+ score: 0,
28
+ distance: 0,
29
+ speed: 3,
30
+ // Initial speed
31
+ timeLeft: 300,
32
+ // 5 minutes
33
+ timeElapsed: 0,
34
+ startTime: null,
35
+ lives: 3,
36
+ // Start with 3 lives
37
+
38
+ // Ground animation
39
+ groundOffset: 0,
40
+ // Device offset
41
+ offset: 0,
42
+ // Set offset
43
+ setOffset: offset => {
44
+ set(state => {
45
+ state.offset = offset;
46
+ });
47
+ },
48
+ // Start the game
49
+ startGame: () => {
50
+ const currentState = get();
51
+ if (currentState.isPlaying) return; // Prevent multiple starts
52
+
53
+ set(state => {
54
+ state.isPlaying = true;
55
+ state.isGameOver = false;
56
+ state.isPaused = false;
57
+ state.startTime = Date.now();
58
+ state.dinosaurState = 'running';
59
+ });
60
+
61
+ // Auto-jump test removed - physics working correctly
62
+ },
63
+ // Stop the game
64
+ stopGame: () => {
65
+ const state = get();
66
+ // Reset the game instead of showing game over modal
67
+ state.resetGame();
68
+ },
69
+ // Reset the game
70
+ resetGame: () => {
71
+ set(state => {
72
+ state.isPlaying = false;
73
+ state.isGameOver = false;
74
+ state.isPaused = false;
75
+ state.dinosaurY = 47;
76
+ state.dinosaurVelocityY = 0;
77
+ state.dinosaurState = 'running';
78
+ state.isJumping = false;
79
+ state.isDucking = false;
80
+ state.obstacles = [];
81
+ state.clouds = [];
82
+ state.score = 0;
83
+ state.distance = 0;
84
+ state.speed = 3;
85
+ state.timeLeft = 300;
86
+ state.timeElapsed = 0;
87
+ state.startTime = null;
88
+ state.lives = 3; // Reset lives to 3
89
+ state.groundOffset = 0;
90
+ });
91
+ },
92
+ // Pause the game
93
+ pauseGame: () => {
94
+ set(state => {
95
+ state.isPaused = true;
96
+ });
97
+ },
98
+ // Resume the game
99
+ resumeGame: () => {
100
+ set(state => {
101
+ state.isPaused = false;
102
+ });
103
+ },
104
+ // Dinosaur jump
105
+ jump: () => {
106
+ try {
107
+ const state = get();
108
+ if (!state || !state.isPlaying || state.isGameOver || state.isPaused || state.isJumping) {
109
+ return;
110
+ }
111
+ set(state => {
112
+ state.isJumping = true;
113
+ state.dinosaurVelocityY = DINO_JUMP_CONSTANTS.jumpForce; // Chrome dino jump force
114
+ state.dinosaurState = 'jumping';
115
+ });
116
+ } catch (error) {
117
+ console.error('Jump action error:', error);
118
+ }
119
+ },
120
+ // Chrome dino doesn't have ducking - removed duck functionality
121
+
122
+ // Update dinosaur physics
123
+ updateDinosaur: _deltaTime => {
124
+ const state = get();
125
+ if (!state.isPlaying || state.isGameOver) return;
126
+ set(state => {
127
+ if (state.isJumping) {
128
+ // Apply Chrome dino gravity (positive gravity pulls down)
129
+ state.dinosaurVelocityY += DINO_JUMP_CONSTANTS.gravity;
130
+ state.dinosaurY += state.dinosaurVelocityY;
131
+
132
+ // Check if landed (Y decreases when going up, increases when going down)
133
+ if (state.dinosaurY >= 47) {
134
+ // Ground level
135
+ state.dinosaurY = 47;
136
+ state.dinosaurVelocityY = 0;
137
+ state.isJumping = false;
138
+ state.dinosaurState = 'running'; // Chrome dino only runs or jumps
139
+ }
140
+ }
141
+ });
142
+ },
143
+ // Add obstacle
144
+ addObstacle: obstacle => {
145
+ set(state => {
146
+ // Limit obstacles to prevent memory issues and layout crashes
147
+ if (state.obstacles.length < 8) {
148
+ state.obstacles.push(obstacle);
149
+ }
150
+ });
151
+ },
152
+ // Remove obstacle
153
+ removeObstacle: id => {
154
+ set(state => {
155
+ state.obstacles = state.obstacles.filter(obstacle => obstacle.id !== id);
156
+ });
157
+ },
158
+ // Update obstacles
159
+ updateObstacles: _deltaTime => {
160
+ const state = get();
161
+ if (!state.isPlaying || state.isGameOver) return;
162
+ set(state => {
163
+ state.obstacles.forEach(obstacle => {
164
+ obstacle.x -= obstacle.speed;
165
+ });
166
+
167
+ // Remove obstacles that are off-screen
168
+ state.obstacles = state.obstacles.filter(obstacle => obstacle.x > -obstacle.width);
169
+ });
170
+ },
171
+ // Add cloud
172
+ addCloud: cloud => {
173
+ set(state => {
174
+ state.clouds.push(cloud);
175
+ });
176
+ },
177
+ // Add star
178
+ addStar: star => {
179
+ set(state => {
180
+ state.stars.push(star);
181
+ });
182
+ },
183
+ // Update stars
184
+ updateStars: _deltaTime => {
185
+ const state = get();
186
+ if (!state.isPlaying || state.isGameOver) return;
187
+ set(state => {
188
+ state.stars.forEach(star => {
189
+ star.x -= star.speed;
190
+ });
191
+
192
+ // Remove stars that are off-screen
193
+ state.stars = state.stars.filter(star => star.x > -star.width);
194
+ });
195
+ },
196
+ // Update clouds
197
+ updateClouds: _deltaTime => {
198
+ const state = get();
199
+ if (!state.isPlaying || state.isGameOver) return;
200
+ set(state => {
201
+ state.clouds.forEach(cloud => {
202
+ cloud.x -= cloud.speed;
203
+ });
204
+
205
+ // Remove clouds that are off-screen and add new ones
206
+ state.clouds = state.clouds.filter(cloud => cloud.x > -cloud.width);
207
+ });
208
+ },
209
+ // Remove collision blast after animation
210
+ removeCollisionBlast: id => {
211
+ set(state => {
212
+ state.collisionBlasts = state.collisionBlasts.filter(blast => blast.id !== id);
213
+ });
214
+ },
215
+ // Check collisions
216
+ checkCollisions: settings => {
217
+ const state = get();
218
+ const dinosaurX = DINO_JUMP_GAME_CONFIG.DINOSAUR_X;
219
+ const dinosaurWidth = DINO_JUMP_GAME_CONFIG.DINOSAUR_WIDTH;
220
+ const dinosaurHeight = state.isDucking ? 30 : DINO_JUMP_GAME_CONFIG.DINOSAUR_HEIGHT;
221
+
222
+ // Convert dinosaur game-space Y to screen-space Y
223
+ // dinosaurY: 47 = ground, 0 = high in air
224
+ // Screen Y: calculated from top of screen
225
+ const groundY = getGroundY(state.offset);
226
+ const dinosaurScreenY = groundY - dinosaurHeight - 2 - (47 - state.dinosaurY);
227
+
228
+ // Check star collisions (collect stars for extra life)
229
+ for (const star of state.stars) {
230
+ if (dinosaurX < star.x + star.width && dinosaurX + dinosaurWidth > star.x && dinosaurScreenY < star.y + star.height && dinosaurScreenY + dinosaurHeight > star.y) {
231
+ // Star collected - add life
232
+ set(state => {
233
+ state.lives = Math.min(state.lives + 1, 5); // Max 5 lives
234
+ state.score += 50; // Bonus points
235
+
236
+ // Remove the star that was collected
237
+ state.stars = state.stars.filter(s => s.id !== star.id);
238
+ });
239
+
240
+ // Play collect sound and haptic
241
+ playSound(GAME_SOUNDS.DINO_JUMP.COLLECT, settings.enableSounds);
242
+ playHaptic(HapticType.SUCCESS, settings.enableHaptics);
243
+ }
244
+ }
245
+
246
+ // Check obstacle collisions
247
+ for (const obstacle of state.obstacles) {
248
+ // Simple AABB collision detection with screen coordinates
249
+ if (dinosaurX < obstacle.x + obstacle.width && dinosaurX + dinosaurWidth > obstacle.x && dinosaurScreenY < obstacle.y + obstacle.height && dinosaurScreenY + dinosaurHeight > obstacle.y) {
250
+ // Collision detected - decrease life
251
+ set(state => {
252
+ state.lives -= 1;
253
+
254
+ // Create collision blast marker at collision point
255
+ const collisionX = obstacle.x + obstacle.width / 2;
256
+ const collisionY = obstacle.y + obstacle.height / 2;
257
+ state.collisionBlasts.push({
258
+ id: `blast_${Date.now()}`,
259
+ x: collisionX,
260
+ y: collisionY
261
+ });
262
+
263
+ // Remove the obstacle that was hit
264
+ state.obstacles = state.obstacles.filter(obs => obs.id !== obstacle.id);
265
+
266
+ // Check if game over (no lives left)
267
+ if (state.lives <= 0) {
268
+ state.isGameOver = true;
269
+ state.isPlaying = false;
270
+ state.dinosaurState = 'dead';
271
+
272
+ // Play game over sound
273
+ playSound(GAME_SOUNDS.DINO_JUMP.GAME_OVER, settings.enableSounds);
274
+ playHaptic(HapticType.ERROR, settings.enableHaptics);
275
+ } else {
276
+ // Play hit sound for losing a life
277
+ playSound(GAME_SOUNDS.DINO_JUMP.HIT, settings.enableSounds);
278
+ playHaptic(HapticType.HEAVY, settings.enableHaptics);
279
+ }
280
+ });
281
+ return true; // Collision detected
282
+ }
283
+ }
284
+ return false;
285
+ },
286
+ // Update score
287
+ updateScore: points => {
288
+ set(state => {
289
+ state.score += points;
290
+ state.distance += 1;
291
+ });
292
+ },
293
+ // Update game speed
294
+ updateSpeed: () => {
295
+ set(state => {
296
+ // Increase speed based on distance
297
+ const speedIncrease = Math.floor(state.distance / 100) * 0.5;
298
+ state.speed = Math.min(3 + speedIncrease, 10); // Cap at 10
299
+ });
300
+ },
301
+ // Update ground animation
302
+ updateGround: _deltaTime => {
303
+ const state = get();
304
+ if (!state.isPlaying || state.isGameOver) return;
305
+ set(state => {
306
+ state.groundOffset += state.speed;
307
+ if (state.groundOffset >= 100) {
308
+ state.groundOffset = 0;
309
+ }
310
+ });
311
+ },
312
+ // Decrement time
313
+ decrementTime: () => {
314
+ set(state => {
315
+ if (state.timeLeft > 0) {
316
+ state.timeLeft--;
317
+ if (state.startTime) {
318
+ state.timeElapsed = Math.floor((Date.now() - state.startTime) / 1000);
319
+ }
320
+ } else {
321
+ state.isPlaying = false;
322
+ state.isGameOver = true;
323
+ state.startTime = null;
324
+ }
325
+ });
326
+ },
327
+ // Initialize game with difficulty
328
+ initializeGame: difficulty => {
329
+ set(state => {
330
+ // Set initial speed based on difficulty
331
+ const speeds = {
332
+ easy: 3,
333
+ medium: 5,
334
+ hard: 7
335
+ };
336
+ state.speed = speeds[difficulty];
337
+
338
+ // Set time limit based on difficulty
339
+ const timeLimits = DINO_JUMP_CONSTANTS.timeLimit;
340
+ const timeLimit = timeLimits[difficulty];
341
+
342
+ // Reset all game state
343
+ state.isPlaying = false;
344
+ state.isGameOver = false;
345
+ state.isPaused = false;
346
+ state.dinosaurY = 47;
347
+ state.dinosaurVelocityY = 0;
348
+ state.dinosaurState = 'running';
349
+ state.isJumping = false;
350
+ state.isDucking = false;
351
+ state.obstacles = [];
352
+ state.clouds = [];
353
+ state.score = 0;
354
+ state.distance = 0;
355
+ state.timeLeft = timeLimit;
356
+ state.timeElapsed = 0;
357
+ state.startTime = null;
358
+ state.groundOffset = 0;
359
+ });
360
+ }
361
+ }))));
362
+
363
+ // Optimized selectors for performance - prevent unnecessary re-renders
364
+ export const useIsPlaying = () => useDinoJumpStore(state => state.isPlaying);
365
+ export const useIsGameOver = () => useDinoJumpStore(state => state.isGameOver);
366
+ export const useIsPaused = () => useDinoJumpStore(state => state.isPaused);
367
+ export const useDinosaurY = () => useDinoJumpStore(state => state.dinosaurY);
368
+ export const useDinosaurVelocityY = () => useDinoJumpStore(state => state.dinosaurVelocityY);
369
+ export const useDinosaurStateValue = () => useDinoJumpStore(state => state.dinosaurState);
370
+ export const useIsJumping = () => useDinoJumpStore(state => state.isJumping);
371
+ export const useIsDucking = () => useDinoJumpStore(state => state.isDucking);
372
+ export const useScore = () => useDinoJumpStore(state => state.score);
373
+ export const useTimeLeft = () => useDinoJumpStore(state => state.timeLeft);
374
+ export const useLives = () => useDinoJumpStore(state => state.lives);
375
+
376
+ // Return all obstacles - filtering happens in component for stability
377
+ export const useObstacles = () => useDinoJumpStore(state => state.obstacles);
378
+ export const useClouds = () => useDinoJumpStore(state => state.clouds);
379
+ export const useGroundOffset = () => useDinoJumpStore(state => state.groundOffset);
380
+ export const useStars = () => useDinoJumpStore(state => state.stars);
381
+ //# sourceMappingURL=DinoJumpStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["create","subscribeWithSelector","immerMiddleware","DINO_JUMP_CONSTANTS","DINO_JUMP_GAME_CONFIG","getGroundY","playSound","GAME_SOUNDS","playHaptic","HapticType","useDinoJumpStore","set","get","isPlaying","isGameOver","isPaused","dinosaurY","dinosaurVelocityY","dinosaurState","isJumping","isDucking","obstacles","clouds","stars","collisionBlasts","score","distance","speed","timeLeft","timeElapsed","startTime","lives","groundOffset","offset","setOffset","state","startGame","currentState","Date","now","stopGame","resetGame","pauseGame","resumeGame","jump","jumpForce","error","console","updateDinosaur","_deltaTime","gravity","addObstacle","obstacle","length","push","removeObstacle","id","filter","updateObstacles","forEach","x","width","addCloud","cloud","addStar","star","updateStars","updateClouds","removeCollisionBlast","blast","checkCollisions","settings","dinosaurX","DINOSAUR_X","dinosaurWidth","DINOSAUR_WIDTH","dinosaurHeight","DINOSAUR_HEIGHT","groundY","dinosaurScreenY","y","height","Math","min","s","DINO_JUMP","COLLECT","enableSounds","SUCCESS","enableHaptics","collisionX","collisionY","obs","GAME_OVER","ERROR","HIT","HEAVY","updateScore","points","updateSpeed","speedIncrease","floor","updateGround","decrementTime","initializeGame","difficulty","speeds","easy","medium","hard","timeLimits","timeLimit","useIsPlaying","useIsGameOver","useIsPaused","useDinosaurY","useDinosaurVelocityY","useDinosaurStateValue","useIsJumping","useIsDucking","useScore","useTimeLeft","useLives","useObstacles","useClouds","useGroundOffset","useStars"],"sourceRoot":"../../../../src","sources":["games/dino-jump/DinoJumpStore.ts"],"mappings":"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","ignoreList":[]}