@nayan-ui/games 1.18.0 → 1.20.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 (1808) hide show
  1. package/README.md +53 -191
  2. package/lib/module/assets/fonts/Inter-SemiBold.ttf +0 -0
  3. package/lib/module/assets/models/explorer/explorer.glb +0 -0
  4. package/lib/module/assets/models/explorer/params.json +51 -0
  5. package/lib/module/assets/models/explorer/source.json +222 -0
  6. package/lib/module/assets/models/play-with-tua/play-with-tua.glb +0 -0
  7. package/lib/module/assets/models/play-with-tua/sources.json +141 -0
  8. package/lib/module/assets/sfx/balloon_pop.wav +0 -0
  9. package/lib/module/assets/sfx/blocked.wav +0 -0
  10. package/lib/module/assets/sfx/boing.wav +0 -0
  11. package/lib/module/assets/sfx/bonus.wav +0 -0
  12. package/lib/module/assets/sfx/boom.wav +0 -0
  13. package/lib/module/assets/sfx/bump.wav +0 -0
  14. package/lib/module/assets/sfx/cannon.wav +0 -0
  15. package/lib/module/assets/sfx/capture.wav +0 -0
  16. package/lib/module/assets/sfx/card_flip.wav +0 -0
  17. package/lib/module/assets/sfx/card_place.wav +0 -0
  18. package/lib/module/assets/sfx/catch.wav +0 -0
  19. package/lib/module/assets/sfx/chime.wav +0 -0
  20. package/lib/module/assets/sfx/chomp.wav +0 -0
  21. package/lib/module/assets/sfx/chomp_alt.wav +0 -0
  22. package/lib/module/assets/sfx/clack.wav +0 -0
  23. package/lib/module/assets/sfx/clang.wav +0 -0
  24. package/lib/module/assets/sfx/clash.wav +0 -0
  25. package/lib/module/assets/sfx/click.wav +0 -0
  26. package/lib/module/assets/sfx/coin.wav +0 -0
  27. package/lib/module/assets/sfx/combo.wav +0 -0
  28. package/lib/module/assets/sfx/crash.wav +0 -0
  29. package/lib/module/assets/sfx/crunch.wav +0 -0
  30. package/lib/module/assets/sfx/dance.wav +0 -0
  31. package/lib/module/assets/sfx/deselect.wav +0 -0
  32. package/lib/module/assets/sfx/dice_roll.wav +0 -0
  33. package/lib/module/assets/sfx/die.wav +0 -0
  34. package/lib/module/assets/sfx/draw.wav +0 -0
  35. package/lib/module/assets/sfx/drop.wav +0 -0
  36. package/lib/module/assets/sfx/eat.wav +0 -0
  37. package/lib/module/assets/sfx/engine.wav +0 -0
  38. package/lib/module/assets/sfx/error.wav +0 -0
  39. package/lib/module/assets/sfx/flag.wav +0 -0
  40. package/lib/module/assets/sfx/flap.wav +0 -0
  41. package/lib/module/assets/sfx/flip_disc.wav +0 -0
  42. package/lib/module/assets/sfx/footstep_run.wav +0 -0
  43. package/lib/module/assets/sfx/footstep_walk.wav +0 -0
  44. package/lib/module/assets/sfx/game_over.wav +0 -0
  45. package/lib/module/assets/sfx/gate.wav +0 -0
  46. package/lib/module/assets/sfx/hit.wav +0 -0
  47. package/lib/module/assets/sfx/hop.wav +0 -0
  48. package/lib/module/assets/sfx/hurt.wav +0 -0
  49. package/lib/module/assets/sfx/invalid.wav +0 -0
  50. package/lib/module/assets/sfx/jump.wav +0 -0
  51. package/lib/module/assets/sfx/ladder.wav +0 -0
  52. package/lib/module/assets/sfx/land.wav +0 -0
  53. package/lib/module/assets/sfx/laugh.wav +0 -0
  54. package/lib/module/assets/sfx/lose.wav +0 -0
  55. package/lib/module/assets/sfx/merge.wav +0 -0
  56. package/lib/module/assets/sfx/miss.wav +0 -0
  57. package/lib/module/assets/sfx/nitro.wav +0 -0
  58. package/lib/module/assets/sfx/pew.wav +0 -0
  59. package/lib/module/assets/sfx/place.wav +0 -0
  60. package/lib/module/assets/sfx/pling.wav +0 -0
  61. package/lib/module/assets/sfx/point.wav +0 -0
  62. package/lib/module/assets/sfx/pop.wav +0 -0
  63. package/lib/module/assets/sfx/pop_soft.wav +0 -0
  64. package/lib/module/assets/sfx/power_up.wav +0 -0
  65. package/lib/module/assets/sfx/reveal.wav +0 -0
  66. package/lib/module/assets/sfx/robot.wav +0 -0
  67. package/lib/module/assets/sfx/rotate.wav +0 -0
  68. package/lib/module/assets/sfx/run_steps.wav +0 -0
  69. package/lib/module/assets/sfx/select.wav +0 -0
  70. package/lib/module/assets/sfx/shuffle.wav +0 -0
  71. package/lib/module/assets/sfx/six.wav +0 -0
  72. package/lib/module/assets/sfx/slice.wav +0 -0
  73. package/lib/module/assets/sfx/slide.wav +0 -0
  74. package/lib/module/assets/sfx/snake.wav +0 -0
  75. package/lib/module/assets/sfx/snap.wav +0 -0
  76. package/lib/module/assets/sfx/splash.wav +0 -0
  77. package/lib/module/assets/sfx/star.wav +0 -0
  78. package/lib/module/assets/sfx/start.wav +0 -0
  79. package/lib/module/assets/sfx/swoosh.wav +0 -0
  80. package/lib/module/assets/sfx/tap.wav +0 -0
  81. package/lib/module/assets/sfx/thud.wav +0 -0
  82. package/lib/module/assets/sfx/thunk.wav +0 -0
  83. package/lib/module/assets/sfx/tick.wav +0 -0
  84. package/lib/module/assets/sfx/time_up.wav +0 -0
  85. package/lib/module/assets/sfx/tock.wav +0 -0
  86. package/lib/module/assets/sfx/walk_steps.wav +0 -0
  87. package/lib/module/assets/sfx/warning.wav +0 -0
  88. package/lib/module/assets/sfx/whack.wav +0 -0
  89. package/lib/module/assets/sfx/whoosh.wav +0 -0
  90. package/lib/module/assets/sfx/win.wav +0 -0
  91. package/lib/module/assets/sfx/zap.wav +0 -0
  92. package/lib/module/assets/textures/ad_bolt.png +0 -0
  93. package/lib/module/assets/textures/ad_bubbles.png +0 -0
  94. package/lib/module/assets/textures/ad_chevrons.png +0 -0
  95. package/lib/module/assets/textures/asphalt.png +0 -0
  96. package/lib/module/assets/textures/bark.jpg +0 -0
  97. package/lib/module/assets/textures/explorer-atlas.png +0 -0
  98. package/lib/module/assets/textures/facade.png +0 -0
  99. package/lib/module/assets/textures/grass.png +0 -0
  100. package/lib/module/assets/textures/leaves.png +0 -0
  101. package/lib/module/assets/textures/limestone.jpg +0 -0
  102. package/lib/module/assets/textures/meadow.jpg +0 -0
  103. package/lib/module/assets/textures/nature-sources.json +87 -0
  104. package/lib/module/assets/textures/pine.png +0 -0
  105. package/lib/module/assets/textures/river.jpg +0 -0
  106. package/lib/module/assets/textures/soft_glow.png +0 -0
  107. package/lib/module/games/arrows/Arrows.js +1 -1
  108. package/lib/module/games/arrows/ArrowsConstants.js +1 -1
  109. package/lib/module/games/arrows/ArrowsGame.js +1 -0
  110. package/lib/module/games/arrows/ArrowsScene.js +1 -0
  111. package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -1
  112. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -1
  113. package/lib/module/games/balloon-blaster/BalloonBlasterGame.js +1 -0
  114. package/lib/module/games/balloon-blaster/BalloonBlasterPhysics.js +1 -0
  115. package/lib/module/games/balloon-blaster/BalloonBlasterScene.js +1 -0
  116. package/lib/module/games/bike-racing/BikeMeshes.js +1 -0
  117. package/lib/module/games/bike-racing/BikeRacing.js +1 -1
  118. package/lib/module/games/bike-racing/BikeRacingConstants.js +1 -1
  119. package/lib/module/games/bike-racing/BikeRacingGame.js +1 -0
  120. package/lib/module/games/bike-racing/BikeRacingScene.js +1 -0
  121. package/lib/module/games/block-blast/BlockBlast.js +1 -1
  122. package/lib/module/games/block-blast/BlockBlastConstants.js +1 -1
  123. package/lib/module/games/block-blast/BlockBlastGame.js +1 -0
  124. package/lib/module/games/block-blast/BlockBlastScene.js +1 -0
  125. package/lib/module/games/block-breaker/BlockBreaker.js +1 -1
  126. package/lib/module/games/block-breaker/BlockBreakerConstants.js +1 -1
  127. package/lib/module/games/block-breaker/BlockBreakerGame.js +1 -0
  128. package/lib/module/games/block-breaker/BlockBreakerScene.js +1 -0
  129. package/lib/module/games/bluk/Bluk.js +1 -1
  130. package/lib/module/games/bluk/BlukConstants.js +1 -1
  131. package/lib/module/games/bluk/BlukGame.js +1 -0
  132. package/lib/module/games/bluk/BlukRules.js +1 -0
  133. package/lib/module/games/bluk/BlukScene.js +1 -0
  134. package/lib/module/games/bubble-shooter/BubbleShooter.js +1 -1
  135. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js +1 -1
  136. package/lib/module/games/bubble-shooter/BubbleShooterGame.js +1 -0
  137. package/lib/module/games/bubble-shooter/BubbleShooterScene.js +1 -0
  138. package/lib/module/games/candy-crush/CandyCrush.js +1 -1
  139. package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -1
  140. package/lib/module/games/candy-crush/CandyCrushGame.js +1 -0
  141. package/lib/module/games/candy-crush/CandyCrushScene.js +1 -0
  142. package/lib/module/games/car-racing/CarMeshes.js +1 -0
  143. package/lib/module/games/car-racing/CarRacing.js +1 -1
  144. package/lib/module/games/car-racing/CarRacingConstants.js +1 -1
  145. package/lib/module/games/car-racing/CarRacingFacade.js +1 -0
  146. package/lib/module/games/car-racing/CarRacingGame.js +1 -0
  147. package/lib/module/games/car-racing/CarRacingScene.js +1 -0
  148. package/lib/module/games/car-racing/CarRacingScenery.js +1 -0
  149. package/lib/module/games/chameleon-run/ChameleonRun.js +1 -1
  150. package/lib/module/games/chameleon-run/ChameleonRunBackdrop.js +1 -0
  151. package/lib/module/games/chameleon-run/ChameleonRunConstants.js +1 -1
  152. package/lib/module/games/chameleon-run/ChameleonRunGame.js +1 -0
  153. package/lib/module/games/chameleon-run/ChameleonRunMeshes.js +1 -0
  154. package/lib/module/games/chameleon-run/ChameleonRunRules.js +1 -0
  155. package/lib/module/games/chameleon-run/ChameleonRunScene.js +1 -0
  156. package/lib/module/games/checkers/Checkers.js +1 -1
  157. package/lib/module/games/checkers/CheckersAI.js +1 -0
  158. package/lib/module/games/checkers/CheckersConstants.js +1 -1
  159. package/lib/module/games/checkers/CheckersGame.js +1 -0
  160. package/lib/module/games/checkers/CheckersRules.js +1 -0
  161. package/lib/module/games/checkers/CheckersScene.js +1 -0
  162. package/lib/module/games/color-switch/ColorSwitch.js +1 -1
  163. package/lib/module/games/color-switch/ColorSwitchConstants.js +1 -1
  164. package/lib/module/games/color-switch/ColorSwitchGame.js +1 -0
  165. package/lib/module/games/color-switch/ColorSwitchScene.js +1 -0
  166. package/lib/module/games/colors-sort/ColorsSort.js +1 -1
  167. package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -1
  168. package/lib/module/games/colors-sort/ColorsSortGame.js +1 -0
  169. package/lib/module/games/colors-sort/ColorsSortScene.js +1 -0
  170. package/lib/module/games/connect-em-all/ConnectEmAll.js +1 -1
  171. package/lib/module/games/connect-em-all/ConnectEmAllConstants.js +1 -1
  172. package/lib/module/games/connect-em-all/ConnectEmAllGame.js +1 -0
  173. package/lib/module/games/connect-em-all/ConnectEmAllScene.js +1 -0
  174. package/lib/module/games/crossy-road/CrossyRoad.js +1 -1
  175. package/lib/module/games/crossy-road/CrossyRoadCamera.js +1 -0
  176. package/lib/module/games/crossy-road/CrossyRoadConstants.js +1 -1
  177. package/lib/module/games/crossy-road/CrossyRoadGame.js +1 -0
  178. package/lib/module/games/crossy-road/CrossyRoadMeshes.js +1 -0
  179. package/lib/module/games/crossy-road/CrossyRoadPerson.js +1 -0
  180. package/lib/module/games/crossy-road/CrossyRoadRules.js +1 -0
  181. package/lib/module/games/crossy-road/CrossyRoadScene.js +1 -0
  182. package/lib/module/games/dino-jump/DinoJump.js +1 -1
  183. package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -1
  184. package/lib/module/games/dino-jump/DinoJumpGame.js +1 -0
  185. package/lib/module/games/dino-jump/DinoJumpScene.js +1 -0
  186. package/lib/module/games/dots-and-boxes/DotsAndBoxes.js +1 -1
  187. package/lib/module/games/dots-and-boxes/DotsAndBoxesConstants.js +1 -1
  188. package/lib/module/games/dots-and-boxes/DotsAndBoxesGame.js +1 -0
  189. package/lib/module/games/dots-and-boxes/DotsAndBoxesScene.js +1 -0
  190. package/lib/module/games/falling-sticks/FallingSticks.js +1 -1
  191. package/lib/module/games/falling-sticks/FallingSticksConstants.js +1 -1
  192. package/lib/module/games/falling-sticks/FallingSticksGame.js +1 -0
  193. package/lib/module/games/falling-sticks/FallingSticksRules.js +1 -0
  194. package/lib/module/games/falling-sticks/FallingSticksScene.js +1 -0
  195. package/lib/module/games/find-different-number/FindDifferentNumber.js +1 -1
  196. package/lib/module/games/find-different-number/FindDifferentNumberConstants.js +1 -1
  197. package/lib/module/games/find-different-number/FindDifferentNumberGame.js +1 -0
  198. package/lib/module/games/find-different-number/FindDifferentNumberRules.js +1 -0
  199. package/lib/module/games/find-different-number/FindDifferentNumberScene.js +1 -0
  200. package/lib/module/games/flappy-bird/FlappyBird.js +1 -1
  201. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -1
  202. package/lib/module/games/flappy-bird/FlappyBirdGame.js +1 -0
  203. package/lib/module/games/flappy-bird/FlappyBirdScene.js +1 -0
  204. package/lib/module/games/fruit-merger/FruitMerger.js +1 -1
  205. package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -1
  206. package/lib/module/games/fruit-merger/FruitMergerGame.js +1 -0
  207. package/lib/module/games/fruit-merger/FruitMergerRules.js +1 -0
  208. package/lib/module/games/fruit-merger/FruitMergerScene.js +1 -0
  209. package/lib/module/games/fruit-ninja/FruitNinja.js +1 -1
  210. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -1
  211. package/lib/module/games/fruit-ninja/FruitNinjaGame.js +1 -0
  212. package/lib/module/games/fruit-ninja/FruitNinjaScene.js +1 -0
  213. package/lib/module/games/fruit-ninja/FruitNinjaWorld.js +1 -0
  214. package/lib/module/games/game-2048/Game2048.js +1 -1
  215. package/lib/module/games/game-2048/Game2048Constants.js +1 -1
  216. package/lib/module/games/game-2048/Game2048Game.js +1 -0
  217. package/lib/module/games/game-2048/Game2048Rules.js +1 -0
  218. package/lib/module/games/game-2048/Game2048Scene.js +1 -0
  219. package/lib/module/games/knife-hit/KnifeHit.js +1 -1
  220. package/lib/module/games/knife-hit/KnifeHitConstants.js +1 -1
  221. package/lib/module/games/knife-hit/KnifeHitGame.js +1 -0
  222. package/lib/module/games/knife-hit/KnifeHitScene.js +1 -0
  223. package/lib/module/games/ludo-king/LudoKing.js +1 -1
  224. package/lib/module/games/ludo-king/LudoKingConstants.js +1 -1
  225. package/lib/module/games/ludo-king/LudoKingGame.js +1 -0
  226. package/lib/module/games/ludo-king/LudoKingRules.js +1 -0
  227. package/lib/module/games/ludo-king/LudoKingScene.js +1 -0
  228. package/lib/module/games/maze-runner/MazeRunner.js +1 -1
  229. package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -1
  230. package/lib/module/games/maze-runner/MazeRunnerGame.js +1 -0
  231. package/lib/module/games/maze-runner/MazeRunnerRules.js +1 -0
  232. package/lib/module/games/maze-runner/MazeRunnerScene.js +1 -0
  233. package/lib/module/games/memory-match/MemoryMatch.js +1 -1
  234. package/lib/module/games/memory-match/MemoryMatchConstants.js +1 -1
  235. package/lib/module/games/memory-match/MemoryMatchGame.js +1 -0
  236. package/lib/module/games/memory-match/MemoryMatchRules.js +1 -0
  237. package/lib/module/games/memory-match/MemoryMatchScene.js +1 -0
  238. package/lib/module/games/mine-sweeper/MineSweeper.js +1 -1
  239. package/lib/module/games/mine-sweeper/MineSweeperConstants.js +1 -1
  240. package/lib/module/games/mine-sweeper/MineSweeperGame.js +1 -0
  241. package/lib/module/games/mine-sweeper/MineSweeperRules.js +1 -0
  242. package/lib/module/games/mine-sweeper/MineSweeperScene.js +1 -0
  243. package/lib/module/games/mob-control/MobControl.js +1 -1
  244. package/lib/module/games/mob-control/MobControlConstants.js +1 -1
  245. package/lib/module/games/mob-control/MobControlGame.js +1 -0
  246. package/lib/module/games/mob-control/MobControlMeshes.js +1 -0
  247. package/lib/module/games/mob-control/MobControlRenderer.js +1 -0
  248. package/lib/module/games/mob-control/MobControlRules.js +1 -0
  249. package/lib/module/games/mob-control/MobControlScene.js +1 -0
  250. package/lib/module/games/number-search/NumberSearch.js +1 -1
  251. package/lib/module/games/number-search/NumberSearchNumbers.js +1 -0
  252. package/lib/module/games/nuts-and-bolts/NutsAndBolts.js +1 -1
  253. package/lib/module/games/nuts-and-bolts/NutsAndBoltsConstants.js +1 -1
  254. package/lib/module/games/nuts-and-bolts/NutsAndBoltsGame.js +1 -0
  255. package/lib/module/games/nuts-and-bolts/NutsAndBoltsRules.js +1 -0
  256. package/lib/module/games/nuts-and-bolts/NutsAndBoltsScene.js +1 -0
  257. package/lib/module/games/pac-man/PacMan.js +1 -1
  258. package/lib/module/games/pac-man/PacManConstants.js +1 -1
  259. package/lib/module/games/pac-man/PacManGame.js +1 -0
  260. package/lib/module/games/pac-man/PacManRules.js +1 -0
  261. package/lib/module/games/pac-man/PacManScene.js +1 -0
  262. package/lib/module/games/paper-io/PaperIo.js +1 -1
  263. package/lib/module/games/paper-io/PaperIoConstants.js +1 -1
  264. package/lib/module/games/paper-io/PaperIoGame.js +1 -0
  265. package/lib/module/games/paper-io/PaperIoMeshes.js +1 -0
  266. package/lib/module/games/paper-io/PaperIoRules.js +1 -0
  267. package/lib/module/games/paper-io/PaperIoScene.js +1 -0
  268. package/lib/module/games/penguin-run/PenguinMeshes.js +1 -0
  269. package/lib/module/games/penguin-run/PenguinModel.js +1 -0
  270. package/lib/module/games/penguin-run/PenguinRun.js +1 -0
  271. package/lib/module/games/penguin-run/PenguinRunConstants.js +1 -0
  272. package/lib/module/games/penguin-run/PenguinRunGame.js +1 -0
  273. package/lib/module/games/penguin-run/PenguinRunScene.js +1 -0
  274. package/lib/module/games/perfect-circle/PerfectCircle.js +1 -1
  275. package/lib/module/games/perfect-circle/PerfectCircleConstants.js +1 -1
  276. package/lib/module/games/perfect-circle/PerfectCircleGame.js +1 -0
  277. package/lib/module/games/perfect-circle/PerfectCircleRules.js +1 -0
  278. package/lib/module/games/perfect-circle/PerfectCircleScene.js +1 -0
  279. package/lib/module/games/pipe-connect/PipeConnect.js +1 -1
  280. package/lib/module/games/pipe-connect/PipeConnectConstants.js +1 -1
  281. package/lib/module/games/pipe-connect/PipeConnectGame.js +1 -0
  282. package/lib/module/games/pipe-connect/PipeConnectRules.js +1 -0
  283. package/lib/module/games/pipe-connect/PipeConnectScene.js +1 -0
  284. package/lib/module/games/play-with-tua/PlayWithTua.js +1 -0
  285. package/lib/module/games/play-with-tua/PlayWithTuaConstants.js +1 -0
  286. package/lib/module/games/play-with-tua/PlayWithTuaGame.js +1 -0
  287. package/lib/module/games/play-with-tua/PlayWithTuaModel.js +1 -0
  288. package/lib/module/games/play-with-tua/PlayWithTuaScene.js +1 -0
  289. package/lib/module/games/popit-fidget/PopitFidget.js +1 -1
  290. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -1
  291. package/lib/module/games/popit-fidget/PopitFidgetGame.js +1 -0
  292. package/lib/module/games/popit-fidget/PopitFidgetScene.js +1 -0
  293. package/lib/module/games/reversi/Reversi.js +1 -1
  294. package/lib/module/games/reversi/ReversiConstants.js +1 -1
  295. package/lib/module/games/reversi/ReversiGame.js +1 -0
  296. package/lib/module/games/reversi/ReversiRules.js +1 -0
  297. package/lib/module/games/reversi/ReversiScene.js +1 -0
  298. package/lib/module/games/search-grid/SearchGrid.js +1 -0
  299. package/lib/module/games/search-grid/SearchGridConstants.js +1 -0
  300. package/lib/module/games/search-grid/SearchGridGame.js +1 -0
  301. package/lib/module/games/search-grid/SearchGridScene.js +1 -0
  302. package/lib/module/games/shared/BackdropCard.js +1 -0
  303. package/lib/module/games/shared/EngineBackdrop.js +1 -0
  304. package/lib/module/games/shared/EngineBlasts.js +1 -0
  305. package/lib/module/games/shared/EngineBlocks.js +1 -0
  306. package/lib/module/games/shared/EngineControlText.js +1 -0
  307. package/lib/module/games/shared/EngineDice.js +1 -0
  308. package/lib/module/games/shared/EngineFootprint.js +1 -0
  309. package/lib/module/games/shared/EngineFruits.js +1 -0
  310. package/lib/module/games/shared/EngineGameLoader.js +1 -0
  311. package/lib/module/games/shared/EngineGameScreen.js +1 -0
  312. package/lib/module/games/shared/EngineGameWidth.js +1 -0
  313. package/lib/module/games/shared/EngineGameWidth.web.js +1 -0
  314. package/lib/module/games/shared/EngineGlyphs.js +1 -0
  315. package/lib/module/games/shared/EngineHud.js +1 -0
  316. package/lib/module/games/shared/EngineLoading.js +1 -0
  317. package/lib/module/games/shared/EngineMeadow.js +1 -0
  318. package/lib/module/games/shared/EngineMeshCache.js +1 -0
  319. package/lib/module/games/shared/EngineMeshes.js +1 -0
  320. package/lib/module/games/shared/EngineRacingChase.js +1 -0
  321. package/lib/module/games/shared/EngineRacingHandling.js +1 -0
  322. package/lib/module/games/shared/EngineReadyContext.js +1 -0
  323. package/lib/module/games/shared/EngineTilt.js +1 -0
  324. package/lib/module/games/shared/EngineTouchSurface.js +1 -0
  325. package/lib/module/games/shared/EngineUtils.js +1 -0
  326. package/lib/module/games/shared/GameActivity.js +1 -0
  327. package/lib/module/games/shared/GameLoading.js +1 -0
  328. package/lib/module/games/shared/GameLoadingTransition.js +1 -0
  329. package/lib/module/games/shared/ProceduralCacheVersion.js +1 -0
  330. package/lib/module/games/shared/useEngineGame.js +1 -0
  331. package/lib/module/games/shared/useGameResource.js +1 -0
  332. package/lib/module/games/shared/useLiveState.js +1 -0
  333. package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -1
  334. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -1
  335. package/lib/module/games/sliding-numbers/SlidingNumbersGame.js +1 -0
  336. package/lib/module/games/sliding-numbers/SlidingNumbersRules.js +1 -0
  337. package/lib/module/games/sliding-numbers/SlidingNumbersScene.js +1 -0
  338. package/lib/module/games/snake-3d/Snake3D.js +1 -1
  339. package/lib/module/games/snake-3d/Snake3DConstants.js +1 -1
  340. package/lib/module/games/snake-3d/Snake3DGame.js +1 -0
  341. package/lib/module/games/snake-3d/Snake3DMotion.js +1 -0
  342. package/lib/module/games/snake-3d/Snake3DRules.js +1 -0
  343. package/lib/module/games/snake-3d/Snake3DScene.js +1 -0
  344. package/lib/module/games/snakes-and-ladders/SnakesAndLadders.js +1 -1
  345. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersConstants.js +1 -1
  346. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersGame.js +1 -0
  347. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersScene.js +1 -0
  348. package/lib/module/games/space-fighter/SpaceFighter.js +1 -1
  349. package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -1
  350. package/lib/module/games/space-fighter/SpaceFighterGame.js +1 -0
  351. package/lib/module/games/space-fighter/SpaceFighterScene.js +1 -0
  352. package/lib/module/games/spider-solitaire/SpiderSolitaire.js +1 -1
  353. package/lib/module/games/spider-solitaire/SpiderSolitaireConstants.js +1 -1
  354. package/lib/module/games/spider-solitaire/SpiderSolitaireGame.js +1 -0
  355. package/lib/module/games/spider-solitaire/SpiderSolitaireRules.js +1 -0
  356. package/lib/module/games/spider-solitaire/SpiderSolitaireScene.js +1 -0
  357. package/lib/module/games/stack-tower/StackTower.js +1 -1
  358. package/lib/module/games/stack-tower/StackTowerConstants.js +1 -1
  359. package/lib/module/games/stack-tower/StackTowerGame.js +1 -0
  360. package/lib/module/games/stack-tower/StackTowerScene.js +1 -0
  361. package/lib/module/games/sudoku/Sudoku.js +1 -1
  362. package/lib/module/games/sudoku/SudokuConstants.js +1 -1
  363. package/lib/module/games/sudoku/SudokuGame.js +1 -0
  364. package/lib/module/games/sudoku/SudokuRules.js +1 -0
  365. package/lib/module/games/sudoku/SudokuScene.js +1 -0
  366. package/lib/module/games/tangram/Tangram.js +1 -1
  367. package/lib/module/games/tangram/TangramConstants.js +1 -1
  368. package/lib/module/games/tangram/TangramGame.js +1 -0
  369. package/lib/module/games/tangram/TangramRules.js +1 -0
  370. package/lib/module/games/tangram/TangramScene.js +1 -0
  371. package/lib/module/games/tank-1990/Tank1990.js +1 -1
  372. package/lib/module/games/tank-1990/Tank1990Constants.js +1 -1
  373. package/lib/module/games/tank-1990/Tank1990Game.js +1 -0
  374. package/lib/module/games/tank-1990/Tank1990Rules.js +1 -0
  375. package/lib/module/games/tank-1990/Tank1990Scene.js +1 -0
  376. package/lib/module/games/tic-tac-toe/TicTacToe.js +1 -1
  377. package/lib/module/games/tic-tac-toe/TicTacToeConstants.js +1 -1
  378. package/lib/module/games/tic-tac-toe/TicTacToeGame.js +1 -0
  379. package/lib/module/games/tic-tac-toe/TicTacToeRules.js +1 -0
  380. package/lib/module/games/tic-tac-toe/TicTacToeScene.js +1 -0
  381. package/lib/module/games/tile-home/TileHome.js +1 -1
  382. package/lib/module/games/tile-home/TileHomeConstants.js +1 -1
  383. package/lib/module/games/tile-home/TileHomeGame.js +1 -0
  384. package/lib/module/games/tile-home/TileHomeScene.js +1 -0
  385. package/lib/module/games/treasure-hunt/TreasureHunt.js +1 -0
  386. package/lib/module/games/treasure-hunt/TreasureHuntConstants.js +1 -0
  387. package/lib/module/games/treasure-hunt/TreasureHuntControls.js +1 -0
  388. package/lib/module/games/treasure-hunt/TreasureHuntGame.js +1 -0
  389. package/lib/module/games/treasure-hunt/TreasureHuntMeshes.js +1 -0
  390. package/lib/module/games/treasure-hunt/TreasureHuntModel.js +1 -0
  391. package/lib/module/games/treasure-hunt/TreasureHuntRules.js +1 -0
  392. package/lib/module/games/treasure-hunt/TreasureHuntScene.js +1 -0
  393. package/lib/module/games/whack-a-mole/WhackAMole.js +1 -1
  394. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -1
  395. package/lib/module/games/whack-a-mole/WhackAMoleGame.js +1 -0
  396. package/lib/module/games/whack-a-mole/WhackAMoleScene.js +1 -0
  397. package/lib/module/games/word-search/WordSearch.js +1 -1
  398. package/lib/module/games/word-search/WordSearchWords.js +1 -0
  399. package/lib/module/helpers/GamePatternData.js +1 -0
  400. package/lib/module/helpers/GameSettingsModal.js +1 -1
  401. package/lib/module/helpers/GameTheme.js +1 -0
  402. package/lib/module/helpers/IconPaths.js +1 -0
  403. package/lib/module/helpers/index.js +1 -1
  404. package/lib/module/index.js +1 -1
  405. package/lib/module/services/GameAssetLoader.js +1 -0
  406. package/lib/module/services/GameAssets.js +1 -0
  407. package/lib/module/services/GameLoaders.js +1 -0
  408. package/lib/module/services/GamesConstants.js +1 -1
  409. package/lib/module/services/GamesMetadata.js +1 -1
  410. package/lib/module/services/GamesService.js +1 -1
  411. package/lib/module/services/HapticsService.js +1 -1
  412. package/lib/module/services/ScoringService.js +1 -1
  413. package/lib/module/services/SfxSources.js +1 -0
  414. package/lib/module/services/SoundsService.js +1 -1
  415. package/lib/module/services/ThemeService.js +1 -0
  416. package/lib/module/services/UtilsService.js +1 -1
  417. package/lib/module/services/index.js +1 -1
  418. package/lib/typescript/src/games/arrows/Arrows.d.ts +1 -3
  419. package/lib/typescript/src/games/arrows/ArrowsConstants.d.ts +48 -32
  420. package/lib/typescript/src/games/arrows/ArrowsGame.d.ts +60 -0
  421. package/lib/typescript/src/games/arrows/ArrowsScene.d.ts +67 -0
  422. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +1 -3
  423. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +39 -131
  424. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterGame.d.ts +57 -0
  425. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterPhysics.d.ts +16 -0
  426. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterScene.d.ts +31 -0
  427. package/lib/typescript/src/games/bike-racing/BikeMeshes.d.ts +14 -0
  428. package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts +2 -1
  429. package/lib/typescript/src/games/bike-racing/BikeRacingConstants.d.ts +38 -29
  430. package/lib/typescript/src/games/bike-racing/BikeRacingGame.d.ts +104 -0
  431. package/lib/typescript/src/games/bike-racing/BikeRacingScene.d.ts +25 -0
  432. package/lib/typescript/src/games/block-blast/BlockBlast.d.ts +1 -3
  433. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts +48 -30
  434. package/lib/typescript/src/games/block-blast/BlockBlastGame.d.ts +77 -0
  435. package/lib/typescript/src/games/block-blast/BlockBlastScene.d.ts +36 -0
  436. package/lib/typescript/src/games/block-breaker/BlockBreaker.d.ts +1 -3
  437. package/lib/typescript/src/games/block-breaker/BlockBreakerConstants.d.ts +88 -35
  438. package/lib/typescript/src/games/block-breaker/BlockBreakerGame.d.ts +82 -0
  439. package/lib/typescript/src/games/block-breaker/BlockBreakerScene.d.ts +48 -0
  440. package/lib/typescript/src/games/bluk/Bluk.d.ts +1 -3
  441. package/lib/typescript/src/games/bluk/BlukConstants.d.ts +65 -54
  442. package/lib/typescript/src/games/bluk/BlukGame.d.ts +65 -0
  443. package/lib/typescript/src/games/bluk/BlukRules.d.ts +51 -0
  444. package/lib/typescript/src/games/bluk/BlukScene.d.ts +54 -0
  445. package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts +1 -3
  446. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts +56 -24
  447. package/lib/typescript/src/games/bubble-shooter/BubbleShooterGame.d.ts +70 -0
  448. package/lib/typescript/src/games/bubble-shooter/BubbleShooterScene.d.ts +26 -0
  449. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts +1 -3
  450. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +63 -32
  451. package/lib/typescript/src/games/candy-crush/CandyCrushGame.d.ts +65 -0
  452. package/lib/typescript/src/games/candy-crush/CandyCrushScene.d.ts +28 -0
  453. package/lib/typescript/src/games/car-racing/CarMeshes.d.ts +44 -0
  454. package/lib/typescript/src/games/car-racing/CarRacing.d.ts +2 -1
  455. package/lib/typescript/src/games/car-racing/CarRacingConstants.d.ts +60 -29
  456. package/lib/typescript/src/games/car-racing/CarRacingFacade.d.ts +5 -0
  457. package/lib/typescript/src/games/car-racing/CarRacingGame.d.ts +96 -0
  458. package/lib/typescript/src/games/car-racing/CarRacingScene.d.ts +97 -0
  459. package/lib/typescript/src/games/car-racing/CarRacingScenery.d.ts +22 -0
  460. package/lib/typescript/src/games/chameleon-run/ChameleonRun.d.ts +1 -3
  461. package/lib/typescript/src/games/chameleon-run/ChameleonRunBackdrop.d.ts +14 -0
  462. package/lib/typescript/src/games/chameleon-run/ChameleonRunConstants.d.ts +44 -42
  463. package/lib/typescript/src/games/chameleon-run/ChameleonRunGame.d.ts +60 -0
  464. package/lib/typescript/src/games/chameleon-run/ChameleonRunMeshes.d.ts +20 -0
  465. package/lib/typescript/src/games/chameleon-run/ChameleonRunRules.d.ts +52 -0
  466. package/lib/typescript/src/games/chameleon-run/ChameleonRunScene.d.ts +44 -0
  467. package/lib/typescript/src/games/checkers/Checkers.d.ts +1 -3
  468. package/lib/typescript/src/games/checkers/CheckersAI.d.ts +11 -0
  469. package/lib/typescript/src/games/checkers/CheckersConstants.d.ts +32 -72
  470. package/lib/typescript/src/games/checkers/CheckersGame.d.ts +56 -0
  471. package/lib/typescript/src/games/checkers/CheckersRules.d.ts +48 -0
  472. package/lib/typescript/src/games/checkers/CheckersScene.d.ts +41 -0
  473. package/lib/typescript/src/games/color-switch/ColorSwitch.d.ts +1 -3
  474. package/lib/typescript/src/games/color-switch/ColorSwitchConstants.d.ts +27 -31
  475. package/lib/typescript/src/games/color-switch/ColorSwitchGame.d.ts +61 -0
  476. package/lib/typescript/src/games/color-switch/ColorSwitchScene.d.ts +43 -0
  477. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts +1 -3
  478. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts +37 -44
  479. package/lib/typescript/src/games/colors-sort/ColorsSortGame.d.ts +41 -0
  480. package/lib/typescript/src/games/colors-sort/ColorsSortScene.d.ts +33 -0
  481. package/lib/typescript/src/games/connect-em-all/ConnectEmAll.d.ts +1 -3
  482. package/lib/typescript/src/games/connect-em-all/ConnectEmAllConstants.d.ts +43 -17
  483. package/lib/typescript/src/games/connect-em-all/ConnectEmAllGame.d.ts +54 -0
  484. package/lib/typescript/src/games/connect-em-all/ConnectEmAllScene.d.ts +49 -0
  485. package/lib/typescript/src/games/crossy-road/CrossyRoad.d.ts +1 -3
  486. package/lib/typescript/src/games/crossy-road/CrossyRoadCamera.d.ts +14 -0
  487. package/lib/typescript/src/games/crossy-road/CrossyRoadConstants.d.ts +82 -50
  488. package/lib/typescript/src/games/crossy-road/CrossyRoadGame.d.ts +64 -0
  489. package/lib/typescript/src/games/crossy-road/CrossyRoadMeshes.d.ts +16 -0
  490. package/lib/typescript/src/games/crossy-road/CrossyRoadPerson.d.ts +10 -0
  491. package/lib/typescript/src/games/crossy-road/CrossyRoadRules.d.ts +36 -0
  492. package/lib/typescript/src/games/crossy-road/CrossyRoadScene.d.ts +38 -0
  493. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts +1 -3
  494. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +48 -72
  495. package/lib/typescript/src/games/dino-jump/DinoJumpGame.d.ts +60 -0
  496. package/lib/typescript/src/games/dino-jump/DinoJumpScene.d.ts +35 -0
  497. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxes.d.ts +1 -3
  498. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesConstants.d.ts +31 -36
  499. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesGame.d.ts +44 -0
  500. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesScene.d.ts +31 -0
  501. package/lib/typescript/src/games/falling-sticks/FallingSticks.d.ts +1 -3
  502. package/lib/typescript/src/games/falling-sticks/FallingSticksConstants.d.ts +31 -43
  503. package/lib/typescript/src/games/falling-sticks/FallingSticksGame.d.ts +42 -0
  504. package/lib/typescript/src/games/falling-sticks/FallingSticksRules.d.ts +36 -0
  505. package/lib/typescript/src/games/falling-sticks/FallingSticksScene.d.ts +26 -0
  506. package/lib/typescript/src/games/find-different-number/FindDifferentNumber.d.ts +1 -3
  507. package/lib/typescript/src/games/find-different-number/FindDifferentNumberConstants.d.ts +33 -29
  508. package/lib/typescript/src/games/find-different-number/FindDifferentNumberGame.d.ts +43 -0
  509. package/lib/typescript/src/games/find-different-number/FindDifferentNumberRules.d.ts +8 -0
  510. package/lib/typescript/src/games/find-different-number/FindDifferentNumberScene.d.ts +31 -0
  511. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts +1 -3
  512. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts +39 -35
  513. package/lib/typescript/src/games/flappy-bird/FlappyBirdGame.d.ts +66 -0
  514. package/lib/typescript/src/games/flappy-bird/FlappyBirdScene.d.ts +41 -0
  515. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts +1 -3
  516. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts +71 -44
  517. package/lib/typescript/src/games/fruit-merger/FruitMergerGame.d.ts +63 -0
  518. package/lib/typescript/src/games/fruit-merger/FruitMergerRules.d.ts +39 -0
  519. package/lib/typescript/src/games/fruit-merger/FruitMergerScene.d.ts +49 -0
  520. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +1 -3
  521. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +51 -76
  522. package/lib/typescript/src/games/fruit-ninja/FruitNinjaGame.d.ts +76 -0
  523. package/lib/typescript/src/games/fruit-ninja/FruitNinjaScene.d.ts +52 -0
  524. package/lib/typescript/src/games/fruit-ninja/FruitNinjaWorld.d.ts +8 -0
  525. package/lib/typescript/src/games/game-2048/Game2048.d.ts +1 -3
  526. package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts +25 -120
  527. package/lib/typescript/src/games/game-2048/Game2048Game.d.ts +45 -0
  528. package/lib/typescript/src/games/game-2048/Game2048Rules.d.ts +32 -0
  529. package/lib/typescript/src/games/game-2048/Game2048Scene.d.ts +34 -0
  530. package/lib/typescript/src/games/knife-hit/KnifeHit.d.ts +1 -3
  531. package/lib/typescript/src/games/knife-hit/KnifeHitConstants.d.ts +41 -49
  532. package/lib/typescript/src/games/knife-hit/KnifeHitGame.d.ts +49 -0
  533. package/lib/typescript/src/games/knife-hit/KnifeHitScene.d.ts +37 -0
  534. package/lib/typescript/src/games/ludo-king/LudoKing.d.ts +1 -3
  535. package/lib/typescript/src/games/ludo-king/LudoKingConstants.d.ts +50 -28
  536. package/lib/typescript/src/games/ludo-king/LudoKingGame.d.ts +40 -0
  537. package/lib/typescript/src/games/ludo-king/LudoKingRules.d.ts +42 -0
  538. package/lib/typescript/src/games/ludo-king/LudoKingScene.d.ts +53 -0
  539. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -3
  540. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +34 -10
  541. package/lib/typescript/src/games/maze-runner/MazeRunnerGame.d.ts +44 -0
  542. package/lib/typescript/src/games/maze-runner/MazeRunnerRules.d.ts +34 -0
  543. package/lib/typescript/src/games/maze-runner/MazeRunnerScene.d.ts +29 -0
  544. package/lib/typescript/src/games/memory-match/MemoryMatch.d.ts +1 -3
  545. package/lib/typescript/src/games/memory-match/MemoryMatchConstants.d.ts +42 -42
  546. package/lib/typescript/src/games/memory-match/MemoryMatchGame.d.ts +53 -0
  547. package/lib/typescript/src/games/memory-match/MemoryMatchRules.d.ts +14 -0
  548. package/lib/typescript/src/games/memory-match/MemoryMatchScene.d.ts +35 -0
  549. package/lib/typescript/src/games/mine-sweeper/MineSweeper.d.ts +1 -3
  550. package/lib/typescript/src/games/mine-sweeper/MineSweeperConstants.d.ts +43 -82
  551. package/lib/typescript/src/games/mine-sweeper/MineSweeperGame.d.ts +59 -0
  552. package/lib/typescript/src/games/mine-sweeper/MineSweeperRules.d.ts +18 -0
  553. package/lib/typescript/src/games/mine-sweeper/MineSweeperScene.d.ts +23 -0
  554. package/lib/typescript/src/games/mob-control/MobControl.d.ts +1 -3
  555. package/lib/typescript/src/games/mob-control/MobControlConstants.d.ts +99 -85
  556. package/lib/typescript/src/games/mob-control/MobControlGame.d.ts +45 -0
  557. package/lib/typescript/src/games/mob-control/MobControlMeshes.d.ts +2 -0
  558. package/lib/typescript/src/games/mob-control/MobControlRenderer.d.ts +20 -0
  559. package/lib/typescript/src/games/mob-control/MobControlRules.d.ts +68 -0
  560. package/lib/typescript/src/games/mob-control/MobControlScene.d.ts +58 -0
  561. package/lib/typescript/src/games/number-search/NumberSearch.d.ts +1 -3
  562. package/lib/typescript/src/games/number-search/NumberSearchNumbers.d.ts +1 -0
  563. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBolts.d.ts +1 -3
  564. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsConstants.d.ts +27 -79
  565. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsGame.d.ts +56 -0
  566. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsRules.d.ts +65 -0
  567. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsScene.d.ts +48 -0
  568. package/lib/typescript/src/games/pac-man/PacMan.d.ts +1 -3
  569. package/lib/typescript/src/games/pac-man/PacManConstants.d.ts +66 -106
  570. package/lib/typescript/src/games/pac-man/PacManGame.d.ts +48 -0
  571. package/lib/typescript/src/games/pac-man/PacManRules.d.ts +52 -0
  572. package/lib/typescript/src/games/pac-man/PacManScene.d.ts +44 -0
  573. package/lib/typescript/src/games/paper-io/PaperIo.d.ts +1 -3
  574. package/lib/typescript/src/games/paper-io/PaperIoConstants.d.ts +60 -40
  575. package/lib/typescript/src/games/paper-io/PaperIoGame.d.ts +49 -0
  576. package/lib/typescript/src/games/paper-io/PaperIoMeshes.d.ts +13 -0
  577. package/lib/typescript/src/games/paper-io/PaperIoRules.d.ts +71 -0
  578. package/lib/typescript/src/games/paper-io/PaperIoScene.d.ts +39 -0
  579. package/lib/typescript/src/games/penguin-run/PenguinMeshes.d.ts +9 -0
  580. package/lib/typescript/src/games/penguin-run/PenguinModel.d.ts +42 -0
  581. package/lib/typescript/src/games/penguin-run/PenguinRun.d.ts +1 -0
  582. package/lib/typescript/src/games/penguin-run/PenguinRunConstants.d.ts +58 -0
  583. package/lib/typescript/src/games/penguin-run/PenguinRunGame.d.ts +64 -0
  584. package/lib/typescript/src/games/penguin-run/PenguinRunScene.d.ts +65 -0
  585. package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts +1 -3
  586. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts +23 -45
  587. package/lib/typescript/src/games/perfect-circle/PerfectCircleGame.d.ts +40 -0
  588. package/lib/typescript/src/games/perfect-circle/PerfectCircleRules.d.ts +55 -0
  589. package/lib/typescript/src/games/perfect-circle/PerfectCircleScene.d.ts +32 -0
  590. package/lib/typescript/src/games/pipe-connect/PipeConnect.d.ts +1 -3
  591. package/lib/typescript/src/games/pipe-connect/PipeConnectConstants.d.ts +36 -32
  592. package/lib/typescript/src/games/pipe-connect/PipeConnectGame.d.ts +40 -0
  593. package/lib/typescript/src/games/pipe-connect/PipeConnectRules.d.ts +16 -0
  594. package/lib/typescript/src/games/pipe-connect/PipeConnectScene.d.ts +28 -0
  595. package/lib/typescript/src/games/play-with-tua/PlayWithTua.d.ts +2 -0
  596. package/lib/typescript/src/games/play-with-tua/PlayWithTuaConstants.d.ts +64 -0
  597. package/lib/typescript/src/games/play-with-tua/PlayWithTuaGame.d.ts +34 -0
  598. package/lib/typescript/src/games/play-with-tua/PlayWithTuaModel.d.ts +9 -0
  599. package/lib/typescript/src/games/play-with-tua/PlayWithTuaScene.d.ts +13 -0
  600. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +1 -4
  601. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +25 -36
  602. package/lib/typescript/src/games/popit-fidget/PopitFidgetGame.d.ts +37 -0
  603. package/lib/typescript/src/games/popit-fidget/PopitFidgetScene.d.ts +19 -0
  604. package/lib/typescript/src/games/reversi/Reversi.d.ts +1 -3
  605. package/lib/typescript/src/games/reversi/ReversiConstants.d.ts +31 -62
  606. package/lib/typescript/src/games/reversi/ReversiGame.d.ts +54 -0
  607. package/lib/typescript/src/games/reversi/ReversiRules.d.ts +22 -0
  608. package/lib/typescript/src/games/reversi/ReversiScene.d.ts +27 -0
  609. package/lib/typescript/src/games/search-grid/SearchGrid.d.ts +20 -0
  610. package/lib/typescript/src/games/search-grid/SearchGridConstants.d.ts +60 -0
  611. package/lib/typescript/src/games/search-grid/SearchGridGame.d.ts +52 -0
  612. package/lib/typescript/src/games/search-grid/SearchGridScene.d.ts +43 -0
  613. package/lib/typescript/src/games/shared/BackdropCard.d.ts +2 -0
  614. package/lib/typescript/src/games/shared/EngineBackdrop.d.ts +19 -0
  615. package/lib/typescript/src/games/shared/EngineBlasts.d.ts +26 -0
  616. package/lib/typescript/src/games/shared/EngineBlocks.d.ts +19 -0
  617. package/lib/typescript/src/games/shared/EngineControlText.d.ts +2 -0
  618. package/lib/typescript/src/games/shared/EngineDice.d.ts +24 -0
  619. package/lib/typescript/src/games/shared/EngineFootprint.d.ts +17 -0
  620. package/lib/typescript/src/games/shared/EngineFruits.d.ts +27 -0
  621. package/lib/typescript/src/games/shared/EngineGameLoader.d.ts +4 -0
  622. package/lib/typescript/src/games/shared/EngineGameScreen.d.ts +48 -0
  623. package/lib/typescript/src/games/shared/EngineGameWidth.d.ts +3 -0
  624. package/lib/typescript/src/games/shared/EngineGameWidth.web.d.ts +3 -0
  625. package/lib/typescript/src/games/shared/EngineGlyphs.d.ts +15 -0
  626. package/lib/typescript/src/games/shared/EngineHud.d.ts +138 -0
  627. package/lib/typescript/src/games/shared/EngineLoading.d.ts +77 -0
  628. package/lib/typescript/src/games/shared/EngineMeadow.d.ts +90 -0
  629. package/lib/typescript/src/games/shared/EngineMeshCache.d.ts +3 -0
  630. package/lib/typescript/src/games/shared/EngineMeshes.d.ts +3 -0
  631. package/lib/typescript/src/games/shared/EngineRacingChase.d.ts +11 -0
  632. package/lib/typescript/src/games/shared/EngineRacingHandling.d.ts +15 -0
  633. package/lib/typescript/src/games/shared/EngineReadyContext.d.ts +2 -0
  634. package/lib/typescript/src/games/shared/EngineTilt.d.ts +19 -0
  635. package/lib/typescript/src/games/shared/EngineTouchSurface.d.ts +20 -0
  636. package/lib/typescript/src/games/shared/EngineUtils.d.ts +18 -0
  637. package/lib/typescript/src/games/shared/GameActivity.d.ts +3 -0
  638. package/lib/typescript/src/games/shared/GameLoading.d.ts +14 -0
  639. package/lib/typescript/src/games/shared/GameLoadingTransition.d.ts +9 -0
  640. package/lib/typescript/src/games/shared/ProceduralCacheVersion.d.ts +1 -0
  641. package/lib/typescript/src/games/shared/useEngineGame.d.ts +69 -0
  642. package/lib/typescript/src/games/shared/useGameResource.d.ts +2 -0
  643. package/lib/typescript/src/games/shared/useLiveState.d.ts +4 -0
  644. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts +1 -3
  645. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts +32 -40
  646. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersGame.d.ts +48 -0
  647. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersRules.d.ts +22 -0
  648. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersScene.d.ts +30 -0
  649. package/lib/typescript/src/games/snake-3d/Snake3D.d.ts +1 -3
  650. package/lib/typescript/src/games/snake-3d/Snake3DConstants.d.ts +31 -68
  651. package/lib/typescript/src/games/snake-3d/Snake3DGame.d.ts +42 -0
  652. package/lib/typescript/src/games/snake-3d/Snake3DMotion.d.ts +3 -0
  653. package/lib/typescript/src/games/snake-3d/Snake3DRules.d.ts +42 -0
  654. package/lib/typescript/src/games/snake-3d/Snake3DScene.d.ts +35 -0
  655. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLadders.d.ts +1 -3
  656. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersConstants.d.ts +58 -50
  657. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersGame.d.ts +45 -0
  658. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersScene.d.ts +50 -0
  659. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +1 -3
  660. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +33 -23
  661. package/lib/typescript/src/games/space-fighter/SpaceFighterGame.d.ts +58 -0
  662. package/lib/typescript/src/games/space-fighter/SpaceFighterScene.d.ts +51 -0
  663. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaire.d.ts +1 -3
  664. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireConstants.d.ts +52 -35
  665. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireGame.d.ts +67 -0
  666. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireRules.d.ts +39 -0
  667. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireScene.d.ts +60 -0
  668. package/lib/typescript/src/games/stack-tower/StackTower.d.ts +1 -3
  669. package/lib/typescript/src/games/stack-tower/StackTowerConstants.d.ts +31 -23
  670. package/lib/typescript/src/games/stack-tower/StackTowerGame.d.ts +58 -0
  671. package/lib/typescript/src/games/stack-tower/StackTowerScene.d.ts +27 -0
  672. package/lib/typescript/src/games/sudoku/Sudoku.d.ts +1 -3
  673. package/lib/typescript/src/games/sudoku/SudokuConstants.d.ts +50 -55
  674. package/lib/typescript/src/games/sudoku/SudokuGame.d.ts +56 -0
  675. package/lib/typescript/src/games/sudoku/SudokuRules.d.ts +23 -0
  676. package/lib/typescript/src/games/sudoku/SudokuScene.d.ts +44 -0
  677. package/lib/typescript/src/games/tangram/Tangram.d.ts +1 -3
  678. package/lib/typescript/src/games/tangram/TangramConstants.d.ts +33 -52
  679. package/lib/typescript/src/games/tangram/TangramGame.d.ts +68 -0
  680. package/lib/typescript/src/games/tangram/TangramRules.d.ts +61 -0
  681. package/lib/typescript/src/games/tangram/TangramScene.d.ts +42 -0
  682. package/lib/typescript/src/games/tank-1990/Tank1990.d.ts +1 -3
  683. package/lib/typescript/src/games/tank-1990/Tank1990Constants.d.ts +44 -127
  684. package/lib/typescript/src/games/tank-1990/Tank1990Game.d.ts +50 -0
  685. package/lib/typescript/src/games/tank-1990/Tank1990Rules.d.ts +67 -0
  686. package/lib/typescript/src/games/tank-1990/Tank1990Scene.d.ts +38 -0
  687. package/lib/typescript/src/games/tic-tac-toe/TicTacToe.d.ts +1 -3
  688. package/lib/typescript/src/games/tic-tac-toe/TicTacToeConstants.d.ts +35 -72
  689. package/lib/typescript/src/games/tic-tac-toe/TicTacToeGame.d.ts +54 -0
  690. package/lib/typescript/src/games/tic-tac-toe/TicTacToeRules.d.ts +10 -0
  691. package/lib/typescript/src/games/tic-tac-toe/TicTacToeScene.d.ts +26 -0
  692. package/lib/typescript/src/games/tile-home/TileHome.d.ts +1 -3
  693. package/lib/typescript/src/games/tile-home/TileHomeConstants.d.ts +72 -70
  694. package/lib/typescript/src/games/tile-home/TileHomeGame.d.ts +72 -0
  695. package/lib/typescript/src/games/tile-home/TileHomeScene.d.ts +28 -0
  696. package/lib/typescript/src/games/treasure-hunt/TreasureHunt.d.ts +3 -0
  697. package/lib/typescript/src/games/treasure-hunt/TreasureHuntConstants.d.ts +144 -0
  698. package/lib/typescript/src/games/treasure-hunt/TreasureHuntControls.d.ts +75 -0
  699. package/lib/typescript/src/games/treasure-hunt/TreasureHuntGame.d.ts +41 -0
  700. package/lib/typescript/src/games/treasure-hunt/TreasureHuntMeshes.d.ts +26 -0
  701. package/lib/typescript/src/games/treasure-hunt/TreasureHuntModel.d.ts +57 -0
  702. package/lib/typescript/src/games/treasure-hunt/TreasureHuntRules.d.ts +198 -0
  703. package/lib/typescript/src/games/treasure-hunt/TreasureHuntScene.d.ts +40 -0
  704. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +1 -3
  705. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +35 -45
  706. package/lib/typescript/src/games/whack-a-mole/WhackAMoleGame.d.ts +51 -0
  707. package/lib/typescript/src/games/whack-a-mole/WhackAMoleScene.d.ts +31 -0
  708. package/lib/typescript/src/games/word-search/WordSearch.d.ts +1 -3
  709. package/lib/typescript/src/games/word-search/WordSearchWords.d.ts +1 -0
  710. package/lib/typescript/src/helpers/GamePatternData.d.ts +46 -0
  711. package/lib/typescript/src/helpers/GameSettingsModal.d.ts +1 -1
  712. package/lib/typescript/src/helpers/GameTheme.d.ts +18 -0
  713. package/lib/typescript/src/helpers/IconPaths.d.ts +4 -0
  714. package/lib/typescript/src/helpers/index.d.ts +1 -19
  715. package/lib/typescript/src/index.d.ts +3 -0
  716. package/lib/typescript/src/services/GameAssetLoader.d.ts +32 -0
  717. package/lib/typescript/src/services/GameAssets.d.ts +11 -0
  718. package/lib/typescript/src/services/GameLoaders.d.ts +18 -0
  719. package/lib/typescript/src/services/GamesConstants.d.ts +11 -0
  720. package/lib/typescript/src/services/GamesMetadata.d.ts +2 -0
  721. package/lib/typescript/src/services/HapticsService.d.ts +1 -1
  722. package/lib/typescript/src/services/SfxSources.d.ts +79 -0
  723. package/lib/typescript/src/services/SoundsService.d.ts +487 -1566
  724. package/lib/typescript/src/services/ThemeService.d.ts +117 -0
  725. package/lib/typescript/src/services/UtilsService.d.ts +20 -2
  726. package/lib/typescript/src/services/index.d.ts +3 -0
  727. package/lib/web/assets/005ea2045b17-explorer.glb +0 -0
  728. package/lib/web/assets/01e2f0a0bbf6-hurt.wav +0 -0
  729. package/lib/web/assets/01fc0ecf658c-explorer-atlas.png +0 -0
  730. package/lib/web/assets/029329b2c7c0-asphalt.png +0 -0
  731. package/lib/web/assets/0376bda32be3-robot.wav +0 -0
  732. package/lib/web/assets/0719fb0bb38e-soft_glow.png +0 -0
  733. package/lib/web/assets/0b21278bffba-boing.wav +0 -0
  734. package/lib/web/assets/1333c9d1273c-flip_disc.wav +0 -0
  735. package/lib/web/assets/15785f62ee5f-time_up.wav +0 -0
  736. package/lib/web/assets/177f00502e08-bonus.wav +0 -0
  737. package/lib/web/assets/19e47dcfda1f-pling.wav +0 -0
  738. package/lib/web/assets/1a677e0f7f6c-laugh.wav +0 -0
  739. package/lib/web/assets/1ad2914478b1-eat.wav +0 -0
  740. package/lib/web/assets/1b0d703ddd1a-dance.wav +0 -0
  741. package/lib/web/assets/1e4330fddd74-chime.wav +0 -0
  742. package/lib/web/assets/2432a97b0af1-cannon.wav +0 -0
  743. package/lib/web/assets/2574370d6aa0-blocked.wav +0 -0
  744. package/lib/web/assets/2699065037ad-select.wav +0 -0
  745. package/lib/web/assets/28d30f53ad73-ladder.wav +0 -0
  746. package/lib/web/assets/2c1ec05270b2-point.wav +0 -0
  747. package/lib/web/assets/2e1dd99a0213-tick.wav +0 -0
  748. package/lib/web/assets/3084575cecdb-card_flip.wav +0 -0
  749. package/lib/web/assets/308bc31b6af5-engine.wav +0 -0
  750. package/lib/web/assets/336d63b739b5-combo.wav +0 -0
  751. package/lib/web/assets/3a369e2596e4-clash.wav +0 -0
  752. package/lib/web/assets/3a816e20212f-capture.wav +0 -0
  753. package/lib/web/assets/40240217810a-nitro.wav +0 -0
  754. package/lib/web/assets/46edaa54d1ea-crunch.wav +0 -0
  755. package/lib/web/assets/501994226995-coin.wav +0 -0
  756. package/lib/web/assets/5525d7f6a4b8-rotate.wav +0 -0
  757. package/lib/web/assets/5e816e1f0929-dice_roll.wav +0 -0
  758. package/lib/web/assets/60e2dec3cf41-deselect.wav +0 -0
  759. package/lib/web/assets/6ab86ea29e5c-six.wav +0 -0
  760. package/lib/web/assets/6da3b101926d-merge.wav +0 -0
  761. package/lib/web/assets/6e686dea513c-bark.jpg +0 -0
  762. package/lib/web/assets/6ff9a6a13714-limestone.jpg +0 -0
  763. package/lib/web/assets/735c4a1cd22e-invalid.wav +0 -0
  764. package/lib/web/assets/73f75c35ff5d-snake.wav +0 -0
  765. package/lib/web/assets/7506e3efe264-catch.wav +0 -0
  766. package/lib/web/assets/76493a2ada2d-ad_bolt.png +0 -0
  767. package/lib/web/assets/793abe620201-card_place.wav +0 -0
  768. package/lib/web/assets/7da09c57f52d-facade.png +0 -0
  769. package/lib/web/assets/7e1a902176f6-pine.png +0 -0
  770. package/lib/web/assets/7eb943b85c21-play-with-tua.glb +0 -0
  771. package/lib/web/assets/837d43c06dba-ad_bubbles.png +0 -0
  772. package/lib/web/assets/84f1a7dfa368-game_over.wav +0 -0
  773. package/lib/web/assets/850e26ce3b0a-flap.wav +0 -0
  774. package/lib/web/assets/854b31683cb2-draw.wav +0 -0
  775. package/lib/web/assets/8616150393b7-error.wav +0 -0
  776. package/lib/web/assets/87cc6d503ec6-river.jpg +0 -0
  777. package/lib/web/assets/88755845922c-hop.wav +0 -0
  778. package/lib/web/assets/8ec8f469492d-chomp_alt.wav +0 -0
  779. package/lib/web/assets/8f17f89b138c-pew.wav +0 -0
  780. package/lib/web/assets/9210a24472d1-place.wav +0 -0
  781. package/lib/web/assets/930d833ebf89-splash.wav +0 -0
  782. package/lib/web/assets/970f7c59265d-swoosh.wav +0 -0
  783. package/lib/web/assets/9900b8d1b6ad-flag.wav +0 -0
  784. package/lib/web/assets/9ab04403898b-clang.wav +0 -0
  785. package/lib/web/assets/9d8b97a10d45-drop.wav +0 -0
  786. package/lib/web/assets/9d9c02ddc7ed-boom.wav +0 -0
  787. package/lib/web/assets/9e1b5114d56d-pop_soft.wav +0 -0
  788. package/lib/web/assets/a01f22d6dbb3-thud.wav +0 -0
  789. package/lib/web/assets/a44a1cf1a1a8-bump.wav +0 -0
  790. package/lib/web/assets/a76940a48c68-hit.wav +0 -0
  791. package/lib/web/assets/a98ddb724460-leaves.png +0 -0
  792. package/lib/web/assets/aa0960e8bee6-footstep_run.wav +0 -0
  793. package/lib/web/assets/aa570c9d3e15-star.wav +0 -0
  794. package/lib/web/assets/aacb999f3c49-tock.wav +0 -0
  795. package/lib/web/assets/aae0c16c5e89-reveal.wav +0 -0
  796. package/lib/web/assets/ab37cd128509-click.wav +0 -0
  797. package/lib/web/assets/b0bc66f49005-warning.wav +0 -0
  798. package/lib/web/assets/b1edd756ac43-zap.wav +0 -0
  799. package/lib/web/assets/b3894545cf71-slice.wav +0 -0
  800. package/lib/web/assets/b3c6225d055a-meadow.jpg +0 -0
  801. package/lib/web/assets/b60ca65cdfcb-gate.wav +0 -0
  802. package/lib/web/assets/b8900bb2c5c7-win.wav +0 -0
  803. package/lib/web/assets/baff6feda846-lose.wav +0 -0
  804. package/lib/web/assets/bed31305d60d-ad_chevrons.png +0 -0
  805. package/lib/web/assets/c26f4a624e7d-shuffle.wav +0 -0
  806. package/lib/web/assets/c3a9edfad195-die.wav +0 -0
  807. package/lib/web/assets/c4aa9d773f2a-footstep_walk.wav +0 -0
  808. package/lib/web/assets/c5ab3ff0003f-crash.wav +0 -0
  809. package/lib/web/assets/c5eb07deddd4-start.wav +0 -0
  810. package/lib/web/assets/c6c58d9ae452-pop.wav +0 -0
  811. package/lib/web/assets/cea48c3cd9c7-balloon_pop.wav +0 -0
  812. package/lib/web/assets/d15591767778-tap.wav +0 -0
  813. package/lib/web/assets/d1781a52234f-slide.wav +0 -0
  814. package/lib/web/assets/d3bf2d9f793b-snap.wav +0 -0
  815. package/lib/web/assets/d8f59ebd3537-jump.wav +0 -0
  816. package/lib/web/assets/dafea2f28854-power_up.wav +0 -0
  817. package/lib/web/assets/e2e7f5ae2d1b-whoosh.wav +0 -0
  818. package/lib/web/assets/e2f90a23e1bd-chomp.wav +0 -0
  819. package/lib/web/assets/e454e56df89a-clack.wav +0 -0
  820. package/lib/web/assets/e8cbc2b88bc4-Inter-SemiBold.ttf +0 -0
  821. package/lib/web/assets/ed6496b891fc-land.wav +0 -0
  822. package/lib/web/assets/f21920200a81-thunk.wav +0 -0
  823. package/lib/web/assets/f753b43be89d-whack.wav +0 -0
  824. package/lib/web/assets/f798c4b5cf4d-miss.wav +0 -0
  825. package/lib/web/assets/fbe299716916-grass.png +0 -0
  826. package/lib/web/chunk-52ez2s9z.js +15 -0
  827. package/lib/web/chunk-8675t224.js +1 -0
  828. package/lib/web/index.js +2 -0
  829. package/lib/web/package.json +1 -0
  830. package/lib/web/services.js +2 -0
  831. package/package.json +94 -73
  832. package/src/assets/fonts/Inter-SemiBold.ttf +0 -0
  833. package/src/assets/models/explorer/explorer.glb +0 -0
  834. package/src/assets/models/explorer/params.json +51 -0
  835. package/src/assets/models/explorer/source.json +222 -0
  836. package/src/assets/models/play-with-tua/play-with-tua.glb +0 -0
  837. package/src/assets/models/play-with-tua/sources.json +141 -0
  838. package/src/assets/sfx/balloon_pop.wav +0 -0
  839. package/src/assets/sfx/blocked.wav +0 -0
  840. package/src/assets/sfx/boing.wav +0 -0
  841. package/src/assets/sfx/bonus.wav +0 -0
  842. package/src/assets/sfx/boom.wav +0 -0
  843. package/src/assets/sfx/bump.wav +0 -0
  844. package/src/assets/sfx/cannon.wav +0 -0
  845. package/src/assets/sfx/capture.wav +0 -0
  846. package/src/assets/sfx/card_flip.wav +0 -0
  847. package/src/assets/sfx/card_place.wav +0 -0
  848. package/src/assets/sfx/catch.wav +0 -0
  849. package/src/assets/sfx/chime.wav +0 -0
  850. package/src/assets/sfx/chomp.wav +0 -0
  851. package/src/assets/sfx/chomp_alt.wav +0 -0
  852. package/src/assets/sfx/clack.wav +0 -0
  853. package/src/assets/sfx/clang.wav +0 -0
  854. package/src/assets/sfx/clash.wav +0 -0
  855. package/src/assets/sfx/click.wav +0 -0
  856. package/src/assets/sfx/coin.wav +0 -0
  857. package/src/assets/sfx/combo.wav +0 -0
  858. package/src/assets/sfx/crash.wav +0 -0
  859. package/src/assets/sfx/crunch.wav +0 -0
  860. package/src/assets/sfx/dance.wav +0 -0
  861. package/src/assets/sfx/deselect.wav +0 -0
  862. package/src/assets/sfx/dice_roll.wav +0 -0
  863. package/src/assets/sfx/die.wav +0 -0
  864. package/src/assets/sfx/draw.wav +0 -0
  865. package/src/assets/sfx/drop.wav +0 -0
  866. package/src/assets/sfx/eat.wav +0 -0
  867. package/src/assets/sfx/engine.wav +0 -0
  868. package/src/assets/sfx/error.wav +0 -0
  869. package/src/assets/sfx/flag.wav +0 -0
  870. package/src/assets/sfx/flap.wav +0 -0
  871. package/src/assets/sfx/flip_disc.wav +0 -0
  872. package/src/assets/sfx/footstep_run.wav +0 -0
  873. package/src/assets/sfx/footstep_walk.wav +0 -0
  874. package/src/assets/sfx/game_over.wav +0 -0
  875. package/src/assets/sfx/gate.wav +0 -0
  876. package/src/assets/sfx/hit.wav +0 -0
  877. package/src/assets/sfx/hop.wav +0 -0
  878. package/src/assets/sfx/hurt.wav +0 -0
  879. package/src/assets/sfx/invalid.wav +0 -0
  880. package/src/assets/sfx/jump.wav +0 -0
  881. package/src/assets/sfx/ladder.wav +0 -0
  882. package/src/assets/sfx/land.wav +0 -0
  883. package/src/assets/sfx/laugh.wav +0 -0
  884. package/src/assets/sfx/lose.wav +0 -0
  885. package/src/assets/sfx/merge.wav +0 -0
  886. package/src/assets/sfx/miss.wav +0 -0
  887. package/src/assets/sfx/nitro.wav +0 -0
  888. package/src/assets/sfx/pew.wav +0 -0
  889. package/src/assets/sfx/place.wav +0 -0
  890. package/src/assets/sfx/pling.wav +0 -0
  891. package/src/assets/sfx/point.wav +0 -0
  892. package/src/assets/sfx/pop.wav +0 -0
  893. package/src/assets/sfx/pop_soft.wav +0 -0
  894. package/src/assets/sfx/power_up.wav +0 -0
  895. package/src/assets/sfx/reveal.wav +0 -0
  896. package/src/assets/sfx/robot.wav +0 -0
  897. package/src/assets/sfx/rotate.wav +0 -0
  898. package/src/assets/sfx/run_steps.wav +0 -0
  899. package/src/assets/sfx/select.wav +0 -0
  900. package/src/assets/sfx/shuffle.wav +0 -0
  901. package/src/assets/sfx/six.wav +0 -0
  902. package/src/assets/sfx/slice.wav +0 -0
  903. package/src/assets/sfx/slide.wav +0 -0
  904. package/src/assets/sfx/snake.wav +0 -0
  905. package/src/assets/sfx/snap.wav +0 -0
  906. package/src/assets/sfx/splash.wav +0 -0
  907. package/src/assets/sfx/star.wav +0 -0
  908. package/src/assets/sfx/start.wav +0 -0
  909. package/src/assets/sfx/swoosh.wav +0 -0
  910. package/src/assets/sfx/tap.wav +0 -0
  911. package/src/assets/sfx/thud.wav +0 -0
  912. package/src/assets/sfx/thunk.wav +0 -0
  913. package/src/assets/sfx/tick.wav +0 -0
  914. package/src/assets/sfx/time_up.wav +0 -0
  915. package/src/assets/sfx/tock.wav +0 -0
  916. package/src/assets/sfx/walk_steps.wav +0 -0
  917. package/src/assets/sfx/warning.wav +0 -0
  918. package/src/assets/sfx/whack.wav +0 -0
  919. package/src/assets/sfx/whoosh.wav +0 -0
  920. package/src/assets/sfx/win.wav +0 -0
  921. package/src/assets/sfx/zap.wav +0 -0
  922. package/src/assets/textures/ad_bolt.png +0 -0
  923. package/src/assets/textures/ad_bubbles.png +0 -0
  924. package/src/assets/textures/ad_chevrons.png +0 -0
  925. package/src/assets/textures/asphalt.png +0 -0
  926. package/src/assets/textures/bark.jpg +0 -0
  927. package/src/assets/textures/explorer-atlas.png +0 -0
  928. package/src/assets/textures/facade.png +0 -0
  929. package/src/assets/textures/grass.png +0 -0
  930. package/src/assets/textures/leaves.png +0 -0
  931. package/src/assets/textures/limestone.jpg +0 -0
  932. package/src/assets/textures/meadow.jpg +0 -0
  933. package/src/assets/textures/nature-sources.json +87 -0
  934. package/src/assets/textures/pine.png +0 -0
  935. package/src/assets/textures/river.jpg +0 -0
  936. package/src/assets/textures/soft_glow.png +0 -0
  937. package/src/games/arrows/Arrows.tsx +69 -0
  938. package/src/games/arrows/ArrowsConstants.ts +107 -0
  939. package/src/games/arrows/ArrowsGame.ts +735 -0
  940. package/src/games/arrows/ArrowsScene.ts +395 -0
  941. package/src/games/balloon-blaster/BalloonBlaster.tsx +75 -0
  942. package/src/games/balloon-blaster/BalloonBlasterConstants.ts +79 -0
  943. package/src/games/balloon-blaster/BalloonBlasterGame.ts +287 -0
  944. package/src/games/balloon-blaster/BalloonBlasterPhysics.ts +95 -0
  945. package/src/games/balloon-blaster/BalloonBlasterScene.ts +225 -0
  946. package/src/games/bike-racing/BikeMeshes.ts +273 -0
  947. package/src/games/bike-racing/BikeRacing.tsx +211 -0
  948. package/src/games/bike-racing/BikeRacingConstants.ts +103 -0
  949. package/src/games/bike-racing/BikeRacingGame.ts +557 -0
  950. package/src/games/bike-racing/BikeRacingScene.ts +119 -0
  951. package/src/games/block-blast/BlockBlast.tsx +73 -0
  952. package/src/games/block-blast/BlockBlastConstants.ts +179 -0
  953. package/src/games/block-blast/BlockBlastGame.ts +471 -0
  954. package/src/games/block-blast/BlockBlastScene.ts +156 -0
  955. package/src/games/block-breaker/BlockBreaker.tsx +79 -0
  956. package/src/games/block-breaker/BlockBreakerConstants.ts +139 -0
  957. package/src/games/block-breaker/BlockBreakerGame.ts +459 -0
  958. package/src/games/block-breaker/BlockBreakerScene.ts +257 -0
  959. package/src/games/bluk/Bluk.tsx +82 -0
  960. package/src/games/bluk/BlukConstants.ts +121 -0
  961. package/src/games/bluk/BlukGame.ts +323 -0
  962. package/src/games/bluk/BlukRules.ts +154 -0
  963. package/src/games/bluk/BlukScene.ts +514 -0
  964. package/src/games/bubble-shooter/BubbleShooter.tsx +76 -0
  965. package/src/games/bubble-shooter/BubbleShooterConstants.ts +103 -0
  966. package/src/games/bubble-shooter/BubbleShooterGame.ts +459 -0
  967. package/src/games/bubble-shooter/BubbleShooterScene.ts +158 -0
  968. package/src/games/candy-crush/CandyCrush.tsx +77 -0
  969. package/src/games/candy-crush/CandyCrushConstants.ts +94 -0
  970. package/src/games/candy-crush/CandyCrushGame.ts +477 -0
  971. package/src/games/candy-crush/CandyCrushScene.ts +209 -0
  972. package/src/games/car-racing/CarMeshes.ts +440 -0
  973. package/src/games/car-racing/CarRacing.tsx +211 -0
  974. package/src/games/car-racing/CarRacingConstants.ts +167 -0
  975. package/src/games/car-racing/CarRacingFacade.ts +40 -0
  976. package/src/games/car-racing/CarRacingGame.ts +539 -0
  977. package/src/games/car-racing/CarRacingScene.ts +1026 -0
  978. package/src/games/car-racing/CarRacingScenery.ts +265 -0
  979. package/src/games/chameleon-run/ChameleonRun.tsx +96 -0
  980. package/src/games/chameleon-run/ChameleonRunBackdrop.ts +186 -0
  981. package/src/games/chameleon-run/ChameleonRunConstants.ts +47 -0
  982. package/src/games/chameleon-run/ChameleonRunGame.ts +309 -0
  983. package/src/games/chameleon-run/ChameleonRunMeshes.ts +305 -0
  984. package/src/games/chameleon-run/ChameleonRunRules.ts +252 -0
  985. package/src/games/chameleon-run/ChameleonRunScene.ts +310 -0
  986. package/src/games/checkers/Checkers.tsx +83 -0
  987. package/src/games/checkers/CheckersAI.ts +255 -0
  988. package/src/games/checkers/CheckersConstants.ts +68 -0
  989. package/src/games/checkers/CheckersGame.ts +322 -0
  990. package/src/games/checkers/CheckersRules.ts +167 -0
  991. package/src/games/checkers/CheckersScene.ts +308 -0
  992. package/src/games/color-switch/ColorSwitch.tsx +75 -0
  993. package/src/games/color-switch/ColorSwitchConstants.ts +61 -0
  994. package/src/games/color-switch/ColorSwitchGame.ts +329 -0
  995. package/src/games/color-switch/ColorSwitchScene.ts +220 -0
  996. package/src/games/colors-sort/ColorsSort.tsx +82 -0
  997. package/src/games/colors-sort/ColorsSortConstants.ts +119 -0
  998. package/src/games/colors-sort/ColorsSortGame.ts +246 -0
  999. package/src/games/colors-sort/ColorsSortScene.ts +315 -0
  1000. package/src/games/connect-em-all/ConnectEmAll.tsx +70 -0
  1001. package/src/games/connect-em-all/ConnectEmAllConstants.ts +77 -0
  1002. package/src/games/connect-em-all/ConnectEmAllGame.ts +401 -0
  1003. package/src/games/connect-em-all/ConnectEmAllScene.ts +235 -0
  1004. package/src/games/crossy-road/CrossyRoad.tsx +74 -0
  1005. package/src/games/crossy-road/CrossyRoadCamera.ts +59 -0
  1006. package/src/games/crossy-road/CrossyRoadConstants.ts +132 -0
  1007. package/src/games/crossy-road/CrossyRoadGame.ts +293 -0
  1008. package/src/games/crossy-road/CrossyRoadMeshes.ts +195 -0
  1009. package/src/games/crossy-road/CrossyRoadPerson.ts +198 -0
  1010. package/src/games/crossy-road/CrossyRoadRules.ts +99 -0
  1011. package/src/games/crossy-road/CrossyRoadScene.ts +355 -0
  1012. package/src/games/dino-jump/DinoJump.tsx +77 -0
  1013. package/src/games/dino-jump/DinoJumpConstants.ts +80 -0
  1014. package/src/games/dino-jump/DinoJumpGame.ts +344 -0
  1015. package/src/games/dino-jump/DinoJumpScene.ts +686 -0
  1016. package/src/games/dots-and-boxes/DotsAndBoxes.tsx +83 -0
  1017. package/src/games/dots-and-boxes/DotsAndBoxesConstants.ts +77 -0
  1018. package/src/games/dots-and-boxes/DotsAndBoxesGame.ts +271 -0
  1019. package/src/games/dots-and-boxes/DotsAndBoxesScene.ts +249 -0
  1020. package/src/games/falling-sticks/FallingSticks.tsx +72 -0
  1021. package/src/games/falling-sticks/FallingSticksConstants.ts +62 -0
  1022. package/src/games/falling-sticks/FallingSticksGame.ts +220 -0
  1023. package/src/games/falling-sticks/FallingSticksRules.ts +145 -0
  1024. package/src/games/falling-sticks/FallingSticksScene.ts +245 -0
  1025. package/src/games/find-different-number/FindDifferentNumber.tsx +74 -0
  1026. package/src/games/find-different-number/FindDifferentNumberConstants.ts +74 -0
  1027. package/src/games/find-different-number/FindDifferentNumberGame.ts +174 -0
  1028. package/src/games/find-different-number/FindDifferentNumberRules.ts +43 -0
  1029. package/src/games/find-different-number/FindDifferentNumberScene.ts +193 -0
  1030. package/src/games/flappy-bird/FlappyBird.tsx +73 -0
  1031. package/src/games/flappy-bird/FlappyBirdConstants.ts +95 -0
  1032. package/src/games/flappy-bird/FlappyBirdGame.ts +375 -0
  1033. package/src/games/flappy-bird/FlappyBirdScene.ts +630 -0
  1034. package/src/games/fruit-merger/FruitMerger.tsx +73 -0
  1035. package/src/games/fruit-merger/FruitMergerConstants.ts +102 -0
  1036. package/src/games/fruit-merger/FruitMergerGame.ts +285 -0
  1037. package/src/games/fruit-merger/FruitMergerRules.ts +286 -0
  1038. package/src/games/fruit-merger/FruitMergerScene.ts +498 -0
  1039. package/src/games/fruit-ninja/FruitNinja.tsx +129 -0
  1040. package/src/games/fruit-ninja/FruitNinjaConstants.ts +107 -0
  1041. package/src/games/fruit-ninja/FruitNinjaGame.ts +391 -0
  1042. package/src/games/fruit-ninja/FruitNinjaScene.ts +319 -0
  1043. package/src/games/fruit-ninja/FruitNinjaWorld.ts +17 -0
  1044. package/src/games/game-2048/Game2048.tsx +84 -0
  1045. package/src/games/game-2048/Game2048Constants.ts +68 -0
  1046. package/src/games/game-2048/Game2048Game.ts +181 -0
  1047. package/src/games/game-2048/Game2048Rules.ts +101 -0
  1048. package/src/games/game-2048/Game2048Scene.ts +206 -0
  1049. package/src/games/knife-hit/KnifeHit.tsx +78 -0
  1050. package/src/games/knife-hit/KnifeHitConstants.ts +89 -0
  1051. package/src/games/knife-hit/KnifeHitGame.ts +264 -0
  1052. package/src/games/knife-hit/KnifeHitScene.ts +360 -0
  1053. package/src/games/ludo-king/LudoKing.tsx +86 -0
  1054. package/src/games/ludo-king/LudoKingConstants.ts +212 -0
  1055. package/src/games/ludo-king/LudoKingGame.ts +326 -0
  1056. package/src/games/ludo-king/LudoKingRules.ts +143 -0
  1057. package/src/games/ludo-king/LudoKingScene.ts +397 -0
  1058. package/src/games/maze-runner/MazeRunner.tsx +88 -0
  1059. package/src/games/maze-runner/MazeRunnerConstants.ts +65 -0
  1060. package/src/games/maze-runner/MazeRunnerGame.ts +176 -0
  1061. package/src/games/maze-runner/MazeRunnerRules.ts +161 -0
  1062. package/src/games/maze-runner/MazeRunnerScene.ts +245 -0
  1063. package/src/games/memory-match/MemoryMatch.tsx +77 -0
  1064. package/src/games/memory-match/MemoryMatchConstants.ts +105 -0
  1065. package/src/games/memory-match/MemoryMatchGame.ts +222 -0
  1066. package/src/games/memory-match/MemoryMatchRules.ts +38 -0
  1067. package/src/games/memory-match/MemoryMatchScene.ts +268 -0
  1068. package/src/games/mine-sweeper/MineSweeper.tsx +77 -0
  1069. package/src/games/mine-sweeper/MineSweeperConstants.ts +94 -0
  1070. package/src/games/mine-sweeper/MineSweeperGame.ts +234 -0
  1071. package/src/games/mine-sweeper/MineSweeperRules.ts +67 -0
  1072. package/src/games/mine-sweeper/MineSweeperScene.ts +262 -0
  1073. package/src/games/mob-control/MobControl.tsx +73 -0
  1074. package/src/games/mob-control/MobControlConstants.ts +106 -0
  1075. package/src/games/mob-control/MobControlGame.ts +176 -0
  1076. package/src/games/mob-control/MobControlMeshes.ts +85 -0
  1077. package/src/games/mob-control/MobControlRenderer.ts +108 -0
  1078. package/src/games/mob-control/MobControlRules.ts +522 -0
  1079. package/src/games/mob-control/MobControlScene.ts +399 -0
  1080. package/src/games/number-search/NumberSearch.tsx +18 -0
  1081. package/src/games/number-search/NumberSearchNumbers.ts +623 -0
  1082. package/src/games/nuts-and-bolts/NutsAndBolts.tsx +85 -0
  1083. package/src/games/nuts-and-bolts/NutsAndBoltsConstants.ts +75 -0
  1084. package/src/games/nuts-and-bolts/NutsAndBoltsGame.ts +298 -0
  1085. package/src/games/nuts-and-bolts/NutsAndBoltsRules.ts +474 -0
  1086. package/src/games/nuts-and-bolts/NutsAndBoltsScene.ts +498 -0
  1087. package/src/games/pac-man/PacMan.tsx +86 -0
  1088. package/src/games/pac-man/PacManConstants.ts +169 -0
  1089. package/src/games/pac-man/PacManGame.ts +406 -0
  1090. package/src/games/pac-man/PacManRules.ts +255 -0
  1091. package/src/games/pac-man/PacManScene.ts +387 -0
  1092. package/src/games/paper-io/PaperIo.tsx +91 -0
  1093. package/src/games/paper-io/PaperIoConstants.ts +86 -0
  1094. package/src/games/paper-io/PaperIoGame.ts +193 -0
  1095. package/src/games/paper-io/PaperIoMeshes.ts +233 -0
  1096. package/src/games/paper-io/PaperIoRules.ts +315 -0
  1097. package/src/games/paper-io/PaperIoScene.ts +310 -0
  1098. package/src/games/penguin-run/PenguinMeshes.ts +269 -0
  1099. package/src/games/penguin-run/PenguinModel.ts +712 -0
  1100. package/src/games/penguin-run/PenguinRun.tsx +77 -0
  1101. package/src/games/penguin-run/PenguinRunConstants.ts +69 -0
  1102. package/src/games/penguin-run/PenguinRunGame.ts +406 -0
  1103. package/src/games/penguin-run/PenguinRunScene.ts +949 -0
  1104. package/src/games/perfect-circle/PerfectCircle.tsx +74 -0
  1105. package/src/games/perfect-circle/PerfectCircleConstants.ts +52 -0
  1106. package/src/games/perfect-circle/PerfectCircleGame.ts +153 -0
  1107. package/src/games/perfect-circle/PerfectCircleRules.ts +111 -0
  1108. package/src/games/perfect-circle/PerfectCircleScene.ts +176 -0
  1109. package/src/games/pipe-connect/PipeConnect.tsx +69 -0
  1110. package/src/games/pipe-connect/PipeConnectConstants.ts +101 -0
  1111. package/src/games/pipe-connect/PipeConnectGame.ts +179 -0
  1112. package/src/games/pipe-connect/PipeConnectRules.ts +326 -0
  1113. package/src/games/pipe-connect/PipeConnectScene.ts +271 -0
  1114. package/src/games/play-with-tua/PlayWithTua.tsx +123 -0
  1115. package/src/games/play-with-tua/PlayWithTuaConstants.ts +70 -0
  1116. package/src/games/play-with-tua/PlayWithTuaGame.ts +167 -0
  1117. package/src/games/play-with-tua/PlayWithTuaModel.ts +42 -0
  1118. package/src/games/play-with-tua/PlayWithTuaScene.ts +36 -0
  1119. package/src/games/popit-fidget/PopitFidget.tsx +72 -0
  1120. package/src/games/popit-fidget/PopitFidgetConstants.ts +71 -0
  1121. package/src/games/popit-fidget/PopitFidgetGame.ts +148 -0
  1122. package/src/games/popit-fidget/PopitFidgetScene.ts +242 -0
  1123. package/src/games/reversi/Reversi.tsx +94 -0
  1124. package/src/games/reversi/ReversiConstants.ts +67 -0
  1125. package/src/games/reversi/ReversiGame.ts +266 -0
  1126. package/src/games/reversi/ReversiRules.ts +176 -0
  1127. package/src/games/reversi/ReversiScene.ts +240 -0
  1128. package/src/games/search-grid/SearchGrid.tsx +92 -0
  1129. package/src/games/search-grid/SearchGridConstants.ts +178 -0
  1130. package/src/games/search-grid/SearchGridGame.ts +209 -0
  1131. package/src/games/search-grid/SearchGridScene.ts +301 -0
  1132. package/src/games/shared/BackdropCard.tsx +54 -0
  1133. package/src/games/shared/EngineBackdrop.ts +300 -0
  1134. package/src/games/shared/EngineBlasts.ts +136 -0
  1135. package/src/games/shared/EngineBlocks.ts +91 -0
  1136. package/src/games/shared/EngineControlText.ts +17 -0
  1137. package/src/games/shared/EngineDice.ts +250 -0
  1138. package/src/games/shared/EngineFootprint.ts +35 -0
  1139. package/src/games/shared/EngineFruits.ts +1435 -0
  1140. package/src/games/shared/EngineGameLoader.tsx +88 -0
  1141. package/src/games/shared/EngineGameScreen.tsx +325 -0
  1142. package/src/games/shared/EngineGameWidth.ts +3 -0
  1143. package/src/games/shared/EngineGameWidth.web.ts +3 -0
  1144. package/src/games/shared/EngineGlyphs.ts +178 -0
  1145. package/src/games/shared/EngineHud.ts +815 -0
  1146. package/src/games/shared/EngineLoading.ts +477 -0
  1147. package/src/games/shared/EngineMeadow.ts +725 -0
  1148. package/src/games/shared/EngineMeshCache.ts +15 -0
  1149. package/src/games/shared/EngineMeshes.ts +10 -0
  1150. package/src/games/shared/EngineRacingChase.ts +21 -0
  1151. package/src/games/shared/EngineRacingHandling.ts +48 -0
  1152. package/src/games/shared/EngineReadyContext.ts +4 -0
  1153. package/src/games/shared/EngineTilt.ts +44 -0
  1154. package/src/games/shared/EngineTouchSurface.tsx +103 -0
  1155. package/src/games/shared/EngineUtils.ts +52 -0
  1156. package/src/games/shared/GameActivity.ts +13 -0
  1157. package/src/games/shared/GameLoading.tsx +202 -0
  1158. package/src/games/shared/GameLoadingTransition.tsx +61 -0
  1159. package/src/games/shared/ProceduralCacheVersion.ts +2 -0
  1160. package/src/games/shared/useEngineGame.ts +240 -0
  1161. package/src/games/shared/useGameResource.ts +21 -0
  1162. package/src/games/shared/useLiveState.ts +58 -0
  1163. package/src/games/sliding-numbers/SlidingNumbers.tsx +71 -0
  1164. package/src/games/sliding-numbers/SlidingNumbersConstants.ts +65 -0
  1165. package/src/games/sliding-numbers/SlidingNumbersGame.ts +192 -0
  1166. package/src/games/sliding-numbers/SlidingNumbersRules.ts +79 -0
  1167. package/src/games/sliding-numbers/SlidingNumbersScene.ts +193 -0
  1168. package/src/games/snake-3d/Snake3D.tsx +76 -0
  1169. package/src/games/snake-3d/Snake3DConstants.ts +61 -0
  1170. package/src/games/snake-3d/Snake3DGame.ts +192 -0
  1171. package/src/games/snake-3d/Snake3DMotion.ts +22 -0
  1172. package/src/games/snake-3d/Snake3DRules.ts +116 -0
  1173. package/src/games/snake-3d/Snake3DScene.ts +322 -0
  1174. package/src/games/snakes-and-ladders/SnakesAndLadders.tsx +87 -0
  1175. package/src/games/snakes-and-ladders/SnakesAndLaddersConstants.ts +136 -0
  1176. package/src/games/snakes-and-ladders/SnakesAndLaddersGame.ts +310 -0
  1177. package/src/games/snakes-and-ladders/SnakesAndLaddersScene.ts +515 -0
  1178. package/src/games/space-fighter/SpaceFighter.tsx +74 -0
  1179. package/src/games/space-fighter/SpaceFighterConstants.ts +86 -0
  1180. package/src/games/space-fighter/SpaceFighterGame.ts +292 -0
  1181. package/src/games/space-fighter/SpaceFighterScene.ts +550 -0
  1182. package/src/games/spider-solitaire/SpiderSolitaire.tsx +80 -0
  1183. package/src/games/spider-solitaire/SpiderSolitaireConstants.ts +107 -0
  1184. package/src/games/spider-solitaire/SpiderSolitaireGame.ts +387 -0
  1185. package/src/games/spider-solitaire/SpiderSolitaireRules.ts +123 -0
  1186. package/src/games/spider-solitaire/SpiderSolitaireScene.ts +352 -0
  1187. package/src/games/stack-tower/StackTower.tsx +76 -0
  1188. package/src/games/stack-tower/StackTowerConstants.ts +74 -0
  1189. package/src/games/stack-tower/StackTowerGame.ts +236 -0
  1190. package/src/games/stack-tower/StackTowerScene.ts +186 -0
  1191. package/src/games/sudoku/Sudoku.tsx +73 -0
  1192. package/src/games/sudoku/SudokuConstants.ts +127 -0
  1193. package/src/games/sudoku/SudokuGame.ts +250 -0
  1194. package/src/games/sudoku/SudokuRules.ts +125 -0
  1195. package/src/games/sudoku/SudokuScene.ts +304 -0
  1196. package/src/games/tangram/Tangram.tsx +79 -0
  1197. package/src/games/tangram/TangramConstants.ts +64 -0
  1198. package/src/games/tangram/TangramGame.ts +356 -0
  1199. package/src/games/tangram/TangramRules.ts +409 -0
  1200. package/src/games/tangram/TangramScene.ts +203 -0
  1201. package/src/games/tank-1990/Tank1990.tsx +78 -0
  1202. package/src/games/tank-1990/Tank1990Constants.ts +81 -0
  1203. package/src/games/tank-1990/Tank1990Game.ts +331 -0
  1204. package/src/games/tank-1990/Tank1990Rules.ts +390 -0
  1205. package/src/games/tank-1990/Tank1990Scene.ts +434 -0
  1206. package/src/games/tic-tac-toe/TicTacToe.tsx +98 -0
  1207. package/src/games/tic-tac-toe/TicTacToeConstants.ts +69 -0
  1208. package/src/games/tic-tac-toe/TicTacToeGame.ts +200 -0
  1209. package/src/games/tic-tac-toe/TicTacToeRules.ts +103 -0
  1210. package/src/games/tic-tac-toe/TicTacToeScene.ts +245 -0
  1211. package/src/games/tile-home/TileHome.tsx +92 -0
  1212. package/src/games/tile-home/TileHomeConstants.ts +139 -0
  1213. package/src/games/tile-home/TileHomeGame.ts +435 -0
  1214. package/src/games/tile-home/TileHomeScene.ts +154 -0
  1215. package/src/games/treasure-hunt/TreasureHunt.tsx +206 -0
  1216. package/src/games/treasure-hunt/TreasureHuntConstants.ts +266 -0
  1217. package/src/games/treasure-hunt/TreasureHuntControls.ts +280 -0
  1218. package/src/games/treasure-hunt/TreasureHuntGame.ts +402 -0
  1219. package/src/games/treasure-hunt/TreasureHuntMeshes.ts +422 -0
  1220. package/src/games/treasure-hunt/TreasureHuntModel.ts +506 -0
  1221. package/src/games/treasure-hunt/TreasureHuntRules.ts +1210 -0
  1222. package/src/games/treasure-hunt/TreasureHuntScene.ts +586 -0
  1223. package/src/games/whack-a-mole/WhackAMole.tsx +79 -0
  1224. package/src/games/whack-a-mole/WhackAMoleConstants.ts +94 -0
  1225. package/src/games/whack-a-mole/WhackAMoleGame.ts +233 -0
  1226. package/src/games/whack-a-mole/WhackAMoleScene.ts +349 -0
  1227. package/src/games/word-search/WordSearch.tsx +18 -0
  1228. package/src/games/word-search/WordSearchWords.ts +1642 -0
  1229. package/src/helpers/GamePatternData.ts +120 -0
  1230. package/src/helpers/GameSettingsModal.tsx +384 -0
  1231. package/src/helpers/GameTheme.tsx +37 -0
  1232. package/src/helpers/IconPaths.ts +6 -0
  1233. package/src/helpers/index.ts +2 -0
  1234. package/src/index.tsx +60 -0
  1235. package/src/services/GameAssetLoader.ts +111 -0
  1236. package/src/services/GameAssets.ts +149 -0
  1237. package/src/services/GameLoaders.ts +93 -0
  1238. package/src/services/GamesConstants.ts +193 -0
  1239. package/src/services/GamesMetadata.ts +711 -0
  1240. package/src/services/GamesService.ts +116 -0
  1241. package/src/services/HapticsService.ts +48 -0
  1242. package/src/services/ScoringService.ts +19 -0
  1243. package/src/services/SfxSources.ts +81 -0
  1244. package/src/services/SoundsService.ts +582 -0
  1245. package/src/services/ThemeService.ts +281 -0
  1246. package/src/services/UtilsService.ts +134 -0
  1247. package/src/services/index.ts +6 -0
  1248. package/lib/module/games/arrows/ArrowsService.js +0 -1
  1249. package/lib/module/games/arrows/ArrowsStore.js +0 -1
  1250. package/lib/module/games/arrows/components/ArrowsGrid.js +0 -1
  1251. package/lib/module/games/arrows/components/ScoreBoard.js +0 -1
  1252. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +0 -1
  1253. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +0 -1
  1254. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +0 -1
  1255. package/lib/module/games/balloon-blaster/components/GameArea.js +0 -1
  1256. package/lib/module/games/balloon-blaster/components/GameBackground.js +0 -1
  1257. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +0 -1
  1258. package/lib/module/games/bike-racing/BikeRacingService.js +0 -1
  1259. package/lib/module/games/bike-racing/BikeRacingStore.js +0 -1
  1260. package/lib/module/games/bike-racing/components/BikeComponent.js +0 -1
  1261. package/lib/module/games/bike-racing/components/GameBackground.js +0 -1
  1262. package/lib/module/games/bike-racing/components/ScoreBoard.js +0 -1
  1263. package/lib/module/games/block-blast/BlockBlastService.js +0 -1
  1264. package/lib/module/games/block-blast/BlockBlastStore.js +0 -1
  1265. package/lib/module/games/block-blast/components/BlockPieceComponent.js +0 -1
  1266. package/lib/module/games/block-blast/components/GameArea.js +0 -1
  1267. package/lib/module/games/block-blast/components/GridComponent.js +0 -1
  1268. package/lib/module/games/block-blast/components/ScoreBoard.js +0 -1
  1269. package/lib/module/games/block-breaker/BlockBreakerService.js +0 -1
  1270. package/lib/module/games/block-breaker/BlockBreakerStore.js +0 -1
  1271. package/lib/module/games/block-breaker/components/BlastAnimation.js +0 -1
  1272. package/lib/module/games/block-breaker/components/GameArea.js +0 -1
  1273. package/lib/module/games/block-breaker/components/ScoreBoard.js +0 -1
  1274. package/lib/module/games/bluk/BlukService.js +0 -1
  1275. package/lib/module/games/bluk/BlukStore.js +0 -1
  1276. package/lib/module/games/bluk/components/GameArea.js +0 -1
  1277. package/lib/module/games/bluk/components/GameBackground.js +0 -1
  1278. package/lib/module/games/bluk/components/ScoreBoard.js +0 -1
  1279. package/lib/module/games/bubble-shooter/BubbleShooterService.js +0 -1
  1280. package/lib/module/games/bubble-shooter/BubbleShooterStore.js +0 -1
  1281. package/lib/module/games/bubble-shooter/components/GameArea.js +0 -1
  1282. package/lib/module/games/bubble-shooter/components/ScoreBoard.js +0 -1
  1283. package/lib/module/games/candy-crush/CandyCrushService.js +0 -1
  1284. package/lib/module/games/candy-crush/CandyCrushStore.js +0 -1
  1285. package/lib/module/games/candy-crush/components/CandyItem.js +0 -1
  1286. package/lib/module/games/candy-crush/components/GameGrid.js +0 -1
  1287. package/lib/module/games/candy-crush/components/ScoreBoard.js +0 -1
  1288. package/lib/module/games/car-racing/CarRacingService.js +0 -1
  1289. package/lib/module/games/car-racing/CarRacingStore.js +0 -1
  1290. package/lib/module/games/car-racing/components/CarComponent.js +0 -1
  1291. package/lib/module/games/car-racing/components/GameBackground.js +0 -1
  1292. package/lib/module/games/car-racing/components/ScoreBoard.js +0 -1
  1293. package/lib/module/games/chameleon-run/ChameleonRunService.js +0 -1
  1294. package/lib/module/games/chameleon-run/ChameleonRunStore.js +0 -1
  1295. package/lib/module/games/chameleon-run/components/GameArea.js +0 -1
  1296. package/lib/module/games/chameleon-run/components/GameBackground.js +0 -1
  1297. package/lib/module/games/chameleon-run/components/ScoreBoard.js +0 -1
  1298. package/lib/module/games/checkers/CheckersService.js +0 -1
  1299. package/lib/module/games/checkers/CheckersStore.js +0 -1
  1300. package/lib/module/games/checkers/components/GameBoard.js +0 -1
  1301. package/lib/module/games/checkers/components/ScoreBoard.js +0 -1
  1302. package/lib/module/games/color-switch/ColorSwitchService.js +0 -1
  1303. package/lib/module/games/color-switch/ColorSwitchStore.js +0 -1
  1304. package/lib/module/games/color-switch/components/GameArea.js +0 -1
  1305. package/lib/module/games/color-switch/components/ScoreBoard.js +0 -1
  1306. package/lib/module/games/colors-sort/ColorsSortService.js +0 -1
  1307. package/lib/module/games/colors-sort/ColorsSortStore.js +0 -1
  1308. package/lib/module/games/colors-sort/components/ColorContainer.js +0 -1
  1309. package/lib/module/games/colors-sort/components/ScoreBoard.js +0 -1
  1310. package/lib/module/games/connect-em-all/ConnectEmAllService.js +0 -1
  1311. package/lib/module/games/connect-em-all/ConnectEmAllStore.js +0 -1
  1312. package/lib/module/games/connect-em-all/components/GameBoard.js +0 -1
  1313. package/lib/module/games/connect-em-all/components/ScoreBoard.js +0 -1
  1314. package/lib/module/games/crossy-road/CrossyRoadService.js +0 -1
  1315. package/lib/module/games/crossy-road/CrossyRoadStore.js +0 -1
  1316. package/lib/module/games/crossy-road/components/GameArea.js +0 -1
  1317. package/lib/module/games/crossy-road/components/ScoreBoard.js +0 -1
  1318. package/lib/module/games/dino-jump/DinoJumpService.js +0 -1
  1319. package/lib/module/games/dino-jump/DinoJumpStore.js +0 -1
  1320. package/lib/module/games/dino-jump/components/DinoSprite.js +0 -1
  1321. package/lib/module/games/dino-jump/components/GameArea.js +0 -1
  1322. package/lib/module/games/dino-jump/components/GameBackground.js +0 -1
  1323. package/lib/module/games/dino-jump/components/ObstacleSprite.js +0 -1
  1324. package/lib/module/games/dino-jump/components/ScoreBoard.js +0 -1
  1325. package/lib/module/games/dino-jump/components/StarSprite.js +0 -1
  1326. package/lib/module/games/dots-and-boxes/DotsAndBoxesService.js +0 -1
  1327. package/lib/module/games/dots-and-boxes/DotsAndBoxesStore.js +0 -1
  1328. package/lib/module/games/dots-and-boxes/components/GameBoard.js +0 -1
  1329. package/lib/module/games/dots-and-boxes/components/ScoreBoard.js +0 -1
  1330. package/lib/module/games/falling-sticks/FallingSticksService.js +0 -1
  1331. package/lib/module/games/falling-sticks/FallingSticksStore.js +0 -1
  1332. package/lib/module/games/falling-sticks/components/GameArea.js +0 -1
  1333. package/lib/module/games/falling-sticks/components/GameBackground.js +0 -1
  1334. package/lib/module/games/falling-sticks/components/ScoreBoard.js +0 -1
  1335. package/lib/module/games/find-different-number/FindDifferentNumberService.js +0 -1
  1336. package/lib/module/games/find-different-number/FindDifferentNumberStore.js +0 -1
  1337. package/lib/module/games/find-different-number/components/GameGrid.js +0 -1
  1338. package/lib/module/games/find-different-number/components/ScoreBoard.js +0 -1
  1339. package/lib/module/games/flappy-bird/FlappyBirdStore.js +0 -1
  1340. package/lib/module/games/flappy-bird/components/Bird.js +0 -1
  1341. package/lib/module/games/flappy-bird/components/GameArea.js +0 -1
  1342. package/lib/module/games/flappy-bird/components/GameBackground.js +0 -1
  1343. package/lib/module/games/flappy-bird/components/Pipes.js +0 -1
  1344. package/lib/module/games/flappy-bird/components/ScoreBoard.js +0 -1
  1345. package/lib/module/games/fruit-merger/FruitMergerService.js +0 -1
  1346. package/lib/module/games/fruit-merger/FruitMergerStore.js +0 -1
  1347. package/lib/module/games/fruit-merger/components/FruitItem.js +0 -1
  1348. package/lib/module/games/fruit-merger/components/GameArea.js +0 -1
  1349. package/lib/module/games/fruit-merger/components/ScoreBoard.js +0 -1
  1350. package/lib/module/games/fruit-ninja/FruitNinjaService.js +0 -1
  1351. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +0 -1
  1352. package/lib/module/games/fruit-ninja/components/FruitComponent.js +0 -1
  1353. package/lib/module/games/fruit-ninja/components/GameArea.js +0 -1
  1354. package/lib/module/games/fruit-ninja/components/GameBackground.js +0 -1
  1355. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +0 -1
  1356. package/lib/module/games/game-2048/Game2048Service.js +0 -1
  1357. package/lib/module/games/game-2048/Game2048Store.js +0 -1
  1358. package/lib/module/games/game-2048/components/GameGrid.js +0 -1
  1359. package/lib/module/games/game-2048/components/ScoreBoard.js +0 -1
  1360. package/lib/module/games/knife-hit/KnifeHitService.js +0 -1
  1361. package/lib/module/games/knife-hit/KnifeHitStore.js +0 -1
  1362. package/lib/module/games/knife-hit/components/GameArea.js +0 -1
  1363. package/lib/module/games/knife-hit/components/ScoreBoard.js +0 -1
  1364. package/lib/module/games/ludo-king/LudoKingService.js +0 -1
  1365. package/lib/module/games/ludo-king/LudoKingStore.js +0 -1
  1366. package/lib/module/games/ludo-king/components/Dice.js +0 -1
  1367. package/lib/module/games/ludo-king/components/GameBoard.js +0 -1
  1368. package/lib/module/games/ludo-king/components/ScoreBoard.js +0 -1
  1369. package/lib/module/games/maze-runner/MazeRunnerStore.js +0 -1
  1370. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +0 -1
  1371. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +0 -1
  1372. package/lib/module/games/maze-runner/components/ScoreBoard.js +0 -1
  1373. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +0 -1
  1374. package/lib/module/games/maze-runner/components/WallComponent.js +0 -1
  1375. package/lib/module/games/memory-match/MemoryMatchService.js +0 -1
  1376. package/lib/module/games/memory-match/MemoryMatchStore.js +0 -1
  1377. package/lib/module/games/memory-match/components/Card.js +0 -1
  1378. package/lib/module/games/memory-match/components/GameBoard.js +0 -1
  1379. package/lib/module/games/memory-match/components/ScoreBoard.js +0 -1
  1380. package/lib/module/games/mine-sweeper/MineSweeperService.js +0 -1
  1381. package/lib/module/games/mine-sweeper/MineSweeperStore.js +0 -1
  1382. package/lib/module/games/mine-sweeper/components/GameArea.js +0 -1
  1383. package/lib/module/games/mine-sweeper/components/ScoreBoard.js +0 -1
  1384. package/lib/module/games/mob-control/MobControlService.js +0 -1
  1385. package/lib/module/games/mob-control/MobControlStore.js +0 -1
  1386. package/lib/module/games/mob-control/components/GameArea.js +0 -1
  1387. package/lib/module/games/mob-control/components/ScoreBoard.js +0 -1
  1388. package/lib/module/games/number-search/NumberSearchConstants.js +0 -1
  1389. package/lib/module/games/number-search/NumberSearchService.js +0 -1
  1390. package/lib/module/games/number-search/NumberSearchStore.js +0 -1
  1391. package/lib/module/games/number-search/components/GameBoard.js +0 -1
  1392. package/lib/module/games/number-search/components/NumberList.js +0 -1
  1393. package/lib/module/games/number-search/components/ScoreBoard.js +0 -1
  1394. package/lib/module/games/nuts-and-bolts/NutsAndBoltsService.js +0 -1
  1395. package/lib/module/games/nuts-and-bolts/NutsAndBoltsStore.js +0 -1
  1396. package/lib/module/games/nuts-and-bolts/components/GameBoard.js +0 -1
  1397. package/lib/module/games/nuts-and-bolts/components/ScoreBoard.js +0 -1
  1398. package/lib/module/games/pac-man/PacManService.js +0 -1
  1399. package/lib/module/games/pac-man/PacManStore.js +0 -1
  1400. package/lib/module/games/pac-man/components/GameCanvas.js +0 -1
  1401. package/lib/module/games/pac-man/components/ScoreBoard.js +0 -1
  1402. package/lib/module/games/paper-io/PaperIoService.js +0 -1
  1403. package/lib/module/games/paper-io/PaperIoStore.js +0 -1
  1404. package/lib/module/games/paper-io/components/GameArea.js +0 -1
  1405. package/lib/module/games/paper-io/components/ScoreBoard.js +0 -1
  1406. package/lib/module/games/perfect-circle/PerfectCircleService.js +0 -1
  1407. package/lib/module/games/perfect-circle/PerfectCircleStore.js +0 -1
  1408. package/lib/module/games/perfect-circle/components/DrawingCanvas.js +0 -1
  1409. package/lib/module/games/perfect-circle/components/ScoreBoard.js +0 -1
  1410. package/lib/module/games/pipe-connect/PipeConnectService.js +0 -1
  1411. package/lib/module/games/pipe-connect/PipeConnectStore.js +0 -1
  1412. package/lib/module/games/pipe-connect/components/GameArea.js +0 -1
  1413. package/lib/module/games/pipe-connect/components/ScoreBoard.js +0 -1
  1414. package/lib/module/games/popit-fidget/PopitFidgetService.js +0 -1
  1415. package/lib/module/games/popit-fidget/PopitFidgetStore.js +0 -1
  1416. package/lib/module/games/popit-fidget/components/BubbleComponent.js +0 -1
  1417. package/lib/module/games/popit-fidget/components/FidgetGrid.js +0 -1
  1418. package/lib/module/games/popit-fidget/components/ScoreBoard.js +0 -1
  1419. package/lib/module/games/reversi/ReversiStore.js +0 -1
  1420. package/lib/module/games/reversi/components/GameBoard.js +0 -1
  1421. package/lib/module/games/reversi/components/ScoreBoard.js +0 -1
  1422. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +0 -1
  1423. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +0 -1
  1424. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +0 -1
  1425. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +0 -1
  1426. package/lib/module/games/snake-3d/Snake3DService.js +0 -1
  1427. package/lib/module/games/snake-3d/Snake3DStore.js +0 -1
  1428. package/lib/module/games/snake-3d/components/GameGrid.js +0 -1
  1429. package/lib/module/games/snake-3d/components/ScoreBoard.js +0 -1
  1430. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersService.js +0 -1
  1431. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersStore.js +0 -1
  1432. package/lib/module/games/snakes-and-ladders/components/Dice.js +0 -1
  1433. package/lib/module/games/snakes-and-ladders/components/GameBoard.js +0 -1
  1434. package/lib/module/games/snakes-and-ladders/components/ScoreBoard.js +0 -1
  1435. package/lib/module/games/space-fighter/SpaceFighterService.js +0 -1
  1436. package/lib/module/games/space-fighter/SpaceFighterStore.js +0 -1
  1437. package/lib/module/games/space-fighter/components/AsteroidComponent.js +0 -1
  1438. package/lib/module/games/space-fighter/components/GameArea.js +0 -1
  1439. package/lib/module/games/space-fighter/components/GameBackground.js +0 -1
  1440. package/lib/module/games/space-fighter/components/ScoreBoard.js +0 -1
  1441. package/lib/module/games/space-fighter/components/Spacecraft3D.js +0 -1
  1442. package/lib/module/games/space-fighter/components/SpacecraftPath.js +0 -1
  1443. package/lib/module/games/spider-solitaire/SpiderSolitaireService.js +0 -1
  1444. package/lib/module/games/spider-solitaire/SpiderSolitaireStore.js +0 -1
  1445. package/lib/module/games/spider-solitaire/components/Card.js +0 -1
  1446. package/lib/module/games/spider-solitaire/components/CardPile.js +0 -1
  1447. package/lib/module/games/spider-solitaire/components/ScoreBoard.js +0 -1
  1448. package/lib/module/games/stack-tower/StackTowerService.js +0 -1
  1449. package/lib/module/games/stack-tower/StackTowerStore.js +0 -1
  1450. package/lib/module/games/stack-tower/components/GameArea.js +0 -1
  1451. package/lib/module/games/stack-tower/components/ScoreBoard.js +0 -1
  1452. package/lib/module/games/sudoku/SudokuService.js +0 -1
  1453. package/lib/module/games/sudoku/SudokuStore.js +0 -1
  1454. package/lib/module/games/sudoku/components/GameArea.js +0 -1
  1455. package/lib/module/games/sudoku/components/ScoreBoard.js +0 -1
  1456. package/lib/module/games/tangram/TangramService.js +0 -1
  1457. package/lib/module/games/tangram/TangramStore.js +0 -1
  1458. package/lib/module/games/tangram/components/GameBoard.js +0 -1
  1459. package/lib/module/games/tangram/components/ScoreBoard.js +0 -1
  1460. package/lib/module/games/tank-1990/Tank1990Service.js +0 -1
  1461. package/lib/module/games/tank-1990/Tank1990Store.js +0 -1
  1462. package/lib/module/games/tank-1990/components/Controls.js +0 -1
  1463. package/lib/module/games/tank-1990/components/GameBoard.js +0 -1
  1464. package/lib/module/games/tank-1990/components/ScoreBoard.js +0 -1
  1465. package/lib/module/games/tic-tac-toe/TicTacToeService.js +0 -1
  1466. package/lib/module/games/tic-tac-toe/TicTacToeStore.js +0 -1
  1467. package/lib/module/games/tic-tac-toe/components/GameBoard.js +0 -1
  1468. package/lib/module/games/tic-tac-toe/components/ScoreBoard.js +0 -1
  1469. package/lib/module/games/tile-home/TileHomeService.js +0 -1
  1470. package/lib/module/games/tile-home/TileHomeStore.js +0 -1
  1471. package/lib/module/games/tile-home/components/AnimatingTile.js +0 -1
  1472. package/lib/module/games/tile-home/components/FlyingTile.js +0 -1
  1473. package/lib/module/games/tile-home/components/GameBoard.js +0 -1
  1474. package/lib/module/games/tile-home/components/ScoreBoard.js +0 -1
  1475. package/lib/module/games/tile-home/components/TileItem.js +0 -1
  1476. package/lib/module/games/tile-home/components/TileSlot.js +0 -1
  1477. package/lib/module/games/whack-a-mole/WhackAMoleService.js +0 -1
  1478. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +0 -1
  1479. package/lib/module/games/whack-a-mole/components/GameBackground.js +0 -1
  1480. package/lib/module/games/whack-a-mole/components/GameGrid.js +0 -1
  1481. package/lib/module/games/whack-a-mole/components/GameHole.js +0 -1
  1482. package/lib/module/games/whack-a-mole/components/MoleCharacter.js +0 -1
  1483. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +0 -1
  1484. package/lib/module/games/word-search/WordSearchConstants.js +0 -1
  1485. package/lib/module/games/word-search/WordSearchService.js +0 -1
  1486. package/lib/module/games/word-search/WordSearchStore.js +0 -1
  1487. package/lib/module/games/word-search/components/GameBoard.js +0 -1
  1488. package/lib/module/games/word-search/components/ScoreBoard.js +0 -1
  1489. package/lib/module/games/word-search/components/WordList.js +0 -1
  1490. package/lib/module/helpers/AnimatedScore.js +0 -1
  1491. package/lib/module/helpers/AnimationFrame.js +0 -1
  1492. package/lib/module/helpers/AnimationTracker.js +0 -1
  1493. package/lib/module/helpers/BlastAnimation.js +0 -1
  1494. package/lib/module/helpers/ErrorHandler.js +0 -1
  1495. package/lib/module/helpers/GameBackgroundPattern.js +0 -1
  1496. package/lib/module/helpers/GameControlButton.js +0 -1
  1497. package/lib/module/helpers/GameOverModal.js +0 -1
  1498. package/lib/module/helpers/GameTimer.js +0 -1
  1499. package/lib/module/helpers/Icons.js +0 -1
  1500. package/lib/module/helpers/ParticleBlast.js +0 -1
  1501. package/lib/module/helpers/ScoreBoardContainer.js +0 -1
  1502. package/lib/module/helpers/assets/apple-fruit.js +0 -1
  1503. package/lib/module/helpers/assets/avocado-item.js +0 -1
  1504. package/lib/module/helpers/assets/banana-fruit.js +0 -1
  1505. package/lib/module/helpers/assets/bomb-item.js +0 -1
  1506. package/lib/module/helpers/assets/broccoli-item.js +0 -1
  1507. package/lib/module/helpers/assets/cherries-fruit.js +0 -1
  1508. package/lib/module/helpers/assets/donut-item.js +0 -1
  1509. package/lib/module/helpers/assets/dragonfruit-item.js +0 -1
  1510. package/lib/module/helpers/assets/fries-item.js +0 -1
  1511. package/lib/module/helpers/assets/fruit-helpers.js +0 -1
  1512. package/lib/module/helpers/assets/grapes-fruit.js +0 -1
  1513. package/lib/module/helpers/assets/icecream-item.js +0 -1
  1514. package/lib/module/helpers/assets/index.js +0 -1
  1515. package/lib/module/helpers/assets/kiwi-fruit.js +0 -1
  1516. package/lib/module/helpers/assets/mango-fruit.js +0 -1
  1517. package/lib/module/helpers/assets/orange-fruit.js +0 -1
  1518. package/lib/module/helpers/assets/papaya-fruit.js +0 -1
  1519. package/lib/module/helpers/assets/papaya-full-fruit.js +0 -1
  1520. package/lib/module/helpers/assets/peach-fruit.js +0 -1
  1521. package/lib/module/helpers/assets/pineapple-fruit.js +0 -1
  1522. package/lib/module/helpers/assets/pomegranate-fruit.js +0 -1
  1523. package/lib/module/helpers/assets/pumpkin-fruit.js +0 -1
  1524. package/lib/module/helpers/assets/raspberry-item.js +0 -1
  1525. package/lib/module/helpers/assets/star-item.js +0 -1
  1526. package/lib/module/helpers/assets/strawberry-fruit.js +0 -1
  1527. package/lib/module/helpers/assets/watermelon-fruit.js +0 -1
  1528. package/lib/module/types.d.js +0 -1
  1529. package/lib/typescript/src/games/arrows/ArrowsService.d.ts +0 -6
  1530. package/lib/typescript/src/games/arrows/ArrowsStore.d.ts +0 -51
  1531. package/lib/typescript/src/games/arrows/components/ArrowsGrid.d.ts +0 -13
  1532. package/lib/typescript/src/games/arrows/components/ScoreBoard.d.ts +0 -6
  1533. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +0 -80
  1534. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +0 -30
  1535. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts +0 -9
  1536. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +0 -9
  1537. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +0 -7
  1538. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +0 -6
  1539. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts +0 -44
  1540. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts +0 -68
  1541. package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts +0 -12
  1542. package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts +0 -7
  1543. package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts +0 -6
  1544. package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts +0 -16
  1545. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts +0 -70
  1546. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts +0 -11
  1547. package/lib/typescript/src/games/block-blast/components/GameArea.d.ts +0 -11
  1548. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts +0 -8
  1549. package/lib/typescript/src/games/block-blast/components/ScoreBoard.d.ts +0 -6
  1550. package/lib/typescript/src/games/block-breaker/BlockBreakerService.d.ts +0 -88
  1551. package/lib/typescript/src/games/block-breaker/BlockBreakerStore.d.ts +0 -47
  1552. package/lib/typescript/src/games/block-breaker/components/BlastAnimation.d.ts +0 -15
  1553. package/lib/typescript/src/games/block-breaker/components/GameArea.d.ts +0 -8
  1554. package/lib/typescript/src/games/block-breaker/components/ScoreBoard.d.ts +0 -6
  1555. package/lib/typescript/src/games/bluk/BlukService.d.ts +0 -71
  1556. package/lib/typescript/src/games/bluk/BlukStore.d.ts +0 -52
  1557. package/lib/typescript/src/games/bluk/components/GameArea.d.ts +0 -17
  1558. package/lib/typescript/src/games/bluk/components/GameBackground.d.ts +0 -9
  1559. package/lib/typescript/src/games/bluk/components/ScoreBoard.d.ts +0 -6
  1560. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts +0 -35
  1561. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts +0 -63
  1562. package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts +0 -8
  1563. package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts +0 -6
  1564. package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts +0 -37
  1565. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts +0 -53
  1566. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts +0 -11
  1567. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts +0 -2
  1568. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts +0 -5
  1569. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts +0 -44
  1570. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts +0 -68
  1571. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts +0 -12
  1572. package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts +0 -7
  1573. package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts +0 -6
  1574. package/lib/typescript/src/games/chameleon-run/ChameleonRunService.d.ts +0 -76
  1575. package/lib/typescript/src/games/chameleon-run/ChameleonRunStore.d.ts +0 -48
  1576. package/lib/typescript/src/games/chameleon-run/components/GameArea.d.ts +0 -8
  1577. package/lib/typescript/src/games/chameleon-run/components/GameBackground.d.ts +0 -7
  1578. package/lib/typescript/src/games/chameleon-run/components/ScoreBoard.d.ts +0 -6
  1579. package/lib/typescript/src/games/checkers/CheckersService.d.ts +0 -6
  1580. package/lib/typescript/src/games/checkers/CheckersStore.d.ts +0 -48
  1581. package/lib/typescript/src/games/checkers/components/GameBoard.d.ts +0 -6
  1582. package/lib/typescript/src/games/checkers/components/ScoreBoard.d.ts +0 -6
  1583. package/lib/typescript/src/games/color-switch/ColorSwitchService.d.ts +0 -63
  1584. package/lib/typescript/src/games/color-switch/ColorSwitchStore.d.ts +0 -43
  1585. package/lib/typescript/src/games/color-switch/components/GameArea.d.ts +0 -8
  1586. package/lib/typescript/src/games/color-switch/components/ScoreBoard.d.ts +0 -6
  1587. package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts +0 -61
  1588. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts +0 -56
  1589. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts +0 -7
  1590. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts +0 -6
  1591. package/lib/typescript/src/games/connect-em-all/ConnectEmAllService.d.ts +0 -20
  1592. package/lib/typescript/src/games/connect-em-all/ConnectEmAllStore.d.ts +0 -48
  1593. package/lib/typescript/src/games/connect-em-all/components/GameBoard.d.ts +0 -7
  1594. package/lib/typescript/src/games/connect-em-all/components/ScoreBoard.d.ts +0 -6
  1595. package/lib/typescript/src/games/crossy-road/CrossyRoadService.d.ts +0 -89
  1596. package/lib/typescript/src/games/crossy-road/CrossyRoadStore.d.ts +0 -39
  1597. package/lib/typescript/src/games/crossy-road/components/GameArea.d.ts +0 -8
  1598. package/lib/typescript/src/games/crossy-road/components/ScoreBoard.d.ts +0 -6
  1599. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +0 -39
  1600. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +0 -97
  1601. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts +0 -2
  1602. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts +0 -7
  1603. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts +0 -7
  1604. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts +0 -8
  1605. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts +0 -6
  1606. package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts +0 -2
  1607. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesService.d.ts +0 -45
  1608. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesStore.d.ts +0 -37
  1609. package/lib/typescript/src/games/dots-and-boxes/components/GameBoard.d.ts +0 -7
  1610. package/lib/typescript/src/games/dots-and-boxes/components/ScoreBoard.d.ts +0 -6
  1611. package/lib/typescript/src/games/falling-sticks/FallingSticksService.d.ts +0 -38
  1612. package/lib/typescript/src/games/falling-sticks/FallingSticksStore.d.ts +0 -31
  1613. package/lib/typescript/src/games/falling-sticks/components/GameArea.d.ts +0 -7
  1614. package/lib/typescript/src/games/falling-sticks/components/GameBackground.d.ts +0 -6
  1615. package/lib/typescript/src/games/falling-sticks/components/ScoreBoard.d.ts +0 -6
  1616. package/lib/typescript/src/games/find-different-number/FindDifferentNumberService.d.ts +0 -6
  1617. package/lib/typescript/src/games/find-different-number/FindDifferentNumberStore.d.ts +0 -36
  1618. package/lib/typescript/src/games/find-different-number/components/GameGrid.d.ts +0 -7
  1619. package/lib/typescript/src/games/find-different-number/components/ScoreBoard.d.ts +0 -6
  1620. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +0 -68
  1621. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts +0 -2
  1622. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts +0 -7
  1623. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts +0 -7
  1624. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts +0 -8
  1625. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts +0 -6
  1626. package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts +0 -3
  1627. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts +0 -66
  1628. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts +0 -8
  1629. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts +0 -8
  1630. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts +0 -6
  1631. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts +0 -73
  1632. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts +0 -38
  1633. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts +0 -8
  1634. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +0 -7
  1635. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts +0 -7
  1636. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +0 -6
  1637. package/lib/typescript/src/games/game-2048/Game2048Service.d.ts +0 -102
  1638. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +0 -44
  1639. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts +0 -2
  1640. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts +0 -6
  1641. package/lib/typescript/src/games/knife-hit/KnifeHitService.d.ts +0 -48
  1642. package/lib/typescript/src/games/knife-hit/KnifeHitStore.d.ts +0 -41
  1643. package/lib/typescript/src/games/knife-hit/components/GameArea.d.ts +0 -8
  1644. package/lib/typescript/src/games/knife-hit/components/ScoreBoard.d.ts +0 -6
  1645. package/lib/typescript/src/games/ludo-king/LudoKingService.d.ts +0 -33
  1646. package/lib/typescript/src/games/ludo-king/LudoKingStore.d.ts +0 -34
  1647. package/lib/typescript/src/games/ludo-king/components/Dice.d.ts +0 -7
  1648. package/lib/typescript/src/games/ludo-king/components/GameBoard.d.ts +0 -7
  1649. package/lib/typescript/src/games/ludo-king/components/ScoreBoard.d.ts +0 -6
  1650. package/lib/typescript/src/games/maze-runner/MazeRunnerStore.d.ts +0 -62
  1651. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts +0 -10
  1652. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts +0 -33
  1653. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +0 -24
  1654. package/lib/typescript/src/games/maze-runner/components/SkiaPipeComponent.d.ts +0 -24
  1655. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts +0 -9
  1656. package/lib/typescript/src/games/memory-match/MemoryMatchService.d.ts +0 -6
  1657. package/lib/typescript/src/games/memory-match/MemoryMatchStore.d.ts +0 -42
  1658. package/lib/typescript/src/games/memory-match/components/Card.d.ts +0 -6
  1659. package/lib/typescript/src/games/memory-match/components/GameBoard.d.ts +0 -6
  1660. package/lib/typescript/src/games/memory-match/components/ScoreBoard.d.ts +0 -6
  1661. package/lib/typescript/src/games/mine-sweeper/MineSweeperService.d.ts +0 -22
  1662. package/lib/typescript/src/games/mine-sweeper/MineSweeperStore.d.ts +0 -73
  1663. package/lib/typescript/src/games/mine-sweeper/components/GameArea.d.ts +0 -8
  1664. package/lib/typescript/src/games/mine-sweeper/components/ScoreBoard.d.ts +0 -6
  1665. package/lib/typescript/src/games/mob-control/MobControlService.d.ts +0 -74
  1666. package/lib/typescript/src/games/mob-control/MobControlStore.d.ts +0 -66
  1667. package/lib/typescript/src/games/mob-control/components/GameArea.d.ts +0 -11
  1668. package/lib/typescript/src/games/mob-control/components/ScoreBoard.d.ts +0 -6
  1669. package/lib/typescript/src/games/number-search/NumberSearchConstants.d.ts +0 -63
  1670. package/lib/typescript/src/games/number-search/NumberSearchService.d.ts +0 -34
  1671. package/lib/typescript/src/games/number-search/NumberSearchStore.d.ts +0 -70
  1672. package/lib/typescript/src/games/number-search/components/GameBoard.d.ts +0 -7
  1673. package/lib/typescript/src/games/number-search/components/NumberList.d.ts +0 -2
  1674. package/lib/typescript/src/games/number-search/components/ScoreBoard.d.ts +0 -6
  1675. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsService.d.ts +0 -67
  1676. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsStore.d.ts +0 -45
  1677. package/lib/typescript/src/games/nuts-and-bolts/components/GameBoard.d.ts +0 -7
  1678. package/lib/typescript/src/games/nuts-and-bolts/components/ScoreBoard.d.ts +0 -6
  1679. package/lib/typescript/src/games/pac-man/PacManService.d.ts +0 -73
  1680. package/lib/typescript/src/games/pac-man/PacManStore.d.ts +0 -89
  1681. package/lib/typescript/src/games/pac-man/components/GameCanvas.d.ts +0 -2
  1682. package/lib/typescript/src/games/pac-man/components/ScoreBoard.d.ts +0 -6
  1683. package/lib/typescript/src/games/paper-io/PaperIoService.d.ts +0 -70
  1684. package/lib/typescript/src/games/paper-io/PaperIoStore.d.ts +0 -51
  1685. package/lib/typescript/src/games/paper-io/components/GameArea.d.ts +0 -8
  1686. package/lib/typescript/src/games/paper-io/components/ScoreBoard.d.ts +0 -6
  1687. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts +0 -15
  1688. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts +0 -55
  1689. package/lib/typescript/src/games/perfect-circle/components/DrawingCanvas.d.ts +0 -8
  1690. package/lib/typescript/src/games/perfect-circle/components/ScoreBoard.d.ts +0 -6
  1691. package/lib/typescript/src/games/pipe-connect/PipeConnectService.d.ts +0 -17
  1692. package/lib/typescript/src/games/pipe-connect/PipeConnectStore.d.ts +0 -31
  1693. package/lib/typescript/src/games/pipe-connect/components/GameArea.d.ts +0 -7
  1694. package/lib/typescript/src/games/pipe-connect/components/ScoreBoard.d.ts +0 -6
  1695. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +0 -30
  1696. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +0 -33
  1697. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts +0 -10
  1698. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts +0 -10
  1699. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +0 -6
  1700. package/lib/typescript/src/games/reversi/ReversiStore.d.ts +0 -46
  1701. package/lib/typescript/src/games/reversi/components/GameBoard.d.ts +0 -6
  1702. package/lib/typescript/src/games/reversi/components/ScoreBoard.d.ts +0 -6
  1703. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts +0 -6
  1704. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts +0 -38
  1705. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts +0 -7
  1706. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts +0 -6
  1707. package/lib/typescript/src/games/snake-3d/Snake3DService.d.ts +0 -29
  1708. package/lib/typescript/src/games/snake-3d/Snake3DStore.d.ts +0 -49
  1709. package/lib/typescript/src/games/snake-3d/components/GameGrid.d.ts +0 -2
  1710. package/lib/typescript/src/games/snake-3d/components/ScoreBoard.d.ts +0 -6
  1711. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersService.d.ts +0 -22
  1712. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersStore.d.ts +0 -40
  1713. package/lib/typescript/src/games/snakes-and-ladders/components/Dice.d.ts +0 -7
  1714. package/lib/typescript/src/games/snakes-and-ladders/components/GameBoard.d.ts +0 -2
  1715. package/lib/typescript/src/games/snakes-and-ladders/components/ScoreBoard.d.ts +0 -6
  1716. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts +0 -117
  1717. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts +0 -54
  1718. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +0 -9
  1719. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +0 -9
  1720. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts +0 -6
  1721. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +0 -6
  1722. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts +0 -11
  1723. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts +0 -9
  1724. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireService.d.ts +0 -23
  1725. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireStore.d.ts +0 -71
  1726. package/lib/typescript/src/games/spider-solitaire/components/Card.d.ts +0 -10
  1727. package/lib/typescript/src/games/spider-solitaire/components/CardPile.d.ts +0 -12
  1728. package/lib/typescript/src/games/spider-solitaire/components/ScoreBoard.d.ts +0 -6
  1729. package/lib/typescript/src/games/stack-tower/StackTowerService.d.ts +0 -51
  1730. package/lib/typescript/src/games/stack-tower/StackTowerStore.d.ts +0 -52
  1731. package/lib/typescript/src/games/stack-tower/components/GameArea.d.ts +0 -8
  1732. package/lib/typescript/src/games/stack-tower/components/ScoreBoard.d.ts +0 -6
  1733. package/lib/typescript/src/games/sudoku/SudokuService.d.ts +0 -24
  1734. package/lib/typescript/src/games/sudoku/SudokuStore.d.ts +0 -65
  1735. package/lib/typescript/src/games/sudoku/components/GameArea.d.ts +0 -8
  1736. package/lib/typescript/src/games/sudoku/components/ScoreBoard.d.ts +0 -6
  1737. package/lib/typescript/src/games/tangram/TangramService.d.ts +0 -6
  1738. package/lib/typescript/src/games/tangram/TangramStore.d.ts +0 -34
  1739. package/lib/typescript/src/games/tangram/components/GameBoard.d.ts +0 -7
  1740. package/lib/typescript/src/games/tangram/components/ScoreBoard.d.ts +0 -6
  1741. package/lib/typescript/src/games/tank-1990/Tank1990Service.d.ts +0 -80
  1742. package/lib/typescript/src/games/tank-1990/Tank1990Store.d.ts +0 -48
  1743. package/lib/typescript/src/games/tank-1990/components/Controls.d.ts +0 -2
  1744. package/lib/typescript/src/games/tank-1990/components/GameBoard.d.ts +0 -2
  1745. package/lib/typescript/src/games/tank-1990/components/ScoreBoard.d.ts +0 -6
  1746. package/lib/typescript/src/games/tic-tac-toe/TicTacToeService.d.ts +0 -0
  1747. package/lib/typescript/src/games/tic-tac-toe/TicTacToeStore.d.ts +0 -51
  1748. package/lib/typescript/src/games/tic-tac-toe/components/GameBoard.d.ts +0 -6
  1749. package/lib/typescript/src/games/tic-tac-toe/components/ScoreBoard.d.ts +0 -6
  1750. package/lib/typescript/src/games/tile-home/TileHomeService.d.ts +0 -1
  1751. package/lib/typescript/src/games/tile-home/TileHomeStore.d.ts +0 -57
  1752. package/lib/typescript/src/games/tile-home/components/AnimatingTile.d.ts +0 -9
  1753. package/lib/typescript/src/games/tile-home/components/FlyingTile.d.ts +0 -16
  1754. package/lib/typescript/src/games/tile-home/components/GameBoard.d.ts +0 -7
  1755. package/lib/typescript/src/games/tile-home/components/ScoreBoard.d.ts +0 -6
  1756. package/lib/typescript/src/games/tile-home/components/TileItem.d.ts +0 -11
  1757. package/lib/typescript/src/games/tile-home/components/TileSlot.d.ts +0 -7
  1758. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts +0 -32
  1759. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts +0 -39
  1760. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts +0 -7
  1761. package/lib/typescript/src/games/whack-a-mole/components/GameGrid.d.ts +0 -10
  1762. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts +0 -11
  1763. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts +0 -6
  1764. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts +0 -6
  1765. package/lib/typescript/src/games/word-search/WordSearchConstants.d.ts +0 -63
  1766. package/lib/typescript/src/games/word-search/WordSearchService.d.ts +0 -34
  1767. package/lib/typescript/src/games/word-search/WordSearchStore.d.ts +0 -70
  1768. package/lib/typescript/src/games/word-search/components/GameBoard.d.ts +0 -7
  1769. package/lib/typescript/src/games/word-search/components/ScoreBoard.d.ts +0 -6
  1770. package/lib/typescript/src/games/word-search/components/WordList.d.ts +0 -2
  1771. package/lib/typescript/src/helpers/AnimatedScore.d.ts +0 -36
  1772. package/lib/typescript/src/helpers/AnimationFrame.d.ts +0 -40
  1773. package/lib/typescript/src/helpers/AnimationTracker.d.ts +0 -44
  1774. package/lib/typescript/src/helpers/BlastAnimation.d.ts +0 -16
  1775. package/lib/typescript/src/helpers/ErrorHandler.d.ts +0 -123
  1776. package/lib/typescript/src/helpers/GameBackgroundPattern.d.ts +0 -7
  1777. package/lib/typescript/src/helpers/GameControlButton.d.ts +0 -11
  1778. package/lib/typescript/src/helpers/GameOverModal.d.ts +0 -15
  1779. package/lib/typescript/src/helpers/GameTimer.d.ts +0 -26
  1780. package/lib/typescript/src/helpers/Icons.d.ts +0 -12
  1781. package/lib/typescript/src/helpers/ParticleBlast.d.ts +0 -11
  1782. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts +0 -85
  1783. package/lib/typescript/src/helpers/assets/apple-fruit.d.ts +0 -4
  1784. package/lib/typescript/src/helpers/assets/avocado-item.d.ts +0 -4
  1785. package/lib/typescript/src/helpers/assets/banana-fruit.d.ts +0 -4
  1786. package/lib/typescript/src/helpers/assets/bomb-item.d.ts +0 -4
  1787. package/lib/typescript/src/helpers/assets/broccoli-item.d.ts +0 -4
  1788. package/lib/typescript/src/helpers/assets/cherries-fruit.d.ts +0 -4
  1789. package/lib/typescript/src/helpers/assets/donut-item.d.ts +0 -4
  1790. package/lib/typescript/src/helpers/assets/dragonfruit-item.d.ts +0 -4
  1791. package/lib/typescript/src/helpers/assets/fries-item.d.ts +0 -4
  1792. package/lib/typescript/src/helpers/assets/fruit-helpers.d.ts +0 -154
  1793. package/lib/typescript/src/helpers/assets/grapes-fruit.d.ts +0 -4
  1794. package/lib/typescript/src/helpers/assets/icecream-item.d.ts +0 -4
  1795. package/lib/typescript/src/helpers/assets/index.d.ts +0 -31
  1796. package/lib/typescript/src/helpers/assets/kiwi-fruit.d.ts +0 -4
  1797. package/lib/typescript/src/helpers/assets/mango-fruit.d.ts +0 -4
  1798. package/lib/typescript/src/helpers/assets/orange-fruit.d.ts +0 -4
  1799. package/lib/typescript/src/helpers/assets/papaya-fruit.d.ts +0 -4
  1800. package/lib/typescript/src/helpers/assets/papaya-full-fruit.d.ts +0 -4
  1801. package/lib/typescript/src/helpers/assets/peach-fruit.d.ts +0 -4
  1802. package/lib/typescript/src/helpers/assets/pineapple-fruit.d.ts +0 -4
  1803. package/lib/typescript/src/helpers/assets/pomegranate-fruit.d.ts +0 -4
  1804. package/lib/typescript/src/helpers/assets/pumpkin-fruit.d.ts +0 -4
  1805. package/lib/typescript/src/helpers/assets/raspberry-item.d.ts +0 -4
  1806. package/lib/typescript/src/helpers/assets/star-item.d.ts +0 -4
  1807. package/lib/typescript/src/helpers/assets/strawberry-fruit.d.ts +0 -4
  1808. package/lib/typescript/src/helpers/assets/watermelon-fruit.d.ts +0 -4
