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,149 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { Canvas, Circle, RadialGradient, vec, Shadow } from '@shopify/react-native-skia';
5
+ import { useSharedValue, useAnimatedStyle, withRepeat, withTiming, withSequence } from 'react-native-reanimated';
6
+ import Animated from 'react-native-reanimated';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ export const EnhancedBallComponent = ({
9
+ position,
10
+ size,
11
+ isDragging,
12
+ isCompleted
13
+ }) => {
14
+ // Animation values
15
+ const rotation = useSharedValue(0);
16
+ const glowIntensity = useSharedValue(0.6);
17
+ const pulseScale = useSharedValue(1);
18
+ const completionGlow = useSharedValue(0);
19
+ React.useEffect(() => {
20
+ // Continuous rotation
21
+ rotation.value = withRepeat(withTiming(360, {
22
+ duration: 4000
23
+ }), -1, false);
24
+
25
+ // Glow intensity animation
26
+ glowIntensity.value = withRepeat(withSequence(withTiming(0.3, {
27
+ duration: 1500
28
+ }), withTiming(0.8, {
29
+ duration: 1500
30
+ })), -1, true);
31
+ }, []);
32
+ React.useEffect(() => {
33
+ if (isDragging) {
34
+ pulseScale.value = withTiming(1.2, {
35
+ duration: 200
36
+ });
37
+ } else {
38
+ pulseScale.value = withTiming(1, {
39
+ duration: 200
40
+ });
41
+ }
42
+ }, [isDragging]);
43
+ React.useEffect(() => {
44
+ if (isCompleted) {
45
+ completionGlow.value = withRepeat(withSequence(withTiming(1, {
46
+ duration: 300
47
+ }), withTiming(0.3, {
48
+ duration: 300
49
+ })), 5, true);
50
+ } else {
51
+ completionGlow.value = withTiming(0, {
52
+ duration: 200
53
+ });
54
+ }
55
+ }, [isCompleted]);
56
+ const animatedStyle = useAnimatedStyle(() => {
57
+ const scale = pulseScale.value;
58
+ const rotationDegrees = rotation.value;
59
+ return {
60
+ position: 'absolute',
61
+ left: position.x - size / 2,
62
+ top: position.y - size / 2,
63
+ width: size * 1.5,
64
+ height: size * 1.5,
65
+ transform: [{
66
+ scale
67
+ }, {
68
+ rotate: `${rotationDegrees}deg`
69
+ }]
70
+ };
71
+ });
72
+ const canvasSize = size * 1.5;
73
+ const ballRadius = size / 2;
74
+ const centerX = canvasSize / 2;
75
+ const centerY = canvasSize / 2;
76
+ return /*#__PURE__*/_jsx(Animated.View, {
77
+ style: animatedStyle,
78
+ children: /*#__PURE__*/_jsxs(Canvas, {
79
+ style: {
80
+ width: canvasSize,
81
+ height: canvasSize
82
+ },
83
+ children: [/*#__PURE__*/_jsx(Circle, {
84
+ cx: centerX,
85
+ cy: centerY,
86
+ r: ballRadius * 1.3,
87
+ opacity: glowIntensity,
88
+ children: /*#__PURE__*/_jsx(RadialGradient, {
89
+ c: vec(centerX, centerY),
90
+ r: ballRadius * 1.3,
91
+ colors: isDragging ? ['#ff6b6b', '#ff8e8e', 'transparent'] : ['#4ecdc4', '#45b7b8', 'transparent']
92
+ })
93
+ }), isCompleted && /*#__PURE__*/_jsx(Circle, {
94
+ cx: centerX,
95
+ cy: centerY,
96
+ r: ballRadius * 1.6,
97
+ opacity: completionGlow,
98
+ children: /*#__PURE__*/_jsx(RadialGradient, {
99
+ c: vec(centerX, centerY),
100
+ r: ballRadius * 1.6,
101
+ colors: ['#ffd700', '#ffed4e', '#fff9c4', 'transparent']
102
+ })
103
+ }), /*#__PURE__*/_jsxs(Circle, {
104
+ cx: centerX,
105
+ cy: centerY,
106
+ r: ballRadius,
107
+ children: [/*#__PURE__*/_jsx(RadialGradient, {
108
+ c: vec(centerX - ballRadius * 0.3, centerY - ballRadius * 0.3),
109
+ r: ballRadius * 1.2,
110
+ colors: isDragging ? ['#ff6b6b', '#e55656', '#cc4545'] : ['#4ecdc4', '#45b7b8', '#3ca6a6']
111
+ }), /*#__PURE__*/_jsx(Shadow, {
112
+ dx: 2,
113
+ dy: 2,
114
+ blur: 4,
115
+ color: "rgba(0,0,0,0.3)"
116
+ })]
117
+ }), /*#__PURE__*/_jsx(Circle, {
118
+ cx: centerX - ballRadius * 0.3,
119
+ cy: centerY - ballRadius * 0.3,
120
+ r: ballRadius * 0.3,
121
+ opacity: 0.8,
122
+ children: /*#__PURE__*/_jsx(RadialGradient, {
123
+ c: vec(centerX - ballRadius * 0.3, centerY - ballRadius * 0.3),
124
+ r: ballRadius * 0.3,
125
+ colors: ['rgba(255,255,255,0.9)', 'rgba(255,255,255,0.3)', 'transparent']
126
+ })
127
+ }), /*#__PURE__*/_jsx(Circle, {
128
+ cx: centerX,
129
+ cy: centerY,
130
+ r: ballRadius * 0.4,
131
+ opacity: 0.7,
132
+ children: /*#__PURE__*/_jsx(RadialGradient, {
133
+ c: vec(centerX, centerY),
134
+ r: ballRadius * 0.4,
135
+ colors: ['rgba(255,255,255,0.8)', 'rgba(255,255,255,0.2)', 'transparent']
136
+ })
137
+ }), /*#__PURE__*/_jsx(Circle, {
138
+ cx: centerX,
139
+ cy: centerY,
140
+ r: ballRadius * 0.8,
141
+ opacity: 0.4,
142
+ style: "stroke",
143
+ strokeWidth: 2,
144
+ color: isDragging ? '#ff8e8e' : '#7dd3d8'
145
+ })]
146
+ })
147
+ });
148
+ };
149
+ //# sourceMappingURL=EnhancedBallComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Canvas","Circle","RadialGradient","vec","Shadow","useSharedValue","useAnimatedStyle","withRepeat","withTiming","withSequence","Animated","jsx","_jsx","jsxs","_jsxs","EnhancedBallComponent","position","size","isDragging","isCompleted","rotation","glowIntensity","pulseScale","completionGlow","useEffect","value","duration","animatedStyle","scale","rotationDegrees","left","x","top","y","width","height","transform","rotate","canvasSize","ballRadius","centerX","centerY","View","style","children","cx","cy","r","opacity","c","colors","dx","dy","blur","color","strokeWidth"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/EnhancedBallComponent.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,357 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
6
+ import Animated, { useSharedValue, useAnimatedStyle, runOnJS, withSpring } from 'react-native-reanimated';
7
+ import * as Haptics from 'expo-haptics';
8
+ import { EnhancedBallComponent } from "./EnhancedBallComponent.js";
9
+ import { WallComponent } from "./WallComponent.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export const EnhancedGameArea = ({
12
+ gameState,
13
+ gameConfig,
14
+ walls,
15
+ onBallPositionChange,
16
+ hapticEnabled
17
+ }) => {
18
+ const translateX = useSharedValue(gameState.ballPosition.x);
19
+ const translateY = useSharedValue(gameState.ballPosition.y);
20
+ const isDragging = useSharedValue(false);
21
+
22
+ // Create shared values for walls to use in worklet
23
+ const wallsSharedValue = useSharedValue(walls);
24
+
25
+ // Update ball position when game state changes
26
+ React.useEffect(() => {
27
+ translateX.value = withSpring(gameState.ballPosition.x);
28
+ translateY.value = withSpring(gameState.ballPosition.y);
29
+ }, [gameState.ballPosition]);
30
+
31
+ // Update walls when they change
32
+ React.useEffect(() => {
33
+ wallsSharedValue.value = walls;
34
+ }, [walls]);
35
+ const triggerHaptic = () => {
36
+ if (hapticEnabled) {
37
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light);
38
+ }
39
+ };
40
+ const triggerCollisionHaptic = () => {
41
+ if (hapticEnabled) {
42
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Medium);
43
+ }
44
+ };
45
+
46
+ // Store the initial position when gesture starts
47
+ const startPosition = useSharedValue({
48
+ x: 0,
49
+ y: 0
50
+ });
51
+
52
+ // Worklet function to check collision with walls
53
+ const checkWallCollision = (ballX, ballY, ballRadius) => {
54
+ 'worklet';
55
+
56
+ const currentWalls = wallsSharedValue.value;
57
+
58
+ // Use minimal margin to allow ball to fit better in maze paths
59
+ const collisionMargin = 0.5;
60
+ const effectiveRadius = ballRadius + collisionMargin;
61
+ for (let i = 0; i < currentWalls.length; i++) {
62
+ const wall = currentWalls[i];
63
+
64
+ // Calculate the closest point on the wall rectangle to the ball center
65
+ const closestX = Math.max(wall.x, Math.min(ballX, wall.x + wall.width));
66
+ const closestY = Math.max(wall.y, Math.min(ballY, wall.y + wall.height));
67
+
68
+ // Calculate the distance from the ball center to this closest point
69
+ const distanceX = ballX - closestX;
70
+ const distanceY = ballY - closestY;
71
+ const distanceSquared = distanceX * distanceX + distanceY * distanceY;
72
+
73
+ // Check if the distance is less than the effective radius
74
+ if (distanceSquared < effectiveRadius * effectiveRadius) {
75
+ return true; // Collision detected
76
+ }
77
+ }
78
+ return false; // No collision
79
+ };
80
+
81
+ // Worklet function to check path collision (prevents jumping over walls)
82
+ const checkPathCollision = (fromX, fromY, toX, toY, ballRadius) => {
83
+ 'worklet';
84
+
85
+ // Calculate the distance of the movement
86
+ const deltaX = toX - fromX;
87
+ const deltaY = toY - fromY;
88
+ const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
89
+
90
+ // If movement is very small, just check the destination
91
+ if (distance < 3) {
92
+ return checkWallCollision(toX, toY, ballRadius);
93
+ }
94
+
95
+ // For larger movements, check fewer points but more strategically
96
+ // Only check path collision for fast movements that could jump over walls
97
+ if (distance > 10) {
98
+ const steps = Math.ceil(distance / 4); // Check every 4 pixels for performance
99
+
100
+ for (let i = 1; i < steps; i++) {
101
+ // Skip start and end points
102
+ const t = i / steps;
103
+ const checkX = fromX + deltaX * t;
104
+ const checkY = fromY + deltaY * t;
105
+ if (checkWallCollision(checkX, checkY, ballRadius)) {
106
+ return true; // Collision detected along the path
107
+ }
108
+ }
109
+ }
110
+
111
+ // Always check the final destination
112
+ return checkWallCollision(toX, toY, ballRadius);
113
+ };
114
+ const panGesture = Gesture.Pan().onStart(() => {
115
+ if (!gameState.isPlaying || gameState.isPaused) return;
116
+
117
+ // Store the current ball position when gesture starts
118
+ startPosition.value = {
119
+ x: gameState.ballPosition.x,
120
+ y: gameState.ballPosition.y
121
+ };
122
+ isDragging.value = true;
123
+ runOnJS(triggerHaptic)();
124
+ }).onUpdate(event => {
125
+ if (!gameState.isPlaying || gameState.isPaused) return;
126
+
127
+ // Calculate new position based on gesture translation from start position
128
+ const newX = startPosition.value.x + event.translationX;
129
+ const newY = startPosition.value.y + event.translationY;
130
+
131
+ // Boundary checks
132
+ const ballRadius = gameConfig.BALL_SIZE / 2;
133
+ const clampedX = Math.max(ballRadius, Math.min(gameConfig.GAME_AREA_WIDTH - ballRadius, newX));
134
+ const clampedY = Math.max(ballRadius, Math.min(gameConfig.GAME_AREA_HEIGHT - ballRadius, newY));
135
+
136
+ // Get current ball position
137
+ const currentX = translateX.value;
138
+ const currentY = translateY.value;
139
+
140
+ // Calculate movement distance to determine collision strategy
141
+ const deltaX = clampedX - currentX;
142
+ const deltaY = clampedY - currentY;
143
+ const movementDistance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
144
+ let finalX = clampedX;
145
+ let finalY = clampedY;
146
+ let hasCollision = false;
147
+
148
+ // Use different collision detection strategies based on movement distance
149
+ if (movementDistance < 5) {
150
+ // For small movements, just check destination for smooth gameplay
151
+ hasCollision = checkWallCollision(clampedX, clampedY, ballRadius);
152
+ } else {
153
+ // For larger movements, use path collision detection to prevent wall jumping
154
+ hasCollision = checkPathCollision(currentX, currentY, clampedX, clampedY, ballRadius);
155
+ }
156
+
157
+ // If there's a collision, try to slide along walls more carefully
158
+ if (hasCollision) {
159
+ let foundValidPosition = false;
160
+
161
+ // Try moving only horizontally (slide along vertical walls)
162
+ // But only if the horizontal movement is small to prevent wall jumping
163
+ const horizontalOnlyX = clampedX;
164
+ const horizontalOnlyY = currentY;
165
+ const horizontalDistance = Math.abs(horizontalOnlyX - currentX);
166
+ if (horizontalDistance < ballRadius * 2 && !checkWallCollision(horizontalOnlyX, horizontalOnlyY, ballRadius)) {
167
+ // Also check that we're not jumping over a wall by testing intermediate points
168
+ const steps = Math.max(2, Math.ceil(horizontalDistance / 2));
169
+ let canSlideHorizontally = true;
170
+ for (let i = 1; i <= steps; i++) {
171
+ const t = i / steps;
172
+ const testX = currentX + (horizontalOnlyX - currentX) * t;
173
+ if (checkWallCollision(testX, horizontalOnlyY, ballRadius)) {
174
+ canSlideHorizontally = false;
175
+ break;
176
+ }
177
+ }
178
+ if (canSlideHorizontally) {
179
+ finalX = horizontalOnlyX;
180
+ finalY = horizontalOnlyY;
181
+ foundValidPosition = true;
182
+ }
183
+ }
184
+
185
+ // Try moving only vertically (slide along horizontal walls) if horizontal sliding failed
186
+ if (!foundValidPosition) {
187
+ const verticalOnlyX = currentX;
188
+ const verticalOnlyY = clampedY;
189
+ const verticalDistance = Math.abs(verticalOnlyY - currentY);
190
+ if (verticalDistance < ballRadius * 2 && !checkWallCollision(verticalOnlyX, verticalOnlyY, ballRadius)) {
191
+ // Also check that we're not jumping over a wall by testing intermediate points
192
+ const steps = Math.max(2, Math.ceil(verticalDistance / 2));
193
+ let canSlideVertically = true;
194
+ for (let i = 1; i <= steps; i++) {
195
+ const t = i / steps;
196
+ const testY = currentY + (verticalOnlyY - currentY) * t;
197
+ if (checkWallCollision(verticalOnlyX, testY, ballRadius)) {
198
+ canSlideVertically = false;
199
+ break;
200
+ }
201
+ }
202
+ if (canSlideVertically) {
203
+ finalX = verticalOnlyX;
204
+ finalY = verticalOnlyY;
205
+ foundValidPosition = true;
206
+ }
207
+ }
208
+ }
209
+ hasCollision = !foundValidPosition;
210
+ }
211
+
212
+ // Update position if we found a valid position (either original or sliding)
213
+ if (!hasCollision) {
214
+ translateX.value = finalX;
215
+ translateY.value = finalY;
216
+
217
+ // Update game state on the JS thread
218
+ runOnJS(onBallPositionChange)({
219
+ x: finalX,
220
+ y: finalY
221
+ });
222
+ } else {
223
+ // If still collision after trying to slide, trigger haptic feedback
224
+ runOnJS(triggerCollisionHaptic)();
225
+ }
226
+ }).onEnd(() => {
227
+ isDragging.value = false;
228
+ });
229
+ const animatedBallStyle = useAnimatedStyle(() => ({
230
+ transform: [{
231
+ translateX: translateX.value - gameConfig.BALL_SIZE / 2
232
+ }, {
233
+ translateY: translateY.value - gameConfig.BALL_SIZE / 2
234
+ }]
235
+ }));
236
+ const renderStartMarker = () => {
237
+ const startPos = {
238
+ x: gameConfig.CELL_SIZE / 2,
239
+ y: gameConfig.CELL_SIZE / 2
240
+ };
241
+ return /*#__PURE__*/_jsx(View, {
242
+ style: [styles.marker, styles.startMarker, {
243
+ left: startPos.x - 15,
244
+ top: startPos.y - 15
245
+ }],
246
+ children: /*#__PURE__*/_jsx(View, {
247
+ style: styles.startMarkerInner
248
+ })
249
+ });
250
+ };
251
+ const renderEndMarker = () => {
252
+ const endPos = {
253
+ x: (gameConfig.GRID_SIZE - 1) * gameConfig.CELL_SIZE + gameConfig.CELL_SIZE / 2,
254
+ y: (gameConfig.GRID_SIZE - 1) * gameConfig.CELL_SIZE + gameConfig.CELL_SIZE / 2
255
+ };
256
+ return /*#__PURE__*/_jsx(View, {
257
+ style: [styles.marker, styles.endMarker, {
258
+ left: endPos.x - 15,
259
+ top: endPos.y - 15
260
+ }],
261
+ children: /*#__PURE__*/_jsx(View, {
262
+ style: styles.endMarkerInner
263
+ })
264
+ });
265
+ };
266
+ return /*#__PURE__*/_jsx(View, {
267
+ style: [styles.container, {
268
+ width: gameConfig.GAME_AREA_WIDTH,
269
+ height: gameConfig.GAME_AREA_HEIGHT
270
+ }],
271
+ children: /*#__PURE__*/_jsxs(View, {
272
+ style: [styles.gameArea, {
273
+ width: gameConfig.GRID_SIZE * gameConfig.CELL_SIZE,
274
+ height: gameConfig.GRID_SIZE * gameConfig.CELL_SIZE
275
+ }],
276
+ children: [/*#__PURE__*/_jsx(WallComponent, {
277
+ walls: walls,
278
+ width: gameConfig.GRID_SIZE * gameConfig.CELL_SIZE,
279
+ height: gameConfig.GRID_SIZE * gameConfig.CELL_SIZE
280
+ }), renderStartMarker(), renderEndMarker(), /*#__PURE__*/_jsx(GestureDetector, {
281
+ gesture: panGesture,
282
+ children: /*#__PURE__*/_jsx(Animated.View, {
283
+ style: [styles.ballContainer, animatedBallStyle],
284
+ children: /*#__PURE__*/_jsx(EnhancedBallComponent, {
285
+ position: {
286
+ x: gameConfig.BALL_SIZE / 2,
287
+ y: gameConfig.BALL_SIZE / 2
288
+ },
289
+ size: gameConfig.BALL_SIZE,
290
+ isDragging: isDragging.value,
291
+ isCompleted: gameState.isCompleted
292
+ })
293
+ })
294
+ })]
295
+ })
296
+ });
297
+ };
298
+ const styles = StyleSheet.create({
299
+ container: {
300
+ backgroundColor: 'transparent',
301
+ // Make transparent so walls are visible
302
+ overflow: 'hidden',
303
+ justifyContent: 'center',
304
+ alignItems: 'center'
305
+ },
306
+ gameArea: {
307
+ position: 'relative',
308
+ backgroundColor: 'transparent' // Ensure game area is also transparent
309
+ },
310
+ ballContainer: {
311
+ position: 'absolute',
312
+ width: 40,
313
+ // Fixed size for the ball container
314
+ height: 40,
315
+ top: 0,
316
+ left: 0
317
+ },
318
+ marker: {
319
+ position: 'absolute',
320
+ width: 30,
321
+ height: 30,
322
+ borderRadius: 15,
323
+ justifyContent: 'center',
324
+ alignItems: 'center',
325
+ elevation: 5,
326
+ shadowColor: '#000',
327
+ shadowOffset: {
328
+ width: 0,
329
+ height: 2
330
+ },
331
+ shadowOpacity: 0.3,
332
+ shadowRadius: 4
333
+ },
334
+ startMarker: {
335
+ backgroundColor: '#4CAF50',
336
+ borderWidth: 3,
337
+ borderColor: '#2E7D32'
338
+ },
339
+ startMarkerInner: {
340
+ width: 12,
341
+ height: 12,
342
+ borderRadius: 6,
343
+ backgroundColor: '#81C784'
344
+ },
345
+ endMarker: {
346
+ backgroundColor: '#FF5722',
347
+ borderWidth: 3,
348
+ borderColor: '#D84315'
349
+ },
350
+ endMarkerInner: {
351
+ width: 12,
352
+ height: 12,
353
+ borderRadius: 6,
354
+ backgroundColor: '#FF8A65'
355
+ }
356
+ });
357
+ //# sourceMappingURL=EnhancedGameArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","Gesture","GestureDetector","Animated","useSharedValue","useAnimatedStyle","runOnJS","withSpring","Haptics","EnhancedBallComponent","WallComponent","jsx","_jsx","jsxs","_jsxs","EnhancedGameArea","gameState","gameConfig","walls","onBallPositionChange","hapticEnabled","translateX","ballPosition","x","translateY","y","isDragging","wallsSharedValue","useEffect","value","triggerHaptic","impactAsync","ImpactFeedbackStyle","Light","triggerCollisionHaptic","Medium","startPosition","checkWallCollision","ballX","ballY","ballRadius","currentWalls","collisionMargin","effectiveRadius","i","length","wall","closestX","Math","max","min","width","closestY","height","distanceX","distanceY","distanceSquared","checkPathCollision","fromX","fromY","toX","toY","deltaX","deltaY","distance","sqrt","steps","ceil","t","checkX","checkY","panGesture","Pan","onStart","isPlaying","isPaused","onUpdate","event","newX","translationX","newY","translationY","BALL_SIZE","clampedX","GAME_AREA_WIDTH","clampedY","GAME_AREA_HEIGHT","currentX","currentY","movementDistance","finalX","finalY","hasCollision","foundValidPosition","horizontalOnlyX","horizontalOnlyY","horizontalDistance","abs","canSlideHorizontally","testX","verticalOnlyX","verticalOnlyY","verticalDistance","canSlideVertically","testY","onEnd","animatedBallStyle","transform","renderStartMarker","startPos","CELL_SIZE","style","styles","marker","startMarker","left","top","children","startMarkerInner","renderEndMarker","endPos","GRID_SIZE","endMarker","endMarkerInner","container","gameArea","gesture","ballContainer","position","size","isCompleted","create","backgroundColor","overflow","justifyContent","alignItems","borderRadius","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","borderWidth","borderColor"],"sourceRoot":"../../../../../src","sources":["games/maze-runner/components/EnhancedGameArea.tsx"],"mappings":"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","ignoreList":[]}