react-native-games 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/LICENSE +66 -0
  2. package/README.md +269 -0
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js +391 -0
  4. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -0
  5. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +293 -0
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -0
  7. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +156 -0
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -0
  9. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +227 -0
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -0
  11. package/lib/module/games/balloon-blaster/components/GameArea.js +42 -0
  12. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -0
  13. package/lib/module/games/balloon-blaster/components/GameBackground.js +544 -0
  14. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -0
  15. package/lib/module/games/balloon-blaster/components/GameControls.js +229 -0
  16. package/lib/module/games/balloon-blaster/components/GameControls.js.map +1 -0
  17. package/lib/module/games/balloon-blaster/components/GameOverModal.js +133 -0
  18. package/lib/module/games/balloon-blaster/components/GameOverModal.js.map +1 -0
  19. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +52 -0
  20. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +1 -0
  21. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +119 -0
  22. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -0
  23. package/lib/module/games/balloon-blaster/components/SliceTrail.js +58 -0
  24. package/lib/module/games/balloon-blaster/components/SliceTrail.js.map +1 -0
  25. package/lib/module/games/balloon-blaster/components/index.js +11 -0
  26. package/lib/module/games/balloon-blaster/components/index.js.map +1 -0
  27. package/lib/module/games/cat-popper/CatPopper.js +230 -0
  28. package/lib/module/games/cat-popper/CatPopper.js.map +1 -0
  29. package/lib/module/games/cat-popper/CatPopperService.js +100 -0
  30. package/lib/module/games/cat-popper/CatPopperService.js.map +1 -0
  31. package/lib/module/games/cat-popper/CatPopperStore.js +113 -0
  32. package/lib/module/games/cat-popper/CatPopperStore.js.map +1 -0
  33. package/lib/module/games/cat-popper/components/CatCharacter.js +281 -0
  34. package/lib/module/games/cat-popper/components/CatCharacter.js.map +1 -0
  35. package/lib/module/games/cat-popper/components/GameBackground.js +531 -0
  36. package/lib/module/games/cat-popper/components/GameBackground.js.map +1 -0
  37. package/lib/module/games/cat-popper/components/GameControls.js +230 -0
  38. package/lib/module/games/cat-popper/components/GameControls.js.map +1 -0
  39. package/lib/module/games/cat-popper/components/GameGrid.js +66 -0
  40. package/lib/module/games/cat-popper/components/GameGrid.js.map +1 -0
  41. package/lib/module/games/cat-popper/components/GameHole.js +183 -0
  42. package/lib/module/games/cat-popper/components/GameHole.js.map +1 -0
  43. package/lib/module/games/cat-popper/components/GameOverModal.js +131 -0
  44. package/lib/module/games/cat-popper/components/GameOverModal.js.map +1 -0
  45. package/lib/module/games/cat-popper/components/ScoreBoard.js +77 -0
  46. package/lib/module/games/cat-popper/components/ScoreBoard.js.map +1 -0
  47. package/lib/module/games/cat-popper/components/index.js +10 -0
  48. package/lib/module/games/cat-popper/components/index.js.map +1 -0
  49. package/lib/module/games/fruit-slicer/FruitSlicer.js +411 -0
  50. package/lib/module/games/fruit-slicer/FruitSlicer.js.map +1 -0
  51. package/lib/module/games/fruit-slicer/FruitSlicerService.js +293 -0
  52. package/lib/module/games/fruit-slicer/FruitSlicerService.js.map +1 -0
  53. package/lib/module/games/fruit-slicer/FruitSlicerStore.js +156 -0
  54. package/lib/module/games/fruit-slicer/FruitSlicerStore.js.map +1 -0
  55. package/lib/module/games/fruit-slicer/components/FruitComponent.js +99 -0
  56. package/lib/module/games/fruit-slicer/components/FruitComponent.js.map +1 -0
  57. package/lib/module/games/fruit-slicer/components/GameArea.js +50 -0
  58. package/lib/module/games/fruit-slicer/components/GameArea.js.map +1 -0
  59. package/lib/module/games/fruit-slicer/components/GameBackground.js +1296 -0
  60. package/lib/module/games/fruit-slicer/components/GameBackground.js.map +1 -0
  61. package/lib/module/games/fruit-slicer/components/GameControls.js +230 -0
  62. package/lib/module/games/fruit-slicer/components/GameControls.js.map +1 -0
  63. package/lib/module/games/fruit-slicer/components/GameOverModal.js +189 -0
  64. package/lib/module/games/fruit-slicer/components/GameOverModal.js.map +1 -0
  65. package/lib/module/games/fruit-slicer/components/ParticleSystem.js +52 -0
  66. package/lib/module/games/fruit-slicer/components/ParticleSystem.js.map +1 -0
  67. package/lib/module/games/fruit-slicer/components/ScoreBoard.js +121 -0
  68. package/lib/module/games/fruit-slicer/components/ScoreBoard.js.map +1 -0
  69. package/lib/module/games/fruit-slicer/components/SliceTrail.js +58 -0
  70. package/lib/module/games/fruit-slicer/components/SliceTrail.js.map +1 -0
  71. package/lib/module/games/fruit-slicer/components/index.js +11 -0
  72. package/lib/module/games/fruit-slicer/components/index.js.map +1 -0
  73. package/lib/module/games/maze-runner/MazeRunner.js +242 -0
  74. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -0
  75. package/lib/module/games/maze-runner/MazeRunnerService.js +560 -0
  76. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -0
  77. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +149 -0
  78. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js.map +1 -0
  79. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +357 -0
  80. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -0
  81. package/lib/module/games/maze-runner/components/GameBackground.js +216 -0
  82. package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -0
  83. package/lib/module/games/maze-runner/components/GameControls.js +129 -0
  84. package/lib/module/games/maze-runner/components/GameControls.js.map +1 -0
  85. package/lib/module/games/maze-runner/components/GameOverModal.js +134 -0
  86. package/lib/module/games/maze-runner/components/GameOverModal.js.map +1 -0
  87. package/lib/module/games/maze-runner/components/ScoreBoard.js +81 -0
  88. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -0
  89. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +209 -0
  90. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js.map +1 -0
  91. package/lib/module/games/maze-runner/components/StaticGameBackground.js +169 -0
  92. package/lib/module/games/maze-runner/components/StaticGameBackground.js.map +1 -0
  93. package/lib/module/games/maze-runner/components/WallComponent.js +90 -0
  94. package/lib/module/games/maze-runner/components/WallComponent.js.map +1 -0
  95. package/lib/module/games/maze-runner/components/index.js +10 -0
  96. package/lib/module/games/maze-runner/components/index.js.map +1 -0
  97. package/lib/module/games/space-traveller/SpaceTraveller.js +393 -0
  98. package/lib/module/games/space-traveller/SpaceTraveller.js.map +1 -0
  99. package/lib/module/games/space-traveller/SpaceTravellerService.js +298 -0
  100. package/lib/module/games/space-traveller/SpaceTravellerService.js.map +1 -0
  101. package/lib/module/games/space-traveller/SpaceTravellerStore.js +139 -0
  102. package/lib/module/games/space-traveller/SpaceTravellerStore.js.map +1 -0
  103. package/lib/module/games/space-traveller/components/AsteroidComponent.js +111 -0
  104. package/lib/module/games/space-traveller/components/AsteroidComponent.js.map +1 -0
  105. package/lib/module/games/space-traveller/components/GameArea.js +75 -0
  106. package/lib/module/games/space-traveller/components/GameArea.js.map +1 -0
  107. package/lib/module/games/space-traveller/components/GameBackground.js +294 -0
  108. package/lib/module/games/space-traveller/components/GameBackground.js.map +1 -0
  109. package/lib/module/games/space-traveller/components/GameControls.js +177 -0
  110. package/lib/module/games/space-traveller/components/GameControls.js.map +1 -0
  111. package/lib/module/games/space-traveller/components/GameOverModal.js +182 -0
  112. package/lib/module/games/space-traveller/components/GameOverModal.js.map +1 -0
  113. package/lib/module/games/space-traveller/components/ParticleComponent.js +34 -0
  114. package/lib/module/games/space-traveller/components/ParticleComponent.js.map +1 -0
  115. package/lib/module/games/space-traveller/components/ScoreBoard.js +143 -0
  116. package/lib/module/games/space-traveller/components/ScoreBoard.js.map +1 -0
  117. package/lib/module/games/space-traveller/components/SettingsModal.js +222 -0
  118. package/lib/module/games/space-traveller/components/SettingsModal.js.map +1 -0
  119. package/lib/module/games/space-traveller/components/Spacecraft3D.js +362 -0
  120. package/lib/module/games/space-traveller/components/Spacecraft3D.js.map +1 -0
  121. package/lib/module/games/space-traveller/components/SpacecraftPath.js +37 -0
  122. package/lib/module/games/space-traveller/components/SpacecraftPath.js.map +1 -0
  123. package/lib/module/games/space-traveller/components/index.js +13 -0
  124. package/lib/module/games/space-traveller/components/index.js.map +1 -0
  125. package/lib/module/index.js +12 -0
  126. package/lib/module/index.js.map +1 -0
  127. package/lib/module/package.json +1 -0
  128. package/lib/module/services/GamesConstants.js +561 -0
  129. package/lib/module/services/GamesConstants.js.map +1 -0
  130. package/lib/module/services/GamesService.js +34 -0
  131. package/lib/module/services/GamesService.js.map +1 -0
  132. package/lib/module/shared/settings/GameSettings.js +295 -0
  133. package/lib/module/shared/settings/GameSettings.js.map +1 -0
  134. package/lib/module/shared/settings/SettingsService.js +119 -0
  135. package/lib/module/shared/settings/SettingsService.js.map +1 -0
  136. package/lib/typescript/package.json +1 -0
  137. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +16 -0
  138. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -0
  139. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +66 -0
  140. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -0
  141. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +37 -0
  142. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -0
  143. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts +10 -0
  144. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -0
  145. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +17 -0
  146. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -0
  147. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +7 -0
  148. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -0
  149. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts +10 -0
  150. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts.map +1 -0
  151. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts +9 -0
  152. package/lib/typescript/src/games/balloon-blaster/components/GameOverModal.d.ts.map +1 -0
  153. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts +8 -0
  154. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +1 -0
  155. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +9 -0
  156. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -0
  157. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts +11 -0
  158. package/lib/typescript/src/games/balloon-blaster/components/SliceTrail.d.ts.map +1 -0
  159. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +9 -0
  160. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -0
  161. package/lib/typescript/src/games/cat-popper/CatPopper.d.ts +13 -0
  162. package/lib/typescript/src/games/cat-popper/CatPopper.d.ts.map +1 -0
  163. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts +32 -0
  164. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts.map +1 -0
  165. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts +21 -0
  166. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts.map +1 -0
  167. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts +7 -0
  168. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts.map +1 -0
  169. package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts +7 -0
  170. package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts.map +1 -0
  171. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts +10 -0
  172. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts.map +1 -0
  173. package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts +13 -0
  174. package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts.map +1 -0
  175. package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts +12 -0
  176. package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts.map +1 -0
  177. package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts +9 -0
  178. package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts.map +1 -0
  179. package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts +8 -0
  180. package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts.map +1 -0
  181. package/lib/typescript/src/games/cat-popper/components/index.d.ts +8 -0
  182. package/lib/typescript/src/games/cat-popper/components/index.d.ts.map +1 -0
  183. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts +16 -0
  184. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts.map +1 -0
  185. package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts +67 -0
  186. package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts.map +1 -0
  187. package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts +37 -0
  188. package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts.map +1 -0
  189. package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts +10 -0
  190. package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts.map +1 -0
  191. package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts +17 -0
  192. package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts.map +1 -0
  193. package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts +7 -0
  194. package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts.map +1 -0
  195. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts +10 -0
  196. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts.map +1 -0
  197. package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts +9 -0
  198. package/lib/typescript/src/games/fruit-slicer/components/GameOverModal.d.ts.map +1 -0
  199. package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts +8 -0
  200. package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts.map +1 -0
  201. package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts +9 -0
  202. package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts.map +1 -0
  203. package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts +11 -0
  204. package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts.map +1 -0
  205. package/lib/typescript/src/games/fruit-slicer/components/index.d.ts +9 -0
  206. package/lib/typescript/src/games/fruit-slicer/components/index.d.ts.map +1 -0
  207. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +18 -0
  208. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -0
  209. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +82 -0
  210. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -0
  211. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts +11 -0
  212. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts.map +1 -0
  213. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts +12 -0
  214. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -0
  215. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +7 -0
  216. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -0
  217. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts +10 -0
  218. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts.map +1 -0
  219. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts +11 -0
  220. package/lib/typescript/src/games/maze-runner/components/GameOverModal.d.ts.map +1 -0
  221. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +8 -0
  222. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -0
  223. package/lib/typescript/src/games/maze-runner/components/SkiaPipeComponent.d.ts +25 -0
  224. package/lib/typescript/src/games/maze-runner/components/SkiaPipeComponent.d.ts.map +1 -0
  225. package/lib/typescript/src/games/maze-runner/components/StaticGameBackground.d.ts +7 -0
  226. package/lib/typescript/src/games/maze-runner/components/StaticGameBackground.d.ts.map +1 -0
  227. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts +10 -0
  228. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts.map +1 -0
  229. package/lib/typescript/src/games/maze-runner/components/index.d.ts +8 -0
  230. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -0
  231. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts +17 -0
  232. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts.map +1 -0
  233. package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts +65 -0
  234. package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts.map +1 -0
  235. package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts +35 -0
  236. package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts.map +1 -0
  237. package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts +9 -0
  238. package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts.map +1 -0
  239. package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts +17 -0
  240. package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts.map +1 -0
  241. package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts +7 -0
  242. package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts.map +1 -0
  243. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts +10 -0
  244. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts.map +1 -0
  245. package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts +9 -0
  246. package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts.map +1 -0
  247. package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts +8 -0
  248. package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts.map +1 -0
  249. package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts +8 -0
  250. package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts.map +1 -0
  251. package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts +9 -0
  252. package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts.map +1 -0
  253. package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts +9 -0
  254. package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts.map +1 -0
  255. package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts +10 -0
  256. package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts.map +1 -0
  257. package/lib/typescript/src/games/space-traveller/components/index.d.ts +11 -0
  258. package/lib/typescript/src/games/space-traveller/components/index.d.ts.map +1 -0
  259. package/lib/typescript/src/index.d.ts +7 -0
  260. package/lib/typescript/src/index.d.ts.map +1 -0
  261. package/lib/typescript/src/services/GamesConstants.d.ts +372 -0
  262. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -0
  263. package/lib/typescript/src/services/GamesService.d.ts +8 -0
  264. package/lib/typescript/src/services/GamesService.d.ts.map +1 -0
  265. package/lib/typescript/src/shared/settings/GameSettings.d.ts +36 -0
  266. package/lib/typescript/src/shared/settings/GameSettings.d.ts.map +1 -0
  267. package/lib/typescript/src/shared/settings/SettingsService.d.ts +32 -0
  268. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +1 -0
  269. package/package.json +125 -0