@@ -0,0 +1,281 @@
1
+ import { BACKGROUND_COLOR, COLORS, HUD } from './GamesConstants';
2
+ import { GAME_IDS, type GameThemeMode } from './UtilsService';
3
+
4
+ /**
5
+ * Colour tokens shared by a game's chrome (background, scoreboard, controls, modals) and its board.
6
+ *
7
+ * `light` and `dark` mirror the host app's design tokens (Playtura `src/global.css`), so a themed
8
+ * game sits on the same background, surfaces, borders, text and accent as the screens around it.
9
+ * `classic` is the original look (white frosted panels on the indigo pattern) and is what every
10
+ * game gets until it opts into theming via `GameThemeProvider`.
11
+ */
12
+ export interface GameTheme {
13
+ mode: 'classic' | GameThemeMode;
14
+ isDark: boolean;
15
+ // Screen
16
+ BACKGROUND: string;
17
+ PATTERN_OPACITY: number;
18
+ // Panels (scoreboard, icon buttons, modal cards)
19
+ SURFACE: string;
20
+ BORDER: string;
21
+ BORDER_WIDTH: number;
22
+ DIVIDER: string;
23
+ // Text
24
+ TEXT: string;
25
+ TEXT_MUTED: string;
26
+ LABEL: string; // scoreboard labels + control button subtitles (solid, same as TEXT today)
27
+ TEXT_SUBTLE: string;
28
+ TEXT_SHADOW: string;
29
+ // Solid button on modal cards (Play Again)
30
+ SOLID: string;
31
+ ON_SOLID: string;
32
+ // Accents
33
+ SCORE_HIGHLIGHT: string;
34
+ DANGER: string;
35
+ CHIP: string;
36
+ // Modals
37
+ OVERLAY: string;
38
+ // Switch
39
+ SWITCH_TRACK_OFF: string;
40
+ SWITCH_TRACK_ON: string;
41
+ SWITCH_THUMB: string;
42
+ // Host app header over the game (title, back / settings icons use TINT)
43
+ HEADER: {
44
+ BACKGROUND: string;
45
+ BORDER: string;
46
+ TINT: string;
47
+ };
48
+ // Game boards / grids
49
+ BOARD: {
50
+ SURFACE: string;
51
+ BORDER: string;
52
+ CELL_EMPTY: string;
53
+ GRID_LINE: string; // separators between cells — visible on CELL_EMPTY
54
+ CELL_HIGHLIGHT: string;
55
+ CELL_INVALID: string; // 6-digit hex: games append an alpha byte
56
+ FLASH: string;
57
+ };
58
+ }
59
+
60
+ const CLASSIC_THEME: GameTheme = {
61
+ mode: 'classic',
62
+ isDark: true,
63
+ BACKGROUND: BACKGROUND_COLOR,
64
+ PATTERN_OPACITY: 1,
65
+ SURFACE: HUD.SURFACE,
66
+ BORDER: HUD.BORDER,
67
+ BORDER_WIDTH: HUD.BORDER_WIDTH,
68
+ DIVIDER: HUD.DIVIDER,
69
+ TEXT: HUD.TEXT,
70
+ TEXT_MUTED: HUD.TEXT_MUTED,
71
+ LABEL: HUD.TEXT,
72
+ TEXT_SUBTLE: COLORS.TEXT_MUTED,
73
+ TEXT_SHADOW: HUD.TEXT_SHADOW,
74
+ SOLID: HUD.SOLID,
75
+ ON_SOLID: HUD.ON_SOLID,
76
+ SCORE_HIGHLIGHT: COLORS.SCORE_GOLD,
77
+ DANGER: '#FF5252',
78
+ CHIP: 'rgba(255, 255, 255, 0.2)',
79
+ OVERLAY: COLORS.OVERLAY,
80
+ SWITCH_TRACK_OFF: COLORS.SWITCH_TRACK_OFF,
81
+ SWITCH_TRACK_ON: COLORS.SWITCH_TRACK_ON,
82
+ SWITCH_THUMB: COLORS.SWITCH_THUMB,
83
+ HEADER: {
84
+ BACKGROUND: 'rgba(255, 255, 255, 0.2)',
85
+ BORDER: 'rgba(255, 255, 255, 0.3)',
86
+ TINT: '#FFFFFF'
87
+ },
88
+ BOARD: {
89
+ SURFACE: 'rgba(255, 255, 255, 0.15)',
90
+ BORDER: 'transparent',
91
+ CELL_EMPTY: 'rgba(255, 255, 255, 0.25)',
92
+ GRID_LINE: 'rgba(255, 255, 255, 0.35)',
93
+ CELL_HIGHLIGHT: 'rgba(255, 255, 255, 0.32)',
94
+ CELL_INVALID: '#ff4444',
95
+ FLASH: '#ffffff'
96
+ }
97
+ };
98
+
99
+ // Light — translucent white panels and board over the app's light background; colours from Playtura's light tokens: background hsl(252 35% 93%), surface white,
100
+ // foreground hsl(222 47% 11%), muted hsl(215 16% 47%), accent hsl(256 89% 60%), border hsl(252 25% 86%)
101
+ const LIGHT_THEME: GameTheme = {
102
+ mode: 'light',
103
+ isDark: false,
104
+ BACKGROUND: '#C8C2E0', // app background hue (252°), a few steps darker so the translucent white panels read clearly
105
+ PATTERN_OPACITY: 0.55,
106
+ SURFACE: 'rgba(255, 255, 255, 0.35)',
107
+ BORDER: 'rgba(255, 255, 255, 0.9)',
108
+ BORDER_WIDTH: 1.5,
109
+ DIVIDER: 'rgba(15, 23, 41, 0.08)',
110
+ TEXT: '#0F1729',
111
+ TEXT_MUTED: '#65758B',
112
+ LABEL: '#0F1729',
113
+ TEXT_SUBTLE: '#0F1729', // Game Over message, score label and share prompt — solid, like TEXT
114
+ TEXT_SHADOW: 'transparent',
115
+ SOLID: '#6F3EF4',
116
+ ON_SOLID: '#FFFFFF',
117
+ SCORE_HIGHLIGHT: '#6F3EF4',
118
+ DANGER: '#EF4343',
119
+ CHIP: 'rgba(255, 255, 255, 0.75)',
120
+ OVERLAY: 'rgba(15, 23, 41, 0.8)',
121
+ SWITCH_TRACK_OFF: 'rgba(15, 23, 41, 0.15)',
122
+ SWITCH_TRACK_ON: '#6F3EF4',
123
+ SWITCH_THUMB: '#FFFFFF',
124
+ HEADER: {
125
+ BACKGROUND: 'rgba(255, 255, 255, 0.35)',
126
+ BORDER: 'rgba(255, 255, 255, 0.9)',
127
+ TINT: '#0F1729'
128
+ },
129
+ BOARD: {
130
+ SURFACE: 'rgba(255, 255, 255, 0.45)',
131
+ BORDER: 'rgba(255, 255, 255, 0.9)',
132
+ CELL_EMPTY: 'rgba(255, 255, 255, 0.65)',
133
+ GRID_LINE: 'rgba(15, 23, 41, 0.14)',
134
+ CELL_HIGHLIGHT: 'rgba(111, 62, 244, 0.22)',
135
+ CELL_INVALID: '#EF4343',
136
+ FLASH: '#FFFFFF'
137
+ }
138
+ };
139
+
140
+ // Dark — translucent dark panels for the header, scoreboard and controls over game scenes;
141
+ // background, text and accent come from Playtura's dark tokens: background hsl(252 40% 12%),
142
+ // foreground hsl(250 30% 98%), muted hsl(250 18% 64%), accent hsl(256 92% 72%)
143
+ const DARK_THEME: GameTheme = {
144
+ mode: 'dark',
145
+ isDark: true,
146
+ BACKGROUND: '#100C1D',
147
+ PATTERN_OPACITY: 0.25,
148
+ SURFACE: 'rgba(20, 16, 34, 0.35)',
149
+ BORDER: 'rgba(153, 118, 249, 0.22)', // faint rim in the panel's own purple, blends with the background
150
+ BORDER_WIDTH: 1.5,
151
+ DIVIDER: 'rgba(153, 118, 249, 0.25)',
152
+ TEXT: '#F9F8FB',
153
+ TEXT_MUTED: '#9893B4',
154
+ LABEL: '#F9F8FB',
155
+ TEXT_SUBTLE: '#F9F8FB',
156
+ TEXT_SHADOW: 'transparent',
157
+ SOLID: '#9976F9',
158
+ ON_SOLID: '#FFFFFF',
159
+ SCORE_HIGHLIGHT: '#F6A823',
160
+ DANGER: '#DC2828',
161
+ CHIP: 'rgba(153, 118, 249, 0.25)',
162
+ OVERLAY: 'rgba(0, 0, 0, 0.86)',
163
+ SWITCH_TRACK_OFF: 'rgba(153, 118, 249, 0.3)',
164
+ SWITCH_TRACK_ON: '#9976F9',
165
+ SWITCH_THUMB: '#F9F8FB',
166
+ HEADER: {
167
+ BACKGROUND: 'rgba(20, 16, 34, 0.35)',
168
+ BORDER: 'rgba(153, 118, 249, 0.2)',
169
+ TINT: '#F9F8FB'
170
+ },
171
+ BOARD: {
172
+ SURFACE: 'rgba(153, 118, 249, 0.12)',
173
+ BORDER: 'rgba(153, 118, 249, 0.3)',
174
+ CELL_EMPTY: 'rgba(153, 118, 249, 0.2)',
175
+ GRID_LINE: 'rgba(153, 118, 249, 0.35)',
176
+ CELL_HIGHLIGHT: 'rgba(153, 118, 249, 0.3)',
177
+ CELL_INVALID: '#DC2828',
178
+ FLASH: '#FFFFFF'
179
+ }
180
+ };
181
+
182
+ /**
183
+ * Shared night palette for games that paint their own outdoor scene (sky, moon, clouds, hills).
184
+ * Dark mode recolours those scenes with these values so every night scene looks alike; light and
185
+ * classic keep the original day art. Ordered far → near for hills (atmospheric perspective).
186
+ */
187
+ export const NIGHT_SCENE = {
188
+ SKY: ['#120E24', '#17122B', '#241D40', '#3A3160'], // zenith → horizon
189
+ HAZE: 'rgba(153, 118, 249, 0.10)',
190
+ STAR: 'rgba(249, 248, 251, 0.85)',
191
+ MOON: {
192
+ CORE: ['#FFFFFF', '#EEEAF8', '#D6CEEC'], // radial, centre → edge
193
+ CRATER: 'rgba(120, 108, 165, 0.22)',
194
+ GLOW: '#C4B5FD' // drawn as soft concentric halos at low alpha
195
+ },
196
+ CLOUD: {
197
+ BODY: 'rgba(92, 84, 132, 0.78)',
198
+ SHADOW: 'rgba(52, 45, 84, 0.55)', // underside
199
+ RIM: 'rgba(196, 181, 253, 0.45)' // moonlit top edge
200
+ },
201
+ // Hills are silhouettes against the brighter horizon: each layer is [ridge, base] and gets darker toward
202
+ // the viewer; the moonlit rim and mist bands keep the layers apart.
203
+ HILL: {
204
+ FAR: ['#22264E', '#1A1D40'], // clearly darker than the horizon sky (#3A3160)
205
+ MID: ['#22334A', '#18263A'],
206
+ NEAR: ['#17362A', '#0F241C'],
207
+ RIM: 'rgba(214, 204, 255, 0.2)', // a hint of moonlight, not an outline
208
+ MIST: 'rgba(120, 104, 190, 0.22)'
209
+ },
210
+ GRASS: ['#24442C', '#1A3322'],
211
+ GROUND: ['#3B2F2A', '#2A211E']
212
+ } as const;
213
+
214
+ /**
215
+ * Day palette for the shared scene hills in light mode (classic keeps each game's original hills).
216
+ * Far layers are hazier and bluer (atmospheric perspective); each layer is [ridge, base].
217
+ */
218
+ export const DAY_SCENE = {
219
+ HILL: {
220
+ FAR: ['#BCD8C8', '#A6CBB6'],
221
+ MID: ['#93C29E', '#7DB38A'],
222
+ NEAR: ['#74AE7E', '#5E9C69'],
223
+ RIM: 'rgba(255, 255, 240, 0.18)', // a hint of sunlight, not an outline
224
+ MIST: 'rgba(255, 255, 255, 0.28)'
225
+ }
226
+ } as const;
227
+
228
+ /** Built-in palettes (light / dark default to Playtura's colours). Use resolveGameTheme to get the active ones. */
229
+ export const GAME_THEMES = {
230
+ classic: CLASSIC_THEME,
231
+ light: LIGHT_THEME,
232
+ dark: DARK_THEME
233
+ } as const;
234
+
235
+ type DeepPartial<T> = { [K in keyof T]?: T[K] extends readonly unknown[] ? T[K] : T[K] extends object ? DeepPartial<T[K]> : T[K] };
236
+
237
+ /** Colours a host app may override per mode; anything left out keeps the built-in value. */
238
+ export type GameThemeOverrides = Partial<Record<GameThemeMode, DeepPartial<Omit<GameTheme, 'mode' | 'isDark'>>>>;
239
+
240
+ const mergeTheme = <T extends object>(base: T, override?: DeepPartial<T>): T => {
241
+ if (!override) return base;
242
+ const out = { ...base } as Record<string, unknown>;
243
+ for (const [key, value] of Object.entries(override)) {
244
+ if (value === undefined) continue;
245
+ const current = out[key];
246
+ out[key] =
247
+ value && typeof value === 'object' && !Array.isArray(value) && current && typeof current === 'object'
248
+ ? mergeTheme(current as object, value as DeepPartial<object>)
249
+ : value;
250
+ }
251
+ return out as T;
252
+ };
253
+
254
+ // Active light / dark themes: the built-ins until an app calls configureGameThemes. Built once per call,
255
+ // so each mode keeps one stable object (games cache styles and rendered elements per theme object).
256
+ let activeThemes: Record<GameThemeMode, GameTheme> = { light: LIGHT_THEME, dark: DARK_THEME };
257
+
258
+ /**
259
+ * Override the light / dark game colours with the host app's palette. Call once at app start, before
260
+ * any game renders (e.g. at module scope in the root layout). The classic theme is not configurable.
261
+ *
262
+ * configureGameThemes({ light: { BACKGROUND: '#DCE7F6', SOLID: '#0F62F2', BOARD: { CELL_HIGHLIGHT: 'rgba(15, 98, 242, 0.22)' } } });
263
+ */
264
+ export const configureGameThemes = (overrides: GameThemeOverrides) => {
265
+ activeThemes = {
266
+ light: mergeTheme<GameTheme>(LIGHT_THEME, overrides.light as DeepPartial<GameTheme> | undefined),
267
+ dark: mergeTheme<GameTheme>(DARK_THEME, overrides.dark as DeepPartial<GameTheme> | undefined)
268
+ };
269
+ };
270
+
271
+ /** Active theme for a settings value; games that have not opted in (or no theme passed) get `classic`. */
272
+ export const resolveGameTheme = (mode?: GameThemeMode): GameTheme => (mode ? activeThemes[mode] : CLASSIC_THEME);
273
+
274
+ /**
275
+ * Games that render with `settings.theme` (all of them, each wrapped in GameThemeProvider). Hosts use
276
+ * this to theme their own chrome (header, status bar) to match. A new game must wrap itself in
277
+ * GameThemeProvider too, or be listed as an exception here.
278
+ */
279
+ export const THEMED_GAMES: ReadonlySet<GAME_IDS> = new Set(Object.values(GAME_IDS));
280
+
281
+ export const isThemedGame = (gameId: GAME_IDS | null | undefined): boolean => !!gameId && THEMED_GAMES.has(gameId);
@@ -0,0 +1,134 @@
1
+ import { type ComponentType, type ReactNode } from 'react';
2
+ import { Dimensions } from 'react-native';
3
+ import { gameWidthFor } from '../games/shared/EngineGameWidth';
4
+
5
+ export function getScreenDimensions(): { width: number; height: number } {
6
+ const { width, height } = Dimensions.get('window');
7
+ return { width, height };
8
+ }
9
+
10
+ export const isTablet = getScreenDimensions().width > 640;
11
+
12
+ export const getGameDimensions = () => {
13
+ const { width, height } = getScreenDimensions();
14
+ const gameWidth = gameWidthFor(width);
15
+ return { width: gameWidth, height, screenWidth: width };
16
+ };
17
+
18
+ export type GameThemeMode = 'light' | 'dark';
19
+
20
+ export interface GameSettings {
21
+ isVisible: boolean;
22
+ /** Pause gameplay while a host panel is open, without opening settings. */
23
+ paused?: boolean;
24
+ enableSounds: boolean;
25
+ enableHaptics: boolean;
26
+ enableMusic: boolean;
27
+ offset?: number;
28
+ /** Host settings trigger's screen-space attachment point. */
29
+ anchor?: { top: number; right: number };
30
+ /** Host app's colour scheme. Applied by games listed in THEMED_GAMES; others keep the classic look. */
31
+ theme?: GameThemeMode;
32
+ }
33
+
34
+ export interface GameCompletionMetrics {
35
+ status: 'win' | 'lose' | 'cancel';
36
+ score: string;
37
+ additionalData?: Record<string, any>; // Optional game-specific data
38
+ }
39
+
40
+ export interface GameProps {
41
+ settings: GameSettings;
42
+ /** Hosts can disable navigation gestures for the duration of a run, including pauses. */
43
+ onPlayingChange?: (playing: boolean) => void;
44
+ onSettingsChange?: (settings: GameSettings) => void;
45
+ onEndGame?: (metrics: GameCompletionMetrics) => void;
46
+ onReplayGame?: () => void;
47
+ onShare?: () => void;
48
+ onShareScreenshot?: () => void;
49
+ onShowLeaderboard?: () => void;
50
+ bannerAd?: ReactNode;
51
+ }
52
+
53
+ export const DEFAULT_GAME_SETTINGS: GameSettings = {
54
+ isVisible: false,
55
+ enableSounds: true,
56
+ enableHaptics: true,
57
+ enableMusic: false,
58
+ offset: 0
59
+ };
60
+
61
+ export enum GAME_IDS {
62
+ WHACK_A_MOLE = 'whack-a-mole',
63
+ POPIT_FIDGET = 'popit-fidget',
64
+ FRUIT_NINJA = 'fruit-ninja',
65
+ BALLOON_BLASTER = 'balloon-blaster',
66
+ SPACE_FIGHTER = 'space-fighter',
67
+ MAZE_RUNNER = 'maze-runner',
68
+ SLIDING_NUMBERS = 'sliding-numbers',
69
+ GAME_2048 = 'game-2048',
70
+ DINO_JUMP = 'dino-jump',
71
+ COLORS_SORT = 'colors-sort',
72
+ FRUIT_MERGER = 'fruit-merger',
73
+ FLAPPY_BIRD = 'flappy-bird',
74
+ CANDY_CRUSH = 'candy-crush',
75
+ SNAKE_3D = 'snake-3d',
76
+ CAR_RACING = 'car-racing',
77
+ BIKE_RACING = 'bike-racing',
78
+ BLOCK_BLAST = 'block-blast',
79
+ BUBBLE_SHOOTER = 'bubble-shooter',
80
+ PERFECT_CIRCLE = 'perfect-circle',
81
+ SPIDER_SOLITAIRE = 'spider-solitaire',
82
+ TIC_TAC_TOE = 'tic-tac-toe',
83
+ PAC_MAN = 'pac-man',
84
+ TILE_HOME = 'tile-home',
85
+ WORD_SEARCH = 'word-search',
86
+ CONNECT_EM_ALL = 'connect-em-all',
87
+ NUTS_AND_BOLTS = 'nuts-and-bolts',
88
+ NUMBER_SEARCH = 'number-search',
89
+ DOTS_AND_BOXES = 'dots-and-boxes',
90
+ LUDO_KING = 'ludo-king',
91
+ TANK_1990 = 'tank-1990',
92
+ BLOCK_BREAKER = 'block-breaker',
93
+ STACK_TOWER = 'stack-tower',
94
+ MINE_SWEEPER = 'mine-sweeper',
95
+ SUDOKU = 'sudoku',
96
+ KNIFE_HIT = 'knife-hit',
97
+ COLOR_SWITCH = 'color-switch',
98
+ PIPE_CONNECT = 'pipe-connect',
99
+ ARROWS = 'arrows',
100
+ FIND_DIFFERENT_NUMBER = 'find-different-number',
101
+ SNAKES_AND_LADDERS = 'snakes-and-ladders',
102
+ BLUK = 'bluk',
103
+ CHAMELEON_RUN = 'chameleon-run',
104
+ MOB_CONTROL = 'mob-control',
105
+ PAPER_IO = 'paper-io',
106
+ CROSSY_ROAD = 'crossy-road',
107
+ TANGRAM = 'tangram',
108
+ CHECKERS = 'checkers',
109
+ MEMORY_MATCH = 'memory-match',
110
+ FALLING_STICKS = 'falling-sticks',
111
+ REVERSI = 'reversi',
112
+ PENGUIN_RUN = 'penguin-run',
113
+ PLAY_WITH_TUA = 'play-with-tua',
114
+ TREASURE_HUNT = 'treasure-hunt'
115
+ }
116
+
117
+ export type GameComponent = ComponentType<GameProps>;
118
+
119
+ export type GameCategory = 'arcade' | 'block' | 'casual' | 'action' | 'brain' | 'education' | 'puzzle' | 'racing' | 'strategy';
120
+
121
+ export interface GameDefinition {
122
+ id: GAME_IDS;
123
+ title: string;
124
+ description: string;
125
+ instructions: string[];
126
+ categories: GameCategory[];
127
+ component: GameComponent;
128
+ }
129
+
130
+ export const formatTime = (seconds: number): string => {
131
+ const mins = Math.floor(seconds / 60);
132
+ const secs = seconds % 60;
133
+ return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
134
+ };
@@ -0,0 +1,6 @@
1
+ export * from './GamesMetadata';
2
+ export * from './SoundsService';
3
+ export * from './UtilsService';
4
+ export * from './GameLoaders';
5
+ export * from './ThemeService';
6
+ export { gamePattern, PATTERN_GRID_COLOR } from '../helpers/GamePatternData';
@@ -1 +0,0 @@
1
- "use strict";function _0x15b8(r,e){r-=291;var t=_0x4bef(),W=t[r];void 0===_0x15b8.qxBiKR&&(_0x15b8.KLGbvu=function(r,e){var t,W,a=[],o=0,n="";for(r=function(r){for(var e,t,W="",a="",o=0,n=0;t=r.charAt(n++);~t&&(e=o%4?64*e+t:t,o++%4)?W+=String.fromCharCode(255&e>>(-2*o&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(var s=0,d=W.length;s<d;s++)a+="%"+("00"+W.charCodeAt(s).toString(16)).slice(-2);return decodeURIComponent(a)}(r),W=0;W<256;W++)a[W]=W;for(W=0;W<256;W++)o=(o+a[W]+e.charCodeAt(W%e.length))%256,t=a[W],a[W]=a[o],a[o]=t;W=0,o=0;for(var s=0;s<r.length;s++)o=(o+a[W=(W+1)%256])%256,t=a[W],a[W]=a[o],a[o]=t,n+=String.fromCharCode(r.charCodeAt(s)^a[(a[W]+a[o])%256]);return n},_0x15b8.zptLTL={},_0x15b8.qxBiKR=!0);var a=t[0];_0x15b8.ficAXs!==a&&(_0x15b8.zptLTL={},_0x15b8.ficAXs=a);var o=_0x15b8.zptLTL[r];return void 0===o?(void 0===_0x15b8.dfWMbV&&(_0x15b8.dfWMbV=!0),W=_0x15b8.KLGbvu(W,e),_0x15b8.zptLTL[r]=W):W=o,W}var _0x1ae99d=_0x15b8;!function(){for(var r=_0x15b8,e=_0x4bef();;)try{if(280310==-parseInt(r(307,"#xwt"))/1+parseInt(r(305,"S@8g"))/2*(parseInt(r(313,"#xwt"))/3)+parseInt(r(299,"WekQ"))/4*(parseInt(r(308,"4K8l"))/5)+parseInt(r(303,"YRI]"))/6*(parseInt(r(314,"ir1D"))/7)+parseInt(r(298,"cxC^"))/8+-parseInt(r(311,"zvFf"))/9*(-parseInt(r(306,"syuP"))/10)+-parseInt(r(312,"b!to"))/11*(parseInt(r(300,"YRI]"))/12))break;e.push(e.shift())}catch(r){e.push(e.shift())}}();import{setGameInterval,clearGameInterval}from"../../helpers/GameTimer.js";function _0x4bef(){var r=["z8k3W7hcNmk/WQj1eq","dgKGW7H9smkJBtRcLKPv","nZNcTSk0W43dLmkQW67dVW0","oeztWP/cUmoWW5e","W6ZcGGpdP8k+DcpcIhi","dwOMW71/rSoStt3cS01gWPe","W4ZcQrlcNSoTW75jESoa","qauJmSkDWPJdNH0UW5Kp","WPBdSmoUWQ/dHmkyDJ8MEq","WR3cKmoXWRvlWPqdWPfiWONdP3FcIG","qqqMnSkFWOpdIWWnW4mZ","WPhcLSkrWPCFW4/cJ8oata","W67dOMRcOmoPWQldPmkAz8oD","uMj1WRBcGmoiWQRdTa","EJFcRv0yWRS+WPjTnCo2uG","lSoQW4/dSq9smSkzgey","qSoMW4acWRhdQSoefgD3sa","WP3dUu3cI8o2W55mCmoc","WRyTW4VdTs8aCmkTgHBdG8oqtq","W6bRWQL9ifOBWQrkW4K","EZhcRrv5W64pWRP9","WRbqiNdcV8o4W44DtG","WOupgL5sWRddQ3bN","WRWEvmolW4XZWOpdHSoO"];return(_0x4bef=function(){return r})()}export class ArrowsService{[_0x1ae99d(297,"IQku")]=null;[_0x1ae99d(295,"ZbxF")](r){var e=_0x1ae99d;this.stopTimer(),this[e(291,"jt0y")]=setGameInterval(r,1e3)}stopTimer(){var r=_0x1ae99d;this.gameTimer&&(clearGameInterval(this[r(297,"IQku")]),this[r(310,"WekQ")]=null)}[_0x1ae99d(296,"[PwW")](){this.stopTimer()}}
@@ -1 +0,0 @@
1
- "use strict";!function(){const o=_0xb018,n=_0x1579();for(;;)try{if(345692==parseInt(o(436,"hb]^"))/1*(parseInt(o(630,"JCxO"))/2)+-parseInt(o(649,"PBTU"))/3*(parseInt(o(622,"C0sv"))/4)+-parseInt(o(616,"o[Dp"))/5+parseInt(o(559,"K*u&"))/6*(-parseInt(o(491,"D6p["))/7)+parseInt(o(623,"XnkH"))/8*(-parseInt(o(573,"!WBS"))/9)+parseInt(o(628,"r)QD"))/10*(-parseInt(o(442,"e%zU"))/11)+parseInt(o(688,"StAu"))/12*(parseInt(o(543,"AMKL"))/13))break;n.push(n.shift())}catch(o){n.push(n.shift())}}();import{create}from"zustand";import{subscribeWithSelector}from"zustand/middleware";import{immerMiddleware}from"../../services/UtilsService.js";import{GRID_COLS,GRID_ROWS,TOTAL_CELLS,Direction,DIR_DELTAS,ARROWS_GAME_CONFIG}from"./ArrowsConstants.js";import{calculateTimeBasedScore}from"../../services/ScoringService.js";const idx=(o,n)=>o*GRID_COLS+n,shuffle=o=>{const n=_0xb018,t={MDZUg:function(o,n){return o===n}};for(let W=o[n(443,"o[Dp")]-1;W>0;W--){if(t.MDZUg(n(434,"DPse"),n(581,"pRy8")))return _0x13faec;{const t=Math[n(508,"KuTw")](Math.random()*(W+1));[o[W],o[t]]=[o[t],o[W]]}}return o},isExitClear=(o,n)=>{const t=_0xb018,W={};W[t(499,"J*Kd")]=function(o,n){return o+n},W[t(445,"#aET")]=function(o,n){return o<n},W[t(512,"ENUR")]=function(o,n){return o!==n};const e=W,r=n[t(467,"%!f&")][n.waypoints.length-1],[i,d]=DIR_DELTAS[n[t(661,"DPse")]];let s=e[t(426,"KuTw")](r[t(651,"h]xT")],i),u=r[t(518,"zI1c")]+d;for(;s>=0&&e[t(663,"bN35")](s,GRID_ROWS)&&u>=0&&e[t(502,"D6p[")](u,GRID_COLS);){const W=o[idx(s,u)];if(e[t(487,"Bx7%")](W,null)&&e[t(659,"#aqk")](W,n.id))return!1;s+=i,u+=d}return!0},dirBetween=(o,n)=>{const t=_0xb018,W=n[t(558,"Bj*#")]-o[t(636,"D6p[")],e=n[t(498,"JCxO")]-o[t(515,"Sgpm")];return-1===W?Direction.UP:1===W?Direction.DOWN:1===e?Direction[t(519,"XKAx")]:Direction[t(509,"MS&&")]},generateBoardOnce=()=>{const o="a*AI",n="C0sv",t="Bj*#",W="@XAv",e="KuTw",r="%!f&",i="nbUM",d="@XAv",s="DPse",u="#x43",f="XKAx",S="8hdB",a=_0xb018,R={bDrCa:function(o,n){return o<n},CaVuS:function(o,n){return o<n},lcwvd:function(o,n){return o<n},guFEp:function(o,n){return o>=n},TMWlB:function(o,n){return o<n},siYHl:function(o,n){return o<n},OokUw:function(o,n,t){return o(n,t)},LNtKt:function(o,n){return o-n},oOWIF:function(o,n,t,W){return o(n,t,W)},XQmIb:function(o,n){return o(n)},RJhZQ:function(o,n){return o+n},hPSie:function(o,n){return o>=n},UNppx:function(o,n){return o<n},xIqOy:function(o,n){return o!==n},Nswiy:function(o,n){return o>n},mpdAu:function(o,n){return o<n},DDDKS:function(o,n,t){return o(n,t)},iXDdx:function(o,n){return o+n},npcKT:function(o,n){return o===n},mlrQQ:function(o,n,t,W){return o(n,t,W)},Foisl:function(o,n,t,W){return o(n,t,W)},clIay:function(o,n){return o<n},doPkR:function(o,n){return o>=n},GbDLv:a(681,o),HsAxG:a(606,"zI1c"),eXOBV:function(o,n){return o+n},XxVHX:function(o,n,t){return o(n,t)},JOUzI:function(o,n){return o+n},UJytV:function(o,n){return o<n},lYUyq:function(o,n){return o+n},BCejT:function(o,n){return o>=n},VzYkB:function(o,n,t){return o(n,t)},tCNTp:function(o,n){return o===n}},k=new Uint8Array(TOTAL_CELLS),C=new Array(TOTAL_CELLS)[a(525,"o[Dp")](null),l=[];let m=0,x=TOTAL_CELLS;const O=(o,n,t)=>{const W=a,[e,r]=DIR_DELTAS[t];let i=o+e,d=n+r;for(;i>=0&&R[W(657,"o[Dp")](i,GRID_ROWS)&&d>=0&&R[W(433,"MS&&")](d,GRID_COLS);){if(!k[idx(i,d)])return!1;i+=e,d+=r}return!0},_=(o,n)=>{const t=a,W=[];for(let e=0;R[t(547,"r)QD")](e,4);e++){const[r,i]=DIR_DELTAS[e],d=o+r,s=n+i;if(R[t(562,"XKAx")](d,0)&&R[t(503,"%!f&")](d,GRID_ROWS)&&s>=0&&s<GRID_COLS&&!k[idx(d,s)]){const o={};o[t(553,"9rPB")]=d,o[t(447,"69FU")]=s,o[t(590,"DPse")]=e,W[t(655,"zI1c")](o)}}return W},p=(o,n,t)=>{const W=a,e=new Set(o[W(652,"JCxO")](o=>idx(o[W(642,"P*DA")],o.col))),[r,i]=DIR_DELTAS[t];let d=n[W(545,"o[Dp")]+r,s=n.col+i;for(;d>=0&&R[W(638,"#x43")](d,GRID_ROWS)&&s>=0&&s<GRID_COLS;){if(e[W(670,"nbUM")](idx(d,s)))return!0;d+=r,s+=i}return!1};for(;R.Nswiy(x,0);){const I=[];for(let o=0;R[a(638,"#x43")](o,GRID_ROWS);o++)for(let n=0;R[a(554,"kjfP")](n,GRID_COLS);n++)if(!k[R[a(546,"Bx7%")](idx,o,n)]){const t={};t.row=o,t[a(455,"r)QD")]=n,I[a(461,"lx]u")](t)}if(0===I[a(521,"#aET")])break;shuffle(I);let P=!1;for(const d of I){const s={};s[a(679,"hY!z")]=d[a(646,n)],s.col=d[a(540,"oV^k")];const u=[s],f=new Set;f[a(510,"o[Dp")](idx(d[a(450,"69FU")],d[a(496,t)]));let S=d;const I=R[a(650,"Bj*#")](3,Math[a(529,"oV^k")](Math[a(464,"bN35")]()*R[a(639,"KuTw")](R[a(484,W)](14,3),1)));for(;R[a(564,"Bj*#")](u[a(597,"AMKL")],I);){const o=_(S.row,S[a(578,"Bx7%")])[a(544,"C0sv")](o=>!f[a(548,"PBTU")](idx(o[a(569,"e%zU")],o.col)));if(R[a(631,"Bj*#")](o[a(555,"JCxO")],0))break;const n=o[Math.floor(Math[a(490,"oV^k")]()*o[a(511,"4uGe")])],t={};t[a(520,"m*#S")]=n.row,t.col=n[a(654,e)],u[a(624,"pRy8")](t),f[a(626,"PBTU")](idx(n[a(686,"#aET")],n.col)),S=n}const G=u[u.length-1],A=u[0];let h=null,w=u;if(u.length>=2){const n=u[u[a(524,W)]-2],t=dirBetween(n,G);if(R[a(629,"JnVr")](O,G[a(690,"AMKL")],G[a(515,"Sgpm")],t)&&!p(u,G,t))h=t,w=u;else{const n=u[1],t=dirBetween(n,A),W=[...u][a(577,r)]();R[a(457,o)](O,A[a(549,i)],A.col,t)&&!p(W,A,t)&&(h=t,w=W)}}if(R.npcKT(h,null)||R[a(536,"Bx7%")](w.length,2))continue;const D={};D.id=m,D[a(614,"P*DA")]=w,D.exitDir=h;const T=D;l[a(463,"9rPB")](T);for(const o of w){const n=idx(o[a(517,"K*u&")],o.col);k[n]=1,C[n]=m,x--}m++,P=!0;break}if(!P)for(let W=0;R[a(551,d)](W,GRID_ROWS);W++)for(let _=0;_<GRID_COLS;_++){const p=idx(W,_);if(k[p])continue;let I=!1;for(const o of shuffle([0,1,2,3])){const[e,r]=DIR_DELTAS[o],i=W+e,d=_+r;if(i<0||R.doPkR(i,GRID_ROWS)||d<0||d>=GRID_COLS)continue;const f=C[idx(i,d)];if(null==f)continue;const S=l[f],m=S[a(451,"StAu")][0];if(R[a(429,s)](m[a(507,"6Cf[")],i)&&m[a(618,"U*MQ")]===d){if("lGuYq"!==R[a(430,"69FU")]){const o={};o[a(533,u)]=!1,o[a(449,"8hdB")]=!1,o.arrowId=-1,o.row=_0x547ded,o[a(496,t)]=_0x45d010;const n=o;return R.XQmIb(_0x33bbc9,o=>{const t=a;if(!o[t(671,"yhJ5")]||o[t(615,"hb]^")]||o[t(469,"a*AI")])return;const W=_0x398b08(_0x4bf206,_0x57a6f9),e=o[t(432,"StAu")][W];if(null===e||e===_0x57fab9)return;const r=o[t(483,"hb]^")][t(689,"Sgpm")](o=>o.id===e);if(-1===r)return;const i=o.arrows[r];if(n[t(660,"6Cf[")]=!0,n.arrowId=i.id,R[t(668,"ENUR")](_0x607d05,o.cellToArrowId,i)){for(const n of i[t(644,"Bx7%")])o[t(645,"J*Kd")][_0x104395(n[t(440,"MS&&")],n.col)]=null;if(o.arrows.splice(r,1),o[t(476,"yhJ5")]-=1,o[t(621,"StAu")]+=1,o[t(593,"AMKL")]+=500,n[t(422,"e%zU")]=!0,o.arrowsRemaining<=0){const n=R[t(586,"#aqk")](_0x50ad06.GAME_DURATION,o.timeLeft);o[t(685,"e%zU")]=R[t(589,"XKAx")](_0x1b23ce,n,_0x30f703[t(456,"KuTw")],o.score),o[t(532,"XKAx")]=!0,o[t(526,"D6p[")]=!1}}}),n}{const o={};o[a(646,n)]=W,o[a(515,"Sgpm")]=_,S[a(664,"8hdB")][a(453,"MS&&")](o),k[p]=1,C[p]=S.id,x--,I=!0;break}}}if(!I)if(a(611,"69FU")!==R.HsAxG)for(const n of shuffle([0,1,2,3])){const[t,e]=DIR_DELTAS[n],r=W+t,i=R.eXOBV(_,e);if(r<0||r>=GRID_ROWS||i<0||i>=GRID_COLS)continue;const d=C[idx(r,i)];if(R.npcKT(d,null)||void 0===d)continue;const s=l[d],u=s[a(682,"ENUR")][s[a(605,"G3R(")].length-1];if(u.row!==r||u[a(582,f)]!==i)continue;const S={};S[a(676,"yhJ5")]=W,S[a(587,o)]=_;const m=R[a(479,"r)QD")](dirBetween,u,S);if(O(W,_,m)){const o={};o[a(656,"zI1c")]=W,o[a(666,"PBTU")]=_,s.waypoints[a(574,"!WBS")](o),s[a(514,"Sgpm")]=m,k[p]=1,C[p]=s.id,x--,I=!0;break}}else _0x4d6748[a(437,"oV^k")]=0,_0xd2cc92[a(658,"C0sv")]=!0,_0x114a9c[a(683,"e%zU")]=!1,_0x26e54b[a(593,"AMKL")]=0;if(!I){let o=!1;for(const n of shuffle([0,1,2,3])){if(a(493,"@Xk1")!==a(494,"kjfP")){const o=_0x1956b2[a(664,S)][_0x1ae382[a(691,"XnkH")].length-1],[n,t]=_0x86eafd[_0x408270[a(475,"XnkH")]];let W=o[a(679,"hY!z")]+n,e=ZjOsWS[a(640,"Sgpm")](o[a(498,"JCxO")],t);for(;ZjOsWS[a(575,"#aET")](W,0)&&W<_0x10003e&&e>=0&&ZjOsWS[a(438,"%!f&")](e,_0x478965);){const o=_0x47a69a[_0x368621(W,e)];if(null!==o&&ZjOsWS[a(530,"6Cf[")](o,_0x4bece8.id))return!1;W+=n,e+=t}return!0}{const[t,e]=DIR_DELTAS[n],r=R[a(460,"bN35")](W,t),i=_+e;if(r<0||r>=GRID_ROWS||R[a(556,"PBTU")](i,0)||R[a(594,"XnkH")](i,GRID_COLS))continue;if(k[idx(r,i)])continue;const d={};d[a(472,"a*AI")]=W,d[a(582,f)]=_;const s={};s[a(656,"zI1c")]=r,s[a(518,"zI1c")]=i;const u=dirBetween(d,s);if(O(r,i,u)){const n={};n[a(440,"MS&&")]=W,n[a(486,"6Cf[")]=_;const t={};t[a(522,"4uGe")]=r,t[a(515,"Sgpm")]=i;const e=[n,t],d={};d.id=m,d[a(563,"hY!z")]=e,d[a(662,"AMKL")]=u,l.push(d),k[p]=1,C[p]=m;const s=R[a(470,"JnVr")](idx,r,i);k[s]=1,C[s]=m,x-=2,m++,o=!0;break}}}if(!o)for(const n of shuffle([0,1,2,3])){const[t,u]=DIR_DELTAS[n],f=R[a(454,"hb]^")](W,t),m=_+u;if(f<0||f>=GRID_ROWS||m<0||R.BCejT(m,GRID_COLS))continue;const O=C[R[a(571,e)](idx,f,m)];if(null==O)continue;const I=l[O],P=I.waypoints[0],G=I[a(601,i)][I[a(541,"m*#S")][a(572,s)]-1];if(P.row===f&&P[a(654,e)]===m){const n={};n.row=W,n.col=_,I[a(664,S)][a(465,"StAu")](n),k[p]=1,C[p]=I.id,x--,o=!0;break}if(R[a(492,"4uGe")](G[a(522,"4uGe")],f)&&G[a(675,"pRy8")]===m){const n={};n[a(651,"h]xT")]=W,n[a(518,"zI1c")]=_;const t=dirBetween(G,n),e={};e[a(642,"P*DA")]=W,e[a(423,d)]=_,I[a(467,r)][a(692,"hY!z")](e),I[a(637,"%!f&")]=t,k[p]=1,C[p]=I.id,x--,o=!0;break}}!o&&(k[p]=1,x--)}}}const I={};return I[a(568,"!WBS")]=l,I[a(550,"AMKL")]=C,I[a(585,u)]=l.length,I},isBoardSolvable=(o,n)=>{const t=_0xb018,W={};W[t(633,"pRy8")]=function(o,n){return o>n},W[t(481,"a*AI")]=function(o,n){return o===n};const e=W,r=[...n],i=new Map(o[t(643,"P*DA")](o=>[o.id,o])),d=new Set(i[t(580,"e%zU")]());let s=!0;for(;e[t(471,"6Cf[")](d.size,0)&&s;){s=!1;for(const o of d){const n=i[t(482,"kjfP")](o);if(isExitClear(r,n)){for(const o of n[t(480,"C0sv")])r[idx(o.row,o[t(431,"J*Kd")])]=null;d.delete(o),s=!0}}}return e[t(565,"pRy8")](d[t(425,"C0sv")],0)},noSelfFacing=o=>{const n=_0xb018,t={};t[n(591,"lx]u")]=function(o,n){return o-n},t.THogQ=function(o,n){return o>=n},t[n(627,"C0sv")]=function(o,n){return o<n};const W=t;for(const t of o){const o=new Set(t[n(687,"69FU")].map(o=>idx(o[n(667,"StAu")],o.col))),e=t[n(513,"o[Dp")][W[n(584,"8hdB")](t[n(474,"r)QD")].length,1)],[r,i]=DIR_DELTAS[t[n(583,"oV^k")]];let d=e.row+r,s=e.col+i;for(;W[n(435,"KuTw")](d,0)&&W[n(441,"%!f&")](d,GRID_ROWS)&&s>=0&&W[n(466,"!WBS")](s,GRID_COLS);){if(o[n(665,"@XAv")](idx(d,s)))return!1;d+=r,s+=i}}return!0},MIN_ARROW_LEN=2,generateBoard=()=>{const o=_0xb018,n={fpewr:function(o,n){return o(n)},aeWVr:function(o,n,t){return o(n,t)}};let t=generateBoardOnce();for(let W=0;W<50;W++){if(t[o(527,"JCxO")].every(n=>n[o(513,"o[Dp")].length>=2)&&n[o(567,"zI1c")](noSelfFacing,t[o(561,"Sgpm")])&&n.aeWVr(isBoardSolvable,t[o(523,"lx]u")],t[o(600,"#x43")]))return t;t=generateBoardOnce()}return t};export const useArrowsStore=create()(subscribeWithSelector(immerMiddleware((o,n)=>({isPlaying:!1,isCompleted:!1,isGameOver:!1,arrows:[],cellToArrowId:[],arrowsRemaining:0,arrowsVersion:0,score:0,timeLeft:ARROWS_GAME_CONFIG.GAME_DURATION,initializePuzzle:()=>{const n=_0xb018,{arrows:t,cellToArrowId:W,count:e}=generateBoard();({vCVbl:function(o,n){return o(n)}})[n(538,"U*MQ")](o,o=>{const r=n;o.arrows=t,o.cellToArrowId=W,o.arrowsRemaining=e,o[r(504,"nbUM")]=0,o.timeLeft=ARROWS_GAME_CONFIG.GAME_DURATION,o.isCompleted=!1,o[r(588,"Bx7%")]=!1,o.isPlaying=!1,o.arrowsVersion+=1})},tryRemoveArrow:(n,t)=>{const W="69FU",e=_0xb018,r={};r[e(427,"Bj*#")]=function(o,n){return o===n},r[e(669,"69FU")]=function(o,n){return o===n},r[e(635,"PBTU")]=function(o,n){return o<=n};const i=r,d={};d[e(488,"yhJ5")]=!1,d[e(485,"9rPB")]=!1,d[e(489,"oV^k")]=-1,d.row=n,d[e(428,"#aET")]=t;const s=d;return o(o=>{const r=e;if(!o.isPlaying||o.isCompleted||o[r(596,"gSdu")])return;const d=idx(n,t),u=o.cellToArrowId[d];if(i[r(604,W)](u,null)||i[r(528,"Bx7%")](u,void 0))return;const f=o[r(478,"#x43")][r(539,"AMKL")](o=>o.id===u);if(-1===f)return;const S=o[r(531,"m*#S")][f];if(s[r(599,"hb]^")]=!0,s[r(534,"#x43")]=S.id,isExitClear(o.cellToArrowId,S)){for(const n of S.waypoints)o.cellToArrowId[idx(n[r(549,"nbUM")],n[r(477,"!WBS")])]=null;if(o[r(552,W)][r(653,"KuTw")](f,1),o[r(672,"zI1c")]-=1,o.arrowsVersion+=1,o[r(452,"JCxO")]+=500,s[r(542,"r)QD")]=!0,i[r(647,"DPse")](o.arrowsRemaining,0)){const n=ARROWS_GAME_CONFIG[r(448,"@XAv")]-o[r(592,"#x43")];o[r(613,"PBTU")]=calculateTimeBasedScore(n,ARROWS_GAME_CONFIG[r(612,"AMKL")],o.score),o[r(516,"kjfP")]=!0,o[r(424,"9rPB")]=!1}}}),s},startGame:()=>{const n={rMAOW:"Ghlxt"};o(o=>{const t=_0xb018;if(t(462,"P*DA")===n[t(677,"oV^k")])return _0x293207[t(617,"@Xk1")];o[t(459,"XnkH")]=!0,o[t(678,"JCxO")]=!1,o.isGameOver=!1})},stopGame:()=>{const o=_0xb018;n()[o(506,"zI1c")]()},resetGame:()=>{const n="#aET",{arrows:t,cellToArrowId:W,count:e}=generateBoard();o(o=>{const r=_0xb018,i="5|2|8|6|4|1|0|3|7"[r(439,"o[Dp")]("|");let d=0;for(;;){switch(i[d++]){case"0":o[r(641,"r)QD")]=W;continue;case"1":o[r(527,"JCxO")]=t;continue;case"2":o[r(610,"#x43")]=!1;continue;case"3":o[r(598,"MS&&")]=e;continue;case"4":o[r(609,n)]=ARROWS_GAME_CONFIG[r(566,"oV^k")];continue;case"5":o.isPlaying=!1;continue;case"6":o[r(632,n)]=0;continue;case"7":o[r(444,"XnkH")]+=1;continue;case"8":o[r(497,"J*Kd")]=!1;continue}break}})},restartWithNewPuzzle:()=>{const n="m*#S",{arrows:t,cellToArrowId:W,count:e}=generateBoard();o(o=>{const r=_0xb018;o[r(535,"h]xT")]=t,o[r(673,n)]=W,o.arrowsRemaining=e,o[r(684,"KuTw")]=0,o[r(674,"Bj*#")]=ARROWS_GAME_CONFIG[r(500,"XKAx")],o[r(619,"hY!z")]=!1,o[r(680,"6Cf[")]=!1,o[r(607,"hY!z")]=!1,o[r(579,n)]+=1})},decrementTime:()=>{const n=_0xb018,t={};t[n(505,"#aqk")]=function(o,n){return o<=n};const W=t;o(o=>{const t=n;!o.isPlaying||o[t(495,"KuTw")]||o.isGameOver||(o[t(446,"C0sv")]-=1,W[t(501,"D6p[")](o[t(602,"4uGe")],0)&&(o.timeLeft=0,o[t(557,"PBTU")]=!0,o.isPlaying=!1,o[t(613,"PBTU")]=0))})}}))));export const useIsPlaying=()=>useArrowsStore(_temp);export const useIsCompleted=()=>useArrowsStore(_temp2);export const useIsGameOver=()=>useArrowsStore(_temp3);export const useScore=()=>useArrowsStore(_temp4);export const useTimeLeft=()=>useArrowsStore(_temp5);export const useArrowsRemaining=()=>useArrowsStore(_temp6);function _0x1579(){const o=["tCoyjapdMW","DM1xxYS","b8kIW40qWQm","pYG0xGBdJmkV","W6LLCmkDp8kpt8o2","FtZcGCkzWRm","DmkJWR/cRmkj","Fmowbq","qZ3cTSkBWRO","WPScW6DYW6BcINVcQxaxWRVdQW","A8k2WR3cOSkjua","WRNcPmk1B8o6wLLQveTzWR3dMW","W5/dLCkLvea","WQxcRComWQjMWPLslq","h8o+EW","WR7cOftdSSotWOJdMSk5WPL2m0uP","WPuTnMamWPFdRq","dSo+ya","W5f6Aw3dNSkgWQSXxq","W7/cRZ1hW5O","E8oxar7dOCo7kG","yqy5sq8","WOGgWQS","fmkRW68YWQ3cGwrFkvv7W7zh","W48WWOJdRSoy","W5fZWOVdTSk9W4TmW4O","WRhcPCkxBmoSugzHqq","W4hdJXhdRL0","W4fGwCkn","WOBdR8o3vmkF","iSkeWRlcNG","W7NdOsRdShT3","W5n1y3xdMmkjWRe","W68EWO7cRmoS","xXpcImkzWQtdVs1gW4O","y8k9W6rZpmkiW4BdO2NcPdWP","W6aSWQBdVmozquGuW4GX","W5KFpCkxWPm","WQnSWR0OW5i","W7SWWPy","WO7dS07dVdpdPvy","WPWiWR7dMSk8W6hcVCogra","WR3cRSkUDmojqh0","WOXMpIjRe8kOW6G4bSoyW61cy20","W6C+WQu","W6lcRSohW6VdRCkV","WRmrWPhdOSkl","WQBcPCoyWRDfWPvAlxi","W4u5WQ7dUSo9","e8kpeG","Bc0ExWNdLG","WRxcR23dVmo4","imkuWQZcMCkuWPdcJa","WQHOWPa","AfzNCfC","WOv1kaXUeSkvW7O","W7X+B8kxbmkJtq","W69TC8kChmkh","W6NcM8oNWRFcRmojcCkF","o2jlW6Oo","WPy1W4ZcM8oA","lmkneCk+W6W","oSkzW6eyWP/cTv1Ohgrw","WOKsqa","jdtcMSo5i2hcUCoVdJm","W6/cOZ4","bZhcMCoujq","zmkQWQxcQuKvlCk1cSkyw8kCW5i","WRBdOSoZWRtcIa","WRddN8o5WRtcNa","Fd/cPSkfWOK","FJrLeWK","WOSlWRRdN8kG","WOlcPMb8WORcUJ1noq","WRLOWOS","nCkgW40yWOa","qSo8nci","zSk3WRC","i0rRW5KkuW","W5tcJdyMfG","CmkYWQRcTCksuCoMWQPb","WQ7dOCkEmmoDW7yD","WQJdTSkB","hCkzjCkHW5FdOdZcVCk1W7RcOW","dLr1","WPpcRh8","CCkIWQ/cPei","WO0SWOS","W5VdGmkIyhlcHG","pu5Y","W5bNwmkkosK","WPxcHhFdKmo4WQq","yCk6WR/cQq","WRhdNmoaWOVcU8o0jCkJW5i","W63cVIbAW4JcGa","CLHnAMC","W7TGCSkxaq","WRnoWO0SW6a","WP4XWO7dTCoMCW","sSkyWQVcG3SHfmkcp8kPDG","W6VcVCorW4xdQmkUW6vk","W6lcRSohW6VdRCkvW64","W53dTMtdVtZdVW","Ag1axhe","mcK0bNHkteCfrCkrW4O","W7udcXTT","pCoNWRmHqmoqW4ZdQ2m","W75JCq","WOGIWOxdQSo+ACkgsXG","WPKmWQRdHCkLW63cTW","ASk6W64gCmorW6ldPKS","WRFcRConWRnpWO4","DCk8WQq","qvLGvLC","WOCkWRddNmk3","mCoUCa","FZH9","omoRWRePxCorW6NdVgNcUaO6xG","WPRcJvddLSo1","hCoJzCoxhmoI","imkEWRy","gCkAaSkpW48","W6dcQtXsW4VcMW","dmofESoesG","mmo8rmorCupcOdG/pa","WPGswW","tq0ZcWZcHSo9WPy8W6hdTCkaWR0","WQW4ASkObCkUBmoq","WQRdQ8kfk8oUW6W","rmkEWQ7cQwy","W6xdM8oLyCkrWR/dMNSp","WR4WEWhdIW","WPayW5JdH14","W5Pnumk9lmkUFmoqowxdMteM","WPBcS3zUWOW","W6uJWRVcSCoQcG","W59FWQC","A8kWW5a5WRFcJ3O","bCkqW7SCWRa","Ah1Jvd0t","WRbKWPVcPmosiCownq","W7qKWRRcTG","W5/dTCkFBMm","WOZdTXiMmr5RW54","wHFcH8kmWRNdPYy","zNji","WP4XWO7dTCoMC8k+wHNdV8oZWO5w","W4zvWQK0","WPCPW6ldT0e","qmkeWOq","W7H0Dmkmn8kdwW","WR8fph01","W6dcS8oaW6RdRG","WQKiWQ3dH8kg","W6OWWO0","Bg5JFgLwAtVdLSoN","tmkKWR/cPva","yhf/","W6LytCkxaq","W7FcTCoyW6hdLSk5W6Xj","kmoTWRi3Ba","WRdcHSkuACoO","WQldQSk0k8o0W68dsCoIW7ldUa","WOZdRCk/vmkTw3/dGCkjdW","n8oRWRmIFCow","B8olabNdV8oUdf/dKYzOWPldSHH0","zt4iCqZdL8kSWO4","W6dcUCozW6JdJSkZW4TpW77dKflcIc4","EJzZeqpdNmoKW7er","o0HOW5SYxLCF","W6GTWPpdSSodv1uhW4aIW6lcT1nJWRO","eCo6rCo1aa","sL7cLgDHW79kaCky","WRpcRfvBWOW","W7VdIComFCkFWQ/dNweB","W7pdImoUFSkjWQxdOMOogtKAWRu","W4pdJmkHyKRcI8o3W5e","W6RcR8o2W6VdT8kSW6zyW7JdMKe","dCo9qmoxla","hmopWPaavSo6W73dNfRcGZq8Da","kSoSBmocEq","WRRdHmoCxSkbCbhcQMi","zcWVxXpdLCkVWPZdMLtcIa","nSoGW6RdSConcmk9WQXEWRewW4FcSa","WQ8GW4NcHmo7h0pdSGpcSmkzWQ4KW75Z","W6aVmq","W7VdICoFFSktWQBdMgOidZq","W58TDhqTwmktW4SHlCowW4q","W4DPyNldHSkCWPmGxdldTcddHa","W6NcNSotWOLVWRz/","W6ddPCo+nSk4h2fIveTXWOG","WQWlW6tdIa","W5WIFxWSvSomW5KFc8oKW6fi","omoRzW","WRRcI8oMWRvB","W55zWQddH8kNW5ZcMCoe","W6WlgCkoWPO","WR7dTwOmWO7dIXjBccxdVJq","WOqntYBdNq","W4tdHSkJDwm","WRqvW5BdQ1W","W5WGFW5Ld8kWW6uf","kSowyCouvG","WQRdGmoN","tqRcMmkDWO/dVte","W7dcTCoSW4ZdTG","oSkYW6ytWOO","WPNdK8kFhSoi","WOGmWQVdHSkhW6FcKSoarCoTWORdNbS","WR/dISos","WQddHmov","CNXDBwTAsdNdGa","lIlcSCo0gMVcT8oRgs7dHmoUBa","WQpcQ8ow","D0fVvWm","eCoAW5RdLsfMsSkijCkHA8kKW5q","BCk+oSkflrFcHISyo8kVWPS","WOmLAaNdSq","W47dQ2e","W6hcRsi","imkAW44EWPhcOa","mmkfW44","WOdcTMbX","WOlcRgq","zCkxWQhcHSkC","WRJcT8oMWQzhWPL7l2qG","WOGnWPRdOCkH","WQnMWPGIW6VdJsSY","ywbKrW0svW","pSo2WRqXtCoxW5O","W6pdSc3dH1i","WPaPiN8vWPVdPXldGG","WPhcGgO","oSoGBW","W5r0zW","W7BcQb4EmG","c8ouFSopca","ztz5","WOrNhcf9gCktW6mY","WPhcSwf2WONcJG5fmuddNSo0WRFcJCo/","WPWMWPddTSofB8kPtrNdO8oTWQHC","WP4uqqJdHvddNSoB","WR8rW7S","WP97oW","W69bxmk3ja","W6xcVXfAW5lcGXD4caRdVq","W6ddLCoR","WQj0WRScW7tdMGSZhmoG","W6uyWPtdHmof","W47cPGW7kInpW5Wo","W4rdWOaRWRBdHh3cLMa","imkjW40fWPC","W55tWR81WRi","W4xdISk7","c8oWBSoibmo4WQ3cPSok","WPqQiItcHSoyW7CQqcZdPdJdOG","WQ3dSmkzimoqW7elsCoU","kCoHWQO","WQ/cT8k+CmoIqgf7vq","W6ldJ8oVEq","W59vWR0OWQhdMha","WPRcJNu","o8kcWPhcMSkdWOZcGCoeaa","WQlcRCoBWQi","gCkCW6y7WPK","WOCwFIddOG","W5tdISkG","AMHUEb0","o8oZu8o0hq","lIJcSq","W4v+FhhdPCkaWOq3xc7dQGBdJG"];return(_0x1579=function(){return o})()}export const useArrowsVersion=()=>useArrowsStore(_temp7);function _0xb018(o,n){o-=422;const t=_0x1579();let W=t[o];if(void 0===_0xb018.BFvPtO){const o=function(o,n){let t,W,e=[],r=0,i="";for(o=function(o){let n="",t="";for(let t,W,e=0,r=0;W=o.charAt(r++);~W&&(t=e%4?64*t+W:W,e++%4)?n+=String.fromCharCode(255&t>>(-2*e&6)):0)W="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(W);for(let o=0,W=n.length;o<W;o++)t+="%"+("00"+n.charCodeAt(o).toString(16)).slice(-2);return decodeURIComponent(t)}(o),W=0;W<256;W++)e[W]=W;for(W=0;W<256;W++)r=(r+e[W]+n.charCodeAt(W%n.length))%256,t=e[W],e[W]=e[r],e[r]=t;W=0,r=0;for(let n=0;n<o.length;n++)W=(W+1)%256,r=(r+e[W])%256,t=e[W],e[W]=e[r],e[r]=t,i+=String.fromCharCode(o.charCodeAt(n)^e[(e[W]+e[r])%256]);return i};_0xb018.qdVOpD=o,_0xb018.YPPxJG={},_0xb018.BFvPtO=!0}const e=t[0];_0xb018.KxYpZg!==e&&(_0xb018.YPPxJG={},_0xb018.KxYpZg=e);const r=_0xb018.YPPxJG[o];return void 0===r?(void 0===_0xb018.MwYaSg&&(_0xb018.MwYaSg=!0),W=_0xb018.qdVOpD(W,n),_0xb018.YPPxJG[o]=W):W=r,W}function _temp(o){return o.isPlaying}function _temp2(o){return o[_0xb018(595,"Sgpm")]}function _temp3(o){return o.isGameOver}function _temp4(o){return o.score}function _temp5(o){return o[_0xb018(602,"4uGe")]}function _temp6(o){return o[_0xb018(603,"a*AI")]}function _temp7(o){return o[_0xb018(608,"hY!z")]}
@@ -1 +0,0 @@
1
- "use strict";const _0x24d6fd=_0x524b;!function(){const t=_0x524b,o=_0x52c3();for(;;)try{if(263109==parseInt(t(362,"k*%%"))/1*(parseInt(t(550,"NgjA"))/2)+-parseInt(t(409,"!gmM"))/3*(-parseInt(t(248,"Qwt("))/4)+-parseInt(t(499,"lUpR"))/5*(parseInt(t(322,"Qwt("))/6)+parseInt(t(483,"DF3A"))/7+parseInt(t(315,"vP^p"))/8+parseInt(t(593,"Pgd9"))/9+-parseInt(t(525,"$]fc"))/10)break;o.push(o.shift())}catch(t){o.push(o.shift())}}();import _0x189210,{useMemo,useRef,useEffect,useImperativeHandle,forwardRef,useCallback,useReducer,useState}from"react";import{StyleSheet,View,Dimensions}from"react-native";import{Canvas,Circle,Path,Skia,Group,LinearGradient,vec}from"@shopify/react-native-skia";import _0x5421a8,{useSharedValue,useAnimatedStyle,withTiming,withSequence,Easing,runOnJS}from"react-native-reanimated";import{Gesture,GestureDetector}from"react-native-gesture-handler";import{useArrowsVersion,useArrowsStore}from"../ArrowsStore.js";import{GRID_COLS,GRID_ROWS,Direction,ARROWS_GAME_CONFIG as _0x1d2297,ARROWS_ANIMATION_CONFIG as _0xfa06fb,ARROW_COLOR,ARROW_FLY_COLOR,ARROW_BLOCKED_COLOR,EMPTY_DOT_COLOR}from"../ArrowsConstants.js";import{playSound,GAME_SOUNDS}from"../../../services/SoundsService.js";import{playHaptic,HapticType}from"../../../services/HapticsService.js";import{jsx as _0x3599c0,jsxs as _0x45a852}from"react/jsx-runtime";const TILE_SIZE=_0x1d2297[_0x24d6fd(326,"L)Uq")],TILE_GAP=_0x1d2297[_0x24d6fd(310,"R(Oi")],ARROW_SW=_0x1d2297.ARROW_STROKE_WIDTH,ARROWHEAD_LEN=_0x1d2297[_0x24d6fd(518,")vZE")],ARROWHEAD_HW=_0x1d2297[_0x24d6fd(316,"Yv])")],CORNER_R=_0x1d2297[_0x24d6fd(595,"k*%%")],DOT_R=_0x1d2297[_0x24d6fd(412,"Y5PL")],BOARD_PAD=_0x1d2297[_0x24d6fd(349,"0gMH")],BOARD_W=_0x1d2297[_0x24d6fd(573,")&)O")],BOARD_H=_0x1d2297[_0x24d6fd(398,"4qU^")],CANVAS_W=BOARD_W,CANVAS_H=BOARD_H,CELL_STRIDE=TILE_SIZE+TILE_GAP,WELL_X=BOARD_PAD,WELL_Y=BOARD_PAD,HIT_MARGIN=TILE_GAP/2+.1*TILE_SIZE,HALF_TILE=TILE_SIZE/2,SCREEN=Dimensions[_0x24d6fd(565,"n^L0")]("window"),FLY_FAR=BOARD_W+BOARD_H+SCREEN[_0x24d6fd(254,"$]fc")]+SCREEN[_0x24d6fd(411,"k*%%")],FLY_H_PAD=Math[_0x24d6fd(547,"TlRU")](.4*SCREEN[_0x24d6fd(305,"LO$@")]),cellCenterX=t=>WELL_X+t*CELL_STRIDE+HALF_TILE,cellCenterY=t=>WELL_Y+t*CELL_STRIDE+HALF_TILE,EDGE_INSET=Math[_0x24d6fd(569,"UK^F")](ARROW_SW/2),buildPathFromPoints=t=>{const o=_0x24d6fd,e={};e[o(303,"Jcwq")]=function(t,o){return t<o},e[o(403,"4qU^")]=function(t,o){return t-o},e[o(414,"R&dn")]=function(t,o){return t-o},e[o(359,"#A4P")]=function(t,o){return t-o},e[o(219,"sBkC")]=function(t,o){return t+o},e[o(331,"lSOg")]=function(t,o){return t*o},e.DopIG=function(t,o){return t/o},e[o(324,"n^L0")]=function(t,o){return t+o};const n=e,W=Skia.Path[o(353,"Y5PL")]();if(t[o(425,"JBEo")]<2)return W;W[o(538,"Yv])")](t[0][0],t[0][1]);for(let e=1;n[o(582,"FToe")](e,t[o(390,"P29*")]-1);e++){const r=t[n[o(297,")&)O")](e,1)],d=t[e],u=t[e+1],i=r[0]-d[0],a=n[o(378,"x2Jt")](r[1],d[1]),_=u[0]-d[0],f=n[o(584,"Jcwq")](u[1],d[1]),s=Math[o(342,"TOgP")](n.rcZkl(i*i,a*a)),x=Math[o(288,"ubq6")](n.KuoVj(_,_)+f*f),R=Math.min(CORNER_R,s/2,n[o(249,"yCUc")](x,2)),C=d[0]+n[o(502,"x2Jt")](i,s)*R,O=d[1]+a/s*R,k=n[o(471,"R(Oi")](d[0],n.DopIG(_,x)*R),S=d[1]+f/x*R;W[o(415,"k*%%")](C,O),W.quadTo(d[0],d[1],k,S)}return W[o(426,"Pgd9")](t[n[o(588,"Pgd9")](t.length,1)][0],t[t[o(437,"Y5PL")]-1][1]),W},buildArrowheadPath=(t,o,e)=>{const n=_0x24d6fd,W={pEROb:function(t,o){return t===o},KYWsC:function(t,o){return t-o}};W[n(559,")&)O")]=function(t,o){return t-o},W.ojIQl=function(t,o){return t+o},W[n(355,"cn^u")]=function(t,o){return t+o},W.xOvTg=function(t,o){return t-o};const r=W,d=Skia.Path[n(251,"TlRU")]();return r[n(554,"kM4S")](e,Direction.UP)?(d.moveTo(t,o),d[n(240,"Jcwq")](t-ARROWHEAD_HW,o+ARROWHEAD_LEN),d[n(381,"TlRU")](t+ARROWHEAD_HW,o+ARROWHEAD_LEN)):e===Direction[n(343,"lSOg")]?(d[n(579,"#428")](t,o),d[n(553,"(6o&")](r[n(469,"k*%%")](t,ARROWHEAD_HW),r[n(454,"DF3A")](o,ARROWHEAD_LEN)),d.lineTo(r[n(407,"G^%4")](t,ARROWHEAD_HW),o-ARROWHEAD_LEN)):e===Direction[n(482,"pLpJ")]?(d[n(578,")&)O")](t,o),d.lineTo(t+ARROWHEAD_LEN,o-ARROWHEAD_HW),d[n(575,"DF3A")](r[n(397,")&)O")](t,ARROWHEAD_LEN),o+ARROWHEAD_HW)):(d.moveTo(t,o),d[n(597,"cn^u")](t-ARROWHEAD_LEN,o-ARROWHEAD_HW),d.lineTo(r[n(520,"vP^p")](t,ARROWHEAD_LEN),o+ARROWHEAD_HW)),d[n(451,"52oj")](),d},buildArrowSkiaPath=(t,o)=>{const e=_0x24d6fd,n={kiKTU:function(t,o){return t-o},WtRmf:function(t,o){return t(o)},JuhTR:function(t,o){return t-o},WuaLR:function(t,o){return t-o}},W=t[n.kiKTU(t.length,1)],r=n[e(366,"4qU^")](cellCenterX,W.col),d=cellCenterY(W.row),u=o===Direction[e(385,"yCUc")]?-1:o===Direction[e(424,"tuHj")]?1:0,i=o===Direction.UP?-1:o===Direction[e(491,"!gmM")]?1:0,a=n[e(473,"kM4S")](HALF_TILE,EDGE_INSET),_=r+u*a,f=d+i*a,s=n.WuaLR(_,u*ARROWHEAD_LEN),x=f-i*ARROWHEAD_LEN,R=t[e(472,"k*%%")](t=>[cellCenterX(t[e(338,"#A4P")]),cellCenterY(t[e(350,"DmIY")])]);R[e(233,"Pgd9")]([s,x]);const C=buildPathFromPoints(R),O=buildArrowheadPath(_,f,o),k={};return k[e(298,")vZE")]=C,k.headPath=O,k},buildFlyPolyline=(t,o)=>{const e=_0x24d6fd,n={hHUUR:function(t,o){return t===o},ahYSr:function(t,o){return t*o},wkfWG:function(t,o){return t+o},KLrtp:function(t,o){return t(o)}},W=t[e(360,"pLpJ")](t=>[cellCenterX(t[e(556,"k*%%")]),cellCenterY(t.row)]),r=t[t[e(423,"aB95")]-1],d=o===Direction.LEFT?-1:n[e(284,"52oj")](o,Direction[e(224,"(6o&")])?1:0,u=o===Direction.UP?-1:o===Direction[e(561,"FC97")]?1:0,i=FLY_FAR;return W[e(445,"52oj")]([cellCenterX(r[e(373,"FC97")])+n[e(226,"k*%%")](d,i),n[e(608,"TOgP")](n[e(244,"sBkC")](cellCenterY,r[e(456,"DF3A")]),n.ahYSr(u,i))]),W},cumulativeLengths=t=>{const o=_0x24d6fd,e={BDVsy:function(t,o){return t-o}};e[o(232,"0VPE")]=function(t,o){return t!==o};const n=e,W=[0];for(let e=1;e<t[o(545,"cn^u")];e++){if(n[o(334,"yCUc")](o(256,"ubq6"),o(517,"yCUc"))){const t=_0x5a1136[n[o(304,"sBkC")](_0x5028ae[o(437,"Y5PL")],1)],e=_0x1b9ff5[o(540,"LO$@")](0,_0x1fac4f),W=_0x4c0c6a.min(t,_0x17dd07);if(e>=W)return[];const r=[_0x55fd88(_0x293aca,_0x1f788b,e)];for(let t=1;t<_0x4fc724.length;t++)_0x52be31[t]>e&&_0x33969b[t]<W&&r[o(239,"uLC%")](_0x3ccbc3[t]);return r[o(299,"TlRU")](_0x36567e(_0x5d165a,_0x587fc5,W)),r}{const r=t[e][0]-t[n[o(382,"L)Uq")](e,1)][0],d=t[e][1]-t[e-1][1];W[o(564,"x2Jt")](W[e-1]+Math.sqrt(r*r+d*d))}}return W},pointAtDistance=(t,o,e)=>{const n=_0x24d6fd,W={};W[n(253,"Jcwq")]=function(t,o){return t-o},W[n(323,"Pgd9")]=function(t,o){return t>o},W[n(568,"yCUc")]=function(t,o){return t+o},W.gFgMl=function(t,o){return t-o},W[n(508,"tuHj")]=function(t,o){return t-o};const r=W;if(e<=0)return t[0];if(e>=o[o[n(272,"W6h$")]-1])return t[r[n(227,"JBEo")](t[n(337,"tuHj")],1)];for(let W=1;W<o.length;W++)if(e<=o[W]){const d=r[n(339,"G^%4")](o[W],o[W-1]),u=r[n(333,"uLC%")](d,0)?r[n(246,"vP^p")](e,o[W-1])/d:0;return[r[n(255,"R(Oi")](t[W-1][0],(t[W][0]-t[W-1][0])*u),t[r[n(475,"(xO0")](W,1)][1]+r[n(217,"lUpR")](t[W][1],t[W-1][1])*u]}return t[t.length-1]},subPolyline=(t,o,e,n)=>{const W=_0x24d6fd,r={Hbxif:function(t,o){return t-o},HUyNt:function(t,o){return t>=o},Eohem:function(t,o,e,n){return t(o,e,n)},kaqOu:function(t,o){return t>o},CJEKW:function(t,o){return t<o},Rodtf:function(t,o,e,n){return t(o,e,n)}},d=o[r[W(521,"LO$@")](o[W(591,"FToe")],1)],u=Math[W(277,"R&dn")](0,e),i=Math[W(431,"L)Uq")](d,n);if(r[W(309,"FC97")](u,i))return[];const a=[r[W(602,"(6o&")](pointAtDistance,t,o,u)];for(let e=1;e<t.length;e++)r[W(410,"0gMH")](o[e],u)&&r[W(330,"4qU^")](o[e],i)&&a[W(393,"!gmM")](t[e]);return a[W(257,"px[Y")](r[W(286,"ubq6")](pointAtDistance,t,o,i)),a},ArrowsCanvas=_0x189210.memo(()=>{const t=_0x24d6fd,o={FARXW:function(t,o){return t===o},ljazq:function(t,o){return t(o)},FVyUX:t(439,"DmIY"),YWlHh:function(t,o,e,n){return t(o,e,n)},sBPCQ:function(t,o,e){return t(o,e)},vdQOk:"none"},e=useArrowsVersion(),n=useMemo(()=>{const e=t,n=useArrowsStore[e(368,"W6h$")](),{arrows:W,cellToArrowId:r}=n,d=[];for(let t=0;t<GRID_ROWS;t++)for(let n=0;n<GRID_COLS;n++){const W=t*GRID_COLS+n;(o[e(552,"vP^p")](r[W],null)||void 0===r[W])&&d.push(_0x3599c0(Circle,{cx:cellCenterX(n),cy:o[e(218,"$]fc")](cellCenterY,t),r:DOT_R,color:EMPTY_DOT_COLOR},"d"+W))}for(const t of W){const{path:n,headPath:W}=buildArrowSkiaPath(t[e(399,"NgjA")],t.exitDir),r={};r.path=n,r[e(464,"0gMH")]="stroke",r.strokeWidth=ARROW_SW,r.strokeCap=e(503,"yCUc"),r.strokeJoin=o[e(318,"Qwt(")],r[e(250,"(xO0")]=ARROW_COLOR,d[e(504,"$]fc")](_0x3599c0(Path,r,"s"+t.id));const u={};u[e(237,"TlRU")]=W,u[e(435,"52oj")]=ARROW_COLOR,d[e(571,"DmIY")](o[e(281,"Jcwq")](_0x3599c0,Path,u,"h"+t.id))}return d},[e]);return o[t(314,"#428")](_0x3599c0,Canvas,{style:canvasStyles[t(271,"Pgd9")],pointerEvents:o.vdQOk,children:n})});ArrowsCanvas[_0x24d6fd(267,"pLpJ")]=_0x24d6fd(450,"#A4P");const FLY_TRANSPARENT=_0x24d6fd(567,"n^L0"),FLY_MIN_FADE=4*CELL_STRIDE,FlyingArrow=_0x189210.memo(({item:t,onDone:o,boardOffset:e,rootSize:n})=>{const W="n^L0",r="ubq6",d=_0x24d6fd,u={Dllqi:function(t,o){return t-o},hKPMs:function(t,o){return t-o},HmfvE:function(t,o){return t+o},LWhHH:function(t,o){return t*o},llIDX:function(t,o){return t(o)},pDzyK:function(t,o,e,n,W){return t(o,e,n,W)},bXbOR:function(t,o,e,n){return t(o,e,n)},kxZGJ:function(t,o,e){return t(o,e)},Wyjlf:function(t,o,e){return t(o,e)},QFMec:function(t,o,e){return t(o,e)},rzmpG:d(296,"x2Jt")},i=t[d(478,W)],a=u.kxZGJ(useMemo,()=>{const t=d,o={};o[t(413,"#A4P")]=function(t,o){return t-o};const n=o,W=buildFlyPolyline(i[t(294,"Y5PL")],i[t(433,"NgjA")]),r=cumulativeLengths(W),a=r[r.length-1],_=r[u.Dllqi(i[t(346,"52oj")][t(292,"(6o&")],1)]+u[t(347,"NgjA")](HALF_TILE,EDGE_INSET),f=Math[t(427,"0gMH")](e.x,FLY_H_PAD,FLY_MIN_FADE),s=Math[t(459,"(xO0")](e.y,FLY_MIN_FADE);let x,R;if(i[t(348,"Y5PL")]===Direction.UP)x=vec(0,0),R=vec(0,-s);else if(i[t(539,"$]fc")]===Direction[t(367,"0VPE")])x=vec(0,BOARD_H),R=vec(0,u[t(354,"Y5PL")](BOARD_H,s));else if(i[t(447,"tuHj")]===Direction[t(419,"LO$@")])x=vec(0,0),R=vec(-f,0);else{if("UFHng"!==t(311,"52oj")){const o={_0x212afa:"NgjA",_0x256b53:"52oj",_0x531c0c:234,_0xfa47b5:"FToe",_0x258864:421,_0x3ecf50:"vP^p",_0x6bff90:532,_0x10ead7:"$]fc"},e={IhuCM:function(t,o){return t/o},ZAHlg:function(t,o){return t-o},MXArZ:function(t,o){return n.cyHxf(t,o)}};let W=0;const r=()=>{const n=t,d=_0x1154c3[n(229,o._0x212afa)]()-_0x125bd3[n(463,o._0x256b53)],u=_0x12e47c.min(1,e[n(496,"TOgP")](d,_0x28e13e[n(o._0x531c0c,"DmIY")])),i=_0x242879[n(388,o._0xfa47b5)](u*_0x5a103e.PI*6)*(1-u)*5,a=u<.6?1:_0x54ed98[n(459,"(xO0")](0,e[n(313,"R&dn")](1,e[n(o._0x258864,o._0x3ecf50)](u,.6)/.4)),_={};_.tx=i,_[n(o._0x6bff90,o._0x10ead7)]=a,_0x1dc932(_),u>=1?!_0x925766.current&&(_0x18b46a.current=!0,_0x3326c8(_0x481f03[n(372,"pLpJ")])):W=_0x388c8c(r)};return W=_0xf9702b(r),()=>_0x2d08f7(W)}x=vec(BOARD_W,0),R=vec(BOARD_W+f,0)}const C={};return C.pts=W,C.cumLens=r,C[t(557,"uLC%")]=a,C[t(468,"Jcwq")]=_,C[t(563,"#A4P")]=x,C[t(376,"LO$@")]=R,C},[i,e]),[_,f]=u[d(542,"R&dn")](useState,a[d(221,"Y5PL")]),s=useRef(Date[d(386,"$]fc")]()),x=useRef(!1);u.kxZGJ(useEffect,()=>{const e=d,n={jrvys:function(t,o){return t!==o},WpFMd:e(558,"DmIY"),MCkOX:function(t,o){return t/o},aHxll:function(t,o){return t*o},dASpK:function(t,o){return t+o},hYDfq:function(t,o){return u[e(327,"FToe")](t,o)}};let W=0;const r=()=>{const d=e;if(n.jrvys(n[d(548,"Pgd9")],n[d(266,"(xO0")]))_0x45fd92=_0x2e614b(_0x404e2b,0),_0x56f079=_0x6cb3b8(_0x5c0a5a+_0x2db690,0);else{const e=Date[d(484,"R&dn")]()-s[d(555,"4qU^")],u=Math[d(446,"vP^p")](1,n[d(258,"TlRU")](e,_0xfa06fb.FLY_DURATION)),i=n[d(535,"NgjA")](u,u);if(f(n[d(490,")&)O")](a[d(546,"P29*")],n.hYDfq(i,a[d(522,"yCUc")]-a[d(581,"W6h$")]))),u>=1)return void(!x[d(225,"FToe")]&&(x[d(225,"FToe")]=!0,o(t[d(293,"$]fc")])));W=requestAnimationFrame(r)}};return W=u[e(302,"NgjA")](requestAnimationFrame,r),()=>cancelAnimationFrame(W)},[]);const R=_-a.bodyLen,C=R<a[d(599,"DmIY")],{path:O,headPath:k}=useMemo(()=>{const t=d;if(!C)return{path:Skia[t(228,r)][t(592,"uLC%")](),headPath:Skia[t(269,"Yv])")][t(544,"(6o&")]()};const o=u.pDzyK(subPolyline,a[t(529,"uLC%")],a[t(497,r)],R,_),e=buildPathFromPoints(o),n=pointAtDistance(a.pts,a[t(458,"pLpJ")],Math[t(506,"52oj")](_,a.total)),W=u[t(527,"FC97")](buildArrowheadPath,n[0],n[1],i.exitDir),f={};return f[t(480,"#A4P")]=e,f[t(392,"TlRU")]=W,f},[_,a,i[d(605,"#428")],R,C]),S=n.w||SCREEN[d(254,"$]fc")],l=n.h||SCREEN[d(453,"0VPE")],A={};A[d(287,"L)Uq")]=-FLY_H_PAD,A.width=S+2*FLY_H_PAD;const m=u[d(289,W)](useMemo,()=>[StyleSheet.absoluteFill,A],[S]),P=useMemo(()=>({width:S+2*FLY_H_PAD,height:l}),[S,l]);if(!C)return null;const h={};h[d(434,"DmIY")]=e.x+FLY_H_PAD;const L={};L[d(325,W)]=e.y;const E={};E[d(436,"!gmM")]=a[d(260,"Yv])")],E[d(510,"vP^p")]=a[d(457,"px[Y")],E[d(268,"TOgP")]=[ARROW_FLY_COLOR,FLY_TRANSPARENT];const D={};return D[d(481,"(xO0")]=a[d(476,"n^L0")],D[d(449,"R(Oi")]=a[d(261,"(xO0")],D[d(606,")&)O")]=[ARROW_FLY_COLOR,FLY_TRANSPARENT],_0x3599c0(View,{style:m,pointerEvents:d(352,"$]fc"),children:u[d(401,"TOgP")](_0x3599c0,Canvas,{style:P,children:_0x45a852(Group,{transform:[h,L],children:[_0x3599c0(Path,{path:O,style:d(596,"lUpR"),strokeWidth:ARROW_SW+1,strokeCap:"round",strokeJoin:u[d(278,"x2Jt")],children:_0x3599c0(LinearGradient,E)}),_0x3599c0(Path,{path:k,children:_0x3599c0(LinearGradient,D)})]})})})});FlyingArrow[_0x24d6fd(492,"sBkC")]=_0x24d6fd(375,")vZE");const BlockedArrow=_0x189210[_0x24d6fd(265,"JBEo")](({item:t,onDone:o,boardOffset:e,rootSize:n})=>{const W=_0x24d6fd,r={vgJRL:function(t,o){return t/o},WExRv:function(t,o){return t>=o},erWGR:function(t,o){return t(o)},rXTdn:function(t,o){return t(o)},PpdtB:function(t,o,e){return t(o,e)},wIUxJ:function(t,o,e){return t(o,e)},jFjmW:W(312,"sBkC"),DXnBm:function(t,o){return t+o}},d=t[W(371,"FToe")],{path:u,headPath:i}=r[W(543,"G^%4")](useMemo,()=>buildArrowSkiaPath(d.waypoints,d.exitDir),[d]),a={tx:0};a[W(394,"tuHj")]=1;const[{tx:_,opacity:f},s]=r[W(526,"FToe")](useState,a),x=useRef(Date[W(402,"px[Y")]()),R=r[W(428,"pLpJ")](useRef,!1);r.PpdtB(useEffect,()=>{const e={wQjTZ:function(t,o){return t+o},VEuWE:function(t,o){return t-o},SmeBL:function(t,o){return t/o},pLRGf:function(t,o){return t/o},tVNPC:function(t,o){return t*o},bUbBo:function(t,o){return t+o},KYeDh:function(t,o){return r.vgJRL(t,o)},XPAYP:function(t,o){return t*o},btAqX:function(t,o){return t(o)},kYKSE:function(t,o){return r[_0x524b(536,"pLpJ")](t,o)},HxPxA:function(t,o){return r[_0x524b(370,"#A4P")](t,o)}};let n=0;const d=()=>{const W=_0x524b,r=Date[W(273,"Yv])")]()-x[W(438,"px[Y")],u=Math[W(300,"Y5PL")](1,r/_0xfa06fb.BLOCK_DURATION),i=Math[W(534,"Qwt(")](6*e[W(276,"FToe")](u,Math.PI))*(1-u)*5,a=u<.6?1:Math.max(0,e[W(263,"k*%%")](1,e.VEuWE(u,.6)/.4)),_={};if(_.tx=i,_.opacity=a,e[W(448,"tuHj")](s,_),e[W(574,"R(Oi")](u,1)){if(W(572,")&)O")===W(442,"0VPE"))return void(!R.current&&(R.current=!0,o(t[W(389,"kM4S")])));{const t=_0x48495a[_0x2a0737-1],o=_0x322be5[_0x38e501],e=_0x5e5075[ydDpYq[W(364,"vP^p")](_0x4d6e81,1)],n=t[0]-o[0],r=t[1]-o[1],d=ydDpYq.VEuWE(e[0],o[0]),u=e[1]-o[1],i=_0x103e5e[W(262,"0VPE")](n*n+r*r),a=_0x1d7e0e[W(400,"R&dn")](ydDpYq[W(589,"TOgP")](d*d,u*u)),_=_0x1aae38.min(_0x4f6934,ydDpYq[W(551,"L)Uq")](i,2),ydDpYq.pLRGf(a,2)),f=o[0]+ydDpYq.tVNPC(ydDpYq[W(406,"0gMH")](n,i),_),s=ydDpYq.bUbBo(o[1],r/i*_),x=o[0]+ydDpYq[W(215,"Yv])")](d/a,_),R=o[1]+ydDpYq[W(576,"(xO0")](ydDpYq[W(524,"Qwt(")](u,a),_);_0x39ef4a[W(604,"UK^F")](f,s),_0x1b52d4.quadTo(o[0],o[1],x,R)}}n=e[W(562,"DF3A")](requestAnimationFrame,d)};return n=r[W(462,"Qwt(")](requestAnimationFrame,d),()=>cancelAnimationFrame(n)},[]);const C=n.w||SCREEN[W(285,"FC97")],O=n.h||SCREEN.height,k=useMemo(()=>({width:C,height:O}),[C,O]),S={};S[W(283,"DmIY")]=f;const l=r[W(523,"NgjA")](useMemo,()=>[StyleSheet[W(319,"DmIY")],S],[f]),A={};A.path=u,A[W(531,"R(Oi")]=W(404,"R(Oi"),A[W(231,"kM4S")]=ARROW_SW+1,A[W(379,"vP^p")]=W(583,"FToe"),A[W(242,"TlRU")]=W(547,"TlRU"),A[W(345,"TOgP")]=ARROW_BLOCKED_COLOR;const m={};return m[W(466,")&)O")]=i,m[W(387,"kM4S")]=ARROW_BLOCKED_COLOR,_0x3599c0(View,{style:l,pointerEvents:r[W(505,"NgjA")],children:_0x3599c0(Canvas,{style:k,children:_0x45a852(Group,{transform:[{translateX:r[W(528,"cn^u")](e.x,_)},{translateY:e.y}],children:[r.PpdtB(_0x3599c0,Path,A),_0x3599c0(Path,m)]})})})});BlockedArrow[_0x24d6fd(507,"4qU^")]=_0x24d6fd(493,"0gMH");const OverlayLayer=forwardRef(({boardOffset:t,rootSize:o},e)=>{const n=_0x24d6fd,W={ZZAvI:function(t){return t()},YrGcn:function(t,o){return t(o)},RMXEZ:function(t,o,e){return t(o,e)}},r=useRef([]),d=W.YrGcn(useRef,0),[,u]=W[n(587,"FC97")](useReducer,t=>t+1,0),i=useCallback(t=>{const o=n;r[o(391,"#428")]=r[o(391,"#428")][o(467,"(xO0")](e=>e[o(230,"W6h$")]!==t),u()},[]);useImperativeHandle(e,()=>({addFly:(t,o,e,i)=>{const a=n,_={};_.key=d[a(560,"yCUc")]++,_[a(470,"FC97")]="fly",_[a(241,"z1]F")]=t,_.arrow=o,_[a(441,"lSOg")]=e,_[a(380,"R&dn")]=i,r.current=[...r[a(495,"TlRU")],_],W[a(377,"px[Y")](u)},addBlock:(t,o,e,i)=>{const a=n,_={};_.key=d[a(420,"Yv])")]++,_[a(363,"DF3A")]="block",_[a(486,")vZE")]=t,_[a(307,"R(Oi")]=o,_.row=e,_[a(236,"px[Y")]=i,r.current=[...r[a(420,"Yv])")],_],W.ZZAvI(u)},clear:()=>{r[n(329,")vZE")]=[],u()}}),[]);const a=r[n(603,"sBkC")];return _0x3599c0(View,{style:StyleSheet[n(369,"Pgd9")],pointerEvents:n(223,"#A4P"),children:a[n(429,"52oj")](e=>e[n(566,"FToe")]===n(498,"TOgP")?_0x3599c0(FlyingArrow,{item:e,onDone:i,boardOffset:t,rootSize:o},e[n(252,"JBEo")]):_0x3599c0(BlockedArrow,{item:e,onDone:i,boardOffset:t,rootSize:o},e.key))})});OverlayLayer[_0x24d6fd(432,"tuHj")]=_0x24d6fd(320,"TOgP");export const ArrowsGrid=_0x189210[_0x24d6fd(488,"yCUc")](({soundEnabledRef:t,hapticEnabledRef:o})=>{const e="UK^F",n=_0x24d6fd,W={Bienh:function(t,o){return t===o},tZgfG:n(243,")vZE"),GIyMQ:function(t,o,e){return t(o,e)},vNYWT:function(t,o){return t-o},PLbHz:function(t,o){return t<o},qkaka:function(t,o){return t>=o},FBJiw:function(t,o){return t!==o},yBhNf:function(t,o){return t!==o},dytDm:function(t,o){return t(o)},DBNNO:function(t,o,e){return t(o,e)},iPxjk:function(t,o,e){return t(o,e)}},r=useRef(!1),d=W.dytDm(useRef,null),u=useSharedValue(1);useEffect(()=>{const t=n;r[t(560,"yCUc")]=useArrowsStore.getState()[t(356,"x2Jt")];const o=useArrowsStore.subscribe(o=>o[t(335,"Pgd9")],o=>{const e=t;r.current=o,o||d.current?.[e(537,"Qwt(")]()}),i=useArrowsStore[t(474,"DF3A")](t=>t.isCompleted,o=>{const n=t;if(o)if(W[n(494,"DF3A")](W.tZgfG,n(549,"kM4S"))){const t={};t.key=_0x256a47[n(344,"Jcwq")]++,t[n(598,"NgjA")]="block",t[n(358,"NgjA")]=_0x8de51c,t[n(489,"uLC%")]=_0x2281d8,t.row=_0x4afd7a,t.col=_0x4c6740,_0x9d6b43[n(344,"Jcwq")]=[..._0x5e679d[n(418,"Pgd9")],t],CFxCFO[n(340,"#428")](_0x36a3ca)}else u.value=W[n(519,e)](withSequence,withTiming(_0xfa06fb[n(270,"Qwt(")],{duration:200,easing:Easing[n(341,"x2Jt")](Easing[n(321,"Yv])")])}),withTiming(1,{duration:200,easing:Easing[n(530,"L)Uq")](Easing[n(444,e)])}))});return()=>{o(),i()}},[u]);const i=W.dytDm(useSharedValue,0);useEffect(()=>{const t=n;i[t(460,"$]fc")]=W[t(374,"tuHj")](withTiming,1,{duration:350,easing:Easing[t(214,"(6o&")](Easing[t(396,"n^L0")])})},[i]);const a=useAnimatedStyle(()=>({opacity:i[n(513,"W6h$")],transform:[{scale:u.value*(.94+.06*i[n(465,"(6o&")])}]})),_=useRef((e,u)=>{const i=n;if(!r[i(291,"Qwt(")])return;const a=e-WELL_X,_=W[i(351,")vZE")](u,WELL_Y);if(a<-HIT_MARGIN||W[i(295,"NgjA")](_,-HIT_MARGIN))return;const f=Math[i(440,"LO$@")]((a+HIT_MARGIN)/CELL_STRIDE),s=Math[i(216,"TOgP")]((_+HIT_MARGIN)/CELL_STRIDE);if(s<0||W[i(395,"ubq6")](s,GRID_ROWS)||f<0||f>=GRID_COLS)return;const x=useArrowsStore.getState(),R=s*GRID_COLS+f,C=x[i(417,"yCUc")][R];let O;if(null!==C&&W.FBJiw(C,void 0)){if(W[i(479,"n^L0")]("wjJLh","wjJLh"))return void(!_0x30f16f[i(344,"Jcwq")]&&(_0x37a981[i(291,"Qwt(")]=!0,_0x2ec2e4(_0x2ce16c[i(247,"52oj")])));{const t=x[i(443,"W6h$")][i(509,"W6h$")](t=>t.id===C);if(t){const o={};o.id=t.id,o[i(422,"G^%4")]=[...t.waypoints],o[i(511,"n^L0")]=t[i(405,"4qU^")],O=o}}}const k=x[i(570,"DmIY")](s,f);k.removed&&O?(d[i(512,"(6o&")]?.[i(580,"G^%4")](k.arrowId,O,s,f),playSound(GAME_SOUNDS[i(279,")&)O")][i(290,"FC97")],t[i(280,"DmIY")]),playHaptic(HapticType[i(430,"TlRU")],o[i(357,"vP^p")])):k[i(306,"lUpR")]&&O&&(d[i(455,"!gmM")]?.[i(500,"uLC%")](k.arrowId,O,s,f),playSound(GAME_SOUNDS[i(516,"ubq6")][i(408,"R&dn")],t[i(384,"ubq6")]),playHaptic(HapticType.WARNING,o[i(308,"tuHj")]))}),f=useMemo(()=>Gesture[n(220,"Yv])")]().onEnd(t=>{runOnJS(_[n(384,"ubq6")])(t.x,t.y)}),[]),s={};s[n(383,"px[Y")]=CANVAS_W,s[n(585,"Y5PL")]=CANVAS_H;const x=useRef([styles.container,s,a]).current,[R,C]=useState({w:0,h:0}),O=useCallback(t=>{const o=n,{width:e,height:r}=t[o(477,"uLC%")][o(452,")&)O")];W[o(485,"Jcwq")](C,t=>t.w===e&&t.h===r?t:{w:e,h:r})},[]),k=useMemo(()=>({x:Math.max(0,(R.w-CANVAS_W)/2),y:Math[n(336,"W6h$")](0,(R.h-CANVAS_H)/2)}),[R]),S={};return S.ref=d,S[n(416,"TlRU")]=k,S[n(222,"lSOg")]=R,_0x45a852(View,{style:styles[n(245,"ubq6")],onLayout:O,children:[W[n(515,"L)Uq")](_0x3599c0,GestureDetector,{gesture:f,children:_0x3599c0(_0x5421a8[n(601,"0VPE")],{style:x,children:_0x3599c0(ArrowsCanvas,{})})}),W.iPxjk(_0x3599c0,OverlayLayer,S)]})});const _0x3c4712={};_0x3c4712.position=_0x24d6fd(275,"W6h$"),_0x3c4712[_0x24d6fd(533,"0VPE")]=0,_0x3c4712[_0x24d6fd(301,"DF3A")]=0,_0x3c4712[_0x24d6fd(274,"z1]F")]=CANVAS_W,_0x3c4712[_0x24d6fd(501,"R&dn")]=CANVAS_H;const _0x5d7f03={};_0x5d7f03[_0x24d6fd(264,"FC97")]=_0x3c4712;const canvasStyles=StyleSheet.create(_0x5d7f03),_0x4954fa={};function _0x524b(t,o){t-=214;const e=_0x52c3();let n=e[t];if(void 0===_0x524b.BvXbPS){const t=function(t,o){let e,n,W=[],r=0,d="";for(t=function(t){let o="",e="";for(let e,n,W=0,r=0;n=t.charAt(r++);~n&&(e=W%4?64*e+n:n,W++%4)?o+=String.fromCharCode(255&e>>(-2*W&6)):0)n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(n);for(let t=0,n=o.length;t<n;t++)e+="%"+("00"+o.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)}(t),n=0;n<256;n++)W[n]=n;for(n=0;n<256;n++)r=(r+W[n]+o.charCodeAt(n%o.length))%256,e=W[n],W[n]=W[r],W[r]=e;n=0,r=0;for(let o=0;o<t.length;o++)n=(n+1)%256,r=(r+W[n])%256,e=W[n],W[n]=W[r],W[r]=e,d+=String.fromCharCode(t.charCodeAt(o)^W[(W[n]+W[r])%256]);return d};_0x524b.lEZqUL=t,_0x524b.ApiHtG={},_0x524b.BvXbPS=!0}const W=e[0];_0x524b.ZCOXGB!==W&&(_0x524b.ApiHtG={},_0x524b.ZCOXGB=W);const r=_0x524b.ApiHtG[t];return void 0===r?(void 0===_0x524b.QBjrFz&&(_0x524b.QBjrFz=!0),n=_0x524b.lEZqUL(n,o),_0x524b.ApiHtG[t]=n):n=r,n}function _0x52c3(){const t=["yCoCq3XB","W4/dHCobW4jyAa","WRtdImkKWPxdOq","W4tcRmkMW7pcTmkpW4yqwYddSa","gK7cVSkIgW0","W6CdvXVdMmkQ","ymoVymkyySoJ","oK1AesVdKSoc","nSoidbXi","dCoeftDk","WOJdKLChWQy","c8odW7uFE8kM","BmosWOzUW7NcLxxdLq","WQldK8ohWOFdMW","WP4JWQFcLCoq","yd3cJCkFWOW","s28uW5yWBa","e8oodJ5ACq","rSolW5We","W75MW7ddOCkQdmo9WOW5WQW5kbW","omkzWO5zWR1sW7tcJr8tW6aKAG","WQFcSSkzyCk+pZbiWR4QWPZcMMq","WR5cW6ddPmkuFq","sdDXiJ9s","WQxcISoWAW","FJZcJCowWO0","sSoyW4uoW74zWOpcVrWJ","WPpdN8oyWOK","WPBcLc5HkW","WPhdT8oqW6ZcQt5g","fHyyW4CtW5a","W68usaRdImkSW6C","fe7cPmkOpre","W7WpWQtcVCk2CHhcKeVcMq","yaFcGCkCWPe","WRZcJJi","W6uwW7bHW6q","CqdcImkKWQq","WOXYW7NdUCkr","rgaBW5GK","WOddOCo4W7xcOa","W4uHW44","aCojW7Gbx8k3ra","WQBcG8otW7hcVq7dSCk4","FeKOW4W","WOhcSGfmeG","hmoEeITlD8oh","WOxcLCksFmkj","WQbnyd9e","WQRdOcVcLa","WQdcJmoP","m0Dh","fSoez8oBw8kjoCkwWOG9W4W","WP/dGSoyWR8I","WR0IWRFcUG","sb/cTSo0WQOCet3dRCkoWRldUmk4vW","htPkWPnMkgFcRblcHmoGWOe","tgRcMG","v8owDwG","W6T0bCkhW61n","E8oFW4qj","WPldK00ZWRqS","WRbFWPhdKdj9zG","vmodC2/cRCkFFxuFlq","r8o6W7qdW5a","WRNdJSoqW6RcVa","WOJdRJdcIa","W6C5WPDBW5C","BCkXW4C","iwrIns9UC2OkqLZcVG","F8kunCkzoq","WQpdSCkgWQRdKa","ASowAMu","WO1ACW","WRJdIeKcWPe","x2mEW5y9","FCopExvv","WPJdHXZcJXi","x3dcHxy","ASo0AK/cNG","cCotW68mESk0u8kJWQf5WPJdHCkzWQ4","W7yYW59vW7tcGLCqjW","WQFdRmklWQhdP2hcIW","WRBdH8opWOO","WRlcUmk+Emk+","WPBdQ8oZWQ7dGSkIW6yduqa","WOTAzWq","WPFdRSkSWOJdHG","W6X4gmkdW6rEACoeWP0jW5G","DapcI8kKWQtcNq","W4eHW4Pz","ubKCvfqzqfKgFKxcH2ZdPCktWOu","WQSIWQJcVSoyxmkMWQ8GWRi","neDqdXpdNW","W78VW4K","WQzeWOFdIY0","oubnbWVdGSoywG","j8o7iqb+","amofW6O","WRpdNhtcNmk1","nNpcMSkigde","AsBcI8ofWOqTiq","WQFdRu8EWOG","W6uAraZdQSkPW7RdJa","zspcMmouWOG3la","BSkCW6VdV3C","WOFdT8o7WRBdQq","WQJdRJVcIdG","mCkpWPbB","WONdSc3cIa","wwjJiCkb","WRpdKSoAWOpdKW","CcmJDN0Yya","WR/cNIHJmHe","q28d","fmohW6uiFmk7rmkuWR0","WP7cR8o8r8oi","WRpdIwZcGSkw","l2BcNCk3oa","qConW485","v8ocCMG","dSopW7i","W4/dICojW5m","WQlcJ8oxs8oQ","WRFdMu8tWOy","WRddHSo0W63cTq","W5VdKWOccq","WQvxW7BdISknAGVcVW","A8o3EKbP","tComE8oyh8o/yW","WRJdI8oMWOZdTq","xSomrgPbW7jgW4m","u8ksW7BdHei","WPZdRComW7S","n8oLW5PIWOm","W7KUCt3dNq","WPn+W4G4WPepW4qpW4tdHSoWiG","W5asW6X+W7dcVNmJf3xdLCoeWO7cOmobWRO","g8oceYLcEmokfSkyW7JdOG","vqaOuua","AZhcISoyWO02iq3dUCkMWORdNq","wbRcGSk5WRRcJ0XMdSoYWPdcVq","W7i1W5XyW4q","iwfNrMWZF1KZ","WPScWRxcTmo9","y0H6f8ka","EMLOi8kuWOHwkmoUuq","cCkJWRPQW6/cNKtdJCks","m8o8cbfM","owldJCkeW5bYyd3dH8kIWOVdMSku","uSozW4KJW7tcU8or","WQSntmksWQi","WP/cMCotW5pcHa","W43dLGCrd2CWhwO","xCo/W4yhW68","yCkpimkrcW","WQqKWPtcVSo6rmkHWRCM","nung","qSoCz8ondSo5","CuKQ","r8o5BSkkFW","W4ejCqJdQq","WQ7dK20","zb3cLCk/","WPdcO8oRW4S","WP3dJ1eKWOuTW6a","DapcI8kKWQq","CCk1W4FdMKPPAeiD","WQBcQmooqSob","bSoEW7umv8k7wa","tSo0yLSMh8osWRRdPmk1BIad","EdZcJG","r8oIW6igW4u","rMuuW4C","lSohW7CD","k8olW7OovG","qbn5br8","WQJdLuNcGmktWQjNd8oI","W4i+WO99W4nxW6u","WQ/cKCoSymofrIW","ze4YW7JdIG","W6vWgW","W7n7thrGWRFdJq","W5xdHmo9gCkYbXPcWRO2","W4JdHCobW4m","W5yAWPDBW7W","aSokW7uFFCkBxSkfWQnK","WR8Zw8k0WPm","WOhdUCoQWRa","p0DkoXpdLSoywG","WQW1WRFcVCo3smk8WRWhWQG4lW","D1qrW67dNG","hSozeJzz","W6n0eG","WPpdSCoZ","ACoWCmoNkW","D8oaW4i4W7/cSSoKW6G+cui","W4VdIa8sjfOX","Dv/cT2GP","WPldKNRcQ8k5","W5i/WO9GW41CW5i7W7a","dSolW74","s8oEB2xcKSkv","h8kUWQbCW4K","wgZcKMOi","WPNdTc3cJJVcNCkc","D8k+a8ke","rMun","bSoFECoBqG","dmocdG","dSovBa","vYPcdCoCCG","W6KzuWZdQCkRW6e","t8osygtcLSkBq3i","W7vNthu","qCojAmoje8oLBG","WOVdQJ7cLZ8","Bw5Rjmke","e2ZcRSkfoW","WQOismklWRhcImk3W7DMWOpdN8o1","WRNcGSoNF8oDzIBcGsm","hSovW6b6","rIRcQSkUWRu","qwRcGq","WRaaxmkPWOi","ECoXEKb1W5a","WO0/ymkTWRhcVSkn","Fmo3Cu4e","BSoHtCkpyG","l8oOW51nWQ9rBW","WRqQt1XlWOpdKmky","z8oAuKyx","WOZcMmkIsmktgq","j8oPW4GNqCktBSkPWPTe","Cv8oW5hdQG","pSoqW7fjWQ8","WOJcLmkLsSkVaG","rCoyyhlcOSk1uxWfjSo6","wmkEkCk8kNZcJ09GWPa1W6/cQW","WQ4IWRBcOmo+u8k8","W6ddVYGI","W7i1W4XdW4lcMei","W6WtWRX9W7W","DSoQFCkUyCoZWOldN8kO","ew3cLeLUWQm","FmoWtSoIlG","WOPAzaXbWOC","WQe+WQRcT8opuG","yCoAwW","W61Jpmk0W5O","A8k1W44","A8o+rKJcKG","mmkdWPG","sSoqESoAfSoWBIRdICo3W5S","WQVcM8o3E8o2zJO","FIhcMmozWPiVnbZdMSkx","zCk7W5ldHvC","W7zMxM92","d8odW7iFz8k6","thdcHgWfWPqB","EdZcJmozWOu","W4RdLGezeW","WQBcG8ol","WQNdUSolWPaG","ovbmbXddHa","gqOuW4SK","DSkHW43dGG","W4WIWPm","s8obymoEpSo4zq","tmonsmoBiG","B8oRBa","u1q0W4BdU8oEjmkzuSoLySoR","zCk4W5hdMua","g0dcSCkOoHy","WQ3dK8ouWPK/vW","W6ZdTSo/W4XB","W6zNtw9NWRxdNa","W5hdG8oy","shFcL3OLWPql","W6TKbSk/W61ryW","WQ3dV8ks","xMSwW5CW","kK1rha","yq4fyhy","zCkHW4ZdMebUCG","F8opwMuh","WQxcMIPXiW","b0dcVmkV","WQBdT8kgWRhdH30","WPZdLuCVWQWMW7O","WQ/cPmkCxmk4","WPVdT8oXWQy","z8owE3v5","WONcNmk7","l8ofFCoGyG","W5ddMConW5rVDxZdOmoA","WQFdMmknWOJdJG","AwLOkCk0WPbwlSo/","zColW4miW78pWOhcUraPW4e","B2L7iSkq","D1LHa8kb","yKCYW4e","WRpdQSklWRFdLG","W4rulCkN","WPBcNmkFWPy/muBdU8oEF3DP","a8olW6u","WPRdG1CsWO0","umoEW4K+W6BcNmob","pSkjedHvCSoLWOhdO8kdyqq","vSkEkmk/","ASoyW4uoW74","e2dcM8k3ba","W4fDAfm","WPBdQ8orW67cOdflW5H4W4j2","tSoxtgOjjCoMWRRdKSkdsbK","W6hdHCokW4LK","rmocC3lcO8kuqW","xGtcKSkiWPS","WPNdTdlcSdVcNCkf","CqdcNG","W7KeWQVcUSokvcRcRwxcKHC","ASooW5mJW6ufWQFcPa","bCobW7TPWOXG","WOxdIwNcPCk1","sCkummk+gG","wh8jW4O","WQtcPCo0ySoL","A8k9W5a","WOWUESkPWPNcTSkgW7XoWQNdSG","B8o9ySoyfa","pKTqda","W4qLWPK","A2nGoCkJWO1f","WRdcJJr2iXFdPG","lKnshqi","o8kgWPnx","gCkOWRHHW78","WRVdKW3cSWNcOa","wCk9bSkJmG","Cmo+W6KEW4BcNCoGW5SioxLnWOu","ptypW68w","W5KeWOTBW4e","W6tdMbyFbW","t8kumCkXeG","WRNcQSolD8o4","wa80qha","gZLdWPPHjGtcLXNcK8o4WPaB","dCoZnd1a","WPldHSo9WO3dKW","yazXbqy","E8oEW4q","nmkeWRLAW4q","ECoXCun7","r3OBW4e8AK0","WRhdMCon","yd8/","WQ/cQ8oMy8oE","W59ue8kHW74","CdO0zwO","W7WVW4HuW7pcMq","txitW5yrD0y","W4hdMXy","zCk7W5ddNKrPAfmC","aCoiW5TkWRW","uCo7ymkQta","WP7cMI1H","sdTXib9v","wsbie8oKF0a","vCoyDg7cOG","WPONWOlcN8o/","mSo+wCoMFG","W7ZdKSkQzmoFxaVcKYe","dSkhWPnTW7W","W6CkWQ9xW7e","WR/cKIHHeHy","fCo1r8o7uG","WOSYE8kRWPdcUCkl","WOFcKSkN","F8ofW4maW6u","wtVcVSouWRm","ohVcMmkSga","wmkon8kIg33cUG","WRtdKCoiWOW","W6VdLmo/W59n","DvqNW43dN8ozbSkksa","WRhdK2RcHa","Ax59","fmocdJ0","FhXRlmopW5CdCmkRoCkAWODCjmoVW4FdNmkyW6BdLa","tmkXnmkknq","grOFW44","FIhcGmoLWOqUoH7dMSkoWPtdG8kyBG","EIBcISoF","g23cVSkPoa","nw7cICkvcZ0muCk+pSkD"];return(_0x52c3=function(){return t})()}_0x4954fa[_0x24d6fd(514,"L)Uq")]=1,_0x4954fa[_0x24d6fd(259,"Y5PL")]=_0x24d6fd(590,"$]fc"),_0x4954fa[_0x24d6fd(365,"Y5PL")]="center",_0x4954fa[_0x24d6fd(282,"#428")]=_0x24d6fd(361,"!gmM");const _0x525384={};_0x525384[_0x24d6fd(332,"LO$@")]=_0x24d6fd(238,"pLpJ");const _0x970179={};_0x970179[_0x24d6fd(461,"W6h$")]=_0x4954fa,_0x970179[_0x24d6fd(541,"52oj")]=_0x525384;const styles=StyleSheet.create(_0x970179);ArrowsGrid[_0x24d6fd(317,"FToe")]=_0x24d6fd(600,"uLC%");
@@ -1 +0,0 @@
1
- "use strict";const _0x267804=_0x1e43;!function(){const e=_0x1e43,o=_0x5edf();for(;;)try{if(738135==-parseInt(e(370,"&7$i"))/1*(-parseInt(e(373,"TJwH"))/2)+parseInt(e(366,"&7$i"))/3*(-parseInt(e(355,"^D&9"))/4)+-parseInt(e(387,"mO%K"))/5*(parseInt(e(350,"O37o"))/6)+-parseInt(e(380,"J0j2"))/7*(parseInt(e(363,"^8c%"))/8)+parseInt(e(371,"^D&9"))/9+-parseInt(e(359,"2mvb"))/10*(parseInt(e(382,"6B$9"))/11)+parseInt(e(386,"Ocov"))/12*(parseInt(e(364,"kvHm"))/13))break;o.push(o.shift())}catch(e){o.push(o.shift())}}();import{c as _0x39a7dc}from"react/compiler-runtime";function _0x1e43(e,o){e-=348;const t=_0x5edf();let r=t[e];if(void 0===_0x1e43.QgIwab){const e=function(e,o){let t,r,n=[],W=0,s="";for(e=function(e){let o="",t="";for(let t,r,n=0,W=0;r=e.charAt(W++);~r&&(t=n%4?64*t+r:r,n++%4)?o+=String.fromCharCode(255&t>>(-2*n&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let e=0,r=o.length;e<r;e++)t+="%"+("00"+o.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(t)}(e),r=0;r<256;r++)n[r]=r;for(r=0;r<256;r++)W=(W+n[r]+o.charCodeAt(r%o.length))%256,t=n[r],n[r]=n[W],n[W]=t;r=0,W=0;for(let o=0;o<e.length;o++)r=(r+1)%256,W=(W+n[r])%256,t=n[r],n[r]=n[W],n[W]=t,s+=String.fromCharCode(e.charCodeAt(o)^n[(n[r]+n[W])%256]);return s};_0x1e43.muMJhj=e,_0x1e43.tCqkAY={},_0x1e43.QgIwab=!0}const n=t[0];_0x1e43.cZenql!==n&&(_0x1e43.tCqkAY={},_0x1e43.cZenql=n);const W=_0x1e43.tCqkAY[e];return void 0===W?(void 0===_0x1e43.OkARSh&&(_0x1e43.OkARSh=!0),r=_0x1e43.muMJhj(r,o),_0x1e43.tCqkAY[e]=r):r=W,r}import _0x3eee46 from"react";function _0x5edf(){const e=["W6XDA8oTWQS","dCocWQr3W79OqSkJk8oQWO7cGCkJ","WQqfhftcPCoNW4VcKdldI8kzWRhdQG","tKP7vflcR2tdR09ezKK","WRD0d8oWW5m","W67dTSkygMXedsFdUhrjuSoK","AbBdOeuCW71An8oZW58RWRe","bWBcRZG","zheJoCkcW6RdUt9ot8kabCof","W69Lh8oQWR91W4VcLG","maBcQgHwWQhdHGe","WP8Qb8o4ea","ArtcLZ5uWQDpka","wvZcVwvZ","mcn4AmoD","WPNdQYCAWO8","W5ldGYBdGMq","y8kzWObHdCkiW7RcUSolhmkYW4K","pYPZyCovWQNcRIC","gGzCt8o9","cCkrW4NcPSo+","xmoGaSozpLJcKtO","ngVcVXnO","lNKrWRpcMmoEaGO","WQ7cV8kVW7KvWRO","WPu8dSkuW7RcVqPSW50ke8ol","WRFcPCk/WRpdRf8PEW","A8kDW7K0WQ8","WPJcVhnxWP3cRmolW5S","WOWeWOxdHaS2W6SWzv0L","WPaCW4xcQfG","WRxdRcaZWOO","WPNcUZabW67cISo6W6DBW4pdMq","yCkDWObSdmkiWQxcKCoxjmkYW7zP","ymkCW7KTBmovW7RcSa","dmoaW5GXWPC2hSkm","zmklnudcL1tcL200W4m","W6DDAmoUWP/dLG","uHqEtSoAW70","W5CSd8oSW5dcN2hdNG","cHKIeG8","W6ZdVZVdPN8","W7GAW6moW5G7W5BdIG","u8oRuG","W69JBSkrW7CVWRRcMGVdTLddJ8kZ","WOtdHqjCjW"];return(_0x5edf=function(){return e})()}import{View}from"react-native";import{useTimeLeft,useArrowsRemaining,useScore}from"../ArrowsStore.js";import{ScoreBoardContainer,ScoreValue,ScoreTimer,ScoreColumn,scoreBoardStyles as _0x5c690d}from"../../../helpers/index.js";import{jsx as _0x402a0e,jsxs as _0x4b6c89}from"react/jsx-runtime";export const ScoreBoard=_0x3eee46[_0x267804(391,"#Y^*")](e=>{const o="oCDe",t="^8c%",r="[U#o",n=_0x267804,W={MLqMo:function(e,o){return e===o},XiqyB:function(e){return e()},IqDdX:function(e,o){return e!==o},Uinph:function(e,o){return e!==o},FDFBL:n(360,"O37o"),aKvdj:function(e,o,t){return e(o,t)}},s=_0x39a7dc(13),{offset:a}=e,d=W[n(354,o)](a,void 0)?0:a,i=W[n(388,"w48K")](useScore),x=useArrowsRemaining(),f=W[n(351,"Xj]x")](useTimeLeft);let u,m,_,l,S;if(W.IqDdX(s[0],i))if("JRQLc"!==n(384,t))_0x32b207=_0x419d49[3];else{const e={};e[n(358,"l%Yz")]=i,u=_0x402a0e(ScoreValue,e),s[0]=i,s[1]=u}else u=s[1];if(s[2]!==x){const e={};e.label=n(362,"lglW"),e[n(349,"Mc9i")]=x,m=_0x402a0e(ScoreColumn,e),s[2]=x,s[3]=m}else m=s[3];if(s[4]!==f){const e={};e.seconds=f,_=_0x402a0e(ScoreTimer,e),s[4]=f,s[5]=_}else _=s[5];if(s[6]!==u||W[n(368,"Lrdr")](s[7],m)||s[8]!==_){const e="4|2|3|0|1"[n(379,o)]("|");let t=0;for(;;){switch(e[t++]){case"0":s[8]=_;continue;case"1":s[9]=l;continue;case"2":s[6]=u;continue;case"3":s[7]=m;continue;case"4":const e={};e.style=_0x5c690d[n(381,"!09K")],e.children=[u,m,_],l=_0x4b6c89(View,e);continue}break}}else l=s[9];if(s[10]!==d||W[n(365,"TJwH")](s[11],l))if(W[n(369,"UT(y")](n(383,"!U^1"),W[n(357,r)])){const e={};e[n(352,r)]=n(375,t),e[n(378,"mO%K")]=_0x305bfd,_0x60cf07=_0x1273a8(_0x1fbf69,e),_0x2b1188[2]=_0x1aba8f,_0x12221f[3]=_0x31823c}else{const e={};e[n(376,"SsCq")]=d,e[n(356,"[U#o")]=l,S=W[n(353,"UT(y")](_0x402a0e,ScoreBoardContainer,e),s[10]=d,s[11]=l,s[12]=S}else S=s[12];return S});ScoreBoard[_0x267804(367,"#nrH")]=_0x267804(374,"VuJH");
@@ -1 +0,0 @@
1
- "use strict";function _0x5e51(){const t=["W6/dTbxcVuvIWRFdPclcRCop","yI88WQzy","ht5P","jv95A8oIWObYtuFdRLSNWRyFaq","qt4hW4KhWPDz","WPi2rSkkWONdLW","W4pcGs3dKNO","mmkfshmdW7xcPmoD","adnUfJa","WQH7DaZcIs8TW5pdLZ0LsW","jJldJmoBWQL8umo9E8k/F8k6WO8A","WRHiaG","WOm7tCkpWPtdU8oAW7xcQ8kkx8oHlwi4rmk9ta","smoxW5ZdPaS","W4r3WRv5WPXwq8kKWOZcMWVdQCo/kCoZ","W5KBWRGzWO/dULldUmkDwulcUCkiWQPT","WO/cM8ooW7FcUs/cJMm/EgNdJ8kp","vSoVWR7dMSkOW4VcISk2WOSiuMi","WPyhFhj6","zZShWP9x","ifTH","WOCuW6b0vG","WOVdMe8KW4C6y03dVcWz","W5i1WPmZWOG","W6fDEW","lSkyWQ/dOmkLWRK+FSkUW4KVmXbaWQOqW6rmpCoauSoRWPrV","CSkfzHrDWOTjreeQWOG3","WRr2wqNcNW","tmo/W6NdVSki","dXBcIcr7bsGU","W5dcPZpdP2VdLWTfW7KelSoc","mCkcxwasW7JcNCoss0OFW4VcTdldOW","WQJcVttdGM/cUwRcHa","BtNcQ1hdTG","psVdLmoMWRG","W5xcPZldRLddKqHtW5KZlq","CSkbBrnCWOqYxLyDWR0EAW","WOtcKmofWOW","xb91W4tdGa","W6xdHmkkbmoTW6ddLCk5WRW7l8oY","eG8UW7/dQCkArv/dRJnlt8kaW6VdIIaq","jYJdQmoGWRX/qCoB","WRqkCGhdNvXRia","W704W6XHsG","BZfjaCoyiSk8","W6tdPJVcVKDV","W67dONpcMs3cU2pcNSogzmoh","w1SPWQCz","ysmUWQnjWRdcHcW","BSohW6NdUIi","umotW5xdTr3dLa8MWPj5sG","nSoqofCa","sGJcJN/dIHeTymorW4CtoG","W7hdKCkieCoPW6hdGCkVWQCkoCoysqK4","qSoOWQBcTeHGl8oRW6ZcL8oFW4VdISkpzcxdRMhdQW","kmo6ks/dNsZdImkc","WRnssZxcVW","WPVcU8kypGHSW4HCdmoWpmkZW7JcTq4","wKizWPey","AIJcRL/dQJentmoqW6SV","WQXRECkNkSkbWQar","aCk1W6tcJ8o9WONcP8kxWOyzyxu","W4KBWROrWO/dUa","WPjYCSkBfq","imkluh4yW7pcPCoaDvOC","W5lcNSk6WOrADrm","gConbbBdTXhdPq","WPdcOSoaW7RcNZldRdldGMre","W6qxtg8Hb8oipCklxHryWOS","rgq1W48CWQ1olW","uG9oW7tdH3u","WOG5WP7cHCkpW6JdHa","DdnjdmocoSkKsmkvyW","uCoIW5xcJmoyW442B8kBW481dq","EcJcSeFdRd0pwSodW6aGeSoEWO7cMeVcOsG","jCkLFCkhcCknWR8Xz8kZCHm","WQ5MEGRcLc4D","f0XqvSov","l8oFgeSwW4HbwM8XWQKz","W4VcGSkiWR9EEG","W5TOWQryWProvG","W7/dSaRcTf5mWRFdVH3cQCoDgr4niW","ESkQsSotWPRcGhTLWQKoWOddLW","WPZcPSojW7lcGW/dPYxdOMbv","a8k3W6JcG8oUWRZcOmkrWOuQChRcNmkbg8ocqIW","W5mLWPRcJmkpW7xdPW","W5D0WQbAWO95qmkMWOhcMHBdRSoakCo6W77cOG","WQ5LzmkQmCkf","WRVdOaG7C2hcNYifrSoOW4VdQG","W5BcTSk5WOb2","mmoWmG","W6ZdUviInxG","nSouoe0gW5v2sW","AYxcP1ldTXWcu8oUW6eMeCoSWORcKfpcOq","W6rAzdtdKfu","WPFcICotWOvz","WO3cUSkhoqbrW5jfdmoTgSkVW4VcOG14nmkqWOvBd8o+","d8kRW6ZcGCo1WONcTW","W5D3WQHzWPjUrSkMWOBcMJFdS8o/kCoZ","WRRdUgZcOKO","W642FSo3wwNcKCoA","WOFcHSoxWOHo","WQ8dCxvEW5/dGCk4W7BdHW3cOLrKeLNcISo7o8kb","W4hcNCkVWRfb","rSo/W4VdS8kQbtTYumktW6xcT8oht8ou","W5P3WRi","W7qTt8oQth3cOSoFuSk5FmkHCrW+","W4aMvmomxG","W78ttCo5xa","CSo5W4xdQmkZ","ySoCb8kCW7ddIdHiW7BdRHG","Cci0WQDCWQ3cGI1MlcpdVa","WPRcKWVdP1tcN0VcTCo6q8okCa","W6tdUvaGnxu","zYKXWQvEWRdcNZS","bsq4W47dNG","W5n9WRe","WR1GBSkmp8keWQmqWRiWWR95xSkNW4C","fGiMW7VdJ8kWr1FdVG56qa","W4z5WQTFWPjx","i8o6WQZcNmkpguHZW5eNWRG","sedcKXHN","W4JdJSksWQNdQxFdG1a","WRvled92sSki","WQpcT8ogWRzZ","wqTnW7BdP3qMW5tdTmkEW5tdSa","pCoZichdJatdKSksmuRcJ8kRrXpcHCkwW4bm","W7ddHmkjbCowW6q","W7JdVuWZkh7dHZT1vmk0W5RcU8omWOhdRc9J","WRDfbG","W4hcNCkVWRfbxXDppSoNhmkNj8kb","oCo6mqldNYNdKmkum0xcIa","WQ4gW7LMAG","fZmoW48bWPfTpSk1xSo7","W4a2W5LgAq","CY0XWQzsWRBcHrf4hZhdTbVdLXi","WQr5xqtcIbWpW5BdKWCRq8oHWP0","zX/cSgxdSq","weavWP0lf8ocdxNdL8oDW4m","WRhcMSk8cc55W61Up8oAbCkiW6NcMtXfpCkO","hceYW4WEWO5Mkq","WR0bW4PrCW","WOBdTMZcTqNcIvzuW5mzp8oJsq","WRZcOY7cVvHEWPtdTq","drpdHKy0aGeym8o+rW","W4KvWQauWPtdVfpdHCk+sfdcSSk+","W6ldPrJcSKn5WQa","W5OuWR0yWOhdOvxdHmkdALdcSq","fCk3WOJdKmkdWPu","WQvpfcX9w8kUmmk/AqjjWQK2WOO","WPFcICotWOvzW7JcRSookCkerNNdMCo+W64EWRK","W7NdPXJcV1LHWRJdOXxcKq","W4r3WRvVWPrxsG","WRKtW7DTAI9fW63dK8kaAmoyWOJcISk/WQRdK8oIC8k3","nmkpuh0uW7xcV8ok","vwhcTb5y","W43dG8kFWRtdR3RdOuG3teNdKCkuW5ii","CSosh8krW6VdJJLv","WR9ztrlcIW","i8oDmumx","crFdGei6xIWAe8oLvSkv","adlcSH/cGW","W4RdT8ktWQ7dMvpdQYddIKjIW6i","W4xdLCkeW5mDWO3dV8owhCkKxvddGa"];return(_0x5e51=function(){return t})()}const _0x5b79c9=_0x334c;function _0x334c(t,W){t-=409;const o=_0x5e51();let n=o[t];if(void 0===_0x334c.fpjDlv){const t=function(t,W){let o,n,e=[],i=0,d="";for(t=function(t){let W="",o="";for(let o,n,e=0,i=0;n=t.charAt(i++);~n&&(o=e%4?64*o+n:n,e++%4)?W+=String.fromCharCode(255&o>>(-2*e&6)):0)n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(n);for(let t=0,n=W.length;t<n;t++)o+="%"+("00"+W.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(o)}(t),n=0;n<256;n++)e[n]=n;for(n=0;n<256;n++)i=(i+e[n]+W.charCodeAt(n%W.length))%256,o=e[n],e[n]=e[i],e[i]=o;n=0,i=0;for(let W=0;W<t.length;W++)n=(n+1)%256,i=(i+e[n])%256,o=e[n],e[n]=e[i],e[i]=o,d+=String.fromCharCode(t.charCodeAt(W)^e[(e[n]+e[i])%256]);return d};_0x334c.ChntAt=t,_0x334c.OEIWSX={},_0x334c.fpjDlv=!0}const e=o[0];_0x334c.FQZyrV!==e&&(_0x334c.OEIWSX={},_0x334c.FQZyrV=e);const i=_0x334c.OEIWSX[t];return void 0===i?(void 0===_0x334c.tPkbCh&&(_0x334c.tPkbCh=!0),n=_0x334c.ChntAt(n,W),_0x334c.OEIWSX[t]=n):n=i,n}!function(){const t=_0x334c,W=_0x5e51();for(;;)try{if(302446==parseInt(t(451,"]ipf"))/1+parseInt(t(424,"(ltM"))/2+-parseInt(t(441,"zRU#"))/3*(parseInt(t(496,"WL5)"))/4)+parseInt(t(454,"#jKK"))/5*(parseInt(t(471,"2(iN"))/6)+-parseInt(t(498,"wmgM"))/7+-parseInt(t(568,"4Lb!"))/8*(-parseInt(t(507,"L^a8"))/9)+-parseInt(t(493,"&^]V"))/10)break;W.push(W.shift())}catch(t){W.push(W.shift())}}();import{BALLOON_BLASTER_GAME_CONFIG as _0x105349,BALLOON_BLASTER_ANIMATION_CONFIG as _0x84b5d3,BALLOON_BLASTER_COLORS as _0x5add0d,BALLOON_TYPES,BALLOON_SPECIAL_ITEMS as _0x532f9e}from"./BalloonBlasterConstants.js";import{Dimensions}from"react-native";import{clearGameInterval}from"../../helpers/GameTimer.js";const{width:width,height:height}=Dimensions[_0x5b79c9(445,"9&W7")]("window");export{_0x105349 as GAME_CONFIG,_0x84b5d3 as ANIMATION_CONFIG,_0x5add0d as COLORS,BALLOON_TYPES,_0x532f9e as SPECIAL_ITEMS};const POP_ANIM_DURATION=200,POP_REMOVAL_DELAY=250;export class BalloonBlasterService{[_0x5b79c9(455,"SuG4")]=null;[_0x5b79c9(428,"9&W7")]=null;[_0x5b79c9(572,"7$j3")]=null;comboTimeoutRef=null;[_0x5b79c9(460,"SuG4")]=[];needsRedraw=!1;[_0x5b79c9(410,"&^]V")]=new Map;[_0x5b79c9(434,"4u0c")]=null;constructor(t,W){const o=_0x5b79c9;this.balloonAnimations=t,this[o(499,"jAyO")]=W}[_0x5b79c9(414,"Aat!")](t,W){this[_0x5b79c9(456,"%n(x")].set(t,W)}[_0x5b79c9(521,"B#@T")](t){const W=_0x5b79c9;this.sharedValuesMap[W(519,"QmBH")](t)}[_0x5b79c9(529,"#*1B")](t){this.onListChange=t}[_0x5b79c9(556,"JG*X")](){return this[_0x5b79c9(508,"YQi$")]}getNeedsRedraw(){return this[_0x5b79c9(492,"YQi$")]}clearNeedsRedraw(){this.needsRedraw=!1}[_0x5b79c9(542,"0KUX")](t){const W=_0x5b79c9;this[W(558,"zbor")][W(462,"(ltM")](t),this[W(475,"C#d!")]=!0,this[W(503,"]ipf")]?.()}[_0x5b79c9(439,"njy2")](t){const W=_0x5b79c9,o={};o[W(419,"4u0c")]=function(t,W){return t===W};const n=o;for(let o=0;o<this[W(489,"%n(x")].length;o++){const e=this.balloonsRef[o];if(e&&n.xLuwq(e.id,t)&&!e[W(565,"zbor")])return e[W(525,"L2y1")]=!0,e[W(490,"I&$t")]=performance[W(436,"&^]V")](),this.needsRedraw=!0,e}return null}[_0x5b79c9(435,"DT1c")](t,W){const o=_0x5b79c9,n={};n[o(514,"I&$t")]=function(t,W){return t/W},n.pdiIu=function(t,W){return t+W},n[o(468,"HXm6")]=function(t,W){return t-W},n[o(534,"#*1B")]=function(t,W){return t/W};const e=n,i=_0x105349[o(477,"jAyO")],d=1.25*i;for(let n=this[o(535,"8KpC")].length-1;n>=0;n--){const s=this[o(545,"%Gwy")][n];if(!s||s.isPopped)continue;const r=s[o(473,"kH6m")].x+e[o(540,"[bjg")](i,2),a=e[o(433,"o!Vj")](s.position.y,e[o(481,"4u0c")](d,2)),x=t-r,u=e[o(562,"jAyO")](W,a),h=i/2,k=e[o(532,"L2y1")](d,2);if(x*x/(h*h)+e[o(431,"SuG4")](u*u,k*k)<=1)return s}return null}[_0x5b79c9(479,"3TGl")](){const t="kH6m",W="(ltM",o=_0x5b79c9,n={xVcau:function(t,W){return t-W},kKYFp:function(t){return t()},NvxUK:function(t,W){return t-W},nBFjZ:function(t,W){return t/W},PQObB:function(t,W){return t-W},PcKNa:function(t,W){return t<=W},midHn:function(t,W){return t*W},WRpRX:function(t,W){return t(W)},RXGqW:function(t,W){return t*W},yeVBL:function(t,W){return t(W)}};let e=performance.now();const i=1e3/60,d=_0x105349[o(491,"JG*X")],s=_0x105349[o(537,"2(iN")],r=n[o(559,"HXm6")](-s,2),a=width-s,x=performance[o(515,"JG*X")],u=s=>{const h=o;if(h(472,"maCq")===h(463,"t0jb")){const o=n[h(533,"L2y1")](s,e);if(o<i)return void(this[h(536,t)]=requestAnimationFrame(u));e=s;const k=o/16.67,m=this[h(425,"4Lb!")];let l=0;const O=n[h(443,"Lkif")](x);let C=!1;for(let W=0;W<m[h(538,"Z5YS")];W++){const o=m[W];if(!o)continue;const e=this[h(417,"zRU#")][h(541,"njy2")](o.id);if(o[h(466,"DT1c")]){const t=n[h(488,"0KUX")](O,o[h(413,"njy2")]||O);if(t>=250){this[h(531,"L2y1")].delete(o.id),C=!0;continue}const W=Math[h(427,"o!Vj")](1,n[h(416,"#jKK")](t,200));o[h(546,"#jKK")]=n[h(422,"b&x9")](1,W),o[h(505,"njy2")]=1-W,e&&(e[h(426,"kH6m")].value=o[h(452,"4u0c")],e[h(510,"WL5)")][h(476,"]ipf")]=o[h(469,"2R4x")]),m[l++]=o;continue}const i=o[h(539,t)].y+d*k;let s=o[h(473,"kH6m")].x+o[h(415,"%n(x")].x*k;const x=o.position.y+i*k;if(x<r){this[h(531,"L2y1")][h(516,"Z5YS")](o.id),C=!0;continue}let u=o[h(547,"zRU#")].x;n.PcKNa(s,0)?(s=0,u=.8*Math[h(554,"&^]V")](u)):s>=a&&(s=a,u=n.midHn(-Math[h(449,"QmBH")](u),.8)),o[h(485,"0KUX")].x=s,o[h(457,"2(iN")].y=x,o[h(517,"]ipf")].x=u,o[h(480,"JG*X")].y=i,o[h(418,"8KpC")]+=o[h(570,"7$j3")]*k,e&&(e[h(497,"2R4x")].value=s,e[h(412,"4Lb!")][h(438,"C#d!")]=x,e[h(432,"%n(x")].value=o.rotation),m[l++]=o}m.length=l,C&&this.onListChange?.(),this.animationRef=n[h(549,W)](requestAnimationFrame,u)}else _0x481ca1[h(526,W)][h(476,"]ipf")]=_0x4a0d63[h(452,"4u0c")],_0x53d9c8[h(522,"LxiJ")].value=_0x21aaa4[h(571,"4Lb!")]};this[o(500,"qkvK")]=n[o(453,"#*1B")](requestAnimationFrame,u)}createRandomBalloon(){const t=_0x5b79c9,W={};W[t(448,"7$j3")]=function(t,W){return t<W},W[t(444,"kH6m")]=function(t,W){return t-W},W[t(458,"jAyO")]=function(t,W){return t*W},W[t(446,"Aat!")]=function(t,W){return t in W};const o=W,n=(o.iOGFh(Math[t(552,"@ZxF")](),.2)?_0x532f9e[Math.floor(Math[t(487,"7$j3")]()*_0x532f9e.length)]:BALLOON_TYPES[Math.floor(Math[t(544,"njy2")]()*BALLOON_TYPES[t(495,"t0jb")])])||BALLOON_TYPES[0],e=_0x105349.BALLOON_SIZE,i=e/2,d=o[t(566,"Aat!")](width,2*i)-e,s=i+Math[t(512,"0KUX")]()*d,r=height+e,a=(Math[t(430,"deO!")]()-.5)*_0x105349[t(450,"wmgM")],x=_0x105349[t(564,"B#@T")],u={};u.x=s,u.y=r;const h={};return h.x=a,h.y=x,{id:"balloon_"+Date.now()+"_"+Math[t(409,"wmgM")](),type:n,position:u,spawnX:s,spawnY:r,velocity:h,rotation:0,rotationSpeed:o[t(557,"Aat!")](Math[t(544,"njy2")]()-.5,_0x105349[t(527,"Lkif")]),isPopped:!1,spawnTime:Date[t(530,"njy2")](),isBomb:o.LbppO(t(470,"4Lb!"),n)&&n[t(504,"I&$t")],isBonus:"isBonus"in n&&n[t(501,"4u0c")],scale:1,opacity:1}}[_0x5b79c9(506,"4Lb!")](){const t=_0x5b79c9;this.balloonAnimations[t(528,"I&$t")](),this[t(553,"Z5YS")][t(420,"]ipf")](),this[t(484,"jAyO")]=[],this[t(417,"zRU#")][t(520,"(ltM")](),this.needsRedraw=!0,this.onListChange?.()}[_0x5b79c9(548,"&^]V")](){const t=_0x5b79c9,W={};W[t(474,"C#d!")]=t(513,"Z5YS");const o=W.PqYkL[t(459,"DT1c")]("|");let n=0;for(;;){switch(o[n++]){case"0":this.onListChange?.();continue;case"1":this[t(447,"Z#R%")]=[];continue;case"2":this[t(509,"LxiJ")]();continue;case"3":this[t(561,"4u0c")]();continue;case"4":this[t(465,"[bjg")]();continue;case"5":this.sharedValuesMap[t(483,"maCq")]();continue;case"6":this[t(518,"jAyO")]();continue}break}}[_0x5b79c9(555,"I&$t")](){const t=_0x5b79c9;this[t(543,"[bjg")]&&(clearGameInterval(this[t(550,"t0jb")]),this[t(464,"@ZxF")]=null)}[_0x5b79c9(411,"(ltM")](){const t=_0x5b79c9;this.balloonSpawnRef&&({PrEQX:function(t,W){return t(W)}}[t(502,"9&W7")](clearTimeout,this[t(440,"7$j3")]),this[t(560,"kH6m")]=null)}[_0x5b79c9(478,"@ZxF")](){this[_0x5b79c9(437,"deO!")]()}[_0x5b79c9(551,"JG*X")](){const t=_0x5b79c9;this[t(486,"LxiJ")]&&({XyWCO:function(t,W){return t(W)}}[t(524,"u]j1")](cancelAnimationFrame,this.animationRef),this[t(563,"maCq")]=null)}[_0x5b79c9(511,"njy2")](){const t=_0x5b79c9;this.comboTimeoutRef&&(clearTimeout(this[t(482,"B#@T")]),this[t(523,"njy2")]=null)}}export const createBalloonBlasterService=(t,W)=>new BalloonBlasterService(t,W);