@@ -0,0 +1,293 @@
1
+ "use strict";
2
+
3
+ import { Dimensions } from 'react-native';
4
+ import { BALLOON_BLASTER_GAME_CONFIG as GAME_CONFIG, BALLOON_BLASTER_ANIMATION_CONFIG as ANIMATION_CONFIG, BALLOON_BLASTER_COLORS as COLORS, BALLOON_TYPES, BALLOON_SPECIAL_ITEMS as SPECIAL_ITEMS } from "../../services/GamesConstants.js";
5
+ const {
6
+ width,
7
+ height
8
+ } = Dimensions.get('window');
9
+
10
+ // Constants now imported from centralized GamesConstants.ts
11
+ // Re-export for backward compatibility
12
+ export { GAME_CONFIG, ANIMATION_CONFIG, COLORS, BALLOON_TYPES, SPECIAL_ITEMS };
13
+
14
+ // Types
15
+
16
+ export class BalloonBlasterService {
17
+ gameTimerRef = null;
18
+ balloonSpawnRef = null;
19
+ animationRef = null;
20
+ comboTimeoutRef = null;
21
+ particles = [];
22
+ constructor(balloonAnimations, particleAnimations) {
23
+ this.balloonAnimations = balloonAnimations;
24
+ this.particleAnimations = particleAnimations;
25
+ }
26
+ startGameTimer(onTick) {
27
+ this.clearGameTimer();
28
+ this.gameTimerRef = setInterval(onTick, 1000);
29
+ }
30
+ startBalloonSpawning(spawnBalloon, customSpawnInterval) {
31
+ this.clearBalloonSpawn();
32
+ const spawnInterval = customSpawnInterval || GAME_CONFIG.BALLOON_SPAWN_INTERVAL;
33
+ const spawnLoop = () => {
34
+ const balloon = this.createRandomBalloon();
35
+ spawnBalloon(balloon);
36
+
37
+ // Better spawn timing - less frequent joint spawning
38
+ const randomVariation = (Math.random() - 0.5) * 400; // Reduced variation for faster spawning
39
+ const nextSpawnTime = spawnInterval + randomVariation;
40
+ this.balloonSpawnRef = setTimeout(spawnLoop, Math.max(600, nextSpawnTime)); // Minimum 600ms between spawns
41
+ };
42
+
43
+ // Start spawning immediately when game starts
44
+ this.balloonSpawnRef = setTimeout(spawnLoop, 0);
45
+ }
46
+ startPhysicsLoop(updateBalloon, removeBalloon, getBalloons) {
47
+ const updateLoop = () => {
48
+ const balloons = getBalloons();
49
+ balloons.forEach(balloon => {
50
+ if (balloon.isPopped) return;
51
+
52
+ // Apply negative gravity for upward movement
53
+ const newVelocityY = balloon.velocity.y + GAME_CONFIG.GRAVITY;
54
+
55
+ // Update position
56
+ let newX = balloon.position.x + balloon.velocity.x;
57
+ const newY = balloon.position.y + newVelocityY;
58
+
59
+ // Update rotation
60
+ const newRotation = balloon.rotation + balloon.rotationSpeed;
61
+
62
+ // Remove balloons that float off screen (top only)
63
+ if (newY < -100) {
64
+ removeBalloon(balloon.id);
65
+ return;
66
+ }
67
+
68
+ // Prevent balloons from going too low off screen (bottom boundary)
69
+ let newVelocityX = balloon.velocity.x;
70
+ if (newY > height + 50) {
71
+ // If balloon goes too low, start bringing it back up
72
+ const adjustedVelocityY = Math.min(newVelocityY, -0.5); // Ensure upward movement
73
+ updateBalloon(balloon.id, {
74
+ position: {
75
+ x: newX,
76
+ y: height + 50
77
+ },
78
+ velocity: {
79
+ x: newVelocityX,
80
+ y: adjustedVelocityY
81
+ },
82
+ rotation: newRotation
83
+ });
84
+ return;
85
+ }
86
+
87
+ // Left wall bounce
88
+ if (newX <= 0) {
89
+ newX = 0;
90
+ newVelocityX = Math.abs(newVelocityX) * 0.8; // Bounce right with damping
91
+ }
92
+
93
+ // Right wall bounce
94
+ if (newX >= width - GAME_CONFIG.BALLOON_SIZE) {
95
+ newX = width - GAME_CONFIG.BALLOON_SIZE;
96
+ newVelocityX = -Math.abs(newVelocityX) * 0.8; // Bounce left with damping
97
+ }
98
+ updateBalloon(balloon.id, {
99
+ position: {
100
+ x: newX,
101
+ y: newY
102
+ },
103
+ velocity: {
104
+ x: newVelocityX,
105
+ y: newVelocityY
106
+ },
107
+ rotation: newRotation
108
+ });
109
+ });
110
+
111
+ // Update particles
112
+ this.updateParticles();
113
+ this.animationRef = requestAnimationFrame(updateLoop);
114
+ };
115
+ this.animationRef = requestAnimationFrame(updateLoop);
116
+ }
117
+ createRandomBalloon() {
118
+ // 10% chance for special items
119
+ const isSpecial = Math.random() < 0.1;
120
+ const type = isSpecial ? SPECIAL_ITEMS[Math.floor(Math.random() * SPECIAL_ITEMS.length)] : BALLOON_TYPES[Math.floor(Math.random() * BALLOON_TYPES.length)];
121
+ if (!type) {
122
+ // Fallback to default balloon type if undefined
123
+ const defaultType = BALLOON_TYPES[0];
124
+ const spawnX = Math.random() * (width - GAME_CONFIG.BALLOON_SIZE);
125
+ const spawnY = height + 20; // Start from bottom
126
+ const velocityX = (Math.random() - 0.5) * GAME_CONFIG.INITIAL_VELOCITY_X_RANGE;
127
+ const velocityY = GAME_CONFIG.INITIAL_VELOCITY_Y + (Math.random() - 0.5) * 2;
128
+ return {
129
+ id: `balloon_${Date.now()}_${Math.random()}`,
130
+ type: defaultType,
131
+ position: {
132
+ x: spawnX,
133
+ y: spawnY
134
+ },
135
+ velocity: {
136
+ x: velocityX,
137
+ y: velocityY
138
+ },
139
+ rotation: 0,
140
+ rotationSpeed: (Math.random() - 0.5) * 0.2,
141
+ isPopped: false,
142
+ spawnTime: Date.now(),
143
+ isBomb: 'isBomb' in defaultType && Boolean(defaultType.isBomb),
144
+ isBonus: 'isBonus' in defaultType && Boolean(defaultType.isBonus)
145
+ };
146
+ }
147
+
148
+ // Random spawn position (bottom of screen)
149
+ const spawnX = Math.random() * (width - GAME_CONFIG.BALLOON_SIZE);
150
+ const spawnY = height + 20; // Start from bottom
151
+
152
+ // Random initial velocity for upward movement
153
+ const velocityX = (Math.random() - 0.5) * GAME_CONFIG.INITIAL_VELOCITY_X_RANGE;
154
+ const velocityY = GAME_CONFIG.INITIAL_VELOCITY_Y + (Math.random() - 0.5) * 2; // Negative for upward movement
155
+
156
+ return {
157
+ id: `balloon_${Date.now()}_${Math.random()}`,
158
+ type,
159
+ position: {
160
+ x: spawnX,
161
+ y: spawnY
162
+ },
163
+ velocity: {
164
+ x: velocityX,
165
+ y: velocityY
166
+ },
167
+ rotation: 0,
168
+ rotationSpeed: (Math.random() - 0.5) * 0.2,
169
+ isPopped: false,
170
+ spawnTime: Date.now(),
171
+ isBomb: 'isBomb' in type && type.isBomb,
172
+ isBonus: 'isBonus' in type && type.isBonus
173
+ };
174
+ }
175
+ createPopParticles(balloon) {
176
+ const particles = [];
177
+ for (let i = 0; i < GAME_CONFIG.PARTICLE_COUNT; i++) {
178
+ const angle = i / GAME_CONFIG.PARTICLE_COUNT * Math.PI * 2;
179
+ const speed = 3 + Math.random() * 4;
180
+ particles.push({
181
+ id: `particle_${balloon.id}_${Date.now()}_${Math.random()}_${i}`,
182
+ position: {
183
+ ...balloon.position
184
+ },
185
+ velocity: {
186
+ x: Math.cos(angle) * speed,
187
+ y: Math.sin(angle) * speed - 2
188
+ },
189
+ color: COLORS.PARTICLE_COLORS[Math.floor(Math.random() * COLORS.PARTICLE_COLORS.length)] || '#ff6b6b',
190
+ size: 4 + Math.random() * 6,
191
+ lifetime: 0,
192
+ maxLifetime: GAME_CONFIG.PARTICLE_LIFETIME
193
+ });
194
+ }
195
+ this.particles.push(...particles);
196
+ return particles;
197
+ }
198
+ updateParticles() {
199
+ this.particles = this.particles.filter(particle => {
200
+ particle.lifetime += 16; // Assume 60fps
201
+
202
+ if (particle.lifetime >= particle.maxLifetime) {
203
+ return false;
204
+ }
205
+
206
+ // Update particle physics
207
+ particle.position.x += particle.velocity.x;
208
+ particle.position.y += particle.velocity.y;
209
+ particle.velocity.y += 0.1; // Gravity
210
+
211
+ return true;
212
+ });
213
+ }
214
+ getParticles() {
215
+ return this.particles;
216
+ }
217
+ checkBalloonPop(balloon, slicePath) {
218
+ if (balloon.isPopped || slicePath.length < 2) return false;
219
+ const balloonCenter = {
220
+ x: balloon.position.x + GAME_CONFIG.BALLOON_SIZE / 2,
221
+ y: balloon.position.y + GAME_CONFIG.BALLOON_SIZE / 2
222
+ };
223
+ const balloonRadius = GAME_CONFIG.BALLOON_SIZE / 2;
224
+
225
+ // Check if slice path intersects with balloon
226
+ for (let i = 0; i < slicePath.length - 1; i++) {
227
+ const p1 = slicePath[i];
228
+ const p2 = slicePath[i + 1];
229
+ if (!p1 || !p2) continue;
230
+ const distance = this.distanceFromPointToLine(balloonCenter, p1, p2);
231
+ if (distance <= balloonRadius) {
232
+ return true;
233
+ }
234
+ }
235
+ return false;
236
+ }
237
+ distanceFromPointToLine(point, lineStart, lineEnd) {
238
+ const A = point.x - lineStart.x;
239
+ const B = point.y - lineStart.y;
240
+ const C = lineEnd.x - lineStart.x;
241
+ const D = lineEnd.y - lineStart.y;
242
+ const dot = A * C + B * D;
243
+ const lenSq = C * C + D * D;
244
+ if (lenSq === 0) return Math.sqrt(A * A + B * B);
245
+ let param = dot / lenSq;
246
+ param = Math.max(0, Math.min(1, param));
247
+ const xx = lineStart.x + param * C;
248
+ const yy = lineStart.y + param * D;
249
+ const dx = point.x - xx;
250
+ const dy = point.y - yy;
251
+ return Math.sqrt(dx * dx + dy * dy);
252
+ }
253
+ resetAnimations() {
254
+ this.balloonAnimations.clear();
255
+ this.particleAnimations.clear();
256
+ this.particles = [];
257
+ }
258
+ cleanup() {
259
+ this.clearGameTimer();
260
+ this.clearBalloonSpawn();
261
+ this.clearAnimationLoop();
262
+ this.clearComboTimeout();
263
+ this.particles = [];
264
+ }
265
+ clearGameTimer() {
266
+ if (this.gameTimerRef) {
267
+ clearInterval(this.gameTimerRef);
268
+ this.gameTimerRef = null;
269
+ }
270
+ }
271
+ clearBalloonSpawn() {
272
+ if (this.balloonSpawnRef) {
273
+ clearTimeout(this.balloonSpawnRef);
274
+ this.balloonSpawnRef = null;
275
+ }
276
+ }
277
+ clearAnimationLoop() {
278
+ if (this.animationRef) {
279
+ cancelAnimationFrame(this.animationRef);
280
+ this.animationRef = null;
281
+ }
282
+ }
283
+ clearComboTimeout() {
284
+ if (this.comboTimeoutRef) {
285
+ clearTimeout(this.comboTimeoutRef);
286
+ this.comboTimeoutRef = null;
287
+ }
288
+ }
289
+ }
290
+ export const createBalloonBlasterService = (balloonAnimations, particleAnimations) => {
291
+ return new BalloonBlasterService(balloonAnimations, particleAnimations);
292
+ };
293
+ //# sourceMappingURL=BalloonBlasterService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Dimensions","BALLOON_BLASTER_GAME_CONFIG","GAME_CONFIG","BALLOON_BLASTER_ANIMATION_CONFIG","ANIMATION_CONFIG","BALLOON_BLASTER_COLORS","COLORS","BALLOON_TYPES","BALLOON_SPECIAL_ITEMS","SPECIAL_ITEMS","width","height","get","BalloonBlasterService","gameTimerRef","balloonSpawnRef","animationRef","comboTimeoutRef","particles","constructor","balloonAnimations","particleAnimations","startGameTimer","onTick","clearGameTimer","setInterval","startBalloonSpawning","spawnBalloon","customSpawnInterval","clearBalloonSpawn","spawnInterval","BALLOON_SPAWN_INTERVAL","spawnLoop","balloon","createRandomBalloon","randomVariation","Math","random","nextSpawnTime","setTimeout","max","startPhysicsLoop","updateBalloon","removeBalloon","getBalloons","updateLoop","balloons","forEach","isPopped","newVelocityY","velocity","y","GRAVITY","newX","position","x","newY","newRotation","rotation","rotationSpeed","id","newVelocityX","adjustedVelocityY","min","abs","BALLOON_SIZE","updateParticles","requestAnimationFrame","isSpecial","type","floor","length","defaultType","spawnX","spawnY","velocityX","INITIAL_VELOCITY_X_RANGE","velocityY","INITIAL_VELOCITY_Y","Date","now","spawnTime","isBomb","Boolean","isBonus","createPopParticles","i","PARTICLE_COUNT","angle","PI","speed","push","cos","sin","color","PARTICLE_COLORS","size","lifetime","maxLifetime","PARTICLE_LIFETIME","filter","particle","getParticles","checkBalloonPop","slicePath","balloonCenter","balloonRadius","p1","p2","distance","distanceFromPointToLine","point","lineStart","lineEnd","A","B","C","D","dot","lenSq","sqrt","param","xx","yy","dx","dy","resetAnimations","clear","cleanup","clearAnimationLoop","clearComboTimeout","clearInterval","clearTimeout","cancelAnimationFrame","createBalloonBlasterService"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterService.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ import { create } from 'zustand';
4
+ import { GAME_CONFIG } from "./BalloonBlasterService.js";
5
+ export const useBalloonBlasterStore = create((set, get) => ({
6
+ // Initial state
7
+ score: 0,
8
+ timeLeft: GAME_CONFIG.GAME_DURATION,
9
+ isPlaying: false,
10
+ gameOver: false,
11
+ combo: 0,
12
+ lives: GAME_CONFIG.MAX_LIVES,
13
+ balloons: [],
14
+ slicePath: [],
15
+ isSlicing: false,
16
+ // Actions
17
+ startGame: gameDuration => {
18
+ const duration = gameDuration || GAME_CONFIG.GAME_DURATION;
19
+ set({
20
+ score: 0,
21
+ timeLeft: duration,
22
+ isPlaying: true,
23
+ gameOver: false,
24
+ combo: 0,
25
+ lives: GAME_CONFIG.MAX_LIVES,
26
+ balloons: [],
27
+ slicePath: [],
28
+ isSlicing: false
29
+ });
30
+ },
31
+ stopGame: () => {
32
+ set({
33
+ score: 0,
34
+ timeLeft: GAME_CONFIG.GAME_DURATION,
35
+ isPlaying: false,
36
+ gameOver: false,
37
+ combo: 0,
38
+ lives: GAME_CONFIG.MAX_LIVES,
39
+ balloons: [],
40
+ slicePath: [],
41
+ isSlicing: false
42
+ });
43
+ },
44
+ resetGame: () => {
45
+ set({
46
+ score: 0,
47
+ timeLeft: GAME_CONFIG.GAME_DURATION,
48
+ isPlaying: false,
49
+ gameOver: false,
50
+ combo: 0,
51
+ lives: GAME_CONFIG.MAX_LIVES,
52
+ balloons: [],
53
+ slicePath: [],
54
+ isSlicing: false
55
+ });
56
+ },
57
+ popBalloon: balloonId => {
58
+ const {
59
+ balloons,
60
+ isPlaying
61
+ } = get();
62
+ if (!isPlaying) return;
63
+ const balloon = balloons.find(b => b.id === balloonId);
64
+ if (!balloon || balloon.isPopped) return;
65
+
66
+ // Simplified scoring: each balloon = 10 points (no combo multipliers)
67
+ const points = 10;
68
+ set(state => ({
69
+ score: state.score + points,
70
+ balloons: state.balloons.map(b => b.id === balloonId ? {
71
+ ...b,
72
+ isPopped: true,
73
+ popTime: Date.now()
74
+ } : b)
75
+ }));
76
+ },
77
+ updateScore: points => {
78
+ set(state => ({
79
+ score: state.score + points
80
+ }));
81
+ },
82
+ decrementTime: () => {
83
+ set(state => {
84
+ const newTimeLeft = state.timeLeft - 1;
85
+ if (newTimeLeft <= 0) {
86
+ return {
87
+ timeLeft: 0,
88
+ isPlaying: false,
89
+ gameOver: true
90
+ };
91
+ }
92
+ return {
93
+ timeLeft: newTimeLeft
94
+ };
95
+ });
96
+ },
97
+ addBalloon: balloon => {
98
+ set(state => ({
99
+ balloons: [...state.balloons, balloon]
100
+ }));
101
+ },
102
+ removeBalloon: balloonId => {
103
+ set(state => ({
104
+ balloons: state.balloons.filter(b => b.id !== balloonId)
105
+ }));
106
+ },
107
+ updateBalloon: (balloonId, updates) => {
108
+ set(state => ({
109
+ balloons: state.balloons.map(b => b.id === balloonId ? {
110
+ ...b,
111
+ ...updates
112
+ } : b)
113
+ }));
114
+ },
115
+ setSlicePath: path => {
116
+ set({
117
+ slicePath: path
118
+ });
119
+ },
120
+ setIsSlicing: isSlicing => {
121
+ set({
122
+ isSlicing
123
+ });
124
+ },
125
+ incrementCombo: () => {
126
+ set(state => ({
127
+ combo: state.combo + 1
128
+ }));
129
+ },
130
+ resetCombo: () => {
131
+ set({
132
+ combo: 0
133
+ });
134
+ },
135
+ loseLife: () => {
136
+ set(state => {
137
+ const newLives = state.lives - 1;
138
+ if (newLives <= 0) {
139
+ return {
140
+ lives: 0,
141
+ isPlaying: false,
142
+ gameOver: true
143
+ };
144
+ }
145
+ return {
146
+ lives: newLives
147
+ };
148
+ });
149
+ },
150
+ addLife: () => {
151
+ set(state => ({
152
+ lives: Math.min(state.lives + 1, GAME_CONFIG.MAX_LIVES) // Cap at max lives
153
+ }));
154
+ }
155
+ }));
156
+ //# sourceMappingURL=BalloonBlasterStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["create","GAME_CONFIG","useBalloonBlasterStore","set","get","score","timeLeft","GAME_DURATION","isPlaying","gameOver","combo","lives","MAX_LIVES","balloons","slicePath","isSlicing","startGame","gameDuration","duration","stopGame","resetGame","popBalloon","balloonId","balloon","find","b","id","isPopped","points","state","map","popTime","Date","now","updateScore","decrementTime","newTimeLeft","addBalloon","removeBalloon","filter","updateBalloon","updates","setSlicePath","path","setIsSlicing","incrementCombo","resetCombo","loseLife","newLives","addLife","Math","min"],"sourceRoot":"../../../../src","sources":["games/balloon-blaster/BalloonBlasterStore.ts"],"mappings":"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","ignoreList":[]}