@nayan-ui/games 1.19.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 -40
  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
@@ -1 +0,0 @@
1
- "use strict";const _0xeffdd0=_0x3344;!function(){const e=_0x3344,t=_0x1908();for(;;)try{if(996070==parseInt(e(320,"87u8"))/1+parseInt(e(308,"vlq["))/2*(parseInt(e(346,"]]V1"))/3)+parseInt(e(314,"*mLY"))/4*(-parseInt(e(325,"tKhD"))/5)+parseInt(e(341,"W*0F"))/6+parseInt(e(360,"PWrJ"))/7+parseInt(e(304,"siZW"))/8+-parseInt(e(348,"#mIg"))/9*(parseInt(e(359,"fZQh"))/10))break;t.push(t.shift())}catch(e){t.push(t.shift())}}();import{c as _0x7e450b}from"react/compiler-runtime";import _0x3babf6,{useMemo}from"react";import{View,Text,StyleSheet,ScrollView}from"react-native";import{useNumberSearchStore,useFoundNumbersVersion,useGridReady,HIGHLIGHT_COLORS}from"../NumberSearchStore.js";import{NUMBER_SEARCH_COLORS}from"../NumberSearchConstants.js";function _0x3344(e,t){e-=290;const o=_0x1908();let f=o[e];if(void 0===_0x3344.OMLSpc){const e=function(e,t){let o,f,r=[],n=0,d="";for(e=function(e){let t="",o="";for(let o,f,r=0,n=0;f=e.charAt(n++);~f&&(o=r%4?64*o+f:f,r++%4)?t+=String.fromCharCode(255&o>>(-2*r&6)):0)f="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(f);for(let e=0,f=t.length;e<f;e++)o+="%"+("00"+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(o)}(e),f=0;f<256;f++)r[f]=f;for(f=0;f<256;f++)n=(n+r[f]+t.charCodeAt(f%t.length))%256,o=r[f],r[f]=r[n],r[n]=o;f=0,n=0;for(let t=0;t<e.length;t++)f=(f+1)%256,n=(n+r[f])%256,o=r[f],r[f]=r[n],r[n]=o,d+=String.fromCharCode(e.charCodeAt(t)^r[(r[f]+r[n])%256]);return d};_0x3344.AJOlzw=e,_0x3344.otqzQJ={},_0x3344.OMLSpc=!0}const r=o[0];_0x3344.WfiDcz!==r&&(_0x3344.otqzQJ={},_0x3344.WfiDcz=r);const n=_0x3344.otqzQJ[e];return void 0===n?(void 0===_0x3344.XsqUos&&(_0x3344.XsqUos=!0),f=_0x3344.AJOlzw(f,t),_0x3344.otqzQJ[e]=f):f=n,f}import{isTablet,getGameDimensions}from"../../../services/UtilsService.js";import{jsx as _0xfae72b}from"react/jsx-runtime";const{width:GAME_WIDTH}=getGameDimensions(),NumberItem=_0x3babf6[_0xeffdd0(312,"Xo%k")](e=>{const t="]]V1",o="(]sf",f=_0xeffdd0,r={vTxfF:function(e,t){return e(t)},DkqOF:function(e,t){return e===t},cBfeI:f(327,"!J6j"),PMzyx:function(e,t){return e!==t},VvgBd:function(e,t,o){return e(t,o)}},n=r[f(345,"4aTV")](_0x7e450b,10),{number:d,isFound:W,color:x}=e;let s;if(n[0]!==x){const e={};e[f(342,"YX3h")]=x,e[f(353,t)]=x,s=[styles[f(358,t)],e],n[0]=x,n[1]=s}else s=n[1];const _=W&&styles[f(324,"Z)Q7")];let i,a,u;if(n[2]!==_){if(!r[f(316,t)](r[f(309,"tKhD")],"qPiLa")){if(!_0x33a155)return[];const{placedNumbers:e}=_0x2982f9[f(301,"Xo%k")](),t=[...e][f(349,"l5vD")]((e,t)=>({number:e[f(323,"^OOe")],color:_0x508a3d[t%_0x30894c[f(294,"oepU")]]}));return t.sort((e,t)=>e[f(356,"u53Q")].localeCompare(t[f(322,"][iq")])),t}i=[styles[f(369,o)],_],n[2]=_,n[3]=i}else i=n[3];if(n[4]!==d||r[f(292,"l5vD")](n[5],i)){const e={};e[f(368,o)]=i,e[f(333,"nDLB")]=d,a=r.VvgBd(_0xfae72b,Text,e),n[4]=d,n[5]=i,n[6]=a}else a=n[6];if(n[7]!==s||r.PMzyx(n[8],a)){const e={};e.style=s,e.children=a,u=_0xfae72b(View,e),n[7]=s,n[8]=a,n[9]=u}else u=n[9];return u});NumberItem[_0xeffdd0(300,"u53Q")]=_0xeffdd0(350,"^OOe");export const NumberList=_0x3babf6[_0xeffdd0(306,"C%8V")](()=>{const e=_0xeffdd0,t={hdnKy:function(e,t){return e===t},mJaAL:function(e){return e()},nabVl:function(e,t,o){return e(t,o)},acxhE:function(e,t,o){return e(t,o)}},o=useGridReady(),f=t[e(302,"6Rn7")](useFoundNumbersVersion),r=useMemo(()=>{const t=e;if(!o)return[];const{placedNumbers:f}=useNumberSearchStore.getState(),r=[...f][t(318,"p%80")]((e,o)=>({number:e[t(366,"HV4i")],color:HIGHLIGHT_COLORS[o%HIGHLIGHT_COLORS[t(372,"fGQF")]]}));return r[t(321,"Z)Q7")]((e,o)=>e[t(336,"ohS^")][t(307,"6Rn7")](o[t(291,"l5vD")])),r},[o]),n=useMemo(()=>{const o=e;if(t[o(338,"0nLT")](o(340,"fzR)"),o(297,"CFrQ"))){const{foundNumbers:e}=_0xbdcbfe.getState();return new _0x445205(e)}{const{foundNumbers:e}=useNumberSearchStore[o(362,"*mLY")]();return new Set(e)}},[f]);return t.nabVl(_0xfae72b,View,{style:styles.container,children:t.acxhE(_0xfae72b,ScrollView,{horizontal:!0,showsHorizontalScrollIndicator:!1,style:styles[e(343,"vlq[")],contentContainerStyle:styles.numbersContainer,children:r[e(363,"HV4i")](t=>_0xfae72b(NumberItem,{number:t[e(293,"]]V1")],isFound:n[e(290,"fGQF")](t[e(337,"C%8V")]),color:t[e(351,"p%80")]},t.number))})})});const _0x375578={};_0x375578[_0xeffdd0(330,"E)cZ")]=_0xeffdd0(364,"p%80"),_0x375578.borderRadius=10,_0x375578[_0xeffdd0(299,"(C7k")]=8,_0x375578.width=GAME_WIDTH,_0x375578.maxWidth=GAME_WIDTH,_0x375578[_0xeffdd0(296,"fZQh")]=0,_0x375578.flexShrink=0;const _0x3a318={};function _0x1908(){const e=["a8oBbqtcRhVdQqq","W5L7WQlcI8oC","W4r6WRBcHCoCW4n2WOqUW5C","WOJcJ1tdVL/dVqDtpMBcRCoZrw8N","WQVdVvNcS01+waO8ucFdGCom","W63cTCkFW71lWR8","W6NcSCkc","WOy0pSo8ieK","WRGmkCoNpq","W4C/q8o+WR0a","W7/cQqhdOaaJ","W50VvSoOWPWxuSk2t8kyySoApMtdOComuXK","WQubW5iAW6nqW6Cd","F8kDWOK5W6G","pGOOW7OLW7/dRwpcVcKevx50Eq","WRTHvg3dLmkeWOJcIZ0IaKy","gSkUWQddJLKnfmkwfSksqq","sH7dVb59oKuJ","a8kqWRGhW5a","cmk2WRW+W5H0WPSOW6NdMW1zqW","uX0cW4VcTSoJWOHBW53cOeZcNmkC","v8khue/dNJ3dLZBcKSk2vqm","ktfozG","aSk1WRONW7b4WQOIW6FdNWvesa","nri0WPJcUCoacmoixq","WRxcJv3dM8oU","WQacW5SnW5y","lbZcGb7cSeyY","qb7dPsi","WPJcVuddUfzDW6vlE08","W4hcMgtdMufAW7G","WP0tWQ0nW5ObWOOvDq","W60Hx8otWP4","WOZcGSoQWOic","pr41","WOSZnSo/mv4","W4XmW7nkWO5CWRu1BSkBCCob","kCkKW5in","jSodWO9CtXW","a8kUoN7dLrC","nmk+W40BW4BcNmkQgGOflgVdRCkeCG","W6FdVGNcJSkwWPRdQNmlWPKXhbO","xWFcTSkaWQrkit/dRmkOWPe","lY3cUW3dIW","owHbWRZcOCoFdq","W59XyW","W4NdRepcHquLjNFcHCk8WRPkxMVcVW","Dw/cUu0oWRW9rSobW5Lnm8oKdSonBmkj","WO4UpCoQeL5RBu4K","W63dJe7dS8kmWPxcRSkB","r8oZW6tcJG1AwCkXnSkoD8ohAq","gxFcNmoQWPBdKq","WOhcMmoRWO8vrG","kIfoA8oIWRW","FsJcVtNcMG","nSkLW4DUp8kDWQ3dIdZcOW","FConmMddJq","n2itgSo7W7zOWQRdHbtcVCkYeW","bXdcRu7dRSoSimoUzM3cH8ocqCk8hG","CKj+WPxcTmo9","pSkIW5mjW4/cJ8khmrmCdW","aCkChIhdMW","WPH+f8kQW68ay8kjFmkmtW","fCkNfcpdUmkceCokbH0H","v2pdNmoAW4bkoa","WOuGiW","i8kUoN7dLrFdRSkry1O","mXaPW7CY","mmkYWR7dNfaEiCkXbmkl","W4SLxmo4WR0aCSk2uCkwza","gKHrWP/dP8k7W5T6W7pcO3BcJCk2W4BcTmodW7u","ytn6","emkYWR7dNfaE","FCkkW6BdT2e4WPxcIb4","W4C/q8o+WR0aEmkTwmku","W7bDWObqWPyBWRLezmk+W6znghi","q8kBx8kNBCoNW5KBW6BcMYHBW7O","WQFdU1RcTKj8xI88CXFdGSoZ","WP7cTf3dJeX1W6vl","B8kHha","iHGNW7LOWR/cJdpdQh1WdZ42pCoHnJ5uW6hcK8oXery","WO0FWRewW5Ce","Bmk1aCkUkCoR"];return(_0x1908=function(){return e})()}_0x3a318[_0xeffdd0(367,"Uu1g")]=0,_0x3a318.flexShrink=0;const _0x3fa59f={};_0x3fa59f[_0xeffdd0(303,"6Rn7")]="row",_0x3fa59f[_0xeffdd0(313,"*mLY")]=_0xeffdd0(335,"J*uk"),_0x3fa59f[_0xeffdd0(355,"(%)i")]=8,_0x3fa59f[_0xeffdd0(354,"siZW")]=10,_0x3fa59f.paddingVertical=8;const _0x234b1c={paddingHorizontal:8};_0x234b1c[_0xeffdd0(370,"FyR7")]=5,_0x234b1c.borderRadius=8,_0x234b1c[_0xeffdd0(347,"4aTV")]=1,_0x234b1c[_0xeffdd0(331,"3*(e")]=2;const _0x5e70f9={};_0x5e70f9.fontSize=isTablet?18:12,_0x5e70f9[_0xeffdd0(332,"l5vD")]=_0xeffdd0(329,"l5vD"),_0x5e70f9[_0xeffdd0(310,"fZQh")]=NUMBER_SEARCH_COLORS.NUMBER_LIST_UNFOUND;const _0x303e11={};_0x303e11[_0xeffdd0(317,"ohS^")]="#ffffff",_0x303e11[_0xeffdd0(295,"]]V1")]="line-through";const _0x2344bf={};_0x2344bf[_0xeffdd0(315,"87u8")]=_0x375578,_0x2344bf[_0xeffdd0(365,"87u8")]=_0x3a318,_0x2344bf.numbersContainer=_0x3fa59f,_0x2344bf[_0xeffdd0(339,"i3NN")]=_0x234b1c,_0x2344bf.numberText=_0x5e70f9,_0x2344bf[_0xeffdd0(298,"p%80")]=_0x303e11;const styles=StyleSheet[_0xeffdd0(319,"l5vD")](_0x2344bf);NumberList[_0xeffdd0(344,"Z)Q7")]=_0xeffdd0(352,"u53Q");
@@ -1 +0,0 @@
1
- "use strict";const _0x427a7a=_0x5c68;function _0x5c68(o,e){o-=216;const t=_0x253a();let r=t[o];if(void 0===_0x5c68.EWsOMr){const o=function(o,e){let t,r,W=[],n=0,a="";for(o=function(o){let e="",t="";for(let t,r,W=0,n=0;r=o.charAt(n++);~r&&(t=W%4?64*t+r:r,W++%4)?e+=String.fromCharCode(255&t>>(-2*W&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let o=0,r=e.length;o<r;o++)t+="%"+("00"+e.charCodeAt(o).toString(16)).slice(-2);return decodeURIComponent(t)}(o),r=0;r<256;r++)W[r]=r;for(r=0;r<256;r++)n=(n+W[r]+e.charCodeAt(r%e.length))%256,t=W[r],W[r]=W[n],W[n]=t;r=0,n=0;for(let e=0;e<o.length;e++)r=(r+1)%256,n=(n+W[r])%256,t=W[r],W[r]=W[n],W[n]=t,a+=String.fromCharCode(o.charCodeAt(e)^W[(W[r]+W[n])%256]);return a};_0x5c68.RxopXS=o,_0x5c68.BuSQyh={},_0x5c68.EWsOMr=!0}const W=t[0];_0x5c68.iAqqHG!==W&&(_0x5c68.BuSQyh={},_0x5c68.iAqqHG=W);const n=_0x5c68.BuSQyh[o];return void 0===n?(void 0===_0x5c68.iHzkBh&&(_0x5c68.iHzkBh=!0),r=_0x5c68.RxopXS(r,e),_0x5c68.BuSQyh[o]=r):r=n,r}!function(){const o=_0x5c68,e=_0x253a();for(;;)try{if(480772==parseInt(o(220,"i@z]"))/1*(-parseInt(o(218,"fMA4"))/2)+parseInt(o(227,"9xVg"))/3*(parseInt(o(241,"TO)!"))/4)+-parseInt(o(232,"h#BD"))/5*(parseInt(o(231,"k[mD"))/6)+parseInt(o(235,"!26a"))/7+-parseInt(o(233,"!26a"))/8*(-parseInt(o(242,"dDb$"))/9)+-parseInt(o(228,"cb*5"))/10*(parseInt(o(246,"*E5y"))/11)+parseInt(o(222,"@7@p"))/12)break;e.push(e.shift())}catch(o){e.push(e.shift())}}();import{c as _0x17eb97}from"react/compiler-runtime";function _0x253a(){const o=["W7XiWOZcI1JdJmk6mCoDW7LLWQC","WPWaWQVdI1a","W6eqfmombmkEWQ3dGqq","W5vcivBcTKLfCIpdJW","o1PGbmovWPNdOG","W47dPvxcSHjRW7BcGG","etBdLX5kWRpdQmoo","WP/dK0tdPtPJa8kcr8oGWQD4W54","EhizW5ub","qCoAWQOxWOy","pmk0WR8dW4/cM8kOBsJcOSot","eCkZtmopWPC","bCkGE8o2W5hcOcFcNsldKu9d","WRvgvSkqxCotW6NdLXddJ8o6Cmoy","amkBW7NcQCklWR1cWRW","hqKrWQq","WRbDE8ktW611sCoAWPldNWVdV8oO","ndjAm8kUW5NdPW","WOSQpSkFW6tdMSk4W5TXtXlcPSk+","uCokWQddTmoxW7yxWQhdK8ktvCogW70","WO8QomkyW6ddKCoJW6H0xd/cUW","zCktW7W4Cq","l8kVWPtcIhvVWRa8W4C9W7NdVeG","tCklaslcUCkVW6RdJConW6C","phlcNfBdMZpcKmoChI3cQZy","aW8tWRKq","W73cIt9Dp8o7Fa","zmoPxZPTW5Ti","W67dKSk5kmom","cam/WRS9","l8owWOzVW5i","WPVcTSoiW6hdLSoeg8oz","BmoSrJFcHSkSqW","W5RdSmoOW4tdOW","qSkwW6q3WQBdNqamWR7dVcOCWQq","fYxdM8ojW4JcJgO7WQPrWQpcUa"];return(_0x253a=function(){return o})()}import _0x27c4c5 from"react";import{View}from"react-native";import{useScore,useTime}from"../NumberSearchStore.js";import{formatScore}from"../NumberSearchService.js";import{ScoreBoardContainer,ScoreValue,ScoreTimer,scoreBoardStyles as _0x5bd734}from"../../../helpers/index.js";import{jsx as _0x5514b1,jsxs as _0x32e877}from"react/jsx-runtime";export const ScoreBoard=_0x27c4c5[_0x427a7a(230,"X5z#")](o=>{const e=_0x427a7a,t={vlLHs:function(o){return o()},iWpYM:function(o,e){return o!==e},ZtVnE:e(244,"X5z#"),lxOJt:function(o,e,t){return o(e,t)},hLmHZ:function(o,e){return o===e}},r=_0x17eb97(10),{offset:W}=o,n=void 0===W?0:W,a=useScore(),d=t[e(223,"PZlZ")](useTime);let s,x,i,f;if(t[e(226,"[!]]")](r[0],a))if(e(216,"JVKx")===t[e(245,"QQuA")])_0x41d412=_0xbd4677[6];else{const o={};o[e(240,"X5z#")]=a,o[e(217,"cb*5")]=formatScore,s=t[e(224,"tVnF")](_0x5514b1,ScoreValue,o),r[0]=a,r[1]=s}else s=r[1];if(r[2]!==d){const o={};o.seconds=d,o[e(239,"@P!%")]=0,x=_0x5514b1(ScoreTimer,o),r[2]=d,r[3]=x}else if(t[e(243,"WdRd")](e(236,"Baf@"),"wtEyE"))x=r[3];else{const o={};o.offset=_0x47eedc,o[e(229,"Q1L3")]=_0x4d940d,_0x13325e=_0x240570(_0x2764ac,o),_0x50d90d[7]=_0x1426f5,_0x5ef53c[8]=_0x154ad7,_0x126ce6[9]=_0x10209d}if(r[4]!==s||r[5]!==x){const o={};o[e(248,"*E5y")]=_0x5bd734.row,o.children=[s,x],i=_0x32e877(View,o),r[4]=s,r[5]=x,r[6]=i}else i=r[6];if(r[7]!==n||r[8]!==i){const o={};o.offset=n,o.children=i,f=_0x5514b1(ScoreBoardContainer,o),r[7]=n,r[8]=i,r[9]=f}else f=r[9];return f});ScoreBoard[_0x427a7a(225,"wN&a")]=_0x427a7a(238,"%jYg");
@@ -1 +0,0 @@
1
- "use strict";const _0x4af92d=_0x1d85;!function(){const o=_0x1d85,t=_0x5b95();for(;;)try{if(990604==-parseInt(o(148,"R1S0"))/1+parseInt(o(291,"RZoZ"))/2*(parseInt(o(289,"hcxA"))/3)+parseInt(o(191,"7iUg"))/4*(parseInt(o(223,"r)UW"))/5)+-parseInt(o(287,"&x^W"))/6*(parseInt(o(189,"Sxrm"))/7)+parseInt(o(302,"pl%)"))/8+-parseInt(o(188,"S*ln"))/9+-parseInt(o(198,"7*0A"))/10)break;t.push(t.shift())}catch(o){t.push(t.shift())}}();import{NUTS_AND_BOLTS_GAME_CONFIG}from"./NutsAndBoltsConstants.js";export const formatScore=o=>o[_0x1d85(172,"VMmh")]();const _0x1bc59c={};_0x1bc59c[_0x4af92d(208,"VMmh")]=_0x4af92d(307,"kFhB"),_0x1bc59c[_0x4af92d(158,"IJo)")]="#C0C0C0";const PLANK_COLORS=_0x1bc59c;export const getPlankPositions=o=>{const t="av9@",n=_0x4af92d,r={};r[n(195,"kFhB")]=function(o,t){return o<t},r[n(277,"H8MR")]=function(o,t){return o+t};const W=r,e=[];for(let r=0;W[n(271,"8r#P")](r,o[n(166,"XD2$")]);r++)if(o[n(239,t)]===n(241,"7iUg")){const t={};t[n(285,"wGzW")]=o.startRow,t[n(254,"oSN2")]=o[n(257,"oxin")]+r,e[n(253,"hcxA")](t)}else e[n(288,"!2)*")]({row:W[n(196,t)](o[n(260,"gv3J")],r),col:o.startCol});return e};export const plankCoversPosition=(o,t,n)=>{const r=_0x4af92d,W={AAQfg:function(o,t){return o===t},LocSk:function(o,t){return o+t}};for(let e=0;e<o.length;e++)if(o[r(330,"8r#P")]===r(327,"hcxA")){if(o[r(226,"R1S0")]===t&&W.AAQfg(o[r(339,"oSN2")]+e,n))return!0}else if(W[r(328,"Zgc7")](o.startRow,e)===t&&o.startCol===n)return!0;return!1};const randomInt=(o,t)=>{const n=_0x4af92d,r={YqUzR:function(o,t){return o+t}};r[n(312,"VMmh")]=function(o,t){return o+t};const W=r;return W.YqUzR(Math[n(333,"r)UW")](Math[n(211,"11c8")]()*W[n(294,"7kGg")](t-o,1)),o)},shuffleArray=o=>{const t=_0x4af92d,n=[...o];for(let o=n[t(237,"oxin")]-1;o>0;o--){const r=Math[t(238,"wGzW")](Math[t(157,"oSN2")]()*(o+1));[n[o],n[r]]=[n[r],n[o]]}return n};export const generatePuzzle=()=>{const o="9L5M",t="gv3J",n="V!EH",r="A30Q",W="pl%)",e="yaOT",d="!2)*",s="&]rH",a="#89!",f="VMmh",i=_0x4af92d,l={XiOCm:function(o,t){return o+t},qQYTc:function(o,t){return o*t},WaPPf:function(o,t){return o===t},tEJNA:function(o,t){return o(t)},LASfp:function(o,t){return o-t},oAdvU:function(o,t,n){return o(t,n)},ElDFt:"vertical",CmhDd:function(o,t){return o/t},wDXcW:function(o,t,n){return o(t,n)},bYCvx:function(o,t){return o%t},VjkBv:function(o,t){return o+t},rHnHs:function(o,t,n){return o(t,n)},sZnSq:function(o,t){return o<t},otmxZ:"horizontal",rWOoZ:function(o,t,n){return o(t,n)},WbqRd:function(o,t){return o===t},ckZBf:function(o,t){return o%t},qNgoL:function(o,t){return o-t},gnlWr:function(o,t,n){return o(t,n)},iJpZy:function(o,t){return o<t},KmwVy:function(o,t){return o>=t},OQvrj:function(o,t){return o>=t}},k=[],u=[];let S=[];const{BOARD_COLS:m,BOARD_ROWS:x,EXTRA_HOLES:O}=NUTS_AND_BOLTS_GAME_CONFIG;let C=0,P=0,h=!1,p=0;for(;!h&&p<500;){p++,S=[],C=0;const f=randomInt(0,3);if(l[i(152,"Zgc7")](f,0)){const W=l.tEJNA(shuffleArray,[...Array(x)[i(187,o)]()])[i(183,t)](0,3),e=shuffleArray([...Array(m).keys()])[i(295,n)](0,3);for(const o of W){const t=randomInt(0,1),n=l[i(150,"%Wq9")](m,t)-randomInt(0,1);S[i(323,"G1$E")]({id:"plank-"+C++,orientation:i(284,"Sxrm"),startRow:o,startCol:t,length:Math[i(308,"R1S0")](2,n),color:PLANK_COLORS[i(319,"av9@")],zIndex:C})}for(const o of e){const t=l[i(147,"7*0A")](randomInt,0,1),n=x-t-randomInt(0,1);S[i(325,"Zgc7")]({id:"plank-"+C++,orientation:l[i(215,"7kGg")],startRow:t,startCol:o,length:Math.max(2,n),color:PLANK_COLORS[i(318,r)],zIndex:C})}}else if(1===f){const o=Math.floor(l[i(242,"3DV4")](x,2)),n=Math[i(337,"9L5M")](m/2);for(let n=0;n<3;n++){const r=l[i(268,"G1$E")](o-1,n)%x;S.push({id:i(161,t)+C++,orientation:i(225,"9L5M"),startRow:r,startCol:l[i(206,"oSN2")](randomInt,0,1),length:l[i(216,W)](m,randomInt(0,1)),color:PLANK_COLORS.horizontal,zIndex:C})}for(let o=0;o<3;o++){const t=l[i(262,"pN83")](l[i(232,"#89!")](n-1,o),m);S.push({id:i(332,"H8MR")+C++,orientation:l[i(209,"av9@")],startRow:l.rHnHs(randomInt,0,1),startCol:t,length:x-randomInt(0,1),color:PLANK_COLORS[i(171,e)],zIndex:C})}}else if(2===f){for(let o=0;l[i(244,d)](o,3);o++)if(i(315,"ev1@")!==i(263,"11c8")){const o=_0x128c3f.find(o=>o.id===_0x2a22c8.holeId);o&&(o[i(201,r)]=null)}else{const t=randomInt(0,x-1),n=0===l[i(169,"ev1@")](o,2)?0:randomInt(0,1),r=o%2==0?l[i(197,"HN(u")](m,randomInt(0,1)):m;S.push({id:i(165,"av9@")+C++,orientation:l.otmxZ,startRow:t,startCol:n,length:Math.max(2,r-n),color:PLANK_COLORS[i(261,"yaOT")],zIndex:C})}for(let o=0;o<3;o++){const t=l[i(205,"Zgc7")](randomInt,0,m-1),n=0===l[i(297,"#89!")](o,2)?0:l[i(252,"TfcG")](randomInt,0,1),r=l[i(344,"A30Q")](l.ckZBf(o,2),0)?x-randomInt(0,1):x;S[i(156,"V3JW")]({id:i(267,"n*a8")+C++,orientation:"vertical",startRow:n,startCol:t,length:Math[i(190,"H8MR")](2,l[i(170,"ev1@")](r,n)),color:PLANK_COLORS.vertical,zIndex:C})}}else{for(let o=0;o<3;o++){const o=randomInt(0,x-1),t=randomInt(2,m),n=randomInt(0,Math[i(184,"TfcG")](0,l[i(281,"3DV4")](m,t))),r={};r.id=i(246,"r)UW")+C++,r[i(217,"&x^W")]=i(178,d),r[i(300,"S*ln")]=o,r[i(256,"3DV4")]=n,r[i(345,"7iUg")]=t,r[i(317,"&]rH")]=PLANK_COLORS.horizontal,r[i(218,"#89!")]=C,S[i(222,"7kGg")](r)}for(let o=0;o<3;o++){const o=randomInt(0,m-1),t=randomInt(2,x),n=l.gnlWr(randomInt,0,Math[i(278,"!2)*")](0,l[i(255,e)](x,t))),r={};r.id=i(173,"ev1@")+C++,r[i(322,s)]=i(334,"&]rH"),r[i(203,"!2)*")]=n,r[i(168,"&]rH")]=o,r[i(320,"A30Q")]=t,r[i(346,"Z7YU")]=PLANK_COLORS[i(181,"3DV4")],r.zIndex=C,S[i(151,"Sxrm")](r)}}const k=3;for(let o=0;l[i(207,"kFhB")](o,S[i(345,"7iUg")]);o++){const t=S[o],r=getPlankPositions(t),W=[];for(let t=0;t<r[i(304,n)];t++){const n=r[t];for(let r=0;r<S[i(166,"XD2$")];r++)if(!l.WaPPf(r,o)&&plankCoversPosition(S[r],n[i(234,"%6Uc")],n[i(185,"4Il6")])){W[i(235,"3DV4")](t);break}}if(W[i(326,"ev1@")]>k){const o=W[k-1];t[i(311,a)]=o+1}}const u=getPlankIntersections(S),O=4;if(u[i(309,"pN6d")]<O)continue;let P=!0;for(const t of S){if("DQDVb"!==i(310,"vTJf")){const{BASE_SCORE:o,TIME_BONUS_PER_SECOND:t}=_0xf4b6ed,n=1.5;return _0x29001d[i(298,"pN83")](l[i(331,"&]rH")](o,l[i(220,"Z7YU")](_0x417221,t))*n)}if(!getPlankPositions(t)[i(174,o)](o=>u[i(221,"7kGg")](t=>t[i(202,"pN6d")]===o[i(283,"VMmh")]&&t.col===o[i(279,"A30Q")]))){P=!1;break}}P&&l[i(236,a)](u[i(179,"gv3J")],O)&&l[i(224,"H8MR")](S[i(228,"7kGg")],3)&&(h=!0)}const R=l.tEJNA(getPlankIntersections,S);for(const o of R){const t={};t.id=i(210,s)+P++,t[i(214,"G*$a")]=o.row,t[i(177,"Sxrm")]=o[i(254,"oSN2")],t[i(182,"RZoZ")]=o[i(265,"yaOT")],t[i(299,f)]=o[i(280,"!2)*")],t[i(229,"kFhB")]=null,u[i(305,W)](t)}for(let o=0;o<O;o++)k[i(149,"PpYj")]({id:i(219,"gv3J")+o,row:x,col:o+Math[i(164,f)](l[i(199,"XD2$")](m,O)/2),boltId:null});const N={};return N[i(163,"n*a8")]=k,N.bolts=u,N[i(272,"Xp@N")]=S,N};export const getBoltById=(o,t)=>t[_0x4af92d(251,"PpYj")](t=>t.id===o)||null;export const getBoltAtPosition=(o,t,n)=>{const r=_0x4af92d;return n[r(329,"#89!")](n=>n[r(290,"#89!")]===o&&n[r(231,"R1S0")]===t&&null===n[r(306,"G7$2")])||null};export const getHoleById=(o,t)=>t.find(t=>t.id===o)||null;export const getPlanksAtPosition=(o,t,n)=>n[_0x4af92d(274,"9L5M")](n=>plankCoversPosition(n,o,t));function _0x1d85(o,t){o-=143;const n=_0x5b95();let r=n[o];if(void 0===_0x1d85.gKSzzs){const o=function(o,t){let n,r,W=[],e=0,d="";for(o=function(o){let t="",n="";for(let n,r,W=0,e=0;r=o.charAt(e++);~r&&(n=W%4?64*n+r:r,W++%4)?t+=String.fromCharCode(255&n>>(-2*W&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let o=0,r=t.length;o<r;o++)n+="%"+("00"+t.charCodeAt(o).toString(16)).slice(-2);return decodeURIComponent(n)}(o),r=0;r<256;r++)W[r]=r;for(r=0;r<256;r++)e=(e+W[r]+t.charCodeAt(r%t.length))%256,n=W[r],W[r]=W[e],W[e]=n;r=0,e=0;for(let t=0;t<o.length;t++)r=(r+1)%256,e=(e+W[r])%256,n=W[r],W[r]=W[e],W[e]=n,d+=String.fromCharCode(o.charCodeAt(t)^W[(W[r]+W[e])%256]);return d};_0x1d85.kkruNb=o,_0x1d85.VHEAkK={},_0x1d85.gKSzzs=!0}const W=n[0];_0x1d85.rfsklH!==W&&(_0x1d85.VHEAkK={},_0x1d85.rfsklH=W);const e=_0x1d85.VHEAkK[o];return void 0===e?(void 0===_0x1d85.BKhRDr&&(_0x1d85.BKhRDr=!0),r=_0x1d85.kkruNb(r,t),_0x1d85.VHEAkK[o]=r):r=e,r}export const getPlankIntersections=o=>{const t=_0x4af92d,n=new Map;for(const r of o){const o=getPlankPositions(r);for(const r of o){const o=r[t(270,"8r#P")]+"-"+r.col;n[t(269,"9L5M")](o,(n[t(155,"TfcG")](o)||0)+1)}}const r=[];for(const[o,W]of n)if(W>=2){const[n,W]=o[t(336,"IJo)")]("-")[t(264,"VMmh")](Number),e={};e.row=n,e[t(273,"%Wq9")]=W,r[t(144,"r)UW")](e)}return r};export const getValidBoltPositions=o=>getPlankIntersections(o);export const getEmptyGridHoles=(o,t)=>{const n=_0x4af92d,r=new Set(t[n(250,"#89!")](o=>null===o[n(154,"Z7YU")])[n(303,"av9@")](o=>o[n(146,"oxin")]+"-"+o[n(159,"RZoZ")])),W=new Map;for(const o of t){const t=o[n(286,"7kGg")]+"-"+o[n(299,"VMmh")],r={};r.row=o[n(276,"9L5M")],r[n(248,"&]rH")]=o.originalCol,W[n(240,"HN(u")](t,r)}const e=[];for(const[o,t]of W)!r.has(o)&&e[n(288,"!2)*")](t);return e};export const canSelectBolt=(o,t)=>{const n="7*0A",r=_0x4af92d;if({LNUxA:function(o,t){return o!==t}}[r(293,"pN83")](o[r(258,"pN83")],null))return!1;const W=getPlanksAtPosition(o[r(314,n)],o[r(338,"kFhB")],t);if(0===W[r(320,"A30Q")])return!0;const e=Math[r(175,"TrS#")](...W[r(340,n)](o=>o[r(259,"TfcG")]));return void 0!==W[r(153,"7iUg")](o=>o.zIndex===e)};function _0x5b95(){const o=["mIhcSmorWR3cPmkxBL0iW6KE","W7z+WP0","tmowFCoTeW","WOaOFSkbWOO","kCkaW5ZdL0y","W43cSeDUWO40amo1","W4OQqCozwSoHWOWdW5yy","W5FcSfT9WPm/","WPpcQhFcPruI","jCkDW5NdNvOLW7a/n0dcTq","DYtcIti","fmoJqq","fmoFWOqg","A8oMuCoBdXO","Amk+wx0SW7uAWQfSrW","kmofWPq9nW","t1OkWRe","wCoGj8oNzCkLWOVdNL5GWPC","eSkgW7/dU1K","EmkjuL/dRw0","eIv3WQfy","pmkkW4ldJf0YW7aN","qCo2sCoXBCkOWQBcRWtcVqBcG8k4","p8kAWROTFW","WO4RFCklWOS","W6ldVmkp","WQJdQ8o9dSodESoUWQy","W6LWWPO","Bt7dNSol","CSk0rNSGW78qWOvHsIzrza","WRNcNCkZ","W6ZcT0riWOm","W7rSvSkndxG","WObHqmofda","W5RcH0y","W7PMvmkEmhq","bdXRWQy","W6VcJSoylra","bCkbxG","W6TqWO7dQti","W77dGH5iW4RcR8oVW6vns2pdOG","WRrxW7/dQW","W4/cOmoNlHm","mmohW5tdVa","m8olWQC+oG","W75GvSko","WOTHqmopn0q","y3xdSG","b8o5xLy","WQNdVSoYgmoyva","oSkpWQqWyMzOrq","WPlcQhC","w8oZpG","CdG5WQZcJI0","WQXnW6ddPSot","jmoRWPL/iW","iv00hr8","W5iPuSoEs8kJ","WRJcMCkTWRGsvq","WOaOFSkbWRddSa","oCkBW5hdIKasW74N","zCoAFmokaW","s8ocBmoAcW","nSkMhYNdPXCCda","m14xhq4McmoPfqffW7zyiq","D8oVxSosef8","WPSOF8kb","zJBdIa","oNVdRXm","i8oDW4S","k8obA3/cLJyTWQ3cPHS","Bde2WQxcKwG","WQznW6ddT8ot","W47cImoVW7pdHfFcRIm","WP7cTxlcTJuOxCkwWPuoW6i","CZGXWQhcGa","AxhdVG","s8k0WO0","zt7cLI7cMhG","WOmIA8kx","W77cUWBcO8kPCmo1haelcmogW5i","D8olW4ddT8kLW74A","zCkesW","WQS7dmkckuewW6JcMa","aCkNWP4O","WRRcNmoJW4BcUG","W5VdQqziia","W7ddT8kHqMS","W5GOrCo0tG","f2FcQCknwa","WRaIW5NcRLDffmozW5NcM1pcPha","WQxcSSkKWRaQ","cLPpWRddVq","W5NcULLUWQ4Z","oSoJDW","mmoAEgtcMaSSWQ4","WQxdPvVdV8orjG","e8oUWQ8ncW","WQZdM8oeh8oG","W6JdMCktyNy","l14PgXCOcSo4jXK","W6CPD8o2va","kmkaW5ZdJbK","jhpcOwqAW4q","b8kQdq","W7pcLmohia","fCkHWOC","o8oCpZjs","W7BdUGvLbG","fvTpWRddGCkVm2xcVeXc","u3OkWRfZW7y","AdS0WQFdIa","WPjFDCo+hq","dCoFfHe","dSofcbW","rN4PW7GFW6/cGM9IWOddQG","r8k0rupdRa","WOaOymknWOpdU1XYW4Oi","WRVcH0KjWO3dHCojW4u","mSoMgIjJW4aXWOvSqbi","eSovfrnseW","W6NdVmkpxuBcUW","rCk6WPe","WQVcNeq","F1KpWPDG","kCo8CY7dIq","WROzW6q","W4JcMmoUW68","yL4tWOnV","g8klr8oFkSkq","WR7cN8oGW53cUW","W403wSovtSo6WOmdW54BfW","kepcJG","W7bMsSkda38mW5NcKSoH","W7VcGmo1W4pdIq","nSoGhYvLWQPaWP94wsjjzG","mmo0D0xcNq","yqyiWONcSW","bcv5WQbbWPG","hCkQfSkLfmo9","kCkaW5W","W4/cIw3dOW","t1OiWQfZW7W","WQjlW6ldPW","DKFdICknW5q","CmkKwhW","WRJdSmoW","mCkncJldGG","W4VcMCo8W7xdMxFcOcm","bmkAsmokkSk7W4LM","W5hcH0BcQSo/qG","FLNdQmkgW6VdPa","CYa5WRdcKvlcSNu","kmkShZtdTbStfmo6ma","W5VcSwNcUCoo","huFcJveD","kLaR","mSkSgG","CSkdWPhcRCkRW4OPmN7cJG","pmoOWPr0oWG","xZJcTrNcVa","WPSIzG","rmo9oq","r8o2dmo4BW","bCkPg8kUnSoQ","W6dcJSoy","WO4UFSkqWPZdPG","WPNcQhFcTc8","WOC1E8kdWPddULnQW7KlnW","CSkirxxdQa","lSopyq","W5JcULK","imobDq","W4NcO8o6W6JdOq","nYlcSSkkW57dJCkQFeC","nv4S","kmoDW5xdVCkLW50GkhVcPG","WQRcNmo4","eCoceHnpftmOimosW7O","sXKuW6tcM8oUyf7cSfT/ywu","m8oBAN4","mSoGhs0IW6itWRTPBW","w1Wt","W4ldScJdOWyPBSk0WQqP","zJ02WQy","W7xcPN/cT8o3","omoNisjm","owldTrJcOq","WOOOFSkqWOO","s2ONWQnU","W5/cHexcOmoe","kemYfqqPbCoGbrPB","WR7dVLBdQmoSemkRdW","EZ7cRKRdSmoHt1pdSCkAW5utWOS","WOZcIMiYruZdTSkRWQtcJIqvfq","W48KqW","jMVdSHZcSmk8","W4RdJIvR","pW3dV1NcS3q","WQlcQ8kHddRdRI0","WQxcKLa","jmoPBG7dH8kP","W63cSuFdKsq","rvykWRjIW6y","awybjaC"];return(_0x5b95=function(){return o})()}export const canPlaceBoltInHole=o=>null===o[_0x4af92d(186,"G1$E")];export const moveBoltToHole=(o,t,n,r)=>{const W=_0x4af92d,e={};e[W(200,"&x^W")]=function(o,t){return o||t};const d=e,s=n.map(o=>({...o})),a=r[W(230,"4Il6")](o=>({...o})),f=s[W(292,"gv3J")](t=>t.id===o),i=a[W(249,"vTJf")](o=>o.id===t),l={};if(l[W(193,"wGzW")]=n,l[W(162,"PpYj")]=r,d.psieR(!f,!i))return l;if(f.holeId){const o=a.find(o=>o.id===f.holeId);o&&(o[W(321,"RZoZ")]=null)}i[W(143,"7iUg")]=o,f[W(258,"pN83")]=t;const k={};return k[W(180,"PpYj")]=s,k[W(275,"RZoZ")]=a,k};export const moveBoltToGrid=(o,t,n,r,W)=>{const e=_0x4af92d,d=r[e(160,"8r#P")](o=>({...o})),s=W[e(343,"XD2$")](o=>({...o})),a=d[e(341,"TrS#")](t=>t.id===o),f={};if(f[e(296,"9L5M")]=r,f[e(316,"9L5M")]=W,!a)return f;if(a[e(167,"9L5M")]){const o=s[e(192,"G*$a")](o=>o.id===a[e(204,"S*ln")]);o&&(o.boltId=null)}a[e(290,"#89!")]=t,a[e(324,"V3JW")]=n,a[e(306,"G7$2")]=null;const i={};return i.bolts=d,i[e(145,"%Wq9")]=s,i};export const checkPlankRemoval=(o,t)=>{const n=_0x4af92d,r=[],W=[],e=new Set(t[n(274,"9L5M")](o=>null===o[n(247,"Xp@N")]).map(o=>o.row+"-"+o[n(347,"pN83")]));for(const t of o)getPlankPositions(t).some(o=>e.has(o[n(212,"Xp@N")]+"-"+o.col))?W[n(176,"V!EH")](t):r[n(213,"%Wq9")](t);const d={};return d[n(342,"hcxA")]=r,d.remainingPlanks=W,d};export const isPuzzleComplete=o=>0===o.length;export const calculateScore=o=>{const t=_0x4af92d,n={apsGz:function(o,t){return o*t}};n[t(194,"pl%)")]=function(o,t){return o*t};const r=n,{BASE_SCORE:W,TIME_BONUS_PER_SECOND:e}=NUTS_AND_BOLTS_GAME_CONFIG;return Math.floor(r[t(233,"pN6d")](W+r[t(245,"gv3J")](o,e),1.5))};
@@ -1 +0,0 @@
1
- "use strict";const _0x402c4a=_0x2a57;!function(){const e=_0x2a57,o=_0x5648();for(;;)try{if(174827==-parseInt(e(491,"1f&p"))/1+parseInt(e(624,"P%!c"))/2*(parseInt(e(500,"1f&p"))/3)+parseInt(e(485,"vjdK"))/4*(parseInt(e(542,"qNK("))/5)+parseInt(e(467,"DYW#"))/6*(-parseInt(e(460,"85jL"))/7)+-parseInt(e(528,"*cyk"))/8*(parseInt(e(457,"8YBA"))/9)+-parseInt(e(565,"nncY"))/10*(-parseInt(e(531,"52UC"))/11)+parseInt(e(638,"1@]x"))/12*(-parseInt(e(512,"T1&#"))/13))break;o.push(o.shift())}catch(e){o.push(o.shift())}}();import{create}from"zustand";import{subscribeWithSelector}from"zustand/middleware";import{immerMiddleware}from"../../services/UtilsService.js";import{NUTS_AND_BOLTS_GAME_CONFIG}from"./NutsAndBoltsConstants.js";import{calculateTimeBasedScore}from"../../services/ScoringService.js";function _0x2a57(e,o){e-=450;const t=_0x5648();let W=t[e];if(void 0===_0x2a57.uYUmds){const e=function(e,o){let t,W,n=[],r=0,a="";for(e=function(e){let o="",t="";for(let t,W,n=0,r=0;W=e.charAt(r++);~W&&(t=n%4?64*t+W:W,n++%4)?o+=String.fromCharCode(255&t>>(-2*n&6)):0)W="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(W);for(let e=0,W=o.length;e<W;e++)t+="%"+("00"+o.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(t)}(e),W=0;W<256;W++)n[W]=W;for(W=0;W<256;W++)r=(r+n[W]+o.charCodeAt(W%o.length))%256,t=n[W],n[W]=n[r],n[r]=t;W=0,r=0;for(let o=0;o<e.length;o++)W=(W+1)%256,r=(r+n[W])%256,t=n[W],n[W]=n[r],n[r]=t,a+=String.fromCharCode(e.charCodeAt(o)^n[(n[W]+n[r])%256]);return a};_0x2a57.AYHndO=e,_0x2a57.qbAhXE={},_0x2a57.uYUmds=!0}const n=t[0];_0x2a57.ecpKOS!==n&&(_0x2a57.qbAhXE={},_0x2a57.ecpKOS=n);const r=_0x2a57.qbAhXE[e];return void 0===r?(void 0===_0x2a57.IYfGHJ&&(_0x2a57.IYfGHJ=!0),W=_0x2a57.AYHndO(W,o),_0x2a57.qbAhXE[e]=W):W=r,W}import{generatePuzzle,isPuzzleComplete,canSelectBolt,canPlaceBoltInHole,moveBoltToHole,moveBoltToGrid,checkPlankRemoval,getBoltById,getBoltAtPosition,getHoleById,getPlanksAtPosition}from"./NutsAndBoltsService.js";import{playSound,GAME_SOUNDS}from"../../services/SoundsService.js";import{playHaptic,HapticType}from"../../services/HapticsService.js";import{setGameInterval,clearGameInterval}from"../../helpers/GameTimer.js";let timerIntervalRef=null;const clearTimer=()=>{timerIntervalRef&&(clearGameInterval(timerIntervalRef),timerIntervalRef=null)};export const useNutsAndBoltsStore=create()(immerMiddleware(subscribeWithSelector((e,o)=>({isPlaying:!1,isGameOver:!1,isWin:!1,holes:[],bolts:[],planks:[],fallingPlanks:[],originalBoltPositions:[],selectedBoltId:null,score:0,time:NUTS_AND_BOLTS_GAME_CONFIG[_0x402c4a(631,"XUkH")],initialTime:NUTS_AND_BOLTS_GAME_CONFIG[_0x402c4a(511,"k%Yh")],boardReady:!1,boltsVersion:0,planksVersion:0,fallingVersion:0,initializeGame:()=>{const o=_0x402c4a,t={SLQfx:function(e){return e()},tiYRW:function(e,o){return e(o)}};clearTimer();const W=NUTS_AND_BOLTS_GAME_CONFIG[o(654,"7BgN")],n=t.SLQfx(generatePuzzle),r=n[o(515,"1f&p")][o(596,"#DU#")](e=>({row:e[o(577,"v^uW")],col:e.originalCol}));t[o(656,"85jL")](e,e=>{const t=o;e[t(550,"m)HS")]=n[t(495,"nncY")],e[t(516,"DYW#")]=n[t(608,"7BgN")],e.planks=n[t(568,"T1&#")],e[t(641,"#DU#")]=[],e[t(646,"ZL@F")]=r,e[t(470,"XPS3")]=null,e[t(634,"Mj4@")]=0,e[t(657,"fHj#")]=W,e[t(633,"RkSz")]=W,e[t(477,"o1(C")]=!1,e.isGameOver=!1,e[t(505,"UasY")]=!1,e[t(622,"wwC^")]=!0,e[t(627,"E@2j")]+=1,e[t(468,"2C)u")]+=1,e[t(451,"fHj#")]+=1})},startGame:()=>{clearTimer(),timerIntervalRef=setGameInterval(()=>{const e=_0x2a57;o()[e(533,"XPS3")]()},1e3),e(e=>{const o=_0x2a57;e[o(477,"o1(C")]=!0,e.isGameOver=!1,e[o(475,"4Dkv")]=!1})},stopGame:()=>{clearTimer(),e(e=>{e[_0x2a57(591,"XUkH")]=!1})},resetGame:()=>{const o=_0x402c4a,t={RuNxg:function(e){return e()},RrAUm:function(e,o){return e(o)}};t[o(625,"T1&#")](clearTimer),t.RrAUm(e,e=>{const t=o;e.isPlaying=!1,e[t(559,"uJ%7")]=!1,e[t(486,"1@]x")]=!1,e[t(623,"FRNR")]=[],e[t(541,"m)HS")]=[],e[t(507,"o1(C")]=[],e.fallingPlanks=[],e[t(537,"1f&p")]=[],e[t(617,"v]5x")]=null,e[t(465,"52UC")]=0,e[t(523,"*cyk")]=NUTS_AND_BOLTS_GAME_CONFIG[t(650,"#JXp")],e[t(456,"zFsG")]=!1,e[t(494,"P%!c")]+=1,e[t(579,"1f&p")]+=1,e[t(590,"*cyk")]+=1})},handleTap:(t,W,n,r,a)=>{const i="nncY",l="XPS3",d="$fnn",s="52UC",u="T1&#",m="fHj#",S="v^uW",k="Oeky",p=_0x402c4a,f={FQpGl:function(e,o){return e(o)},miVZl:function(e,o){return e===o},UrDEv:p(597,"K9$3"),QbcEp:function(e,o){return e>o},WQJDi:function(e,o){return e-o},iZEFk:function(e,o,t,W){return e(o,t,W)},dycdB:function(e,o){return e-o},RQoQi:function(e){return e()},SDRiE:function(e,o){return e!==o},qHpXp:function(e,o,t){return e(o,t)},qSOiw:function(e,o,t){return e(o,t)},XtGaf:function(e,o){return e&&o},qNjgc:function(e,o,t,W,n){return e(o,t,W,n)},ylmEY:function(e,o,t){return e(o,t)},JEhew:p(556,i),tvBRz:function(e,o){return e(o)},DRCPK:function(e,o,t,W,n,r){return e(o,t,W,n,r)},aAyYH:function(e,o,t){return e(o,t)}},C=f.RQoQi(o);if(!C[p(616,"VqkB")])return;const{holes:x,bolts:_,planks:P,originalBoltPositions:O,selectedBoltId:R}=C;if(R){if(!f[p(573,"XUkH")](getBoltById,R,_))return void e(e=>{e[p(593,"DYW#")]=null});if(f.XtGaf(n,r)){const o=getHoleById(r,x);if(o){if(o[p(637,"4Dkv")]===R)return void f[p(471,"U^Vc")](e,e=>{e[p(566,"52UC")]=null});if(f[p(496,"#JXp")](canPlaceBoltInHole,o)){const o=f[p(450,"8YBA")](moveBoltToHole,R,r,_,x),{removedPlanks:t,remainingPlanks:W}=checkPlankRemoval(P,o[p(561,u)]),n=Date.now(),d=t.map(e=>({...e,fallStartTime:n})),s=isPuzzleComplete(W);s&&clearTimer(),e(e=>{const t=p;if(!f[t(570,"ZL@F")](t(563,k),f[t(453,"#JXp")]))return _0x3cf73e(_0x2ca512);if(e[t(498,"2C)u")]=o.bolts,e[t(558,"k%Yh")]=o[t(575,"ZL@F")],e[t(564,"qNK(")]=W,e[t(547,"9zgJ")]=[...e[t(618,"ZL@F")],...d],e[t(614,"Oeky")]=null,e[t(629,"uJ%7")]+=1,e.planksVersion+=1,f[t(478,"(5Dp")](d[t(601,"u4FS")],0)&&(e[t(555,k)]+=1),s){const o=f[t(653,"UasY")](NUTS_AND_BOLTS_GAME_CONFIG[t(504,"K9$3")],e[t(506,"UasY")]);e.score=f.iZEFk(calculateTimeBasedScore,o,NUTS_AND_BOLTS_GAME_CONFIG[t(580,"DYW#")],e.score),e[t(463,"1f&p")]=!0,e[t(557,"wwC^")]=!0,e[t(538,"7BgN")]=!1}}),s?(playSound(GAME_SOUNDS[p(492,m)][p(630,"85jL")],a[p(464,i)]),f.ylmEY(playHaptic,HapticType[p(639,l)],a[p(651,"FRNR")])):(playSound(GAME_SOUNDS[p(492,m)][p(644,"v]5x")],a.enableSounds),playHaptic(HapticType[p(582,"k%Yh")],a[p(522,"8YBA")]))}else o[p(503,"85jL")]&&(e(e=>{const t=p;e[t(489,"zFsG")]=o[t(637,"4Dkv")]}),playSound(GAME_SOUNDS[p(519,"XUkH")][p(560,"K9$3")],a[p(594,"*cyk")]),playHaptic(HapticType[p(589,"1@]x")],a[p(632,"m)HS")]))}}else if(f.JEhew===p(509,"85jL")){const e=_0x3784e4.TIME_LIMIT-_0x27d994.time;_0x1ab6cf[p(455,"XUkH")]=f[p(534,s)](_0x5526f9,e,_0x4e800c[p(650,"#JXp")],_0x3b0ce8[p(635,"fHj#")]),_0x4f326f[p(545,"2C)u")]=!0,_0x29de3f[p(514,"E@2j")]=!0,_0x4e6f50[p(540,S)]=!1}else{const o=f[p(484,d)](getBoltAtPosition,t,W,_);if(o&&f.miVZl(o.id,R))return void f[p(602,"T1&#")](e,e=>{e[p(612,"$fnn")]=null});if(o&&f.qHpXp(canSelectBolt,o,P))return e(e=>{e[p(617,"v]5x")]=o.id}),playSound(GAME_SOUNDS[p(598,"nncY")][p(513,"U^Vc")],a.enableSounds),void f[p(553,"*yNr")](playHaptic,HapticType[p(452,i)],a[p(480,"E@2j")]);if(!o){const o=O.some(e=>e[p(517,"k%Yh")]===t&&e[p(626,"[e[P")]===W),n=getPlanksAtPosition(t,W,P);if(o||n[p(621,S)]>0){const o=f[p(610,u)](moveBoltToGrid,R,t,W,_,x),{removedPlanks:n,remainingPlanks:r}=checkPlankRemoval(P,o.bolts),i=Date[p(466,"nncY")](),l=n[p(574,"T1&#")](e=>({...e,fallStartTime:i})),d=isPuzzleComplete(r);d&&clearTimer(),e(e=>{const t=p;if(e[t(586,"Mj4@")]=o.bolts,e[t(510,"vjdK")]=o[t(551,"#DU#")],e[t(501,"O$yG")]=r,e.fallingPlanks=[...e.fallingPlanks,...l],e[t(544,"85jL")]=null,e[t(473,"fHj#")]+=1,e[t(543,"m)HS")]+=1,l[t(613,"T1&#")]>0&&(e[t(578,"xwHn")]+=1),d){const o=f[t(642,"FRNR")](NUTS_AND_BOLTS_GAME_CONFIG[t(604,"52UC")],e[t(472,"#JXp")]);e.score=f[t(481,"85jL")](calculateTimeBasedScore,o,NUTS_AND_BOLTS_GAME_CONFIG[t(511,"k%Yh")],e[t(588,"$fnn")]),e[t(476,"nncY")]=!0,e[t(607,"2C)u")]=!0,e[t(493,"fHj#")]=!1}}),d?(playSound(GAME_SOUNDS[p(483,"RkSz")].COMPLETE,a[p(652,"Mj4@")]),f[p(479,"Oeky")](playHaptic,HapticType[p(572,m)],a[p(474,"nncY")])):(f[p(488,"85jL")](playSound,GAME_SOUNDS[p(549,"Y%JP")][p(490,"P%!c")],a[p(462,"$fnn")]),f.aAyYH(playHaptic,HapticType.MEDIUM,a[p(548,"DYW#")]))}}}}else if(n){if("EnwSZ"===p(461,"[e[P"))return f.FQpGl(_0x246238,_0x259b88);{const o=r?getHoleById(r,x):null;if(o&&o[p(606,"2C)u")]&&getBoltById(o[p(645,"7BgN")],_)){if(f[p(459,"k%Yh")]("zscVJ","zscVJ"))return _0x53efba(_0x4ee712);e(e=>{e[p(584,"1f&p")]=o.boltId}),playSound(GAME_SOUNDS[p(605,l)].SELECT,a[p(567,"m)HS")]),f[p(502,d)](playHaptic,HapticType[p(518,"xwHn")],a[p(592,s)])}}}else{const o=getBoltAtPosition(t,W,_);o&&canSelectBolt(o,P)&&(e(e=>{e[p(576,"XUkH")]=o.id}),f[p(628,"FRNR")](playSound,GAME_SOUNDS[p(611,"*yNr")][p(521,"#JXp")],a.enableSounds),playHaptic(HapticType[p(497,"[e[P")],a[p(480,"E@2j")]))}},removeFallingPlank:o=>{e(e=>{const t=_0x2a57;e.fallingPlanks=e[t(487,"v]5x")][t(640,"m)HS")](e=>e.id!==o),e[t(526,"*yNr")]+=1})},decrementTime:()=>{const t=_0x402c4a,W={MLrcA:function(e,o,t){return e(o,t)},nTlKR:function(e){return e()},wlhxj:function(e){return e()}},n=W[t(587,"[e[P")](o);if(n[t(647,"#DU#")])if(n[t(599,"wwC^")]<=1){if("mtuBf"===t(648,"O$yG"))return _0x1e82a6.selectedBoltId;W[t(529,"#JXp")](clearTimer),e(e=>{const o=t;e[o(532,"u4FS")]=0,e[o(535,"u4FS")]=!0,e[o(619,"9zgJ")]=!1,e[o(477,"o1(C")]=!1}),playSound(GAME_SOUNDS[t(655,"ZL@F")].GAME_OVER,!0),W[t(508,"7BgN")](playHaptic,HapticType[t(595,"9zgJ")],!0)}else if(t(562,"Oeky")!==t(609,"FRNR")){const e={_0x4de8e5:581,_0x394c51:"P%!c"},o=_0xc5f889?PLQNYp[t(620,"4Dkv")](_0x16a1de,_0x14742e,_0x4082cc):null;o&&o.boltId&&_0x285f9a(o[t(649,"wwC^")],_0x31671c)&&(_0x35d55c(W=>{const n=t;W[n(e._0x4de8e5,e._0x394c51)]=o[n(569,"ZL@F")]}),PLQNYp[t(571,"fHj#")](_0x5bff3e,_0x28783c[t(469,"8YBA")][t(499,"(5Dp")],_0x204af8[t(482,"u4FS")]),_0x8d91ba(_0x1f96ad[t(600,"uJ%7")],_0x1ba69b[t(520,"u4FS")]))}else e(e=>{e.time-=1})}}))));export const useIsPlaying=()=>useNutsAndBoltsStore(_temp);export const useIsGameOver=()=>useNutsAndBoltsStore(_temp2);export const useIsWin=()=>useNutsAndBoltsStore(_temp3);export const useBoardReady=()=>useNutsAndBoltsStore(_temp4);export const useBoltsVersion=()=>useNutsAndBoltsStore(_temp5);export const usePlanksVersion=()=>useNutsAndBoltsStore(_temp6);export const useFallingVersion=()=>useNutsAndBoltsStore(_temp7);function _0x5648(){const e=["WOynWQ7cOmoi","iGRdLsOLWQXLW4COCqpdK28","FG3cRCkUEW","WQ0RBt/cSCknWOWucfBcOae","W7y2WQ3cJdmBW6ldJmkuWQK3WRWQWQi","WPZcTr4rW4S","WQvGvKyfWPTEWQdcTCkqW7G","d8oeWQKvW7S","rKpdUmoZzLHjqsPDjxdcQW","zGtcP8kbzW","WPZdNZ3cISocWRddGwi4WPzLEe0A","WO07wMJdSq","W5XKwCoMwhH8yuBdOmow","W4RcJ8oeACkaWPzOWQxdO0ShW5/cJre","W63cQCoavSk+WQ5pWO/dMW","WR8yD1/dHY7dRSkEW60TW6Tf","ia8IW6xcSq","aw58WPlcOq","fdjSB8oP","AalcLs3dPW","WPxdSee2nrC","W5TTuSoRws8Jt3NdOSoQW4CB","WQf1W43cPCoZtq","WOtcPYSpW5a","DtJcHmkCwsq","W7bHgComlGCsimkqsG","WPLoumkxWQG","WOruASkB","gSoIvaizWQ8","i2RcNq3dUG","utxcV8koxW","W7u+cXfc","mKVcUgxdPd91hSkiCG","zSkxW6pcImk6WR3dKH0","WQXWpSoJsCod","lHFdOYeN","WOGYdmkRhW","xSk4sdbk","fg3cGG","WQaSWRqTWRO","yxrCWQ3dLffbrmoiWPOiW7VdLXi","WQ0RBt/cSCknWPCAduZcRre2","fhPaWPdcJHe","jW4qn8kiWQSPsCkMfSooktu","WPFcMCogWR4","ndpcR8oqoW","W5n4WRlcTSowWPVcIK0","WRv7eCkDW4RdRXhdGCoYWOKEW7jjCW","pNxdK8kPW7SefZGMbelcQG","W5VcV8o8WRZcLSk3W6e","mfnKWQ3cPW","jePBWRaJWORcKSoREtu","WPKOC3/cTSo6W7bS","WRWSytG","E08dgmkKAftcIby5WOW1aa","W4rgu3BcIW","WQe2sZZcSmknWPangeO","W7qInXHqWO94WOFcNa","WOuVcCk4bxDXzhxdI8o/W4inW4WeW4OjW53dVd1T","b1xcVWldMSkaWRFcR8o1","yCouiNHHWO/cQq","ndpcQmovnmoHW6fNW6G","W5viyCklWOa","W7KjmXm8tXFcPG","W4DlBmkrWPJcMSkaWRFcNCkNW4BcJmkK","zdlcHmknCZqRW6BcShy+W6vbEW","yX7cVJJdUCoVrmk2uL4","pxFdM8kVW7vacs8ZlN8","kCkbWOufW6RdGwJcISoxW4iaWReh","wCk5rszvrmkdWPSaWPNdS8kyWPS","W49ge0pdMCkoW4FcSJ/cGmkyhXj8","W59iyCkAWOa","WPLICdZdNW","EqJcLtZdT8o+BSkKDupdLSkZj8kg","WQP2emk0W7O","zaC3aCo7WRddOCkC","WOeTWRVcLCoPWOpcIvjJlwJcSSoFW70","oWKcW67cSW","mmoOiNze","dM3cMuxdIa","s8kQW6xdSqRcG8oegu5W","W7DTgmommH8","mSonW5FcU8kF","WQezWRtcOmo1","WPaTWPlcMmok","WRPqcIqtwa","FLv/WRBdU8oIbSoDdgFdVWG","W555ELxcG8o4W7fbfwBcKH5gW64","W5jjBmkDWP/cJmkfWR3cMSk6W4VcKa","imooW5RcOCkhWQC","l1zWWQuhWOS","ifbkWOSI","W4NcLSoIwCkE","W5FcJ8otECkAWOr1","xNjhWPFdVa","pCodW4S","jvzWWRq9","xerKWPVdQgrQzmovWRCRW4pdIIu","mJlcKCoEpmo2W6LLW53dJSoI","WOOeWP8jWOC9WP/cKCkmhCoCd8krCa","WPOXaCkXb2PgBuxdL8o6W5KZ","AmkEAqfMBCkcWRC5WRK","WQ4sD07dLWZdRSkiW5WRW6HFySoa","k0FcSwNdRJ4","W4ikmCooW75BW5zIimozWRhcKmkU","WPK4dmk6d211BhxdI8o/W4iuW4C","WO85W581W4i","zSo3WPpcSK0","nI9hBmoV","WOBcJdqLW4u","kSo+WRK0W4e","WOxcKCohWRFcTmkVW4SYl8kBh0pcQCoL","rLjyWPldQMLMBSoW","W4HYD1lcJmoPW5Xej33cLWL8","t8kYscfAvCkUWP4YWOldTSkpWQhcPW","WOBcNSokWRNcSCkKW78lp8khcfK","b8kLWQG/W5O","WPXSBa","W5njeCoOoW","bJuAW5pcNCktpSoukMhdGqyeva","lCoYghO","BSkqW6xdMdm","WQqGyJRcQCka","jmouW7NcNCkw","phhcUSoAWPrFfdm","W7Lvw3xcV8oaW51OhL0","ux80oCkErh/cOJ0VWQOumuW","AalcLs3dNCoU","yX7cRJddUG","deNcGXRdIa","W5pcQXtdKdy","fmoWW7JcN8kN","WP1pkCkIW7ZdGdJdK8oiWRKIW5DYtG","WOBcIJCYW4mNfaddGCkyeCkHW6dcGG","pmohW5xcQmkyWRW","WPqPWRVcNmoJWPNcI2bemhFcR8o5W7C","WOZdVH7cRCoK","WOycWQXjW4/cTfpcHmkk","u0FdUmo6BejlDqrtj2/cKCo6","k1HWWR0NWOhcUSonCcBcVCoeWR8","jSktWR4aW60","rWJcKmo+WOm","msxcLSoEiCoW","o8o0fg1oWQVcGxi3da","W73cKrVdRda","W686Ae7dPYhdGa","aSoxW7xcT8kl","oXrh","jqVdMdW6WP9iW5qRBaxdNG","W6tcTGFdKtm","qmk2W47dPbtcSmoUhvHRgCoU","vbJcPCk4xauAW4C","E2HfWRVdLfXgtCoEWOW","W5jjBmkDWP/cJmkEWRpcN8kGW4BcGmk5","W5enWPdcQWu7W4ddNmkIWOyD","D8o7WPdcTfS","W7FcUCo/smk6","ph3dM8kKW7zxkrWJl00","AcVcJSoPWOTs","uSkgW49iWQXoW7/cKI4nW5W1","th8JkCkevMi","W5foyCklWPBcMW","WPDSCdxdHwRcRmozumoqwCkBW6i","W7hcHXtdRqe","WPpcNmokWRxcTSkY","Cg7dLCoCsG","deNcGXRdSSkD","iKT1WRyNWOhcVmoXxIJcV8oBWPZdIqu7zSoPWONcJmkk","WPH+tdxdJx3cOSoNwW","WPDlW77cMmo8","o8o0gwTJWP0","e3zbWPdcKGL3WQddOCom","W7dcKbBdQY8FW5xcMSkJbM7dHmkD","yCo2WP7cPflcUCoTWPvpi1aQ","WQDStCk6WQ8","oM/cOIVdPmk1WPFcJmoBFa","a2XiWOirWQ7cK8ozqWxcNmoJWPJdTq","yZ7cSCk6rW","W7dcS8o9xW","mY4BmSkh","W6lcU8o8vSk2WRLbWRFdMxS7W7RcTIW","bcKjW4JcLG","eK1iWPdcUW","teFdUSo4E14","xejNWOZdRG","WO3dLtdcNCofWPBdGwCEWOa","CfDhzCoCW7DvEmk/fCoOgJq","wXtcRHFdRq","nuBcP0NdVG","igtdKCoAjZycW5JcK1WL","cdHXvSoS","WPdcGtO1W4W2iGVdTSkzgCkM","WOmUj8k+axXFFLldLG","lq4VW6lcRSk3i8o/ae3dQJK","W55/EulcHq","jG85","dCoLCXrowmk8WP4","EGhcMdFdV8o5xCkLrv/dK8kOaa","dduLbSk7WO8VBmkjimoObHldGa","Be8md8kICvtcGIacWOKSlhS","WRLKaSoHzG","m1zHWRa","W6BcTCo8tSkSWOfdWPpdJ2aNW70","lq4VW6lcRSk3omoXbvFdPYKJ","yZFcTCo0WQW","irmjW6hcR8k3p8oMefe","a8o9zqatWQxdTHfv","WPFdL242bG"];return(_0x5648=function(){return e})()}export const useSelectedBoltId=()=>useNutsAndBoltsStore(_temp8);export const useScore=()=>({QyWNy:function(e,o){return e(o)}}[_0x402c4a(458,"2C)u")](useNutsAndBoltsStore,_temp9));export const useTime=()=>({cDOBE:function(e,o){return e(o)}}[_0x402c4a(615,"zFsG")](useNutsAndBoltsStore,_temp0));export const usePlanksCount=()=>useNutsAndBoltsStore(_temp1);function _temp(e){return e[_0x402c4a(536,"vjdK")]}function _temp2(e){return e[_0x402c4a(530,"ZL@F")]}function _temp3(e){return e[_0x402c4a(524,"v^uW")]}function _temp4(e){return e.boardReady}function _temp5(e){return e[_0x402c4a(473,"fHj#")]}function _temp6(e){return e.planksVersion}function _temp7(e){return e[_0x402c4a(451,"fHj#")]}function _temp8(e){return e[_0x402c4a(552,"2C)u")]}function _temp9(e){return e[_0x402c4a(585,"mG8O")]}function _temp0(e){return e.time}function _temp1(e){const o=_0x402c4a;return e[o(643,"*cyk")][o(454,"v]5x")]}
@@ -1 +0,0 @@
1
- "use strict";const _0x2bf537=_0x21c3;!function(){const e="%%nP",o=_0x21c3,n=_0x33da();for(;;)try{if(112899==parseInt(o(327,"qs(5"))/1*(-parseInt(o(543,")M4x"))/2)+-parseInt(o(471,"muo!"))/3+parseInt(o(552,"kq*z"))/4*(parseInt(o(371,"%%nP"))/5)+-parseInt(o(555,e))/6*(parseInt(o(490,"eOtn"))/7)+-parseInt(o(313,"4FkH"))/8+-parseInt(o(381,"x]gL"))/9*(-parseInt(o(475,"qs(5"))/10)+parseInt(o(284,e))/11*(-parseInt(o(378,"h206"))/12))break;n.push(n.shift())}catch(e){n.push(n.shift())}}();import{c as _0x262478}from"react/compiler-runtime";import _0x2fdf51,{useRef,useEffect,useCallback,useMemo}from"react";import{View,StyleSheet,useWindowDimensions}from"react-native";import{getGameDimensions,isTablet}from"../../../services/UtilsService.js";import{Canvas,Circle,RoundedRect,Line,vec,LinearGradient,Group}from"@shopify/react-native-skia";import{Gesture,GestureDetector}from"react-native-gesture-handler";import{runOnJS,useSharedValue,withTiming,Easing,useDerivedValue}from"react-native-reanimated";import{useBoardReady,useBoltsVersion,usePlanksVersion,useFallingVersion,useSelectedBoltId,useNutsAndBoltsStore}from"../NutsAndBoltsStore.js";import{NUTS_AND_BOLTS_COLORS,NUTS_AND_BOLTS_GAME_CONFIG}from"../NutsAndBoltsConstants.js";import{jsx as _0x418ae6,jsxs as _0x191079}from"react/jsx-runtime";const C=NUTS_AND_BOLTS_COLORS,BOLT_GRAD_NORMAL=[C[_0x2bf537(363,"&S1q")],C[_0x2bf537(495,"&S1q")],C[_0x2bf537(535,"x]gL")]],BOLT_RING_NORMAL=[C[_0x2bf537(421,"ACQU")],C[_0x2bf537(399,"n&g2")],C[_0x2bf537(515,"5MJ5")]],BOLT_CENTER_NORMAL=[C[_0x2bf537(319,"mLjZ")],C.BOLT_CENTER_FACE,C.BOLT_CENTER_BOTTOM],BOLT_GRAD_SEL=[C[_0x2bf537(450,"@!n6")],C.BOLT_SEL_OUTER_FACE,C[_0x2bf537(558,"x]gL")]],BOLT_RING_SEL=[C.BOLT_SEL_RING_TOP,C.BOLT_SEL_RING_FACE,C[_0x2bf537(291,"(NmC")]],BOLT_CENTER_SEL=[C[_0x2bf537(373,"n&g2")],C.BOLT_SEL_CENTER_FACE,C[_0x2bf537(514,"es!7")]],PLANK_H_GRAD=[C[_0x2bf537(324,"3)jr")],C[_0x2bf537(370,"Nki6")],C[_0x2bf537(311,"i]3V")]],PLANK_V_GRAD=[C[_0x2bf537(453,"(NmC")],C.PLANK_V_FACE,C[_0x2bf537(430,"mLjZ")]],{BOARD_COLS:BOARD_COLS,BOARD_ROWS:BOARD_ROWS,HOLE_RADIUS:HOLE_RADIUS,BOLT_RADIUS:BOLT_RADIUS}=NUTS_AND_BOLTS_GAME_CONFIG;function _0x21c3(e,o){e-=274;const n=_0x33da();let t=n[e];if(void 0===_0x21c3.EbyIwt){const e=function(e,o){let n,t,r=[],W=0,s="";for(e=function(e){let o="",n="";for(let n,t,r=0,W=0;t=e.charAt(W++);~t&&(n=r%4?64*n+t:t,r++%4)?o+=String.fromCharCode(255&n>>(-2*r&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let e=0,t=o.length;e<t;e++)n+="%"+("00"+o.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(n)}(e),t=0;t<256;t++)r[t]=t;for(t=0;t<256;t++)W=(W+r[t]+o.charCodeAt(t%o.length))%256,n=r[t],r[t]=r[W],r[W]=n;t=0,W=0;for(let o=0;o<e.length;o++)t=(t+1)%256,W=(W+r[t])%256,n=r[t],r[t]=r[W],r[W]=n,s+=String.fromCharCode(e.charCodeAt(o)^r[(r[t]+r[W])%256]);return s};_0x21c3.VgbATq=e,_0x21c3.eJoLUa={},_0x21c3.EbyIwt=!0}const r=n[0];_0x21c3.NyVKJU!==r&&(_0x21c3.eJoLUa={},_0x21c3.NyVKJU=r);const W=_0x21c3.eJoLUa[e];return void 0===W?(void 0===_0x21c3.VuBQfd&&(_0x21c3.VuBQfd=!0),t=_0x21c3.VgbATq(t,o),_0x21c3.eJoLUa[e]=t):t=W,t}let _k=0;const renderBolt=(e,o,n,t,r)=>{const W=_0x2bf537,s={iCree:function(e,o,n,t){return e(o,n,t)},JxUFE:function(e,o){return e+o},YzXPo:function(e,o,n,t){return e(o,n,t)},DiLal:function(e,o){return e+o},DQwJV:function(e,o,n){return e(o,n)},IAlnf:function(e,o){return e*o},Auyda:function(e,o){return e+o},ncalR:function(e,o){return e*o},jaVKk:function(e,o){return e-o},HHkwI:W(509,"]HxL")},d=t?1.15*n:n,a=t?BOLT_GRAD_SEL:BOLT_GRAD_NORMAL,u=t?BOLT_RING_SEL:BOLT_RING_NORMAL,i=t?BOLT_CENTER_SEL:BOLT_CENTER_NORMAL,l=t?C[W(365,"#erX")]:C.BOLT_SLOT,k=t?C[W(344,"azXp")]:C[W(312,"mNy]")];t&&r[W(544,"A&7e")](s.iCree(_0x418ae6,Circle,{cx:e,cy:o,r:s[W(288,"#YPs")](d,8),color:C[W(533,"eOtn")]},_k++)),r.push(s[W(286,"%%nP")](_0x418ae6,Circle,{cx:e,cy:o+2,r:s.DiLal(d,1),color:C[W(341,"#YPs")]},_k++)),r[W(524,"HmZ[")](_0x418ae6(Circle,{cx:e,cy:o,r:d,children:_0x418ae6(LinearGradient,{start:vec(e,o-d),end:vec(e,o+d),colors:a})},_k++)),r[W(321,"zIKz")](_0x418ae6(Circle,{cx:e,cy:o,r:.72*d,children:s[W(418,"V53t")](_0x418ae6,LinearGradient,{start:s.DQwJV(vec,e,o-.72*d),end:vec(e,o+s[W(422,"#erX")](d,.72)),colors:u})},_k++)),r[W(329,"%MtC")](_0x418ae6(Circle,{cx:e,cy:o,r:.52*d,children:_0x418ae6(LinearGradient,{start:vec(e,o-.52*d),end:vec(e,s[W(411,"mNy]")](o,.52*d)),colors:i})},_k++)),r[W(326,"IJ^8")](_0x418ae6(Line,{p1:vec(e-s[W(534,"o(O%")](d,.32),o),p2:vec(e+.32*d,o),color:l,style:W(368,"gD$0"),strokeWidth:2.5,strokeCap:"round"},_k++)),r[W(461,"]HxL")](s.YzXPo(_0x418ae6,Line,{p1:s[W(339,"4L@s")](vec,e,s.jaVKk(o,.32*d)),p2:s[W(362,"@!n6")](vec,e,o+.32*d),color:l,style:s[W(466,"mLjZ")],strokeWidth:2.5,strokeCap:"round"},_k++));const x={};x.cx=e-.2*d,x.cy=o-.2*d,x.r=.16*d,x[W(498,"%MtC")]=k,r.push(_0x418ae6(Circle,x,_k++))},renderHole=(e,o,n,t,r)=>{const W=_0x2bf537,s={zzSNV:function(e,o){return e+o},dknnE:function(e,o,n,t){return e(o,n,t)},HPmum:function(e,o){return e-o}},d=t?C[W(550,"[G@p")]:C[W(401,"V53t")],a=t?C[W(281,"HmZ[")]:C[W(549,"ACQU")],u=t?C[W(425,"vN!s")]:C[W(426,"@!n6")],i=t?C[W(292,"%MtC")]:C[W(314,"i]3V")];r[W(545,"muo!")](_0x418ae6(Circle,{cx:e,cy:s[W(448,")M4x")](o,1),r:n+2,color:d},_k++));const l={};l.cx=e,l.cy=o,l.r=n,l[W(529,"vN!s")]=a,r[W(420,"3V78")](s.dknnE(_0x418ae6,Circle,l,_k++));const k={};k.cx=e,k.cy=o,k.r=n-3,k.color=u,r[W(547,"b(pm")](_0x418ae6(Circle,k,_k++)),r.push(_0x418ae6(Circle,{cx:e,cy:o,r:s[W(434,"3V78")](n,5),color:i},_k++))},renderPlank=(e,o,n,t,r,W)=>{const s=_0x2bf537,d={pIhAE:function(e,o){return e+o},UtLae:function(e,o,n,t){return e(o,n,t)},LwKDM:function(e,o){return e-o},OkApy:function(e,o,n){return e(o,n)},zTerM:function(e,o,n){return e(o,n)},OaQpo:function(e,o){return e-o},SQMSp:function(e,o){return e*o},ggfQE:function(e,o,n){return e(o,n)},YidTZ:function(e,o){return e+o}},a=r?C[s(290,"kq*z")]:C[s(398,"A&7e")],u=r?C[s(541,"&S1q")]:C[s(492,"gD$0")],i=r?PLANK_H_GRAD:PLANK_V_GRAD,l=r?C.PLANK_H_HIGHLIGHT:C.PLANK_V_HIGHLIGHT,k=r?C[s(442,"A&7e")]:C[s(306,"8e9t")];W.push(_0x418ae6(RoundedRect,{x:e+2,y:d[s(465,"5MJ5")](o,3),width:n,height:t,r:5,color:a},_k++));const x={};if(x.x=e,x.y=o,x[s(402,"mLjZ")]=n,x[s(302,"vN!s")]=t,x.r=5,x.color=u,W[s(530,"4L@s")](d[s(301,"kXq#")](_0x418ae6,RoundedRect,x,_k++)),W[s(527,"&S1q")](_0x418ae6(RoundedRect,{x:e,y:o,width:n,height:d[s(358,"x]gL")](t,1),r:5,children:d[s(554,"n&g2")](_0x418ae6,LinearGradient,{start:vec(e,o),end:r?vec(e,d[s(439,"]HxL")](o,t)-1):d.zTerM(vec,d[s(559,"nZ#g")](e,n),o),colors:i})},_k++)),W[s(451,"mNy]")](d[s(383,"[G@p")](_0x418ae6,RoundedRect,{x:d.pIhAE(e,1),y:o+1,width:d[s(403,"3V78")](n,2),height:Math[s(355,"ekAx")](.25*t,3),r:3,color:l},_k++)),r){const r=d[s(476,"ekAx")](o,.55*t);W[s(484,"FBPu")](_0x418ae6(Line,{p1:d[s(449,"4L@s")](vec,d[s(315,"%%nP")](e,6),r),p2:vec(d[s(342,"muo!")](e,n)-6,r),color:k,style:"stroke",strokeWidth:1},_k++))}else{const r=e+d[s(548,"#erX")](n,.55);W[s(331,"Nki6")](_0x418ae6(Line,{p1:d[s(473,"%%nP")](vec,r,d[s(459,"Nki6")](o,6)),p2:vec(r,d[s(405,"FBPu")](o,t)-6),color:k,style:"stroke",strokeWidth:1},_k++))}},buildBoardBg=(e,o,n)=>{const t=_0x2bf537,r={x:0,y:0};var W,s,d,a,u,i;r[t(298,"N$Ks")]=e,r[t(300,"FBPu")]=o,r.r=16,r[t(294,"rM!G")]=C.BOARD_BG,n[t(464,"%%nP")](_0x418ae6(RoundedRect,r,_k++)),n[t(522,"5y&Q")]((W=_0x418ae6,s=RoundedRect,d={x:2,y:2,width:(u=e,i=4,u-i),height:o-4,r:14,color:C[t(354,"#erX")]},a=_k++,W(s,d,a)));const l={x:0};l.y=o-3,l[t(379,"es!7")]=e,l[t(300,"FBPu")]=3,l.r=0,l.color=C[t(289,"o(O%")],n[t(349,"J@9F")](_0x418ae6(RoundedRect,l,_k++))},stableRemoveFallingPlank=e=>{const o=_0x2bf537;useNutsAndBoltsStore[o(485,"%%nP")]()[o(415,"vN!s")](e)},FallingPlankItem=e=>{const o="8e9t",n=_0x2bf537,t={pNLfX:function(e,o,n){return e(o,n)},ATenB:function(e,o){return e(o)},hnnwm:function(e,o){return e(o)},ohEwn:function(e,o){return e(o)},ecjMs:function(e,o){return e(o)},xKUqK:function(e,o){return e!==o},LOMza:n(364,"kq*z"),nTdGR:n(518,"uNDc"),AtdHZ:function(e,o){return e-o},IhcFh:function(e,o){return e+o},BcSFB:function(e,o){return e(o)},HvCjU:function(e,o){return e!==o},KCGIa:"NDgOQ",uYaXQ:function(e,o,n){return e(o,n)}},r=t[n(537,"N$Ks")](_0x262478,34),{plank:W,cellSize:s,boardPadding:d,boardHeight:a}=e,{startRow:u,startCol:i,length:l,orientation:k,id:x}=W,f=t.hnnwm(useSharedValue,0),_=t.ohEwn(useSharedValue,0),m=t[n(457,"uNDc")](useSharedValue,1),S=k===n(506,"5y&Q");let R,O,h,N,L,G;if(r[0]!==f||r[1]!==x||r[2]!==S||r[3]!==m||t[n(531,"5MJ5")](r[4],_))if(n(428,"gD$0")!==n(295,"i]3V"))_0xe5d5da&&_0x6e81bb(_0x43d61d)(_0x4fd99d);else{const e=t[n(483,o)][n(462,"A&7e")]("|");let W=0;for(;;){switch(e[W++]){case"0":r[3]=m;continue;case"1":R=()=>{const e=n;f[e(310,"J@9F")]=t.pNLfX(withTiming,1,{duration:600,easing:Easing.in(Easing.quad)}),_.value=withTiming(S?.3:-.3,{duration:600,easing:Easing.in(Easing[e(436,"qs(5")])}),m[e(562,"HmZ[")]=withTiming(0,{duration:600,easing:Easing.in(Easing[e(279,"ACQU")])},e=>{e&&runOnJS(stableRemoveFallingPlank)(x)})};continue;case"2":r[0]=f;continue;case"3":r[1]=x;continue;case"4":r[2]=S;continue;case"5":r[4]=_;continue;case"6":r[5]=R;continue}break}}else R=r[5];r[6]===Symbol[n(551,"b(pm")](t[n(452,"b(pm")])?(O=[],r[6]=O):O=r[6],useEffect(R,O),t[n(343,"o(O%")](r[7],d)||r[8]!==s||r[9]!==S||r[10]!==l||t[n(553,"gD$0")](r[11],i)||r[12]!==u?(S?(h=d+i*s-10,G=t[n(494,"3V78")](t.IhcFh(d,u*s),12),L=t[n(408,"ekAx")](l*s,20),N=24):(h=d+i*s-12,G=d+u*s-10,L=24,N=l*s+20),r[7]=d,r[8]=s,r[9]=S,r[10]=l,r[11]=i,r[12]=u,r[13]=N,r[14]=L,r[15]=G,r[16]=h):(N=r[13],L=r[14],G=r[15],h=r[16]);const P=S?C[n(517,"es!7")]:C[n(404,"@!n6")],b=S?C.PLANK_H_SHADOW:C[n(353,"]HxL")],g=t[n(497,"J@9F")](useDerivedValue,()=>G+f.value*a*.5),B=useDerivedValue(()=>m[n(503,"V53t")]),A=useDerivedValue(()=>_[n(447,"ACQU")]),p=h+L/2,I=useDerivedValue(()=>g[n(391,"n&g2")]+N/2),J={};J.translateX=p;const y={};y.translateY=I.value;const v={};v.rotate=A.value;const H={};H[n(413,"[G@p")]=-p;const T={};T[n(513,"muo!")]=-I[n(386,"zIKz")];const Q=useDerivedValue(()=>[J,y,v,H,T]),V=h+2,K=N+3;let D,E,q;if(r[17]!==g||t.xKUqK(r[18],b)||t[n(491,"hH[8")](r[19],V)||r[20]!==K||t[n(376,"zIKz")](r[21],L))if(t[n(520,"hH[8")]!==n(441,"azXp"))_0x4e4340=_0x389b6a[28];else{const e={};e.x=V,e.y=g,e[n(446,"V53t")]=L,e[n(521,"muo!")]=K,e.r=5,e.color=b,D=_0x418ae6(RoundedRect,e),r[17]=g,r[18]=b,r[19]=V,r[20]=K,r[21]=L,r[22]=D}else D=r[22];if(t.xKUqK(r[23],g)||r[24]!==P||r[25]!==N||r[26]!==L||r[27]!==h){const e={};e.x=h,e.y=g,e.width=L,e[n(443,"5y&Q")]=N,e.r=5,e[n(432,"kq*z")]=P,E=t[n(480,"HmZ[")](_0x418ae6,RoundedRect,e),r[23]=g,r[24]=P,r[25]=N,r[26]=L,r[27]=h,r[28]=E}else E=r[28];if(r[29]!==B||r[30]!==Q||r[31]!==D||t[n(486,o)](r[32],E)){const e="5|2|3|1|4|0"[n(487,"vN!s")]("|");let o=0;for(;;){switch(e[o++]){case"0":r[33]=q;continue;case"1":r[31]=D;continue;case"2":r[29]=B;continue;case"3":r[30]=Q;continue;case"4":r[32]=E;continue;case"5":const e={};e[n(414,"x]gL")]=Q,e.opacity=B,e.children=[D,E],q=_0x191079(Group,e);continue}break}}else q=r[33];return q};function _0x33da(){const e=["hGBdHalcVa","A8kiEalcQKpcVmk7","otZcULtdKG","bJNcKG5hi1tdP8ongXzhgcNcNSoMW5FdSCkX","oCkbodJdUmkJamoe","v2FdTCoxBa","A8osnYNcImoLWQrsWObnW4uIW6ddQ8kJ","W7pcTmkAxmkQWPOXWRabW5BdU8kEWPO","WRJcQmoMCf0","Emkcs8k5WOy","tSktWPhdKXCyxGddK1y+da","WRldMCkgmfldSmk4feBcUI5WW4LjWRxdV8oNW40l","k0TC","WQZdK1X0DW","eSkrbmkBmW","W5RdTSohW7NcJG","WRXGamkEWONcI8oiW7xdJCkXWOy","WRX7BSoaWRybDqFdIhC","kmkmnSkx","uYqYlfpdPG","zmo3WOuhqri","nbRcSJjO","vmo5WPtcSSoT","vYHlWO8V","W4JcKmoxF8kHuJtcJLOK","WOiuWRtcO8oIW6tdKbJdQImEWOZdGtBcIJRdUYZcSZWpWQ4","W4pcRmojdqFdOMZdKmk5W6zRW5OiW63cOrC","W4JdV8osW4dcPW","WPaxWRNcUCo2W6JdNqVdSYeyWOC","W7WyiSoEvIbYumkDnKD5CcvRwSk+W6pdUmk7uCorWQFdTaK","smoOWOtcJ8oPEMreWP4gDa","oGNcVNFdPG","W5tcH8oFDSk6sG","WQrHB8ob","ox5v","W7VcJXtcPG","oJhdRIVcMCk2W7a9W6u","WRWsW5qLfXu","wCoOcbu","W4NcSWtcHaC","k0TCDLG","W4lcGceB","W7NcQmoqkbm","n8oCWPJcNSkG","hSo3yI/cMNxcU8kIWOlcPCoMWOO+","usi9j3u","WPpdUxFcLqJcUCo9fsOoAmoAc8oxfW7cQG","sSoplWxcGG","y8kQtgJcMG","kIm5","W6ysl8oyA2O","i8k2W4rCEHvLeKSG","ECoroJpcNmo1WRLzWObBW50HW77dQSkPneChW60","vSkPWOnZA3ZcNcJdKW","xYtcT37cOZpdKq","W4BcUmkjbG","W4ZcL8ofEq","W5VcH8ocqSkMxYhcNW","DCkzWQbA","WQFdQCkNd0S","sHBcIaOQWP0ZWRG","W75mW5Gmk8o+W5aGWQWlmmoGWODuWP/dGCo8","y8kdWQe","WP44WQxdOmk2WO7cU3VdPSo0CG","lJ7cHJfh","W4xdUxJdKCot","W6W6vCoAW5NcRmobW7VdNSkvWQe","xdm5kLpdQW","jSkmn8kuW7isW7BcNa","WPpdUxFcLqJcPCoTdtatySomaCorhapcQfVdKCoKka","nmoHWONcS8ka","WOZdIxXXtW","BYPNaCkeBsLX","W73cMWVcUWa","kCkmnCkFW5ut","WPzLzCoKWR4","DWRdQmkMECocsWz4","W6Olo8ktWQa","DqhcGZCV","WQXGfG","umkrxG","CYZcPsS","W4vNW4BcQmo4","W4pcTsVcIZOaWOtcKmkCWQWiWOS4sa","oZK8WRlcQCkAcW","WQi0WPNcHCozW6ddVdddGqG","W68/vSoFW5VcJComW7RdO8k7WQq","k1pcTG","WOD1oCk8WOi","CtBcTJS","W4JdT8oRW4RcSq","Fq4DgwpdKsldPgivW40N","W71eW5lcNmojWOJcU0/dHCoMA2u6WP4","BCk+WQ7dQcq+BYNdIM0BlJVdRmokWQWsu8oksa","u8kIA8ktWQVdGv9vzmkIfmkaW7zvimoY","sSoYfW","WQldQSoacSoS","ESooWR/cG8oo","fYVcU0VcRc4","pSoxxb/cOftcRmkpWRNcI8oFWRy","vCkxtxlcSa","wmoKWPO","mh9yh8kdFa","WOejW7qHoW","iefzFKldUq","WRmUWPRcHmoEW4xdVdBdKa","W5JcPCoSwSkN","WQ1EBCo5WPG","xmo/BgfewaNcGujFhvZcT8oX","jSkgnW","CdBcSW","W7Wsna","WOZcQSozq3O","A8ohWRFcPmohs3TYWRG9smoxtmkN","W6axpSkKWRZdRCojEh3dRCkby8kh","kva8W59RrxeEiXm7dW","C8oeWRRcR8otxx1JWR8G","WQ5gcCkTWQG","oCkloa","W7JdHSoqW6JcKCoO","ysZcTJ0qWQeo","eq3dSHpcP8kmW5WDW5yKxmkeWOZcRCkZ","nSohWPy","kSkrjZW","W4OanCk2WRe","W6NdP0VdK8opeSo1","W6JdUCk0WQtcJxRdO8oyWRZcGSoX","zSkdWR8","WP7dR0Xw","CG/dQ8oNy8oPwb56FG","WOldV1fzyCoi","A8kyvmk+","wCkKrmkCWPy","W4nAbvO","WOuZWQj7qmoIW4aFWO4qnW","mdFdJdxcNCkHW60","frtdKYdcTa","W6pdQ8oA","cWpcUupcOdJdK8kKtHKzCSkW","a8kvhmk9iIeUW5C","f8ktgSklmY4sW5DeldNdJW","W7BcPcu5Ca","cGFcOxZcVtFdGmkr","W4ddGmoYW5JcQ8oFh8kjlSoUW7ncgSkHW5NcMfi","W4ZcQ8oEumkx","rWOjoMW","b8kMf8kSW74OW4NcTwrUW6T3y3yjW6VdUG","dHFcP13cRdJdGa","tmkrr2m","WRi0WO8","WR16e8kEWOJcRCoz","WORcVSogxG","WRzGdCkjWQtcPW","WPFdL8kg","DSkmvW","r8opWRyMysHzl3mqWRhdGSk1hq","WRBdT8kRdN/dGCkwcMtcNHi","WPanW7e","d0vDFgJdOSoKWPmD","p8oxqG","WP3dGxdcHrO","W4NcLqBcVaegWR3cQSk4WOWK","tmkeWPddJH4dxG","WOOKW6VdPee","W6Gko1rH","A8osnYNcImoLWQrsWObnW4uWW67dUa","WPX0WQhcRSkXWQVdH2ZcPSosh11d","WRBdT8kMcgtdJCkAchxcIaXuW64","cmkYW4pdMCk9lvHBWOi6xSoA","W57cOSkwcWn2","jqhcOs9Ngq","qmkrshtcVgL0zCkWfmoeWQW","W6nJn3ZcISk/FmoeWPSeW4RdIq","W68/uCkzWQFcISouW6BdGW","d3X4v0i","W4JdNxxdTCo1l8oep13cKSk1WRhdMJ5oWRtdSXJcNa","wftdOrFdVMtdVCkaEJeEsG","o1fsAKNdV8oSWOmC","iSkVasxdOa","W6JcG8og","yxOeWQFcHSkGpCoj","WRCYWPZcG8ov","xdqUouldObq","W6JdP1tcGbZcLmoX","W6BcMSoBC8kG","W6n3W5GOeq","s8kyWPhdJbCmuYVdTfi3","W6xcISo2kttdKvZdKmkFW5rm","lmkfochdJG","nmkUnYFdRG","ASoaAM5E","W5tcI8osDCk3ua","hJZcNeZdOu8CW4C","W7ZdS1xdLmop","WO9sW7Sip8ozW5e","lSoxwq","jGdcOcG","W7ldRSoUoSkI","WO1GmSkiWRS","WRhcNSo9B3y","W6BcGCk7iafnWOvRw8kbBbFdHWy","W4JdNxxdTCo1lSoipuxcJSk2WR7dJt4","WR/dTSkPneG","lmk/jmkRcrmsW7nPbay","jcVdMJpcKa","wxldGmoVwq","W7Wxdvb8sSo5vmopW6VdHYG","axnvlmkX","lSkIgX3dUq","WOJcPmoc","WRqeW6RdHMq","nmoxqH7cJei","W7/cVcJcHZC","W6mTc8kuWOi","W4hcLIawq0fWWOysW73dVG","W4jXW7uNb8oxW6KaWPSs","WQxdHfRcRYtcKmohmWi","oKfDDLZdQmodWOavrCorWP0iWRKeFbDg","qCkhE0tcQW","W6hdUSomW77cKCo+pG","imkHh8kKaa","W7JcMrxcQWaRWPtcOCkNWOO/WQ0","zMBdOSo3","qbBcIbSQWP0ZWRTvhfeYW6m","WR3dUCkgmL0","WRD7Ca","WRq8W5JdL0a","agT8xhxdImoDWRuRAmoNWRCQWRK8vq","W6quafTOuCoQw8oDW6i","ymowq0H7BW","fZdcMILo","WO/dU8kWcqbgWPfW","aW7dVWNcS8kqW48mW4aUwSkpWPFcRW","aYxcJG","W45NW7/cVCoW","WPFdNCkgmgJdT8kLiq","xKpdVmoQwW","FXn6WPu5guW","n0/cUCk3","W4RdKCofbSkz","oXdcVI8","z8okWP8PBW","W4nNW73cTW","c8kTpmk3W7a","W6BcGCk7iafnWPTRt8kBBbRdHMa","WRXXDCooWQqA","W4VdMSoJk8kF","WQxdRmoFfCoYW4H4WQGKW4RdKa","e8kzdmkApG","DdJcQdOq","fXJcHMhcNW","W73cNHmdxW","W64uaePOrSoQr8owW6xdKtNcG0TfbCofEG","W5iTaCky","A8k4WRD1AW","F8k9WQpdSJaYFdRdGxac","WR1Gdq","euPGl8kN","W5RdMSkuWPJcOG","W6SEkCoWuq","oYpdJq","W6PgeMBcMW","WP4DlK9DCmok","z8o2WOqa","W4xcVCkwbZ4","zJdcTZ8zWQ4dWRTZlMa","WQ56eSke","W7hcQSoTgb0","gWRdLtdcSq","D8kisCkXWOddRa","ymk3sKZcUG","WQJdTSo8cCo/W5bOWOGI","W6NcLqBcVaesWRxcOmk6WOu","WO/dM8kdiSoJbZ7cJeC1WPv9","kmo+ytlcLW","WRLOb8k9WQG","sSo1eHhcS8oyWPrO","DaVdRSoQb8k4aIPvDZ3cSLK","WO0LW6hdGuK","W6ZcJbFcIra","W57cLCk9kbG","dW3cUvVcUGddKCkgureyDW","W77cOWBcLJq","jSkLc8kkW6y","WRzAnCk+WOO","qmo8yfvU","kg9cea","WRLQfCk/WPNcOSozW7K","Dmo4Ef5e","o1rCCf4","WRldMvC"];return(_0x33da=function(){return e})()}FallingPlankItem[_0x2bf537(463,"ACQU")]="FallingPlankItem";const BoardCanvas=_0x2fdf51[_0x2bf537(438,"gD$0")](({boardWidth:e,boardHeight:o,cellSize:n,boardPadding:t})=>{const r="mLjZ",W=_0x2bf537,s={IPQWL:function(e,o,n){return e(o,n)},ENPbO:"stroke",bSCOZ:function(e,o){return e<o},tFOIR:function(e,o){return e*o},gvpGu:function(e,o){return e===o},KNChs:"horizontal",cyRBs:function(e,o){return e*o},Zxmbr:function(e,o){return e+o},SoSdV:function(e,o){return e+o},orbXa:function(e,o){return e*o},MDzED:function(e,o){return e*o},KUHYi:function(e,o){return e===o},auNzj:function(e,o){return e+o},JIAUO:function(e,o){return e-o},JplLS:function(e,o){return e+o},cLPrG:function(e,o){return e*o},hUTRg:function(e){return e()},cRTxU:function(e){return e()},BqyMr:W(346,"N$Ks")},d=s[W(482,"%%nP")](useBoltsVersion),a=usePlanksVersion(),u=s[W(536,"&S1q")](useSelectedBoltId),i=useMemo(()=>{const d=W;_k=0;const a=[];buildBoardBg(e,o,a);const i=useNutsAndBoltsStore.getState(),{holes:l,bolts:k,planks:x,originalBoltPositions:f}=i,_=l[d(508,"o(O%")],m=1.2*n,S=(e-(_-1)*m)/2,R=isTablet?t+20:t,O=o-R-HOLE_RADIUS-.5*n;a[d(326,"IJ^8")](_0x418ae6(Line,{p1:s[d(424,"ekAx")](vec,t,O),p2:s[d(455,"FBPu")](vec,e-t,O),color:C[d(542,"b(pm")],style:s.ENPbO,strokeWidth:1},_k++));for(let e=0;s[d(560,"IJ^8")](e,l[d(467,"%MtC")]);e++){const t=S+s[d(406,"zIKz")](e,m),r=o-R-HOLE_RADIUS+s[d(472,"eOtn")](n,.2);renderHole(t,r,HOLE_RADIUS,!0,a)}const h=new Set;for(let e=0;e<k.length;e++){const o=k[e];s[d(477,"HmZ[")](o[d(409,"eOtn")],null)&&h[d(523,"FBPu")](o[d(278,"N$Ks")]+"-"+o[d(316,"zIKz")])}for(const e of f)!h[d(458,r)](e.row+"-"+e[d(293,"&S1q")])&&renderHole(t+s[d(410,"HmZ[")](e[d(357,"eOtn")],n),t+e.row*n,HOLE_RADIUS,!1,a);if(x.length>0){const e=[...x][d(287,"ACQU")]((e,o)=>e[d(296,")M4x")]-o[d(317,"#YPs")]),o=10,W=24;for(const u of e){const{startRow:e,startCol:i,length:l,orientation:k}=u;let C,x,f,_;k===s[d(512,"4FkH")]?(C=t+s[d(416,"N$Ks")](i,n)-o,x=s[d(382,"muo!")](t,e*n)-W/2,f=s[d(396,"%%nP")](l*n,2*o),_=W):(C=t+i*n-W/2,x=t+e*n-o,f=W,_=s[d(511,"i]3V")](l,n)+s[d(489,r)](o,2)),renderPlank(C,x,f,_,s[d(397,"J@9F")](k,s[d(400,"#erX")]),a)}}for(const e of k){let r,W;if(e[d(526,"kXq#")]){const a=l.findIndex(o=>o.id===e[d(539,"uNDc")]);-1!==a?(r=s.auNzj(S,a*m),W=s[d(437,"1Sc1")](o,R)-HOLE_RADIUS+.2*n):(r=s[d(516,"#YPs")](t,e[d(307,"azXp")]*n),W=t+s[d(481,"azXp")](e[d(431,"hH[8")],n))}else r=t+e[d(501,"vN!s")]*n,W=t+e[d(393,"eOtn")]*n;renderBolt(r,W,BOLT_RADIUS,e.id===u,a)}return a},[d,a,u,e,o,n,t]),l={};return l[W(532,"nZ#g")]=StyleSheet.absoluteFill,l.pointerEvents=s[W(564,"5y&Q")],l[W(474,"&S1q")]=i,_0x418ae6(Canvas,l)});BoardCanvas[_0x2bf537(384,"(NmC")]=_0x2bf537(359,"HmZ[");const FallingPlanksCanvas=_0x2fdf51[_0x2bf537(507,"azXp")](({cellSize:e,boardPadding:o,boardHeight:n})=>{const t=_0x2bf537,r={wHbdM:function(e){return e()}}[t(361,"ekAx")](useFallingVersion),W=useMemo(()=>{const e=t;return useNutsAndBoltsStore.getState()[e(336,")M4x")]},[r]);return 0===W[t(328,"IJ^8")]?null:_0x418ae6(Canvas,{style:StyleSheet[t(499,"(NmC")],pointerEvents:t(440,"kq*z"),children:W[t(352,"%MtC")](t=>_0x418ae6(FallingPlankItem,{plank:t,cellSize:e,boardPadding:o,boardHeight:n},"fp-"+t.id))})});FallingPlanksCanvas[_0x2bf537(385,"5MJ5")]=_0x2bf537(500,"#erX");export const GameBoard=_0x2fdf51.memo(({settings:e})=>{const o="ACQU",n=")M4x",t=_0x2bf537,r={BIcJb:function(e,o){return e*o},hoUzz:function(e,o){return e-o},iCTen:function(e,o){return e<o},xwKWu:function(e,o){return e+o},HSIcC:function(e,o){return e-o},hXGFR:function(e,o){return e-o},KBgxI:function(e,o){return e===o},GXHNh:function(e,o){return e*o},yJqPT:function(e,o){return e===o},wuhRZ:function(e,o){return e*o},rvjit:function(e){return e()},nJcsE:function(e,o){return e(o)},dGZKu:function(e,o){return e(o)},Xyyuz:function(e,o){return e!==o},wXGxZ:function(e,o){return e(o)},fsGAQ:function(e,o,n){return e(o,n)},FVmgL:function(e,o,n){return e(o,n)}},W=useBoardReady(),{height:s}=useWindowDimensions(),{width:d}=getGameDimensions(),a=useRef(!1),u=r[t(387,"zIKz")](useRef,e);u[t(323,"n&g2")]=e,useEffect(()=>{const e=t;return a.current=useNutsAndBoltsStore[e(546,"muo!")]()[e(525,"mLjZ")],useNutsAndBoltsStore[e(375,"vN!s")](o=>o[e(469,"rM!G")],o=>{a[e(380,"o(O%")]=o})},[]);const i=r[t(304,"muo!")](useRef,null);if(!i[t(348,"%%nP")]||r[t(504,"#YPs")](i[t(360,"(NmC")][t(519,"i]3V")],d)||i[t(318,o)][t(338,"V53t")]!==s){const e=s-250,o=(d-60)/BOARD_COLS,n=r.hoUzz(e,80)/(BOARD_ROWS+2.5),W=Math[t(285,"qs(5")](o,n),a=30,u=W*BOARD_COLS+r[t(528,"HmZ[")](a,2),l=W*(BOARD_ROWS+2)+2*a+(isTablet?30:0),k={};k[t(412,"4L@s")]=d,k[t(419,"HmZ[")]=s,k[t(283,"es!7")]=u,k[t(505,"%%nP")]=l,k[t(493,"zIKz")]=W,k[t(369,"N$Ks")]=a,i.current=k}const{boardWidth:l,boardHeight:k,cellSize:C,boardPadding:x}=i.current,f=useRef([]),_=r[t(276,o)](useRef,0);r[t(388,"8e9t")](useEffect,()=>{const e="%%nP",o=t,n=r[o(468,"N$Ks")](C,.5);_[o(333,"mLjZ")]=r[o(330,"%MtC")](n,n);const W=()=>{const n=o,t=useNutsAndBoltsStore[n(337,"V53t")](),{holes:W,bolts:s,originalBoltPositions:d}=t,a=[],u=W[n(563,"azXp")],i=1.2*C,_=r[n(502,"IJ^8")](u-1,i),m=r[n(280,"kq*z")](l,_)/2,S=isTablet?x+20:x;for(let e=0;r.iCTen(e,W[n(427,"8e9t")]);e++){const o=W[e];a[n(530,"4L@s")]({x:m+r.BIcJb(e,i),y:r.xwKWu(r[n(275,"mNy]")](r[n(322,"mNy]")](k,S),HOLE_RADIUS),.2*C),row:o[n(407,"J@9F")],col:o.col,isHole:!0,holeId:o.id})}const R=new Set;for(const e of s)r[n(444,"1Sc1")](e[n(367,"A&7e")],null)&&R[n(335,"#YPs")](e[n(320,"nZ#g")]+"-"+e[n(488,"x]gL")]);for(const o of d)!R.has(o[n(309,"uNDc")]+"-"+o[n(299,"i]3V")])&&a.push({x:x+o.col*C,y:x+r[n(372,"vN!s")](o[n(277,e)],C),row:o[n(278,"N$Ks")],col:o[n(423,"5y&Q")],isHole:!1,holeId:null});for(const o of s)r[n(305,"5y&Q")](o[n(350,e)],null)&&a[n(394,"gD$0")]({x:x+r.wuhRZ(o[n(325,"b(pm")],C),y:x+o[n(347,"es!7")]*C,row:o[n(308,"ACQU")],col:o[n(454,"%%nP")],isHole:!1,holeId:null});f[n(282,"h206")]=a};return r[o(395,"1Sc1")](W),useNutsAndBoltsStore[o(303,"es!7")](e=>e[o(479,")M4x")],()=>{W()})},[C,l,k,x]);const m=useCallback((e,o)=>{const W=t;if(!a[W(435,"4FkH")])return;const s=f.current,d=_[W(417,"#YPs")];for(let t=0;t<s.length;t++){const a=s[t],i=r[W(478,"A&7e")](e,a.x),l=o-a.y;if(i*i+l*l<=d)return void useNutsAndBoltsStore[W(340,n)]().handleTap(a[W(538,"h206")],a[W(351,"#erX")],a.isHole,a.holeId,u[W(345,n)])}},[]),S=useMemo(()=>Gesture[t(377,"muo!")]().onEnd(e=>{r.nJcsE(runOnJS,m)(e.x,e.y)}),[m]),R={};R.width=l,R.height=k;const O=r[t(334,"mLjZ")](useMemo,()=>[styles[t(510,"gD$0")],R],[l,k]);if(!W)return null;const h={};h[t(470,"HmZ[")]=l,h.boardHeight=k,h[t(433,"#erX")]=C,h.boardPadding=x;const N={};return N[t(557,"azXp")]=C,N.boardPadding=x,N[t(505,"%%nP")]=k,_0x418ae6(GestureDetector,{gesture:S,children:r.FVmgL(_0x191079,View,{style:O,children:[_0x418ae6(BoardCanvas,h),_0x418ae6(FallingPlanksCanvas,N)]})})});const _0x2e6080={};_0x2e6080[_0x2bf537(297,"eOtn")]=16,_0x2e6080[_0x2bf537(390,"hH[8")]=_0x2bf537(389,"muo!");const _0x3c3aea={};_0x3c3aea[_0x2bf537(456,"3)jr")]=_0x2e6080;const styles=StyleSheet[_0x2bf537(556,"o(O%")](_0x3c3aea);GameBoard[_0x2bf537(445,"rM!G")]=_0x2bf537(356,"vN!s");
@@ -1 +0,0 @@
1
- "use strict";const _0x112b8e=_0x4731;function _0xc336(){const o=["WQxdGsVcOWFcLHXJW5JcPG","gCocgCk5hCoCB8on","E0y/W5Hwr8kjWQO8WR3dSLlcRq","W7SnWRldSSop","W4lcULFdGNhdSxXKW4tcOCogDNq","W6XnW77cPSoKW6RdNCkB","W4lcUgOBWRFdSdDTnCobW4O7","WPNdPalcGIFcVq","W7a8W4pcH8olD8ovhxmRjuXw","WPuUW7dcHmor","W6uysJVcPCohpSobeZe","x0XLWOdcOeZdI8o4W5tcK8oW","pfZdGCkMua","WPjSWRtdQCkS","hgddVatdPmonW5X1h8o/W6DD","cwWYqSkUWRS","W59VW7xcQmoVmXe","W4qlWOalW5C","t3fYWQNcPq","AsRdRSo2W6bbW5JcN8kMgq","A8kCpNS+WR3cT2HQjmk9mSoC","Bf3cPu9n","p1VdKSk4oJfi","uWC+h8k+","hSoIW7FdUsu","t8kof8oDxq","W6e5qZdcSG","Cey4W55xr8opWQmCWONdSLG","xIpdGmoxW6K","kCkEWRTaqa","WOu7kCkJomo+WOrkWPldQtv8","W5lcNd0kWOa","dgrmeqa","BvBcGSolAsmIgNDO","p8oHW53dLri","eSosW6ZdOXa","WRCDWQBdUCk4WQRdI8k+zW3cRSkp","rLWpz8k3e8ktW4ldSmo4ESoB","Dmknm8oHyW","jGTti8oLzmkoW6ldKmoQ","WQZcOSoQgSkk","jCotW4pdUq","WQ18lmkXW7tcUCkJWPZcRMLmi8k1","W7TLE8ovxq","gCofhmk6cW","pSoJW5HwWRS"];return(_0xc336=function(){return o})()}function _0x4731(o,t){o-=360;const e=_0xc336();let r=e[o];if(void 0===_0x4731.RuKwIA){const o=function(o,t){let e,r,n=[],s=0,d="";for(o=function(o){let t="",e="";for(let e,r,n=0,s=0;r=o.charAt(s++);~r&&(e=n%4?64*e+r:r,n++%4)?t+=String.fromCharCode(255&e>>(-2*n&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let o=0,r=t.length;o<r;o++)e+="%"+("00"+t.charCodeAt(o).toString(16)).slice(-2);return decodeURIComponent(e)}(o),r=0;r<256;r++)n[r]=r;for(r=0;r<256;r++)s=(s+n[r]+t.charCodeAt(r%t.length))%256,e=n[r],n[r]=n[s],n[s]=e;r=0,s=0;for(let t=0;t<o.length;t++)r=(r+1)%256,s=(s+n[r])%256,e=n[r],n[r]=n[s],n[s]=e,d+=String.fromCharCode(o.charCodeAt(t)^n[(n[r]+n[s])%256]);return d};_0x4731.sApNJI=o,_0x4731.UqjUCb={},_0x4731.RuKwIA=!0}const n=e[0];_0x4731.QcvtXk!==n&&(_0x4731.UqjUCb={},_0x4731.QcvtXk=n);const s=_0x4731.UqjUCb[o];return void 0===s?(void 0===_0x4731.JVDChK&&(_0x4731.JVDChK=!0),r=_0x4731.sApNJI(r,t),_0x4731.UqjUCb[o]=r):r=s,r}!function(){const o=_0x4731,t=_0xc336();for(;;)try{if(611165==-parseInt(o(379,"Hl6L"))/1*(-parseInt(o(374,"(qAl"))/2)+-parseInt(o(366,"(%og"))/3+parseInt(o(404,"1yT^"))/4+parseInt(o(389,"tmEb"))/5+parseInt(o(372,"w1dF"))/6+-parseInt(o(394,"xb1z"))/7+-parseInt(o(402,"dD0t"))/8)break;t.push(t.shift())}catch(o){t.push(t.shift())}}();import{c as _0x1f7bd1}from"react/compiler-runtime";import _0x2fd75e,{useMemo}from"react";import{View}from"react-native";import{useScore,useTime,usePlanksCount}from"../NutsAndBoltsStore.js";import{formatScore}from"../NutsAndBoltsService.js";import{formatTime}from"../../../services/UtilsService.js";import{ScoreBoardContainer,ScoreColumn,scoreBoardStyles as _0xa6f172}from"../../../helpers/index.js";import{NUTS_AND_BOLTS_COLORS}from"../NutsAndBoltsConstants.js";import{jsx as _0x205d2e,jsxs as _0x403505}from"react/jsx-runtime";export const ScoreBoard=_0x2fd75e[_0x112b8e(393,"Tz2e")](o=>{const t="R3*3",e=_0x112b8e,r={tTdYi:function(o,t){return o(t)},dJasL:function(o,t){return o===t},ZdBuS:function(o){return o()},WbFYR:function(o,t){return o!==t},hRDNa:function(o,t,e){return o(t,e)},jtwRk:function(o,t,e){return o(t,e)},VSJoT:"TIMER",GUEdC:function(o,t){return o!==t},LxiJt:function(o,t,e){return o(t,e)}},n=r[e(370,"E2zR")](_0x1f7bd1,17),{offset:s}=o,d=r[e(380,"(P0H")](s,void 0)?0:s,W=usePlanksCount(),i=r[e(387,"Tz2e")](useScore),x=r[e(381,"]X[o")](useTime);let S;n[0]!==i?(S=formatScore(i),n[0]=i,n[1]=S):S=n[1];const f=S;let u;r[e(386,t)](n[2],x)?(u=formatTime(x),n[2]=x,n[3]=u):u=n[3];const m=u;let a,_,l,C,k;if(r[e(378,"b%Bk")](n[4],W)){const o={};o[e(377,"EN)*")]=e(367,"VHjk"),o.value=W,o[e(396,"V)x]")]=NUTS_AND_BOLTS_COLORS[e(371,"(P0H")],a=r[e(397,"4UUI")](_0x205d2e,ScoreColumn,o),n[4]=W,n[5]=a}else a=n[5];if(n[6]!==f){const o={};o[e(361,"3vY^")]="SCORE",o[e(376,t)]=f,o.color=NUTS_AND_BOLTS_COLORS[e(385,"t%[J")],_=_0x205d2e(ScoreColumn,o),n[6]=f,n[7]=_}else _=n[7];if(r[e(384,"%fB!")](n[8],m)?(l=r[e(375,"MFiQ")](_0x205d2e,ScoreColumn,{label:r.VSJoT,value:m,color:NUTS_AND_BOLTS_COLORS[e(362,"b%Bk")]}),n[8]=m,n[9]=l):l=n[9],n[10]!==a||r[e(390,"EN)*")](n[11],_)||n[12]!==l)if("gwYKw"===e(395,"vw4m")){const o={};o[e(373,"vS(k")]="PLANKS",o[e(383,"KFhD")]=_0x2d0bee,o.color=_0x572809[e(398,"dD0t")],_0x4203b0=_0x1030c6(_0x5b0f09,o),_0x53c48f[4]=_0x26474c,_0x2d4f57[5]=_0x24b524}else{const o={};o[e(369,"!Ak9")]=_0xa6f172.row,o[e(403,"Uj6r")]=[a,_,l],C=_0x403505(View,o),n[10]=a,n[11]=_,n[12]=l,n[13]=C}else C=n[13];if(r[e(365,"yJF$")](n[14],d)||n[15]!==C)if(r.GUEdC(e(364,"Z@cO"),e(392,"[PPs"))){const o={};o[e(405,"dD0t")]=d,o[e(399,"V)x]")]=C,k=r[e(401,"5ih4")](_0x205d2e,ScoreBoardContainer,o),n[14]=d,n[15]=C,n[16]=k}else _0x90c38a=_0x2a6ea9[5];else k=n[16];return k});ScoreBoard[_0x112b8e(363,"E2zR")]=_0x112b8e(391,"tmEb");
@@ -1 +0,0 @@
1
- "use strict";const _0x5f13d5=_0xb28c;function _0xb28c(W,o){W-=278;const t=_0x3955();let n=t[W];if(void 0===_0xb28c.wYjgwG){const W=function(W,o){let t,n,e=[],d=0,r="";for(W=function(W){let o="",t="";for(let t,n,e=0,d=0;n=W.charAt(d++);~n&&(t=e%4?64*t+n:n,e++%4)?o+=String.fromCharCode(255&t>>(-2*e&6)):0)n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(n);for(let W=0,n=o.length;W<n;W++)t+="%"+("00"+o.charCodeAt(W).toString(16)).slice(-2);return decodeURIComponent(t)}(W),n=0;n<256;n++)e[n]=n;for(n=0;n<256;n++)d=(d+e[n]+o.charCodeAt(n%o.length))%256,t=e[n],e[n]=e[d],e[d]=t;n=0,d=0;for(let o=0;o<W.length;o++)n=(n+1)%256,d=(d+e[n])%256,t=e[n],e[n]=e[d],e[d]=t,r+=String.fromCharCode(W.charCodeAt(o)^e[(e[n]+e[d])%256]);return r};_0xb28c.EYmaxq=W,_0xb28c.CdVAKf={},_0xb28c.wYjgwG=!0}const e=t[0];_0xb28c.CUqLlG!==e&&(_0xb28c.CdVAKf={},_0xb28c.CUqLlG=e);const d=_0xb28c.CdVAKf[W];return void 0===d?(void 0===_0xb28c.TOPFob&&(_0xb28c.TOPFob=!0),n=_0xb28c.EYmaxq(n,o),_0xb28c.CdVAKf[W]=n):n=d,n}function _0x3955(){const W=["j8kunSo0","W6hdSSkoWRxcUd7cO8kYtCoJWQKxWODcyCk3","W4PsW6RdTN8","oSkkWRb1W4yj","nmkbWPrbd8k8w8kOeX/dI0W","W4hdP8k2W67dS1/dVmoFWOCaqCo+WP/dJbtcO8oA","W4mIsh8","vSoAsLa","WRXzWPpcHWq","BaRdGmoDCmkP","z8oEW40uxSoXc8kehGZdULyT","W6VdTSkaWOa","WRGSWOBcHq3cVLZdMGVdKmk+obhdTW","WQpdICk3bmkXWRVcKG","kxX5gc0","p8kFW6FdGG","WQiwi8oywgOKW6xcGG","W6hdRCo+WPtdKq","Db8YW4JdRgRdPSoGWOijl0y","WRdcIXFcT8oAuhWqW4TR","nCkxW7JdGMTOW7/cHGu","dSkVWOPoW6W8lW","WP1mW5pdPmkoySkRzq","eK0OWR5zsa","W7/cUqDABSkrW4nD","x8oCxfddOveTyx4","AgtcS8oUitToWQT/WOFcTSk0uhC","WPXJW7HFxSkYW4HzfSoCWO3dTq","W5ldKCoEWPJdR1qEhaC","W6JcJg8sFWfHW5pdPW","bSk+bSofW5FcL8kquem","W69wW5RdMKa","WRxdOSkDwIe","W63cGmoeWPi","mLTNWPRcQdJdJCo8WOacevhcKhVcU8kAWORcSSo1WQhcJW","h8kzWRGDW6VcPZiRW6DXW41m","sSopW7PoWOpdSWKjW6ft","xSoMyY/dJSkWv1pcOa","nCkrW77dLfP5W7VcIaidp8kzmG","WQvreCoIbCkzWPNcTNFcV8o4ACko","W4m/WRG5cCo0W6nFe8o8WPhdOcNcOd3cOW","W4/dSCkuW5/dVLxdLCo6WOaGs8oPWORdKrlcOSo3BCo2m8oBCa","zSkrWOyj","WR3dHWP5sG","i0lcVSklf8o2WRK","hCorWOFdG34","WRFdOSkuwsW","lulcQCkVca","v8oUAY8","FCk9xCondq","jSkjW6FcH0JdVSkMm3C","sSoOW7rnWQq","xmo3DJldOq","W6/dQGfMCsW","WQpdQaXrxCkZW7Hfza","lmkkW4NcGSoa","WOVdK8krqri","WQhdKmo4bxFcISkFp8ku","pCo9vGldKW","WQ/dJmoUcwFcNmkdnG","W7qybNWg","W67dRHC","WRq8oCoPFW","pmkrW67dGG","WOPvrXW3","kbrCW50PWRxdJCoDW4m","WQldJCoL","WRtcMCoTWQ8TW6y7","WO3cQYVcJCoMqK0NW6jCWOFdKZXnzmoZxfpdUmo6W4xcGYu","o2KsWPXJ","W6iiBuZdNZxcHmkwo8ocfSk7qW","W6erWOOZlG","WOeIW6ix","W7tdTSoCWRVdIG","WPfdW4tdJmkuCG","Ex1SW5H7vf/cMSoWW6VcMXa","W6VdUmkmWOdcGYlcP8k6xCoRWR8oWOLgy8kHhq","W6VdVSku","WQuxnmoEufG/W7/cHCkhWRr6WRrIWRnJBsxcGG","WONcUJ/dMW7dH8oXWQLLWOe8aCkDW5a","c8oEzWBdLCoqWOKCWOSOp8k8qq","vI/dVSobAa","W6e6q8oN","WPLdW4RdRq","WR/dQaLMBq","mCkaWOLFpmkTu8kefqtdLKOs","WRldNmkzW44JW4mqfCoYWQO","W63cGmovWOmGW4ufi8oY","WOfBxrW","f2jnWRdcHq","m0RcVSkjeCo2WONdQmot","sCkyDCoQkW","jmo+sJZdRW","B8o5vfNdPW","gKe0WRXovbxdMGa","FmoNz3hdNxClwum","WR1NWO7cIYemvSkW","xaFdK8owtq","zSkmwmokfG","W6RcIMGgCILw","WQldJCoMdW","WO/dRmoynuhcQmk8gSk9W5PtfcbjiWS","zxLTW5G","WOSIW5ldGmkQWQ3cUa5djMBdHG","tmoMyJ/dJmkOzW","DmoJW41/WOFdLZG","oColW5O4WRLXmh9c","fCoMlq","WOtdHCk6FbNdLt7cK3BcJuTE","WQBdRmkexIa","DCoHk8oqWQzw","BNP1W7Tz","WP1rW7BdPmkADCkMF8k8W44","W7iZvCkolW","W4SjCmogktVcQvap","x07cJSoKgHXIWR5BWQhcJmkE","ve7cLmohaqa","ACkMu8oceCk7W5aNnsO","WOldJSkNuHddGcJcU03cMu1rdJO","v8ohAsZdMG","D8oVW5TUWOhdJtObW4XXW7fa","WPvaW4m","fmkJWPDCW7K4","fSoOkG","W7RdIvVcJN8","W7CWkNun","i35/fcDQWRRcVG","hCk7W4VdSufsW5hcTImIa8kKea","WO19iSorl8kJWRFcHLe","b19eoq","zND2W5Hose3cVmoQW6dcMZbqj0X4cG","nCoZWQldO09bmg3cNXquWORdOSoKrdjxr8oH","WOGMW7agiG","W4yFW6FdT1zQCCkJWOhdTmkaWQ4","W7ddVSkjWPdcTIhcIq","WPLaCrCS","W7C5v8kxf8ooxeRdLSodW6m","lSkEW6hcI2JdUSk7fMZcGe3dGG","W7JcIMKwCdfNW4JdUG","h8kJWO10W70GggtdUM3cUgpdRCowW47cVmoQev3dTq","xSoAW6vHWOq","WRpcNcdcK8oy","WRfKWOhcLZC","WQRdRHPr","WO/dStXWva","W6ddQGnTDG","W5ZdHmk2W7pdPG","W61XW4FdGwJdRaxcIZpdH8kspsC","xmoqwNJdO18H","WQyUWQRcMCobmHHynxhcUmk2","p8ovfmoYdmoWWOCAW4i","W4yCW6NcLWyEBCkHWRu","k8o+sdFdQmo2","W7zOW77dI8kfydjEmw7cMG","W6ldUmkoWPBcHsJcVCk6rSoHWQu0WO8","W6VdUmkpWPhcVWZcVSkYqSoUWRGZWODAqSk2cdmX","F3LYW5P/u2i","WRiEi8oAxMOu","Cmo3a8oBWRnncCoKW4dcNW","qSkBB8oXmCkUW7Sahq/cQLRdN8kwyq7dPmoboG","W7xdPHX0zcJcKq","g8kcv8oDpmkdW5S","e8oxxdZdUq","zNDKW5G","lmkzp8oZW4tcOmk7BhHh","rSodW7HcWQxdTW","W5LFW53dVG","jwdcPmk4nG","W6NcGCojWOmHW6Szl8oMWP8/AG9I","FSoarq","WQ9qfSoIlW","g8kNWPD2W6iMeG","pmkFW7ddGG","geeQWQ1iuG","W5nKW4xdH24","W7j/W6/dPCkbDrPfn2NcI8krW74fWRlcGmkKW7SmxW","WQSpW6xdG8kh","W7H7W6hdJW","WO8MW4JdG8kTWRBcUcHRjhhdISomW61OWRy","W6ykAmkZfq","WOldQ8odjeVcVCk5hmkP","xCkQWOaIWOq","W5OJrvldTW","W4xcRSo0WRig","zSkFWPGj","WQagW5W","c25fWQ8","W5/dRx7cR1hcKCk2W7XGWPKldCkPW7W","WQj7DZW","ivLQWPZcTcNdRSoGWQ4nfLBcGwy","W5xdLmk7WRhcGWJcGG","ggaVWRfx","W7a4W60","WRNcJrdcPSorzxSyW4K","WQzRW7FdGmkV","WRtdTColiLa","d8oRzbtdTG","WQ5ggCoWe8kuWPhcPwW","W4VdO8k4W5S","omkrW5G","W40zW6pcMWaVBSkSWRm","W7aKrSkfmCooDKpdKmoEW77dQ0K","W7aWW7K/","W6FcISouWRG4W7OAnCo1WO4xtXX1WPtcJWtcIeXV","qSkBB8oXmCkGW6umhG","wc/dUSoMwSkCWOO","WQtdSXTvsSkIW5zczt01","W5hcMCoRiuNcLWNcLuZcShHq","bgncWQJcMq","W5pdKCoEWPVdUemuhHhcRa","W4tdNszfwGFcHJ7dSW","o8krW43cRq","W4hdJJ5JqW","kmoZWR7dUvnZ","nCkyW6tcM1VdT8kn","lCkuW6/cMN7dSSkNf2dcMuJdLmkP","W5XuW5ddSW","WQFcGa7cKSoJ","W78CdMm","WOVdRCoenudcImk+fmkRW5O","W4ZcQSoMWQm","cvvmmbS","W4WrWQJcRt4pv8kc","xmo9Ec3dHCkWw1lcQXVdVg7dJ8oUxW","FgtcRCoU","W7G0tCoJgJZcIwGV","W4FdGdHp","W67dRHvK","W4uvzSokos3cTvK","WPLlW54","a15jkafEWOxcKM16WPugW6en","wc/dUSoMwSkCWOS","WP/dJCkJqZC","W7SJW6O9jSoNzcZcTCoOmHjKcum","WOjaWQlcTG81xa","dCk0WQ5UW7C","WRtcOComW5hdR37cPmknDCoFWQiZ","W67dOaTK","WPbaWQpcPG0TBmkAWRu","WRZcKsNcPmoi","W5VcSvi3tbDbW7ddHW","oSkdW7BcJmon","W6GFWOO9","ptfVW7Oo","t8o9rH/dLW","pSkcWR9TW64","WQDHW7hdNmkVq8kC","W54GfMiu","W6tcGmouWOqAW68yj8o1WPqBzri","W7/cKx4szYbjW4/dUXT5","W7hcGMew","lgj1ftXGWRRcQ1ziWPy4W58NtCkD"];return(_0x3955=function(){return W})()}!function(){const W="u*fC",o=_0xb28c,t=_0x3955();for(;;)try{if(964529==parseInt(o(279,"ujwo"))/1*(parseInt(o(393,"u*fC"))/2)+-parseInt(o(400,"yF54"))/3+parseInt(o(354,"Ll$l"))/4*(parseInt(o(480,"q!OZ"))/5)+parseInt(o(344,W))/6*(-parseInt(o(326,W))/7)+parseInt(o(415,"u*fC"))/8*(parseInt(o(342,"VwQI"))/9)+parseInt(o(457,"dXTu"))/10+-parseInt(o(455,"iJPc"))/11)break;t.push(t.shift())}catch(W){t.push(t.shift())}}();import{PACMAN_GAME_CONFIG,PACMAN_MAZE,DIRECTIONS,CellType,GhostMode,GhostName,PACMAN_START,GHOST_START_POSITIONS,GHOST_SCATTER_TARGETS}from"./PacManConstants.js";export class PacManService{[_0x5f13d5(348,"XQ1&")]=0;constructor(){this.maze=this.initializeMaze()}[_0x5f13d5(361,"ujwo")](){const W=_0x5f13d5,o={};o[W(488,"DU%l")]=function(W,o){return W===o},o.zaeCz=function(W,o){return W===o};const t=o,n=PACMAN_MAZE.map(W=>[...W]);let e=0;for(let o=0;o<n[W(303,"S@W*")];o++){const d=n[o];if(d)for(let o=0;o<d[W(315,"SYNb")];o++)(t[W(339,"WviV")](d[o],CellType[W(362,"5G2F")])||t[W(492,"U!XG")](d[o],CellType.POWER_PELLET))&&e++}const d={};return d.cells=n,d[W(278,"iJPc")]=e,d[W(474,"16)p")]=e,d}resetMaze(){const W=_0x5f13d5;return this[W(493,"5G2F")]=this[W(423,"kacG")](),this[W(341,"Zj$M")]()}getMaze(){const W=_0x5f13d5;return{cells:this.maze.cells.map(W=>[...W]),dotsRemaining:this[W(365,"c9J#")][W(483,"c9J#")],totalDots:this.maze[W(418,"fznu")]}}initializePacMan(){const W=_0x5f13d5,o={};return o.x=PACMAN_START.x,o.y=PACMAN_START.y,o[W(353,"HM3f")]=PACMAN_START.x,o[W(424,"iw1X")]=PACMAN_START.y,o[W(470,"Zj$M")]=W(413,"ujwo"),o.nextDirection=W(379,"lD2Z"),o[W(397,"Ll$l")]=!0,o[W(412,"Cq]h")]=45,o}[_0x5f13d5(294,"Cq]h")](){const W=_0x5f13d5;return[this.createGhost(GhostName[W(448,"SYNb")],GhostMode.SCATTER),this[W(442,"16)p")](GhostName[W(477,"yF54")],GhostMode[W(504,"Cq]h")]),this[W(346,"VwQI")](GhostName.INKY,GhostMode.IN_HOUSE),this[W(399,"DU%l")](GhostName[W(459,"kacG")],GhostMode[W(421,"fznu")])]}[_0x5f13d5(329,"giDH")](W,o){const t="XQ1&",n=_0x5f13d5,e=GHOST_START_POSITIONS[W],d=GHOST_SCATTER_TARGETS[W],r={};return r[n(460,"c9J#")]=W,r.x=e.x,r.y=e.y,r[n(292,"16)p")]=e.x,r[n(327,t)]=e.y,r[n(386,"mTzw")]="UP",r[n(451,"t^Zz")]=o,r.previousMode=GhostMode[n(383,t)],r[n(458,"NQz#")]=d.x,r.targetY=d.y,r.frightenedTimer=0,r[n(305,"IlUx")]=!1,r}[_0x5f13d5(449,"iJPc")](W){const o=_0x5f13d5,t={};t[o(290,"iw1X")]=function(W,o){return W<o};const n=t;this.mouthAnimationFrame=(this[o(352,"Ll$l")]+1)%8,W[o(280,"ujwo")]=n[o(372,"giDH")](this[o(324,"(Bfq")],4),W[o(464,"mTzw")]=W[o(280,"ujwo")]?45:5}[_0x5f13d5(481,"q!OZ")](W){const o=_0x5f13d5,t={};t[o(328,"oeTQ")]=function(W,o){return W+o},t[o(516,"Ab50")]=function(W,o){return W-o};const n=t,e={...W};if(W[o(408,"A3l5")]!==W[o(499,"DU%l")]){const t=DIRECTIONS[W.nextDirection],d=n[o(374,"uGnB")](W.x,t.x),r=W.y+t.y;this[o(364,"SYNb")](d,r)&&(e[o(431,"u*fC")]=W.nextDirection)}const d=DIRECTIONS[e[o(287,"E)!(")]];let r=W.x+d.x,s=n.VTbNU(W.y,d.y);return r<0?r=n[o(505,"mW2J")](PACMAN_GAME_CONFIG.GRID_COLS,1):r>=PACMAN_GAME_CONFIG.GRID_COLS&&(r=0),this.canMove(r,s)&&(e.x=r,e.y=s),e.visualX=e.x,e.visualY=e.y,this[o(301,"yF54")](e),e}canMove(W,o){const t=_0x5f13d5,n={};n[t(334,"mTzw")]=function(W,o){return W>=o};const e=n;if(o<0||o>=PACMAN_GAME_CONFIG[t(510,"]B8r")])return!1;if(W<0||e[t(501,"yF54")](W,PACMAN_GAME_CONFIG[t(390,"%AJX")]))return!0;const d=this[t(420,"HM3f")][t(414,"kacG")][o]?.[W];return d!==CellType.WALL&&d!==CellType[t(357,"Hf7G")]}[_0x5f13d5(296,"GwHs")](W,o,t){const n=_0x5f13d5,e={};e[n(425,"yF54")]=function(W,o){return W!==o};const d=e;if(o<0||o>=PACMAN_GAME_CONFIG.GRID_ROWS)return!1;if(W<0||W>=PACMAN_GAME_CONFIG.GRID_COLS)return!0;const r=this[n(443,"16)p")][n(338,"HM3f")][o]?.[W];return r===CellType.GHOST_DOOR?t[n(451,"t^Zz")]===GhostMode[n(484,"%AJX")]||t[n(452,"Zj$M")]===GhostMode[n(514,"E)!(")]:d[n(503,"8Wyo")](r,CellType.WALL)}[_0x5f13d5(519,"IlUx")](W,o){const t="(Bfq",n=_0x5f13d5,e={};e[n(389,"8Wyo")]=function(W,o){return W===o};const d=e,r=this[n(391,"WviV")][n(285,"8Wyo")][o];if(!r)return null;const s=r[W];if(d[n(337,"DU%l")](s,CellType[n(511,"Cq]h")])){r[W]=CellType[n(335,"u*fC")],this[n(528,"IlUx")][n(441,"ujwo")]--;const o={};return o[n(406,t)]=PACMAN_GAME_CONFIG[n(471,"]E(M")],o.isPowerPellet=!1,o}if(d[n(453,"u*fC")](s,CellType[n(313,"q!OZ")])){r[W]=CellType[n(490,t)],this[n(370,"VwQI")][n(394,"giDH")]--;const o={};return o.points=PACMAN_GAME_CONFIG[n(513,"mTzw")],o.isPowerPellet=!0,o}return null}checkGhostCollision(W,o){return W.x===o.x&&W.y===o.y}[_0x5f13d5(475,"Hf7G")](W,o,t){const n="HM3f",e=_0x5f13d5,d={...W};switch(W[e(430,n)]){case GhostMode.IN_HOUSE:return d[e(398,"iw1X")]=d.x,d[e(427,"u*fC")]=d.y,d;case GhostMode[e(320,"c9J#")]:return W.y>7?(d.y--,d[e(465,"c9J#")]="UP"):(d[e(356,"I6O3")]=GhostMode[e(298,"q!OZ")],d[e(499,"DU%l")]="LEFT"),d[e(353,n)]=d.x,d.visualY=d.y,d;case GhostMode[e(376,"ujwo")]:return this.moveTowardsTarget(d,9,9);case GhostMode[e(402,"]VVv")]:return this[e(330,"A3l5")](d);case GhostMode[e(439,"IlUx")]:const r=GHOST_SCATTER_TARGETS[W[e(295,"I6O3")]];return d[e(349,"I6O3")]=r.x,d[e(350,"nQ0z")]=r.y,this[e(323,"I6O3")](d,r.x,r.y);case GhostMode[e(401,"lD2Z")]:const s=this[e(311,"yF54")](W,o,t);return d.targetX=s.x,d[e(489,"U!XG")]=s.y,this.moveTowardsTarget(d,s.x,s.y);default:return d}}[_0x5f13d5(380,"9Oi7")](W,o,t){const n=_0x5f13d5,e={ZzvuT:function(W,o){return W*o}};e[n(497,"5G2F")]=function(W,o){return W*o},e[n(437,"5G2F")]=function(W,o){return W-o},e[n(375,"t^Zz")]=function(W,o){return W-o},e[n(318,"mW2J")]=function(W,o){return W-o};const d=e,r=DIRECTIONS[o.direction];switch(W[n(404,"1Snn")]){case GhostName[n(454,"iw1X")]:const e={};return e.x=o.x,e.y=o.y,e;case GhostName[n(282,"lD2Z")]:return{x:Math.max(0,Math[n(522,"XQ1&")](PACMAN_GAME_CONFIG[n(390,"%AJX")]-1,o.x+d[n(367,"dXTu")](r.x,4))),y:Math[n(506,"HM3f")](0,Math[n(385,"vnF4")](PACMAN_GAME_CONFIG[n(433,"16)p")]-1,o.y+4*r.y))};case GhostName[n(409,"VwQI")]:if(t){const W={x:o.x+2*r.x,y:o.y+d[n(306,"giDH")](r.y,2)};return{x:Math[n(392,"1Snn")](0,Math.min(d[n(428,"SYNb")](PACMAN_GAME_CONFIG[n(307,"fznu")],1),W.x+(W.x-t.x))),y:Math[n(378,"CcNC")](0,Math[n(422,"IlUx")](PACMAN_GAME_CONFIG[n(288,"Zj$M")]-1,W.y+d[n(462,"]VVv")](W.y,t.y)))}}const s={};return s.x=o.x,s.y=o.y,s;case GhostName[n(447,"dXTu")]:if(Math.abs(d.FcjSC(o.x,W.x))+Math[n(314,"IlUx")](o.y-W.y)>8){const W={};return W.x=o.x,W.y=o.y,W}return GHOST_SCATTER_TARGETS[GhostName[n(369,"GwHs")]];default:const u={};return u.x=o.x,u.y=o.y,u}}[_0x5f13d5(521,"XQ1&")](W,o,t){const n=_0x5f13d5,e={};e[n(432,"mTzw")]=function(W,o){return W===o},e[n(286,"Zj$M")]=function(W,o){return W>o},e[n(438,"SYNb")]=function(W,o){return W-o},e[n(496,"q!OZ")]=function(W,o){return W*o},e[n(526,"iw1X")]=function(W,o){return W<o},e[n(291,"Ll$l")]=function(W,o){return W<o},e[n(333,"q!OZ")]=function(W,o){return W>=o};const d=e,r={...W},s=this[n(446,"XQ1&")](W);if(d[n(518,"]VVv")](s[n(468,"E)!(")],0))return r;const u=this[n(368,"VwQI")](W[n(283,"U!XG")]),C=s[n(366,"E)!(")](W=>W[n(465,"c9J#")]!==u),i=d[n(355,"8Wyo")](C[n(309,"]E(M")],0)?C:s;let G=i[0],f=1/0;for(const W of i){const e=d[n(363,"%AJX")](W.x,o),r=W.y-t,s=d[n(312,"5G2F")](e,e)+r*r;d[n(529,"DU%l")](s,f)&&(f=s,G=W)}if(!G)return r;let x=G.x;return d.IxBOO(x,0)?x=d.FDFVc(PACMAN_GAME_CONFIG[n(343,"W$@l")],1):d[n(500,"1Snn")](x,PACMAN_GAME_CONFIG[n(502,"Cq]h")])&&(x=0),r.x=x,r.y=G.y,r[n(407,"A3l5")]=x,r[n(297,"5G2F")]=G.y,r[n(386,"mTzw")]=G[n(373,"Cq]h")],r}moveRandomly(W){const o=_0x5f13d5,t={};t[o(440,"mW2J")]=function(W,o){return W-o},t.CGWOX=function(W,o){return W>=o};const n=t,e={...W},d=this.getPossibleMoves(W);if(0===d[o(345,"8Wyo")])return e;const r=this[o(368,"VwQI")](W.direction),s=d[o(366,"E)!(")](W=>W[o(461,"nQ0z")]!==r),u=s[o(498,"HM3f")]>0?s:d,C=u[Math[o(284,"Ll$l")](Math.random()*u.length)];if(!C)return e;let i=C.x;return i<0?i=n[o(434,"1Snn")](PACMAN_GAME_CONFIG[o(473,"]VVv")],1):n[o(302,"yF54")](i,PACMAN_GAME_CONFIG[o(403,"HM3f")])&&(i=0),e.x=i,e.y=C.y,e[o(466,"SYNb")]=i,e.visualY=C.y,e[o(331,"16)p")]=C[o(321,"%AJX")],e}[_0x5f13d5(485,"Ab50")](W){const o=_0x5f13d5,t=[],n=["UP",o(293,"Cq]h"),o(359,"VwQI"),o(494,"Ll$l")];for(const o of n){const n=DIRECTIONS[o],e=W.x+n.x,d=W.y+n.y;if(this.canGhostMove(e,d,W)){const W={};W.x=e,W.y=d,W.direction=o,t.push(W)}}return t}[_0x5f13d5(332,"SYNb")](W){const o=_0x5f13d5,t={};t[o(405,"HM3f")]=o(517,"CcNC");const n=t,e={};return e.UP=o(419,"HM3f"),e[o(417,"]E(M")]="UP",e[o(445,"Hf7G")]=o(387,"IlUx"),e[o(387,"IlUx")]=n[o(317,"9Oi7")],e.NONE=o(411,"mW2J"),e[W]}[_0x5f13d5(382,"lD2Z")](W,o){const t=_0x5f13d5;return W[t(300,"W$@l")](W=>{const n=t;return W[n(508,"c9J#")]===GhostMode[n(325,"CcNC")]||W[n(336,"DU%l")]===GhostMode[n(319,"kacG")]?W:{...W,previousMode:W[n(322,"kacG")],mode:GhostMode[n(310,"Ll$l")],frightenedTimer:o,isFlashing:!1,direction:this[n(396,"ujwo")](W[n(482,"5G2F")])}})}[_0x5f13d5(479,"lD2Z")](W,o){const t=_0x5f13d5,n={};n[t(507,"nQ0z")]=function(W,o){return W<=o};const e=n;if(W[t(487,"uGnB")]!==GhostMode.FRIGHTENED)return W;const d=W.frightenedTimer-o;if(e[t(360,"U!XG")](d,0)){const o={...W};return o.mode=W.previousMode,o[t(416,"5G2F")]=0,o.isFlashing=!1,o}const r=d<2e3,s={...W};return s[t(426,"vnF4")]=d,s[t(351,"S@W*")]=r,s}[_0x5f13d5(520,"I6O3")](W){const o=_0x5f13d5;if(W[o(452,"Zj$M")]!==GhostMode[o(289,"u*fC")])return W;const t={...W};return t[o(381,"oeTQ")]=GhostMode[o(525,"8Wyo")],t}checkGhostReachedHouse(W){const o=_0x5f13d5,t={};if(t[o(476,"dXTu")]=function(W,o){return W!==o},t[o(384,"E)!(")](W[o(508,"c9J#")],GhostMode[o(509,"oeTQ")]))return W;if(9===W.x&&9===W.y){if("hHMJy"!==o(304,"I6O3")){const t={...W};return t[o(478,"ujwo")]=GhostMode[o(515,"t^Zz")],t}_0x5ec871.x=_0x3b8005,_0x4bc9d4.y=_0x183e70}return W}[_0x5f13d5(371,"GwHs")](){return this[_0x5f13d5(377,"uGnB")].dotsRemaining}isLevelComplete(){const W=_0x5f13d5;return 0===this[W(527,"fznu")][W(347,"XQ1&")]}getDotsEaten(){const W=_0x5f13d5,o={};return o[W(388,"Cq]h")]=function(W,o){return W-o},o[W(436,"]B8r")](this[W(395,"vnF4")].totalDots,this[W(456,"XQ1&")][W(340,"dXTu")])}shouldSpawnFruit(){const W=_0x5f13d5,o=this[W(308,"]E(M")]();return PACMAN_GAME_CONFIG[W(444,"kacG")][W(467,"IlUx")](o)}createFruit(){const W={};return W[_0x5f13d5(410,"mTzw")]=function(W,o){return W+o},{x:9,y:11,active:!0,expiresAt:W.zdlQQ(Date.now(),PACMAN_GAME_CONFIG.FRUIT_DURATION)}}isFruitExpired(W){const o=_0x5f13d5;return W[o(358,"q!OZ")]&&Date[o(316,"W$@l")]()>W[o(495,"A3l5")]}[_0x5f13d5(523,"nQ0z")](W,o){return o.active&&W.x===o.x&&W.y===o.y}[_0x5f13d5(450,"WviV")](W){const o=_0x5f13d5;switch(W){case o(491,"yF54"):return 0;case"DOWN":return 90;case o(435,"Ab50"):return 180;case"UP":return 270;default:return 0}}[_0x5f13d5(486,"WviV")](W,o){return o!==_0x5f13d5(281,"oeTQ")}}
@@ -1 +0,0 @@
1
- "use strict";const _0xac1ca6=_0x1826;!function(){const e=_0x1826,a=_0x36af();for(;;)try{if(997931==-parseInt(e(451,"zh4M"))/1+-parseInt(e(509,"V5xK"))/2+-parseInt(e(507,"tRCa"))/3*(parseInt(e(607,"Y*CO"))/4)+-parseInt(e(464,"U5[@"))/5*(-parseInt(e(478,"A]^x"))/6)+parseInt(e(603,"%]gV"))/7*(parseInt(e(482,"wvtp"))/8)+parseInt(e(323,"IDpI"))/9+parseInt(e(412,"u0E%"))/10)break;a.push(a.shift())}catch(e){a.push(a.shift())}}();import{create}from"zustand";import{subscribeWithSelector}from"zustand/middleware";import{useShallow}from"zustand/react/shallow";import{PacManService}from"./PacManService.js";function _0x36af(){const e=["W6OUW6pcGcFcGSo8uuJdT1hdGxy","W4WWWQFcNY8","W5NdOaFdLCkGWPhdOCkNWRxcJSodoxC","W43cG2D8W6hcU8oWWQ3cUW","W7tcRIe","W4ZdTXu9vL4E","lIW1WOhcPte9","BSoJW7FcIb8","FZZcPIfW","W47dU8kXWRW9FrjuW5C","W7BcV8oPW4K","vtj4CComW6xcGuLo","BmkZW59eW4O","WQbbWPSEW5XUvmoKbmow","xZPNCq","W7ZdMSkaWOBdMW97","WO/cVehcICo1W5hcVmkkWO8","W43cRmkuWRdcS8oAWO4","u0zCmquDW5RdHXm","DrddQdu4","lxPMWOTKWRW3eYq2","W57dUXVdK8kXWQFdPq","W7NcQmkoWQRcVq","uwldQSoOWPu3WOq","jcboW6W8W5Ohg8oWo0VcRG","a1vcWRPsWO4lpXSxhsKRW68zW4u","W4tcG8oPemo3W40qkc/dKalcV8kMW4ldMZe","WQxdTmoDWP09WOSCbw1cW6JdOHO","WQpcNSkgWPpdKSkWobaF","bfrC","W4FcHh17W73cOSoPWRVcOfNcLxq","W7CUcYxcKa","WPqPW6xdR3S","nCkOWPdcNW","iSo1W5vzsrO","WO0KW4hdHwG","W4m2WOxcIdhcOrDt","smoNWPRcVHLb","W63dMSkXWPNdVW","W5ldI1q","ECk6WR3cSLG","W4NcN0jKW6JcJCoPWQBcSG","WQlcM3RcUmoFW6tcMCk6WQ3cTConc3q","WOSiqq","tCoXWRpcUabmwCoQvJa","W4amdK4A","CmodW6rFW6OMW5y2WQG","W70XW6rxWOq","WOpdQCobWQNdOCkbjMxcUCkQqHC","ld1GW6aWW4STimo6pa","d3/cOr4RvCoGW5VcNmk2FuxdKf3cG8odssehr3VdGa","ld1WW6GZ","W6VcRJVcSmkWuq","sComWQBcIqO","bGzMW5iy","WPKNW6ldTG","zSkUW5vzW64","i8kUWOdcMCkZ","F8ocW4fAW78","c2pcKXO","D8obWRxcJtLSra","WRShW5ZdLKDjWQ9uW4L2WPj0BG","wSoHW5VcRbm","zCkkW6f5W6eofSoY","WRDTWOJdKh7dL8k2","ESoDW618W4e","W48KWQhcRsVcPG","W7tcNSkfWORcN8o/WRK","s8ofWPxcIWG","W4FdKmkMWP8r","iSkIWOVcLmkKW4xdImkFWOa","W5ZcO8kSW49k","W6pdRftcObK","n8k1WO7cLSkVW4xdHmkEWOSm","kYfq","oarMW4JcG8k9mCkKWQFcOG","W6FdNmkgWOFdKIXtW5jk","hZHVW6W","gtq7WOtcSG","WRLpW6VcVIXxi2JdQ8otW4GGWRrQpSkacdNcHGir","W5ZdU8kWWQW/zsi","W6NdNsCCy3Cu","k8kTWOJcPSka","W4ddV8oqW7a7","W5CNdr7cTq","W4FdTSk3WRRdRY4","W7FcTCoJW4TSWPq","zCkNWP3cJW","mYDuW7q8W4i7","W4dcJmo6aq","W4xcGNnQW6xcKCoiWQNcPuZcKgq2","W50lW4TW","DSoCW7dcIa","nK3cTcakFCok","swZdQCoFWRy","tCkAWRRcRwaeWRL9bSoXWR98EKO","WPZcPmo2WRCTFHD5W4K","WQxdRIRcJr7dNa","uwRdTCoOWPe","WQ1pW6VcTq","kdNcPaHGaXK","WOFdOmoaWP3dVCk4pglcGCkKwae","W6ydW6v/WRC","WQPaWRKEW4vUxCoGfmonW4W","WPm1ECoFma","WOGiq8oMamojW4PAr8ox","W5dcP8kBW4e","W5ZcNmkCWRZcTq","W7BdMJ0DA3OGWQeYtCkkWPRdSue","yrPjs8oIW5dcPG","W7ZdMSkaWOBdMW96","xCo/W6n9","W7WHW6Lb","W5JdT8kWWRWQrbPbW5W","y8kfW6vXW4WvhmopW5xdQh7cNq","AGdcUHP5nYm","xLXPnqSmW7ZdNHGD","W7tdPSoDW4q","E8koobDPWPj6","W4qKWRJcJa","WOxcOvxcOSoY","WQddUbtcHGVdJCoVDqS","W6VdRfdcOaNcPK9yWOe","CqBcGWHq","l3BcPI0m","WQddUbtcHr3dKCo0sWLYW7ldGZ4","W4hdOt/dJ8k+","W77cRSobmmokW6KU","WPZdNCk2umkPWP4PabddPHhcNW","qCkJW41pW6G+pCoxW6JdNf7cVaOD","mCk7iCkA","W6NcQJJcSG","c8kBfcrz","xdr8CCoOW7NcH1vu","WRyKD8ogpmonW7y","WOZcLLxcMmoq","oYWIWOhcRZG8lxyhW4bqBhGD","uCoGW7NcRbxcNXxcS1NdRW","W47cUmkuWQZcU8oiWPm","WOfrWPGHW4ubWQtdLCkbW7tdMLdcVHG","W5uFh14fW77cNa","oarXW4xcJ8kHf8k8WQu","WPNcVKlcMSoJ","seBdLSopWRy","kmkaWQRdHwS","W6BdQ0VcSqpcS0PEWPuNWPVcM8o5dmkyWO8","lNdcICoqWPu","CghdV8onWO4","W6VcHmkKWPRcN8o3WPG","WQOLrCoZda","WQypz8oeja","g17cOSo+WOi","qmoRWOBcVa5DF8oZxq","fX4HWRFcHG","W6ldL8kcWO8h","W5NdI05yW6DV","gvneWRTxWOS0jGafnaC2W6KeW4i","W5iyhrRcT2bbWPX2W4NcJaza","kcfrW6qnW48bg8o+ia","CGJcPaO","xt5KC8oBW7K","W5xcGHlcN8kq","W7m3l3qPW5pcIW","jX5sW5ZcJ8k0jW","W60oWO/cQZ4","W4tcNSogcmo/W58ukdVdKG","fX4MWRlcIqKAeeu","WRNcJSk5WO3dLG","BmkPWP7cJ1CJWOXwbmoD","WO3cP0BcHCoI","W6rBWPBcLJiuW6HIW5jSWP9wsq","WOFdRCoBWQpdQmkuma","WPPNWP88W7rysa","xZBdNai4W7BdRa","W4BdSWxdGW","oarTW4ZcMmk9eSkrWQ3cVutdVgSKba","W5NdP8kYWQhdRG","nmkcWP/cG8k/","W67cUaxcU8kLqmoytCkK","WPCwWRpdUvubW6fPW6W","WOfrW6X0WQPXW5BcLW","vej3gYW","WQyVECoFomoxW6vXFW","WObZW67cNH9ScG","W4tcGXtcHmkb","cCkDhmkQj8kCWRG","W6JdRu3cTH7cHe9eWPOJWRdcGa","a0HTWRXoWOyteXKcmZmHW7G","h8kFfI9CWOTx","b8koWRtcPmkgW73dMq","oCk3jGvWWQzb","lH9xW6K7","lCosW7XBCa","vCo8W5RcQa","W6akmgKU","fSkhomk2ka","W6NcOLTCW4dcTComWPFcMxhcR0iw","WP3cVedcMCo3W4NcJq","W67dJmoxW6W8","W5yDhvuCW7RcGa","W6pdGmk0WPldLWzSW4fbmW","AYZcPYj3","yWXOxCoU","W54bW5DHWRzEW6dcGmk7W7tdGNZcPa","W77cJZRcTCk8","W47cRSkwWRVcQSoEWPldJ2rCymkLWPJcMKxcUq","W5KxW790WODeW7FcGq","lcboW7u0W48op8oLk3JcP8kcgq","W7mYocK","gdLOW73cP8kzmSknWO7cMwldLv0","DmkkW6bPW4G","WPxdV8otWQ07","W6tdMY/dRSke","DmodWRFcHIbOwa","W7/cUCo/W4L7WOHndMO","iSkKWOBcHCkZW5tdKW","W7CUdc3cI11JWQC","W4/dICkqWQpdOG","AmoaW5fkW4W","WONdU8o/WOldQmkxph/cKW","rshdVr0+","tNJdI8o4WPu/WQu","WPBdVmogWOVdGG","rSoWWPhcUay","WOvLW5lcNaPG","W7hcOIBcOSkLvCoP","W6NcV8o5W41SWPvldW","rZj5yCooW73cSa","WRrNztH6WOVdQHG6WPmPW5RcRf4","WOeormo3c8o8W41srq","WR0TWQldHNe","W6WTc2GM","W4ZdUXRdG8kZWR/dLdtcOW","W4ldTSkYWQxdOW","W5/cOCkEWQhcTCoc","wZ/dNtWJW5BdOmoyW7xdNWNdVW","W4tcGSk5W7eN","W6VdMCkcWPqM","W4pdH1nkW7jRW5e","WRb/WRFdKa","xCkbWQdcV2KCWOq","mSkXk8kwe8k9","W4BdUSk1WRBdPs9SW6rW","WOZdRCouWPevhmoIWPuN","oq5pW6xcPq","ESoyW5fqW6ayW5C3WRZcOSkWq3RcLCoYW5VdOebb","W5ZdNxbtW7j+W6bykq","W5JcGCkIW74","egxcHaOMumoC","jSkUWR/dUNq","W7ddUSo/W40YCfddRf/dGa","aX8xyv5yWOddGqO2WPT5WQi","c2ZcNmosWPy","c2ZcJCoxWPKKEv8TlW","gWmxWRZcHbuGevC2W6DS","vhHfmHq","W6lcRCkxW59QW5j2","W43cOmoeW6L/","WOlcPNtcJCo7W4dcMSktWOtcJG","sSoLWOtcMY8","WRZcHmkLWORdKSkLcq","WPBdOCoCWPVdQmkcdq","WOjrWPSSW4qdWQBcP8kmW7ldS2tcMG","uNVdVCo8WOa+WPOtiuRdN0FcU27dUg3dTmkVWR4edq","oGDBW5hcMG","q8oJWPNcVcfgECoS","W6WTg2aLW5RcNv46WPK","WPhdLsa8WRJdGmk1WPVcRvBcNuOm","AmosW73cKJxcUXq","WOPHW5lcTHf+fG","omo5W4Hlxb7dPG","WOWuzSoZhCo7W4fz","uaBcIWr1","WQH3WQNdGh7dN8kx","WObZW7RcLX97g0tdICo4","WQvxWRiyW4vJ","W4VdGaRdK8kc","E8kNWOtcJ1OVWOXwdCovWPvB","W4dcGSoKaq","W7BdHXmiB34dWR4TwG","W49qWQddTgW+W4X1","WRGnW4ddHW","fCkcWQVcTmktW7q","W5KxW6L5WPneW7RcJmk2W6C","tCoXWQtcTqXqF8oYva","WQmlW5FdL2jmWOq","aSkraZvoWPLjk1ZcQq","WP9HW5dcJHS","uCo9W5FcUrhcMZBcReBdUmkddM7cMCkBfq","WQJcSmkaWPHHnWdcTvtdN3fWW5hdHW","W4m2WOxcHsxcQXTzfa","mSkHWRRdQ1rJDq","W4pdMKLAW5G","c2NcVSoRWP0","WQRdOmk0WPSUW4KwihZcVKlcTmon","W7FcPci","WRDTWORdMx7dISkMvLG","vcNdVSovWOSGFxqZ","fJVcR8kPW4nPWOKGdx7dThi","W4tcGXRcMSku","EbldSXSF","CmodW6rsW74SW5O8","W7JdM8keWPek","WP3cH2xcOmom","DCovW5PuW783","W6JcUSkAW4Kn","vJ5+wCooW6VcJq","W5FcLCoBW6LuWQnNlKNcT1RcGCoYzq","eSk1WQxcPmk1","tNJdICo8WOeOWRKf","dmkdWOS","W73cT8k0W4zQW4DhkNi","amkTWPBcSSkI","W5RdS8kGWRq/zY1sW4PUDIy","nf7cMqCx","uJPKwCoaW6FcJq","W5JdLsZdT8kb","EwbGeq","vw7dTCo4WPuOWRKMieldHeC","fa1cW7NcTG","dwlcHxTGWRBcV8kBW5NdIHtdJ8kFW4a","uSoRWOFcRaXftG","W7ldMZam"];return(_0x36af=function(){return e})()}import{PACMAN_GAME_CONFIG,GhostMode,GhostName,GHOST_RELEASE_TIMING}from"./PacManConstants.js";import{playSound,GAME_SOUNDS}from"../../services/SoundsService.js";import{playHaptic,HapticType}from"../../services/HapticsService.js";import{setGameInterval,clearGameInterval}from"../../helpers/GameTimer.js";const gameService=new PacManService;let _pacman=gameService.initializePacMan(),_ghosts=gameService.initializeGhosts(),_fruit=null,_score=0,_lives=PACMAN_GAME_CONFIG[_0xac1ca6(380,"zh4M")],_ghostsEatenCombo=0,_currentGhostMode=GhostMode[_0xac1ca6(475,"q@K2")],_gameStartTime=0,_enableSounds=!0,_enableHaptics=!0,_lastDotsRemaining=-1,pacmanSubStep=0,ghostSubStep=0,chompCounter=0;const SUB_STEPS=PACMAN_GAME_CONFIG.SUB_STEPS,MOVE_SPEED=PACMAN_GAME_CONFIG[_0xac1ca6(470,"qdGW")],GHOST_SUB_STEPS=Math.round(SUB_STEPS/PACMAN_GAME_CONFIG.GHOST_SPEED_RATIO),GHOST_MOVE_SPEED=1/GHOST_SUB_STEPS,GRID_COLS=PACMAN_GAME_CONFIG.GRID_COLS;let gameTimerRef=null,countdownTimerRef=null,ghostModeTimerRef=null,readyTimeoutRef=null;const clearAllTimers=()=>{const e=_0xac1ca6;gameTimerRef&&(clearGameInterval(gameTimerRef),gameTimerRef=null),countdownTimerRef&&(clearGameInterval(countdownTimerRef),countdownTimerRef=null),ghostModeTimerRef&&(clearGameInterval(ghostModeTimerRef),ghostModeTimerRef=null),readyTimeoutRef&&({cUoNh:function(e,a){return e(a)}}[e(515,"Y*CO")](clearTimeout,readyTimeoutRef),readyTimeoutRef=null)};let pacmanSharedValues=null;const ghostSharedValuesMap=new Map;export const registerPacManSharedValues=e=>{pacmanSharedValues=e};export const unregisterPacManSharedValues=()=>{pacmanSharedValues=null};export const registerGhostSharedValues=(e,a)=>{ghostSharedValuesMap[_0xac1ca6(511,"c9H[")](e,a)};export const unregisterGhostSharedValues=e=>{ghostSharedValuesMap[_0xac1ca6(466,")lfr")](e)};function _0x1826(e,a){e-=286;const t=_0x36af();let o=t[e];if(void 0===_0x1826.jNTAYj){const e=function(e,a){let t,o,W=[],n=0,s="";for(e=function(e){let a="",t="";for(let t,o,W=0,n=0;o=e.charAt(n++);~o&&(t=W%4?64*t+o:o,W++%4)?a+=String.fromCharCode(255&t>>(-2*W&6)):0)o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(o);for(let e=0,o=a.length;e<o;e++)t+="%"+("00"+a.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(t)}(e),o=0;o<256;o++)W[o]=o;for(o=0;o<256;o++)n=(n+W[o]+a.charCodeAt(o%a.length))%256,t=W[o],W[o]=W[n],W[n]=t;o=0,n=0;for(let a=0;a<e.length;a++)o=(o+1)%256,n=(n+W[o])%256,t=W[o],W[o]=W[n],W[n]=t,s+=String.fromCharCode(e.charCodeAt(a)^W[(W[o]+W[n])%256]);return s};_0x1826.PMLPNz=e,_0x1826.xKGAfv={},_0x1826.jNTAYj=!0}const W=t[0];_0x1826.pzJmZK!==W&&(_0x1826.xKGAfv={},_0x1826.pzJmZK=W);const n=_0x1826.xKGAfv[e];return void 0===n?(void 0===_0x1826.QeuzKZ&&(_0x1826.QeuzKZ=!0),o=_0x1826.PMLPNz(o,a),_0x1826.xKGAfv[e]=o):o=n,o}const _0x45413e={RIGHT:0};_0x45413e.DOWN=Math.PI/2,_0x45413e[_0xac1ca6(431,"e*fp")]=Math.PI,_0x45413e.UP=3*Math.PI/2,_0x45413e[_0xac1ca6(594,"CbBd")]=0;const DIR_ROTATION=_0x45413e;export const getPacManPosition=()=>({x:_pacman[_0xac1ca6(422,"WPJ2")],y:_pacman[_0xac1ca6(469,"n10E")],rotation:DIR_ROTATION[_pacman[_0xac1ca6(336,"^Dzk")]]});export const getGhostPosition=e=>{const a=_0xac1ca6,t={oGaRe:function(e,a){return e===a}};for(let o=0;o<_ghosts[a(593,"A]^x")];o++){const W=_ghosts[o];if(t[a(575,"^Dzk")](W.name,e))return{x:W.visualX,y:W[a(346,"u0E%")]}}return null};const writeVisuals=()=>{const e=_0xac1ca6,a={};a[e(529,"82m@")]=e(331,"wvtp"),a[e(401,"]o1#")]=e(496,")lfr");const t=a;if(pacmanSharedValues){if(t[e(563,"Uo7y")]===t[e(503,"[cs^")])return _0x12e9fb[e(565,"o[ww")];pacmanSharedValues.x.value=_pacman[e(457,"tRCa")],pacmanSharedValues.y[e(471,"T@vv")]=_pacman[e(299,"Y*CO")],pacmanSharedValues[e(410,"A]^x")][e(605,"wvtp")]=DIR_ROTATION[_pacman[e(518,"DJXx")]]}for(let a=0;a<_ghosts[e(488,"o[ww")];a++){const t=_ghosts[a],o=ghostSharedValuesMap[e(546,"WPJ2")](t[e(423,"tRCa")]);o&&(o.x.value=t[e(373,")lfr")],o.y[e(394,"Uo7y")]=t[e(369,"Fa6e")])}},buildPacmanVisual=()=>({direction:_pacman[_0xac1ca6(416,"NLgy")],mouthOpen:_pacman[_0xac1ca6(289,"#PLY")]>10}),buildGhostVisuals=()=>_ghosts[_0xac1ca6(494,"q@K2")](e=>({name:e[_0xac1ca6(303,"!CB1")],mode:e.mode,isFlashing:e[_0xac1ca6(467,"IDpI")]})),pacmanVisualEquals=(e,a)=>e[_0xac1ca6(413,"#PLY")]===a.direction&&e[_0xac1ca6(583,"]o1#")]===a[_0xac1ca6(510,"zh4M")],ghostVisualsEqual=(e,a)=>{const t=_0xac1ca6,o={};o[t(547,"CbBd")]=function(e,a){return e!==a};const W=o;if(e[t(541,"X76Y")]!==a[t(344,"DJXx")])return!1;for(let o=0;o<e[t(459,"DVG3")];o++){const n=e[o],s=a[o];if(n[t(343,"Y*CO")]!==s[t(315,"c9H[")]||W[t(498,"BNa4")](n[t(377,"HpeF")],s.mode)||n[t(458,"T@vv")]!==s[t(349,"ax^A")])return!1}return!0},_0x18183f={x:-1,y:0},_0x3d2e35={x:1,y:0},_0x39d609={x:0,y:-1},_0x36460e={x:0,y:1},_0x4de568={x:0,y:0},_0x166c13={};_0x166c13.LEFT=_0x18183f,_0x166c13[_0xac1ca6(345,"c9H[")]=_0x3d2e35,_0x166c13.UP=_0x39d609,_0x166c13[_0xac1ca6(540,")lfr")]=_0x36460e,_0x166c13[_0xac1ca6(290,"ERHU")]=_0x4de568;const DIR_DELTAS=_0x166c13,_0x4aa077={};_0x4aa077[_0xac1ca6(296,"IDpI")]=_0xac1ca6(564,")lfr"),_0x4aa077[_0xac1ca6(486,"%]gV")]=_0xac1ca6(562,"n10E"),_0x4aa077.UP=_0xac1ca6(295,"o[ww"),_0x4aa077[_0xac1ca6(606,"T@vv")]="UP",_0x4aa077.NONE=_0xac1ca6(599,"HpeF");const OPPOSITE_DIR=_0x4aa077,handleGhostCollision=(e,a)=>{const t="]o1#",o="u0E%",W=_0xac1ca6,n={tttYU:function(e,a){return e*a},COdSx:"break",rkqvu:function(e,a,t,o){return e(a,t,o)},kQphf:function(e){return e()}};if(a){_ghostsEatenCombo++;const a=n.tttYU(PACMAN_GAME_CONFIG.POINTS_PER_GHOST,Math[W(479,"c9H[")](2,_ghostsEatenCombo-1));return _score+=a,_ghosts.splice(e,1),playSound(_ghostsEatenCombo>1?GAME_SOUNDS.PAC_MAN[W(320,"(i%0")]:GAME_SOUNDS[W(293,"DJXx")].EAT_GHOST,_enableSounds,!0),playHaptic(HapticType[W(417,t)],_enableHaptics),n.COdSx}return _lives--,playHaptic(HapticType[W(552,o)],_enableHaptics),_lives<=0?(n[W(326,"V5xK")](playSound,GAME_SOUNDS[W(324,o)][W(316,"qdGW")],_enableSounds,!0),n[W(375,"4tRQ")](clearAllTimers),n.COdSx):(playSound(GAME_SOUNDS[W(452,"HpeF")][W(426,t)],_enableSounds,!0),pacmanSubStep=0,ghostSubStep=0,_pacman={...gameService[W(472,"HpeF")](),direction:W(290,"ERHU"),nextDirection:W(314,"Fa6e")},_ghosts=gameService[W(329,"tf5(")](),_ghostsEatenCombo=0,_gameStartTime=Date[W(536,"vO&(")](),W(569,"HpeF"))};export const usePacManStore=create()(subscribeWithSelector((e,a)=>({pacmanVisual:buildPacmanVisual(),ghostVisuals:buildGhostVisuals(),maze:gameService[_0xac1ca6(490,"DJXx")](),fruit:null,score:0,timeElapsed:0,lives:PACMAN_GAME_CONFIG[_0xac1ca6(549,"V5xK")],isPlaying:!1,isGameOver:!1,isWin:!1,isPaused:!1,isReady:!1,enableSounds:!0,enableHaptics:!0,startGame:()=>{const t=_0xac1ca6,o={BBKdh:function(e){return e()},LoBkm:function(e,a,t){return e(a,t)},VgJjE:function(e,a,t){return e(a,t)},yvORi:function(e,a){return e(a)},eFiRV:function(e){return e()}};o.eFiRV(clearAllTimers),pacmanSubStep=0,ghostSubStep=0,chompCounter=0,playSound(GAME_SOUNDS[t(600,"BNa4")][t(360,"]o1#")],_enableSounds),playHaptic(HapticType[t(592,"]o1#")],_enableHaptics);const W={isReady:!0};W[t(350,"(i%0")]=!1,e(W),readyTimeoutRef=o.VgJjE(setTimeout,()=>{const W=t,n={RWbIA:function(e,a){return e===a}};n.XFegk=W(489,"ERHU");const s=n;if(!a().isReady)return;gameTimerRef=o[W(330,"q*d0")](setGameInterval,()=>{const e=W,t=o.BBKdh(a);t[e(362,"c9H[")]&&!t[e(485,"o[ww")]&&!t[e(463,"IR$Q")]&&t[e(449,"^Dzk")]()},PACMAN_GAME_CONFIG[W(352,"CbBd")]),countdownTimerRef=o[W(286,"IDpI")](setGameInterval,()=>{const t=W,o=a();if(o[t(430,"WPJ2")]&&!o[t(543,"!CB1")]&&!o[t(520,"DVG3")])if(s[t(386,"DJXx")](t(288,"#PLY"),s[t(542,"n10E")]))e(e=>({timeElapsed:e.timeElapsed+1}));else{const e=_0x55ccaa();e[t(427,"1e5I")]&&!e[t(390,"IDpI")]&&!e[t(442,"V5xK")]&&e[t(570,"Uo7y")]()}},1e3),ghostModeTimerRef=o[W(456,"Y*CO")](setGameInterval,()=>{const e=W,t={};t[e(385,"Y*CO")]=function(e,a){return e<a};const o=t;if("XvurQ"===e(578,"e*fp")){_0x6b8335=_0x2af6d5[e(383,"u0E%")];for(let a=0;o[e(382,"l@Aa")](a,_0x4a4943[e(408,"T@vv")]);a++)_0x26bb14[a][e(462,"ax^A")]===_0x34f760.CHASE&&(_0x1ebd7c[a][e(301,"l@Aa")]=_0xac51c9[e(399,")lfr")])}else{const t=a();if(t[e(305,"DXgy")]&&!t[e(543,"!CB1")]&&!t[e(551,"^Dzk")])if(_currentGhostMode===GhostMode[e(567,"^Dzk")]){_currentGhostMode=GhostMode[e(368,"c9H[")];for(let a=0;a<_ghosts[e(544,"^Dzk")];a++)_ghosts[a].mode===GhostMode.SCATTER&&(_ghosts[a][e(465,"n10E")]=GhostMode[e(414,"U5[@")])}else{_currentGhostMode=GhostMode[e(512,"IR$Q")];for(let a=0;a<_ghosts.length;a++)_ghosts[a].mode===GhostMode[e(561,"4tRQ")]&&(_ghosts[a][e(598,"IDpI")]=GhostMode[e(318,"#PLY")])}}},PACMAN_GAME_CONFIG[W(389,"82m@")]+PACMAN_GAME_CONFIG[W(313,"Uo7y")]),_gameStartTime=Date[W(581,"4tRQ")]();const r={isReady:!1};r[W(548,"zh4M")]=!0,r.isPaused=!1,r.timeElapsed=0,o[W(404,"J*!7")](e,r)},2e3)},stopGame:()=>{const e=_0xac1ca6;clearAllTimers(),playSound(GAME_SOUNDS[e(372,"qdGW")][e(484,"J*!7")],_enableSounds),playHaptic(HapticType[e(425,"Fa6e")],_enableHaptics),a()[e(391,"4tRQ")]()},pauseGame:()=>{const a={};a[_0xac1ca6(543,"!CB1")]=!0,e(a)},resumeGame:()=>{e({isPaused:!1})},resetGame:()=>{const e=_0xac1ca6;({ivuPe:function(e){return e()}})[e(477,"q*d0")](a)[e(292,"IR$Q")]()},initializeGame:()=>{const a=_0xac1ca6;clearAllTimers(),pacmanSubStep=0,ghostSubStep=0;const t=gameService[a(297,"%]gV")]();_pacman=gameService[a(533,"ax^A")](),_ghosts=gameService[a(532,"vO&(")](),_fruit=null,_score=0,_lives=PACMAN_GAME_CONFIG[a(393,"[cs^")],_ghostsEatenCombo=0,_currentGhostMode=GhostMode[a(311,"ax^A")],_gameStartTime=0,_lastDotsRemaining=-1,writeVisuals(),e({pacmanVisual:buildPacmanVisual(),ghostVisuals:buildGhostVisuals(),maze:t,fruit:null,score:0,timeElapsed:0,lives:PACMAN_GAME_CONFIG.INITIAL_LIVES,isPlaying:!1,isGameOver:!1,isWin:!1,isPaused:!1,isReady:!1})},changeDirection:e=>{const t=_0xac1ca6,o=a();!o[t(495,"e*fp")]||o[t(455,"#PLY")]||o[t(367,"T@vv")]||gameService[t(557,"BNa4")](_pacman[t(306,"tf5(")],e)&&(playHaptic(HapticType[t(577,")lfr")],_enableHaptics),_pacman[t(568,"n10E")]=e,e===OPPOSITE_DIR[_pacman.direction]&&(_pacman[t(523,"V5xK")]=e,_pacman[t(454,"X76Y")]=_pacman.x,_pacman.visualY=_pacman.y,pacmanSubStep=0))},gameLoop:()=>{const t="!CB1",o="DJXx",W="8BX9",n="4tRQ",s="wvtp",r="]o1#",i="#PLY",_="%]gV",u="vO&(",d="WPJ2",m="wvtp",S="IR$Q",l="^Dzk",p=_0xac1ca6,x={IzQRK:function(e,a){return e!==a},mBeFO:function(e,a){return e!==a},hynLK:function(e,a){return e(a)},ZJOwg:function(e,a){return e!==a},cmYOJ:function(e,a){return e+a},kpzxt:function(e,a){return e===a},oMORB:function(e,a){return e!==a},vtieK:function(e,a){return e-a},qpeyG:function(e,a){return e+a},MUKBv:function(e,a){return e*a},OBsad:function(e,a){return e>a},giBjE:function(e,a){return e===a},qRGdc:function(e,a,t){return e(a,t)},fvyPx:function(e,a){return e<a},mYvsL:function(e,a){return e>=a},ngpBB:function(e,a){return e*a},GKZBz:p(590,"l@Aa"),eTlhf:function(e,a){return e===a},gCftF:function(e,a){return e<a},bkbtI:"NONE",Zjlur:p(441,"A]^x"),vRVLZ:function(e,a,t){return e(a,t)},CYcve:function(e,a){return e&&a},pGDQQ:p(334,"#PLY"),jlyAK:"VqeqL",ntfNd:function(e,a){return e*a},AqKSK:p(492,")lfr"),AKAMx:"break",kkfPL:function(e,a){return e===a},mNRPg:function(e){return e()},nXSXg:function(e,a){return e!==a},NozcD:p(376,"X76Y"),jVKfH:function(e,a){return e!==a},EeXRX:p(508,t),HwdhV:function(e){return e()}};pacmanSubStep++;let f=pacmanSubStep>=SUB_STEPS;f&&(pacmanSubStep=0),ghostSubStep++;const G=ghostSubStep>=GHOST_SUB_STEPS;G&&(ghostSubStep=0);const P=DIR_DELTAS[_pacman[p(518,o)]];if(!f)if(x[p(589,")lfr")](_pacman[p(387,"IDpI")],_pacman[p(416,"NLgy")])){const e=DIR_DELTAS[_pacman.nextDirection];if(gameService[p(357,"J*!7")](_pacman.x+e.x,x[p(365,"LTiv")](_pacman.y,e.y)))x[p(448,"[cs^")](p(395,"1e5I"),"paWPO")?(_pacman[p(528,"NLgy")]=_pacman.x,_pacman[p(587,"%]gV")]=_pacman.y,pacmanSubStep=0,f=!0):(_0x248418=_0x125266.createFruit(),_0x579918=!0);else{const e=x[p(572,"o[ww")](_pacman.x,P.x),a=_pacman.y+P.y;x[p(327,"wvtp")](_pacman[p(525,"LTiv")],p(501,"LTiv"))&&gameService[p(453,"T@vv")](e,a)?(_pacman.visualX+=P.x*MOVE_SPEED,_pacman[p(347,"[cs^")]+=P.y*MOVE_SPEED,_pacman.visualX<-.5?_pacman.visualX+=GRID_COLS:_pacman[p(411,o)]>x[p(406,W)](GRID_COLS,.5)&&(_pacman[p(445,"8BX9")]-=GRID_COLS)):(_pacman[p(332,"82m@")]=_pacman.x,_pacman.visualY=_pacman.y,pacmanSubStep=0,f=!0),gameService[p(531,n)](_pacman)}}else{const e=x[p(402,"o[ww")](_pacman.x,P.x),a=_pacman.y+P.y;_pacman[p(516,"%]gV")]!==p(584,"[cs^")&&gameService[p(499,"DJXx")](e,a)?(_pacman[p(530,s)]+=x[p(554,"IDpI")](P.x,MOVE_SPEED),_pacman[p(294,r)]+=P.y*MOVE_SPEED,_pacman[p(381,"V5xK")]<-.5?_pacman[p(409,"c9H[")]+=GRID_COLS:x[p(333,i)](_pacman[p(522,"]o1#")],GRID_COLS-.5)&&(_pacman[p(440,"e*fp")]-=GRID_COLS)):(_pacman.visualX=_pacman.x,_pacman[p(299,"Y*CO")]=_pacman.y,pacmanSubStep=0,f=!0),gameService[p(298,"Uo7y")](_pacman)}let O=!1,C=!1,R=!1,h=!1,k=null;if(f){_pacman=gameService[p(342,n)](_pacman),_pacman[p(444,"qPnd")]=_pacman.x,_pacman[p(294,r)]=_pacman.y;const e=gameService[p(573,t)](_pacman.x,_pacman.y);if(e)if(x[p(545,"]o1#")](p(585,"(i%0"),p(307,"Y*CO")))_0x2dedba=_0x3edf10;else{_score+=e.points,O=!0;const a=gameService.getDotsRemaining();a!==_lastDotsRemaining&&(_lastDotsRemaining=a,R=!0),e[p(309,"DXgy")]?(_ghosts=gameService[p(602,"CbBd")](_ghosts,PACMAN_GAME_CONFIG[p(586,"T@vv")]),_ghostsEatenCombo=0,playSound(GAME_SOUNDS[p(524,"82m@")][p(461,"CbBd")],_enableSounds),playHaptic(HapticType[p(338,_)],_enableHaptics)):(chompCounter++,x.qRGdc(playSound,chompCounter%2==0?GAME_SOUNDS[p(452,"HpeF")][p(483,"c9H[")]:GAME_SOUNDS[p(513,"(i%0")][p(366,i)],_enableSounds),playHaptic(HapticType[p(396,"NLgy")],_enableHaptics)),gameService[p(340,"vO&(")]()&&!_fruit&&(_fruit=gameService[p(287,"DVG3")](),h=!0)}_fruit&&gameService.checkFruitCollision(_pacman,_fruit)&&(_score+=PACMAN_GAME_CONFIG.POINTS_PER_FRUIT,O=!0,_fruit=null,h=!0,playSound(GAME_SOUNDS.PAC_MAN.FRUIT,_enableSounds,!0),playHaptic(HapticType[p(356,"DVG3")],_enableHaptics)),_fruit&&gameService[p(371,u)](_fruit)&&(_fruit=null,h=!0)}const g=x[p(476,"WPJ2")](Date[p(550,"#PLY")](),_gameStartTime);for(let e=0;x.fvyPx(e,_ghosts[p(339,d)]);e++){const a=_ghosts[e];a[p(598,"IDpI")]===GhostMode.IN_HOUSE&&x.mYvsL(g,GHOST_RELEASE_TIMING[a.name])&&(_ghosts[e]=gameService[p(502,m)](a))}if(G){const e=x[p(601,s)](PACMAN_GAME_CONFIG[p(527,u)],GHOST_SUB_STEPS);let a=null;for(let e=0;e<_ghosts[p(604,"DXgy")];e++){if(x[p(348,"!CB1")]===p(328,"q@K2"))return _0x3a483a[p(608,W)];if(x[p(378,"u0E%")](_ghosts[e][p(358,"NLgy")],GhostName[p(418,"82m@")])){a=_ghosts[e];break}}for(let t=0;t<_ghosts[p(559,"c9H[")];t++){let o=gameService[p(447,m)](_ghosts[t],e);o=gameService.checkGhostReachedHouse(o),o=gameService[p(317,"DJXx")](o,_pacman,a),o[p(424,"CbBd")]=o.x,o.visualY=o.y,_ghosts[t]=o}}else for(let e=0;x[p(319,"V5xK")](e,_ghosts.length);e++){const a=_ghosts[e];if(a.mode===GhostMode.IN_HOUSE)continue;const t=DIR_DELTAS[a.direction];a[p(398,"A]^x")]!==x.bkbtI&&gameService[p(555,"8BX9")](a.x+t.x,a.y+t.y,a)?(a[p(588,S)]+=x[p(443,l)](t.x,GHOST_MOVE_SPEED),a.visualY+=t.y*GHOST_MOVE_SPEED,a.visualX<-.5?a[p(505,l)]+=GRID_COLS:a[p(432,"BNa4")]>GRID_COLS-.5&&(a[p(374,"qdGW")]-=GRID_COLS)):(a[p(424,"CbBd")]=a.x,a.visualY=a.y)}if(f)for(let e=0;e<_ghosts[p(339,"WPJ2")];e++){if(p(514,"HpeF")!==x[p(420,"ERHU")])return _0x5a8c67(_0x419384);{const a=_ghosts[e];if(gameService[p(429,"o[ww")](_pacman,a)&&x[p(487,"V5xK")](handleGhostCollision,e,a.mode===GhostMode.FRIGHTENED)===p(407,l)){if(_lives<=0){const e={isGameOver:!0};e[p(538,"6WRb")]=!1,e[p(363,"U5[@")]=!1,k=e}O=!0,C=!0;break}}}if(x.CYcve(!f,!k))if(x[p(500,"NLgy")]!==x.jlyAK)for(let e=0;e<_ghosts.length;e++){const a=_ghosts[e],t=x.vtieK(_pacman[p(422,d)],a.visualX),o=_pacman[p(595,"4tRQ")]-a.visualY;if(t*t+x[p(304,"V5xK")](o,o)<.36)if(p(460,"NLgy")===x[p(291,"82m@")]){if(a[p(465,"n10E")]===GhostMode[p(580,")lfr")]){if(handleGhostCollision(e,!0)===x[p(421,"%]gV")]){O=!0;break}}else if(a[p(392,"6WRb")]!==GhostMode.EATEN&&a[p(506,S)]!==GhostMode.IN_HOUSE&&a[p(517,"A]^x")]!==GhostMode[p(341,"6WRb")]){const a=handleGhostCollision(e,!1);if(x.kkfPL(a,x[p(539,"n10E")])){if(_lives<=0){const e={};e[p(556,"4tRQ")]=!0,e.isWin=!1,e[p(403,"8BX9")]=!1,k=e}C=!0;break}}}else{const e={};e[p(321,"HpeF")]=!0,e[p(436,"q*d0")]=!1,e.isPlaying=!1,_0x2bac53=e}}else _0x1df5e6[p(370,"tf5(")]=_0x5e3cda,_0x68c322=!0;if(!k&&gameService[p(359,"[cs^")]()){playSound(GAME_SOUNDS[p(397,"^Dzk")][p(491,"A]^x")],_enableSounds,!0),playHaptic(HapticType[p(322,"82m@")],_enableHaptics);const e={isGameOver:!0};e[p(415,"u0E%")]=!0,e[p(474,t)]=!1,k=e,clearAllTimers()}x[p(560,"^Dzk")](writeVisuals);const M={};let v=!1;if(O)if(x[p(519,"Uo7y")](x.NozcD,"ZbeRu"))M.score=_score,v=!0;else{const e=_0x367b8f[_0x36a3dc],a=_0x3bee31[_0x6c329a];if(rvfrlQ[p(591,"6WRb")](e[p(521,"DJXx")],a.name)||rvfrlQ[p(308,"BNa4")](e[p(465,"n10E")],a[p(566,"BNa4")])||rvfrlQ[p(576,_)](e[p(434,"l@Aa")],a[p(437,"q*d0")]))return!1}if(C){if(!x.jVKfH(x[p(361,")lfr")],p(439,"LTiv")))return x[p(428,"[cs^")](_0x2f1bba,_0x47b250);M.lives=_lives,v=!0}R&&(M.maze=gameService[p(355,"8BX9")](),v=!0),h&&(M.fruit=_fruit,v=!0),k&&(M[p(520,"DVG3")]=k[p(384,"]o1#")],M[p(558,"4tRQ")]=k[p(310,"NLgy")],M[p(325,"[cs^")]=k[p(553,"o[ww")],v=!0);const N=a(),T=buildPacmanVisual();!pacmanVisualEquals(T,N[p(497,"%]gV")])&&(M.pacmanVisual=T,v=!0);const b=x.HwdhV(buildGhostVisuals);!ghostVisualsEqual(b,N[p(537,"zh4M")])&&(M[p(419,"J*!7")]=b,v=!0),v&&e(M)},updateSettings:(a,t)=>{const o=_0xac1ca6;_enableSounds=a,_enableHaptics=t;const W={};W[o(438,"(i%0")]=a,W[o(597,"zh4M")]=t,e(W)}})));export const usePacManVisual=()=>usePacManStore(_temp);export const useGhostVisuals=()=>usePacManStore(_temp2);export const useMaze=()=>usePacManStore(_temp3);export const useFruit=()=>usePacManStore(_temp4);export const useScore=()=>({GLDEt:function(e,a){return e(a)}}[_0xac1ca6(433,"q@K2")](usePacManStore,_temp5));export const useTimeElapsed=()=>usePacManStore(_temp6);export const useLives=()=>({yAiEz:function(e,a){return e(a)}}[_0xac1ca6(335,"q*d0")](usePacManStore,_temp7));export const useIsPlaying=()=>({IGZzo:function(e,a){return e(a)}}[_0xac1ca6(526,"J*!7")](usePacManStore,_temp8));export const useIsGameOver=()=>({yDobx:function(e,a){return e(a)}}[_0xac1ca6(388,"c9H[")](usePacManStore,_temp9));export const useIsWin=()=>usePacManStore(_temp0);export const useIsPaused=()=>usePacManStore(_temp1);export const useIsReady=()=>usePacManStore(_temp10);export const useGameState=()=>usePacManStore(useShallow(_temp11));function _temp(e){return e.pacmanVisual}function _temp2(e){return e.ghostVisuals}function _temp3(e){return e[_0xac1ca6(596,"ax^A")]}function _temp4(e){return e[_0xac1ca6(353,"V5xK")]}function _temp5(e){return e[_0xac1ca6(351,"qPnd")]}function _temp6(e){return e.timeElapsed}function _temp7(e){return e[_0xac1ca6(579,"tf5(")]}function _temp8(e){return e[_0xac1ca6(480,"tRCa")]}function _temp9(e){return e[_0xac1ca6(300,"LTiv")]}function _temp0(e){return e[_0xac1ca6(379,"Fa6e")]}function _temp1(e){return e[_0xac1ca6(493,"wvtp")]}function _temp10(e){return e[_0xac1ca6(571,"tRCa")]}function _temp11(e){const a=_0xac1ca6,t={};return t[a(468,"^Dzk")]=e[a(535,"qPnd")],t[a(450,"u0E%")]=e[a(582,"[cs^")],t[a(337,"(i%0")]=e.isWin,t.isPaused=e[a(400,"6WRb")],t[a(405,"wvtp")]=e[a(574,"82m@")],t}
@@ -1 +0,0 @@
1
- "use strict";const _0x3d078d=_0xb78e;!function(){const e=_0xb78e,o=_0x4194();for(;;)try{if(326667==parseInt(e(699,"kN4q"))/1*(-parseInt(e(589,"CL1h"))/2)+parseInt(e(497,")blO"))/3*(parseInt(e(414,"6Fk8"))/4)+-parseInt(e(500,"B5ro"))/5*(-parseInt(e(692,"afB2"))/6)+-parseInt(e(476,"!XM9"))/7*(parseInt(e(555,"h*R6"))/8)+-parseInt(e(584,"G#[C"))/9+parseInt(e(507,"a)P^"))/10*(parseInt(e(536,"o*YX"))/11)+-parseInt(e(514,"YtMs"))/12*(-parseInt(e(625,"Ul5R"))/13))break;o.push(o.shift())}catch(e){o.push(o.shift())}}();import{c as _0x305387}from"react/compiler-runtime";import _0x30ead2,{useRef,useMemo,useEffect}from"react";import{View}from"react-native";function _0xb78e(e,o){e-=406;const t=_0x4194();let _=t[e];if(void 0===_0xb78e.bqigaF){const e=function(e,o){let t,_,W=[],d=0,n="";for(e=function(e){let o="",t="";for(let t,_,W=0,d=0;_=e.charAt(d++);~_&&(t=W%4?64*t+_:_,W++%4)?o+=String.fromCharCode(255&t>>(-2*W&6)):0)_="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(_);for(let e=0,_=o.length;e<_;e++)t+="%"+("00"+o.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(t)}(e),_=0;_<256;_++)W[_]=_;for(_=0;_<256;_++)d=(d+W[_]+o.charCodeAt(_%o.length))%256,t=W[_],W[_]=W[d],W[d]=t;_=0,d=0;for(let o=0;o<e.length;o++)_=(_+1)%256,d=(d+W[_])%256,t=W[_],W[_]=W[d],W[d]=t,n+=String.fromCharCode(e.charCodeAt(o)^W[(W[_]+W[d])%256]);return n};_0xb78e.KftKsj=e,_0xb78e.ZVxmuZ={},_0xb78e.bqigaF=!0}const W=t[0];_0xb78e.PlrUWG!==W&&(_0xb78e.ZVxmuZ={},_0xb78e.PlrUWG=W);const d=_0xb78e.ZVxmuZ[e];return void 0===d?(void 0===_0xb78e.aUtizF&&(_0xb78e.aUtizF=!0),_=_0xb78e.KftKsj(_,o),_0xb78e.ZVxmuZ[e]=_):_=d,_}import{Canvas,RoundedRect,Circle,Group,Path,Skia,LinearGradient,vec,Rect}from"@shopify/react-native-skia";import{useSharedValue,useDerivedValue}from"react-native-reanimated";import{usePacManVisual,useGhostVisuals,useMaze,useFruit,useIsReady,registerPacManSharedValues,unregisterPacManSharedValues,registerGhostSharedValues,unregisterGhostSharedValues,getPacManPosition,getGhostPosition}from"../PacManStore.js";import{PACMAN_GAME_CONFIG,PACMAN_COLORS,CellType,GhostMode,GhostName}from"../PacManConstants.js";import{jsx as _0x38922b,jsxs as _0x3b9d8c}from"react/jsx-runtime";const CELL_SIZE=PACMAN_GAME_CONFIG.CELL_SIZE,HALF_CELL=CELL_SIZE/2,GRID_COLS=PACMAN_GAME_CONFIG[_0x3d078d(432,"h*R6")],GRID_ROWS=PACMAN_GAME_CONFIG[_0x3d078d(532,"qDo%")],CANVAS_WIDTH=CELL_SIZE*GRID_COLS,CANVAS_HEIGHT=CELL_SIZE*GRID_ROWS,DOT_RADIUS=.12*CELL_SIZE,POWER_PELLET_RADIUS=.28*CELL_SIZE,POWER_PELLET_CORE_RADIUS=.16*CELL_SIZE,PACMAN_RADIUS=.42*CELL_SIZE,PACMAN_SHINE_RADIUS=.25*PACMAN_RADIUS,PACMAN_EYE_RADIUS=.13*PACMAN_RADIUS,PACMAN_PUPIL_RADIUS=.06*PACMAN_RADIUS,GHOST_SIZE=.82*CELL_SIZE,GHOST_HALF_SIZE=GHOST_SIZE/2,GHOST_EYE_RADIUS=.19*GHOST_SIZE,GHOST_PUPIL_RADIUS=.11*GHOST_SIZE,GHOST_EATEN_EYE_RADIUS=.16*GHOST_SIZE,GHOST_EATEN_PUPIL_RADIUS=.09*GHOST_SIZE,GHOST_BUMP_RADIUS=.17*GHOST_SIZE,FRUIT_SIZE=.32*CELL_SIZE,WALL_PADDING=1,WALL_SIZE=CELL_SIZE-2,WALL_CORNER_R=.22*CELL_SIZE,_0x52744e={};_0x52744e[_0x3d078d(557,"IUF0")]=0,_0x52744e[_0x3d078d(664,"O3I@")]=Math.PI/2,_0x52744e.LEFT=Math.PI,_0x52744e.UP=3*Math.PI/2,_0x52744e[_0x3d078d(650,"0vqN")]=0;const DIR_ROTATION_RAD=_0x52744e,OPEN_MOUTH_RAD=45*Math.PI/180,buildMouthPath=e=>{const o=_0x3d078d,t={};t[o(621,"^R7P")]=function(e,o){return e*o},t[o(538,"h*R6")]=function(e,o){return e-o},t[o(527,"Ul5R")]=function(e,o){return e*o};const _=t,W=Skia[o(409,"o*YX")][o(641,"Fys1")]();return W.moveTo(0,0),W[o(421,"aYP]")](_[o(696,"o%$b")](Math[o(542,"*4oa")](e-OPEN_MOUTH_RAD),PACMAN_RADIUS),Math[o(569,"^O0z")](_[o(469,"s9A$")](e,OPEN_MOUTH_RAD))*PACMAN_RADIUS),W[o(680,"fdg)")](1.2*_[o(452,"K*6s")](Math[o(558,"McGy")](e),PACMAN_RADIUS),Math[o(651,"epza")](e)*PACMAN_RADIUS*1.2),W[o(638,"PyYJ")](_[o(690,"6Fk8")](Math[o(512,"s9A$")](e+OPEN_MOUTH_RAD),PACMAN_RADIUS),Math[o(489,"PyYJ")](e+OPEN_MOUTH_RAD)*PACMAN_RADIUS),W.close(),W},DIRECTIONS_ALL=[_0x3d078d(614,"rwJB"),_0x3d078d(702,"McGy"),_0x3d078d(448,"R@Y2"),"UP",_0x3d078d(418,"o%$b")],PACMAN_GEOMETRY=DIRECTIONS_ALL[_0x3d078d(491,"*3pt")]((e,o)=>{const t=_0x3d078d,_={lvYVp:function(e,o){return e*o}},W=DIR_ROTATION_RAD[o],d=W-Math.PI/4,n=Math[t(456,"o*YX")](d)*PACMAN_RADIUS*.4,r=.4*_[t(565,"YM1R")](Math[t(569,"^O0z")](d),PACMAN_RADIUS);return e[o]={mouthPath:buildMouthPath(W),eyeX:n,eyeY:r,pupilX:n-.5*PACMAN_PUPIL_RADIUS,pupilY:r-.5*PACMAN_PUPIL_RADIUS},e},{}),PACMAN_SHINE_X=.25*-PACMAN_RADIUS,PACMAN_SHINE_Y=.3*-PACMAN_RADIUS,PACMAN_GRAD_START=vec(-PACMAN_RADIUS,-PACMAN_RADIUS),PACMAN_GRAD_END=vec(PACMAN_RADIUS,PACMAN_RADIUS),GHOST_BODY_TOP=-GHOST_HALF_SIZE,GHOST_BODY_H=.8*GHOST_SIZE,GHOST_BUMP_Y=.5*GHOST_HALF_SIZE,GHOST_SKIRT_H=.6*GHOST_HALF_SIZE,GHOST_EYE_DX=.3*GHOST_HALF_SIZE,GHOST_EYE_Y=.2*-GHOST_HALF_SIZE,GHOST_PUPIL_Y=.15*-GHOST_HALF_SIZE,GHOST_EATEN_EYE_Y=.1*-GHOST_HALF_SIZE,GHOST_BUMP_DX=.6*GHOST_HALF_SIZE,GHOST_GRAD_START=vec(-GHOST_HALF_SIZE,GHOST_BODY_TOP),GHOST_GRAD_END=vec(GHOST_HALF_SIZE,GHOST_BODY_TOP+GHOST_BODY_H),gridToPixel=e=>e*CELL_SIZE+HALF_CELL,WALL_GRAD_TOP=[_0x3d078d(567,"uXOf"),"#1818CC","#101088"],lighten=(e,o)=>{const t=_0x3d078d,_={UpvDp:function(e,o){return e+o}};_[t(428,"60hd")]=function(e,o){return e-o},_.ULAFF=function(e,o){return e*o};const W=_,d=parseInt(e.slice(1,3),16),n=parseInt(e[t(611,"6Fk8")](3,5),16),r=parseInt(e[t(504,"kN4q")](5,7),16);return t(674,"epza")+Math[t(413,"a)P^")](255,Math[t(609,"R@Y2")](d+(255-d)*o))+","+Math[t(413,"a)P^")](255,Math[t(628,"K*6s")](W.UpvDp(n,W[t(529,"^O0z")](255,n)*o)))+","+Math[t(681,"s9A$")](255,Math[t(464,"Ul5R")](r+W.ULAFF(255-r,o)))+")"},darken=(e,o)=>{const t=_0x3d078d,_={ERbDn:function(e,o,t){return e(o,t)},wBhFe:function(e,o){return e*o}},W=_[t(523,"CL1h")](parseInt,e[t(417,"!XM9")](1,3),16),d=parseInt(e[t(510,"*hWO")](3,5),16),n=parseInt(e[t(521,"3dwg")](5,7),16);return t(465,"60hd")+Math[t(447,"epza")](_[t(581,"&UqO")](W,1-o))+","+Math[t(586,"afB2")](d*(1-o))+","+Math[t(627,"YtMs")](n*(1-o))+")"},GHOST_3D_COLORS={[GhostName.BLINKY]:[lighten("#FF0000",.35),"#FF0000",darken(_0x3d078d(608,"rwJB"),.35)],[GhostName[_0x3d078d(455,"rwJB")]]:[lighten(_0x3d078d(546,"fdg)"),.2),_0x3d078d(486,"5KC8"),darken(_0x3d078d(560,"IUF0"),.3)],[GhostName.INKY]:[lighten(_0x3d078d(662,"*3pt"),.25),_0x3d078d(576,"hLBM"),darken(_0x3d078d(634,"Fys1"),.35)],[GhostName[_0x3d078d(636,"McGy")]]:[lighten(_0x3d078d(499,"aYP]"),.3),_0x3d078d(478,"6#9j"),darken(_0x3d078d(622,"YM1R"),.35)]},FRIGHTENED_3D=[lighten(_0x3d078d(629,"qDo%"),.3),"#2121FF",darken("#2121FF",.35)],FRIGHTENED_FLASH_3D=["#FFFFFF",_0x3d078d(506,"68C^"),_0x3d078d(548,"kN4q")],PACMAN_GRAD=[_0x3d078d(592,"B5ro"),_0x3d078d(482,"3dwg"),_0x3d078d(678,"O3I@")],MazeBackground=_0x30ead2[_0x3d078d(689,"epza")](()=>{const e=_0x3d078d,o=_0x305387(1);let t;if(o[0]===Symbol[e(435,"6#9j")](e(438,"94(%"))){const _={x:0,y:0};_.width=CANVAS_WIDTH,_[e(552,"0vqN")]=CANVAS_HEIGHT,_.color=e(623,"Ul5R"),t=_0x38922b(Rect,_),o[0]=t}else t=o[0];return t});MazeBackground[_0x3d078d(691,"h*R6")]=_0x3d078d(698,"!XM9");const WallCell=_0x30ead2.memo(e=>{const o=_0x3d078d,t={xdUxD:function(e,o){return e+o},BDEFB:function(e,o){return e*o},OiYgf:function(e,o){return e!==o},ezIdR:function(e,o,t){return e(o,t)},YBdhV:function(e,o){return e!==o}},_=_0x305387(13),{x:W,y:d}=e,n=t.xdUxD(t.BDEFB(W,CELL_SIZE),1),r=d*CELL_SIZE+1;let S;_[0]!==n||_[1]!==r?(S=vec(n,r),_[0]=n,_[1]=r,_[2]=S):S=_[2];const a=r+WALL_SIZE;let x,s,i;if(_[3]!==n||_[4]!==a?(x=vec(n,a),_[3]=n,_[4]=a,_[5]=x):x=_[5],_[6]!==S||t.OiYgf(_[7],x)){const e={};e[o(654,"PyYJ")]=S,e[o(639,"uXOf")]=x,e.colors=WALL_GRAD_TOP,s=t[o(474,"!XM9")](_0x38922b,LinearGradient,e),_[6]=S,_[7]=x,_[8]=s}else s=_[8];if(t[o(705,"Ul5R")](_[9],n)||_[10]!==r||_[11]!==s){const e={};e.x=n,e.y=r,e[o(665,"rwJB")]=WALL_SIZE,e[o(658,"R@Y2")]=WALL_SIZE,e.r=WALL_CORNER_R,e[o(619,"R@Y2")]=s,i=_0x38922b(RoundedRect,e),_[9]=n,_[10]=r,_[11]=s,_[12]=i}else i=_[12];return i});function _0x4194(){const e=["sx4wj8k8omo0W6q","W6GLW4pdNL3cHNlcPrFcGG","WQCqk1BdLW","hmoObCoB","wtZdLmoGWO4","fmoivLNcPCoQW41atW","W7pdJ8ofW4aFrW","b0ZdU8omkZ3dVG","oSociSo5yCod","WRPzW5e/W5u","AX/dISoXWP8","WRPUzxO","nZ0s","WR9iWQbaFW","W7DjtI/cKCk/W6S","hCoqzL/cIa","W6NdL10LW7e","W57cQmkuW7ZcUmooW5ZcTCoR","W7afW4vcnW","c8kXWQRdKhq","EXhdLa","dCkbW5eTEG","aSoti8o4tW","WQbtW6m6W6FdTXZcOSoDWOXbdMlcMrWUWQ3dL8kfW50TlSoMWP5N","DSkgWRi","W5L6WP7cUCkfW7BdPq","v0NdI8oDhW","vMxdICoPgXldL2C","W496qq","W6uqW593hq","W5W/W7RcLfhdSq","W5L6tvZcUa","WQrSWOHlka","FmkDjmkw","W4dcK8k6W47cGq","s8kJnSoNEa","ehBcJmo0xqFcI3xcKa","dmkPWPjUW58","WP5dtCogWPG","W5C1W7/cNeS","W6qtW53cUga","WRzdWRm","c8oolmoOBW","aXBcLCkeW60","zmkjWRRcK8ob","jSoOomolBq","o8oOiSo8qq","W4y9W7hcKHhcTtjOWQXOlsGKkCkFW6y","W5aQWQzLWPjgnG","W4HGWPNcPCke","WP9jWPib","WQZdHYJcMJxdQSo7EaFcPeGUW6NdVCos","DrbbWPqD","WOFcK8kQW4ZcQwv2qbrBkG","yCkRmSokFq","W4DXsmo0","W73dPGZcVvVcNmkr","cZm/oa","W7DjtL7cKCk8W6S","WRegc1hdOa","vgRcV8kse8k3m3vGW4CP","W6zegeldTevtW7C","WOxdOa4rWRxdPM0","pJJdOmogW4j0iG","FSknWRVcKa","tttdLmo8WRC","bSknW4qcyW","W73dPGZcUf7dQSoN","WP9jWPjih8ooWQpcVxLgW45kW6D3WQiMBGD1W6pcRq","W7ZcUCoDWP3dVSk2W6ldG8kNWPhdIYdcS8k+W5i8kSkqo8k5WO5WjhtcJq","WRi0WP8vWOm","WOWRW4RdJZhcN3a","W5VdU8k3WOWOzxq","W4xdMaJcHH3dISkO","gSoWkW","rSoDCHtdPW","WQzQBgRdGSoQ","mtWAASkpoG","FGVdLmo2WP8Vza","WOz7W7TZWRC","WOm9dNK","yepdVmoJgq","WQVcMWvIWRb1ieddH8ktW7K2WOy","W6zqW7bFWRJcP0ZcPSkx","WRZdOmoTW6DZhCkP","W5BcTCknW4ZcI0vI","W6SEW4m","cCosueu","a8knWRnMW50","WPHbWPLGW48","W7ZdJSocW4KVwSo+WRC","WQ3cMmo4WRRdJSoEW4K","WPCAzmk9W5vqcmoVpb0z","CdZdVmocWPi","WPtdSH4cW7JcUIZcN8kfW4aiz8oYWQtdGZhdOCkGW6H5ca","ccOLm8kF","ocbJB8kj","rmkhdW","WPVdMmkDW5bR","W5tcOeLvWRBdIN/dK8oAWPq","WRJdJZG","W5SpW7ZdJh4","zSocDJNdLrFcPby1","rmkhemobEW","WPVdOr7cVLm","mCoij8oXEW","WQ3dJcpcMhG","WRvSWPfkpIe","cHnTr8ku","W5xcO01tW6BcUYhdPmoMWRTAjCk0","W4D7umoVamkdW4OEW6m","kZzkCCk/","W6bRWQdcSCku","WQ3dLcVcIwK","aHBcS8kBW7a","W6RcQ8o5WOZdJW","W79bW4BcQfjWnW","qdHTWPKjW59nWOuf","WPPJq8obWPi","gSosuv/cQmouW5G","WOPyW6pdMWy","W6aCW7z5W47cNY/cTmoe","WQviW55YWOi","W5/cUCktW5ZcKW","W6RcJSk8W4RcKW","WP3dK8kv","WOVdRqxcL0W","v8oiza","WPdcJSk4W47cSq","WRrXW7TvWQiXA0W1","jcXIW6TGWRS0","wSoHzw/dTCo8W6O","CqTiWQGZ","W4HSWRfcW6VcQ2i","wKtcPSkjlG","s8kOW7SgfN48","aSkPW5CVFW","WRrLW67dVWO0","yhhdVColdIerWOu","WRvSWPfkpG","WQhdJSoLWO/dLSk/W5dcI8o2i8o7Bq","jCk/W4KdsG","W5DAWPVdR8kM","FfWb","q3ldRCosnG","WQzvWPRdPCokhN0","ismABmkj","W6voCq3dL2rHW7ZcISog","WRBdHspcNhxcRG","kY57CmkOWQT0huFcRuWrW6q","xhxcLCk0dW","uCoECGu","oCotoYtcQ2Ww","WO56ufddGG","iXNcJq","b0ZdU8ookuVcIa","mX/cJ8kDW4O","WOLsy8oDlSo8WOO","uNddI8osnW","WQvoWOiPxMVdUq","gd4aBmk5","s8oEWO0cAh48","WQrNWP9lW7G","mtSFACkzoXDL","W7PauuBcVW","k8owmcFcPH1RbqxcVKJdQ8oR","W7e9W5TEcG","zmoOqbJdVHZcKsSnagdcJG","W5pcPuO5WPtdJe7dHmol","isJcUmkAthTgWQxcK8oCo8okWO0","WRfmWP9nna","idWdA8kz","W55MWP/cU8kmW7NdQmoXgXOI","WP4Ohx7cLmk1WPBcScG","FNm8o8kFWOjjfwhcUG","E8oTEbxdVG","fmkGmrldJ8of","W4dcVmkFW7NdTtC8","W4P6WPZcOSkmW4a","CCoWvsRdIq","E1ObWP3cPCkbtCogWPzTW4q","amkSoXldGG","WOxdSbixWRxdUG","WQ9nWO9Nlq","W4xdKZONW6dcScK","WOTRtCopW4JdHHmxg8k8W7ldVmkqFW8","m8kkcW","WPVdKSkDW5nQ","WODMWRPkW5S","WPj5ymoFWOu","nb/cL8kbW6RdTCoTaH/dLYpcKgK","WQ3cMSo6WRJdJmoEW4K","y8kjWQlcLW","WPCCW5xdGWNcTs4","qSk3f8kSWPK","W4DJf8ooWPy","WOPGrSonWOu","WP1TDSocWRa","WR5yweZdTW","W6ytW5tcU20","bCkGpGxdNSkzhJbGW5P7D8kOpYxdReyOxSouihhdOupcJq","W7P1rSowcCkIW7KtW6ZdJ8kFFCkLmeK","W7ehW6nOW7ldQXq","jsOVBmkO","u8kWc8kUWPLtmsu","WRPbWPr7W6y","WRDPW4fTWRO","e0xcISkGr8oJEa","W4HOWO7cQSoiWQRcPmkkvLD1W4OaW6FcKJpcMmkVW67dHXpdLSk1WRq","FHBdJ8oOWP4ZDqy","WOK7W5JdVSkSW4ldT8okhHq","W4NcLmoZWQ3dNSohW4RdV8kpWQ0","WPtdUGKnWRq","oSk2WRjlW5C","jfGvW69NW4Te","WOfxFu3dIW","W50vW4NcPhG","W51RWOpcGCkt","W59aWQVcJmkt","WOxcNuRcSJ7dOSkA","rmoszdu","xh8RWQNcJa","WPm0WPud","bCoWk8kpBgG","F8kozW","WRPZW7mGW6u","W6VdJbhcKq","FCkiBgtdP208hadcUG","CanaWQK+","W593u3hcP8klWQNcJsbngCkL","sXxdT8ooWOS","WPVdJY3cIgq","t8oSW7RcKvddQSk+Dwbk","WRKtn0hdMMDbW7dcQW","pmobmmk4uG","WPjpW4NdNq","WQvQWPm","W7ZcU8oEWP/cOSkOWQpcLSoMW47cUhpdVmoVWO9W","WRffWRntW6BcUGhcLmohW6RdOq","gSoTjmkyta","g8kAW5W2wG","W6XEWQBcN8k0","W4pdILSHW6m","wmk9c8kLWPvv","W7nYWRddKSkx","W63cS8oqWPhdUmoR","u3BcVSkqgSk4pG","W7C/ofNdP8ojWP0","WRzeWQLpW67cQr3cTa","WRZdSSkMW7i","W4mZW7FcH1e","cSoxt0tcUq","W4qVW6dcMW","v8oiEZldNG","tZmEfmkopSoI","fmk0WRtdSLm","f8ojB0JcPq","uCkscSo0uq","jH8HFmkY","WQrKWP8n","tCk9pSoMsW","k8k2WQTkW4e","WOLhWOnzw8kDW6/dHJqzWP4","W5VdVSkYWOuHzxq","W63dGCojW4rJgmk3W6NdKcFdLmkntXtcIfi","fCootuJcMCov","sSkbeG","W6iqW4DRpt/cPxRdPCkxW5JdNCkO","W73dI1mKW7efEfJdOmkb","W53dIvm/W5i","W6ilW5NcP20","W4naoCoUWOTmnSoiadC","ASkvC37dV3a","WO9eWOnZW4BcJL8YWPpcQmkt","WRTMWPbk","WQnOy8ouWPq","W73cK8kUW4JcI8oSW6RcT8ozjCoB","y2vfnCoiFuP9W6fRW5Xboa","WRz1W7tdRaSMFHlcJCoACIBcTmkS","WQyzi1BdHGzCW7dcQmoqW7LnW5xcOb7dMmoUumkehZ0zW47dNIW","DSkrWRpcPG","fSoxhSovzq","AmkfyNtdPWC+fH/cPNxdICoqWQ/cG0NcVvBdRxzFDmo1D8om","WPKDofddSeLsW77cOSonW4LBW5RcPW","W5ODW4LPW6VcGxWTWPy","vmkaWRNcJmogWQqOW71Dt8kynqX1","ymkwmmkSWRC","w3WLWQm","W459vSoRbmkTW4m1W6ZdKmkB","q8khWQhcMSoaWRCLW7bds8kp","W6nnWOJcO8k2","W4ldHaJcKrVdKmk1W6Om","WRrbxCo6WOu","WPddRHdcKMG","W75mFghcHG","zxFdRCoEeG","CCkHkSkLWOS","W7hdH8oFW4OX","WOvnWRrl","WR3dIcpcL3NcQmkYjG","CxhdPCofcdS","icVcVmkChaOyWPlcR8oZ","W49fpG","W415FCoQWPtcNuS"];return(_0x4194=function(){return e})()}WallCell[_0x3d078d(653,"o*YX")]="WallCell";const Dot=_0x30ead2[_0x3d078d(637,"epZv")](e=>{const o=_0x3d078d,t={DIAkv:function(e,o){return e(o)},wyYiU:function(e,o){return e*o},XBqnt:function(e,o){return e!==o},DBrdt:function(e,o,t){return e(o,t)}},_=t[o(496,"JbbW")](_0x305387,3),{x:W,y:d}=e,n=t[o(618,"afB2")](W,CELL_SIZE)+HALF_CELL,r=d*CELL_SIZE+HALF_CELL;let S;if(_[0]!==n||t.XBqnt(_[1],r)){const e={};e.cx=n,e.cy=r,e.r=DOT_RADIUS+1,e.color=o(679,"aYP]");const W={};W.cx=n,W.cy=r,W.r=DOT_RADIUS,W[o(520,"o%$b")]="#FFB800",S=_0x3b9d8c(Group,{children:[t[o(419,"6#9j")](_0x38922b,Circle,e),_0x38922b(Circle,W)]}),_[0]=n,_[1]=r,_[2]=S}else S=_[2];return S});Dot[_0x3d078d(703,"d![N")]="Dot";const PowerPellet=_0x30ead2.memo(e=>{const o="rwJB",t="o%$b",_=_0x3d078d,W={VXdCd:function(e,o){return e(o)},Eogsy:function(e,o){return e*o},UXuRj:function(e,o){return e!==o},tOsUd:_(466,"3dwg"),KTtCn:function(e,o,t){return e(o,t)},vbiHm:function(e,o){return e!==o},hEqyv:_(606,"68C^")},d=W[_(535,"0vqN")](_0x305387,24),{x:n,y:r}=e,S=W[_(646,"3dwg")](n,CELL_SIZE)+HALF_CELL,a=r*CELL_SIZE+HALF_CELL;let x;if(d[0]!==S||W[_(649,"PyYJ")](d[1],a)){const e={};e.cx=S,e.cy=a,e.r=POWER_PELLET_RADIUS+1.5,e[_(454,o)]=W[_(460,t)],x=_0x38922b(Circle,e),d[0]=S,d[1]=a,d[2]=x}else x=d[2];const s=a-POWER_PELLET_RADIUS;let i;W[_(630,"*3pt")](d[3],S)||d[4]!==s?(i=vec(S,s),d[3]=S,d[4]=s,d[5]=i):i=d[5];const u=a+POWER_PELLET_RADIUS;let R,O,P,C,E,I;if(d[6]!==S||d[7]!==u?(R=W[_(503,"K*6s")](vec,S,u),d[6]=S,d[7]=u,d[8]=R):R=d[8],d[9]===Symbol.for(_(615,"jv&C"))?(O=[_(599,"YtMs"),_(473,"*3pt"),"#E07800"],d[9]=O):O=d[9],d[10]!==i||d[11]!==R){const e={};e[_(431,")blO")]=i,e.end=R,e[_(411,"G#[C")]=O,P=_0x38922b(LinearGradient,e),d[10]=i,d[11]=R,d[12]=P}else if(_(441,"G#[C")===_(594,"*4oa"))P=d[12];else{const e=_(451,"JbbW")[_(666,"fdg)")]("|");let W=0;for(;;){switch(e[W++]){case"0":_0x30667f[12]=_0x23ab5d;continue;case"1":_0x2f5351[9]=_0x10858f;continue;case"2":_0x1b94d0[10]=_0x56d2c2;continue;case"3":_0x353a43[11]=_0x3fce14;continue;case"4":const e={};e.x=_0xac9559,e.y=_0x3b62c9,e[_(665,o)]=_0xade45,e[_(423,t)]=_0x20a13f,e.r=_0x461a5e,e.children=_0x1fd4c7,_0x8c41eb=_0x400727(_0x4925e7,e);continue}break}}if(d[13]!==S||W[_(579,"x$0n")](d[14],a)||d[15]!==P){const e={};e.cx=S,e.cy=a,e.r=POWER_PELLET_RADIUS,e[_(578,"afB2")]=P,C=_0x38922b(Circle,e),d[13]=S,d[14]=a,d[15]=P,d[16]=C}else C=d[16];if(d[17]!==S||W[_(446,"x$0n")](d[18],a)){const e={};e.cx=S,e.cy=a,e.r=POWER_PELLET_CORE_RADIUS,e[_(602,"O3I@")]=W[_(640,"94(%")],E=_0x38922b(Circle,e),d[17]=S,d[18]=a,d[19]=E}else E=d[19];if(d[20]!==x||d[21]!==C||d[22]!==E){const e={};e[_(663,"o*YX")]=[x,C,E],I=_0x3b9d8c(Group,e),d[20]=x,d[21]=C,d[22]=E,d[23]=I}else I=d[23];return I});PowerPellet[_0x3d078d(595,"McGy")]=_0x3d078d(704,"eqE^");const GhostDoor=_0x30ead2[_0x3d078d(637,"epZv")](e=>{const o=_0x3d078d,t={UMOlQ:function(e,o){return e(o)},AyHgv:function(e,o){return e*o},mBZFh:function(e,o){return e*o},natoz:function(e,o){return e*o},govTV:function(e,o){return e+o},jGjkQ:function(e,o){return e!==o},urSfr:function(e,o,t){return e(o,t)},aKnqC:function(e,o){return e===o},NNZiu:function(e,o,t){return e(o,t)}},_=t[o(541,"3dwg")](_0x305387,14),{x:W,y:d}=e,n=t[o(407,"R@Y2")](W,CELL_SIZE),r=t[o(508,"6#9j")](d,CELL_SIZE)+.38*CELL_SIZE,S=t[o(408,"aYP]")](CELL_SIZE,.24),a=n+2;let x;_[0]!==r||_[1]!==n?(x=vec(n,r),_[0]=r,_[1]=n,_[2]=x):x=_[2];const s=t.govTV(r,S);let i,u,R,O;if(_[3]!==n||t[o(549,"YM1R")](_[4],s)?(i=t.urSfr(vec,n,s),_[3]=n,_[4]=s,_[5]=i):i=_[5],t.aKnqC(_[6],Symbol.for(o(697,"uXOf")))?(u=[o(422,"JbbW"),o(550,"hLBM"),"#DD88DD"],_[6]=u):u=_[6],_[7]!==x||t.jGjkQ(_[8],i)){const e={};e.start=x,e[o(427,"afB2")]=i,e[o(492,"afB2")]=u,R=t[o(708,"3dwg")](_0x38922b,LinearGradient,e),_[7]=x,_[8]=i,_[9]=R}else R=_[9];if(_[10]!==r||_[11]!==a||t[o(551,"hLBM")](_[12],R)){const e={};e.x=a,e.y=r,e[o(596,"jv&C")]=CELL_SIZE-4,e.height=S,e.r=2,e[o(410,"3dwg")]=R,O=t.urSfr(_0x38922b,RoundedRect,e),_[10]=r,_[11]=a,_[12]=R,_[13]=O}else O=_[13];return O});GhostDoor[_0x3d078d(587,"Ul5R")]=_0x3d078d(544,"^R7P");const PacManCharacter=_0x30ead2.memo(({direction:e,mouthOpen:o})=>{const t=_0x3d078d,_={FGGjF:function(e){return e()},LegyN:function(e,o){return e(o)},VQJTT:function(e,o,t){return e(o,t)},daYlP:t(509,"YtMs"),iOibH:t(483,"60hd")},W=useRef(_.FGGjF(getPacManPosition))[t(477,"YtMs")],d=_[t(485,"epZv")](useSharedValue,W.x),n=useSharedValue(W.y),r=useSharedValue(W[t(442,"JbbW")]);_[t(685,"rwJB")](useEffect,()=>{const e=t,o={};return o.x=d,o.y=n,o[e(553,"G#[C")]=r,registerPacManSharedValues(o),()=>unregisterPacManSharedValues()},[d,n,r]);const S=_.LegyN(useDerivedValue,()=>[{translateX:gridToPixel(d[t(425,"6#9j")])},{translateY:gridToPixel(n.value)}]),a=PACMAN_GEOMETRY[e],x={cx:0,cy:0};x.r=PACMAN_RADIUS+1.5,x[t(518,"s9A$")]=t(600,"6Fk8");const s={};s[t(539,"h*R6")]=PACMAN_GRAD_START,s[t(540,"O3I@")]=PACMAN_GRAD_END,s[t(660,"68C^")]=PACMAN_GRAD;const i={};i[t(607,"eqE^")]=a[t(420,"fdg)")],i[t(676,"K*6s")]=t(617,"94(%");const u={};return u.cx=a[t(566,"*4oa")],u.cy=a[t(695,"eqE^")],u.r=PACMAN_EYE_RADIUS,u.color=t(574,"&UqO"),_[t(537,"^R7P")](_0x3b9d8c,Group,{transform:S,children:[_0x38922b(Circle,x),_0x38922b(Circle,{cx:0,cy:0,r:PACMAN_RADIUS,children:_0x38922b(LinearGradient,s)}),o&&_0x38922b(Path,i),_[t(656,"Ul5R")](_0x38922b,Circle,{cx:PACMAN_SHINE_X,cy:PACMAN_SHINE_Y,r:PACMAN_SHINE_RADIUS,color:_[t(612,"6Fk8")]}),_0x38922b(Circle,u),_0x38922b(Circle,{cx:a[t(593,"Ul5R")],cy:a[t(687,"uXOf")],r:PACMAN_PUPIL_RADIUS,color:_[t(461,"o%$b")]})]})});PacManCharacter.displayName=_0x3d078d(616,"d![N");const GhostCharacter=_0x30ead2.memo(({name:e,mode:o,isFlashing:t})=>{const _="epza",W=_0x3d078d,d={fJOdI:function(e,o){return e===o},nxXTf:W(471,"3dwg"),ncyFM:W(487,"O3I@"),lKJIq:function(e,o,t){return e(o,t)},iOZWA:function(e,o,t){return e(o,t)},yNrBa:function(e,o){return e-o},hoSfF:function(e,o){return e+o},klxps:W(652,"68C^"),QTXuS:function(e,o,t){return e(o,t)}},n=useRef(getGhostPosition(e))[W(493,"6#9j")],r=useSharedValue(n?.x??0),S=useSharedValue(n?.y??0);useEffect(()=>{const o={};return o.x=r,o.y=S,registerGhostSharedValues(e,o),()=>unregisterGhostSharedValues(e)},[e,r,S]);const a=useDerivedValue(()=>[{translateX:gridToPixel(r[W(659,"IUF0")])},{translateY:gridToPixel(S[W(547,"qDo%")])}]);let x,s=PACMAN_COLORS[W(626,"68C^")],i=PACMAN_COLORS.GHOST_PUPILS;if(d.fJOdI(o,GhostMode.FRIGHTENED))x=t?FRIGHTENED_FLASH_3D:FRIGHTENED_3D,s=d.nxXTf,i=d[W(481,"hLBM")];else{if(o===GhostMode[W(519,"3dwg")]){const e={};e.cx=-GHOST_EYE_DX,e.cy=GHOST_EATEN_EYE_Y,e.r=GHOST_EATEN_EYE_RADIUS,e[W(554,"epza")]=s;const o={};o.cx=-GHOST_EYE_DX,o.cy=GHOST_EATEN_EYE_Y,o.r=GHOST_EATEN_PUPIL_RADIUS,o[W(571,"^O0z")]=i;const t={};t.cx=GHOST_EYE_DX,t.cy=GHOST_EATEN_EYE_Y,t.r=GHOST_EATEN_EYE_RADIUS,t[W(668,"*4oa")]=s;const _={};return _.cx=GHOST_EYE_DX,_.cy=GHOST_EATEN_EYE_Y,_.r=GHOST_EATEN_PUPIL_RADIUS,_.color=i,_0x3b9d8c(Group,{transform:a,children:[d.lKJIq(_0x38922b,Circle,e),_0x38922b(Circle,o),_0x38922b(Circle,t),d[W(631,"rwJB")](_0x38922b,Circle,_)]})}x=GHOST_3D_COLORS[e]}const u={};u[W(655,"hLBM")]=GHOST_GRAD_START,u.end=GHOST_GRAD_END,u[W(522,_)]=x;const R={};R.cx=-GHOST_EYE_DX,R.cy=GHOST_EYE_Y,R.r=GHOST_EYE_RADIUS,R.color=s;const O={};O.cx=-GHOST_EYE_DX,O.cy=GHOST_PUPIL_Y,O.r=GHOST_PUPIL_RADIUS,O.color=i;const P={};P.cx=GHOST_EYE_DX,P.cy=GHOST_EYE_Y,P.r=GHOST_EYE_RADIUS,P[W(533,"6Fk8")]=s;const C={};return C.cx=GHOST_EYE_DX,C.cy=GHOST_PUPIL_Y,C.r=GHOST_PUPIL_RADIUS,C[W(444,"&UqO")]=i,_0x3b9d8c(Group,{transform:a,children:[_0x38922b(RoundedRect,{x:d[W(598,_)](-GHOST_HALF_SIZE,1.5),y:GHOST_BODY_TOP-1.5,width:GHOST_SIZE+3,height:GHOST_BODY_H+3,r:d[W(424,"94(%")](GHOST_HALF_SIZE,1.5),color:d.klxps}),_0x38922b(RoundedRect,{x:-GHOST_HALF_SIZE,y:GHOST_BODY_TOP,width:GHOST_SIZE,height:GHOST_BODY_H,r:GHOST_HALF_SIZE,children:_0x38922b(LinearGradient,u)}),d[W(603,"kN4q")](_0x38922b,Rect,{x:-GHOST_HALF_SIZE,y:0,width:GHOST_SIZE,height:GHOST_SKIRT_H,color:x[1]}),_0x38922b(Circle,{cx:-GHOST_BUMP_DX,cy:GHOST_BUMP_Y,r:GHOST_BUMP_RADIUS,color:x[2]}),d[W(450,"s9A$")](_0x38922b,Circle,{cx:0,cy:GHOST_BUMP_Y,r:GHOST_BUMP_RADIUS,color:x[2]}),_0x38922b(Circle,{cx:GHOST_BUMP_DX,cy:GHOST_BUMP_Y,r:GHOST_BUMP_RADIUS,color:x[2]}),_0x38922b(Circle,R),_0x38922b(Circle,O),d[W(709,"x$0n")](_0x38922b,Circle,P),_0x38922b(Circle,C)]})});GhostCharacter[_0x3d078d(475,"YM1R")]=_0x3d078d(700,"eqE^");const FruitItem=_0x30ead2[_0x3d078d(479,"eqE^")](e=>{const o=_0x3d078d,t={LStyp:function(e,o){return e(o)},QldxL:function(e,o){return e+o},vzvZX:function(e,o){return e*o},gObhx:function(e,o){return e-o},gdoJs:function(e,o){return e+o},dwErE:function(e,o){return e===o},MQtGd:"#FF0000",Yigvf:function(e,o){return e!==o},MMrTe:function(e,o){return e+o},rzeIK:function(e,o){return e!==o},YPsFc:o(675,"s9A$"),ZuXOc:"PthfF",hlzVO:function(e,o,t){return e(o,t)},PNRnJ:function(e,o){return e*o},nnLeh:"#228B22",jWPSV:function(e,o){return e*o}},_=t.LStyp(_0x305387,39),{x:W,y:d}=e,n=t.QldxL(t[o(573,"JbbW")](W,CELL_SIZE),HALF_CELL),r=t[o(559,"G#[C")](t[o(433,"&UqO")](d,CELL_SIZE),HALF_CELL),S=t[o(453,"6Fk8")](n,.45*FRUIT_SIZE),a=n+.45*FRUIT_SIZE,x=t[o(620,"kN4q")](r,.2*FRUIT_SIZE),s=S-FRUIT_SIZE,i=x-FRUIT_SIZE;let u;_[0]!==s||_[1]!==i?(u=vec(s,i),_[0]=s,_[1]=i,_[2]=u):u=_[2];const R=t[o(632,"Ul5R")](S,FRUIT_SIZE),O=x+FRUIT_SIZE;let P,C,E,I;if(_[3]!==R||_[4]!==O?(P=vec(R,O),_[3]=R,_[4]=O,_[5]=P):P=_[5],t[o(430,"fdg)")](_[6],Symbol[o(515,"3dwg")](o(694,"!XM9")))?(C=["#FF6666",t[o(556,"hLBM")],o(531,"0vqN")],_[6]=C):C=_[6],_[7]!==u||t[o(657,")blO")](_[8],P)){const e={};e[o(543,"B5ro")]=u,e[o(443,"d![N")]=P,e.colors=C,E=_0x38922b(LinearGradient,e),_[7]=u,_[8]=P,_[9]=E}else E=_[9];if(t[o(449,"h*R6")](_[10],x)||_[11]!==S||_[12]!==E){const e={};e.cx=S,e.cy=x,e.r=FRUIT_SIZE,e.children=E,I=_0x38922b(Circle,e),_[10]=x,_[11]=S,_[12]=E,_[13]=I}else I=_[13];const A=t[o(585,"epza")](a,FRUIT_SIZE),G=x-FRUIT_SIZE;let l;_[14]!==A||_[15]!==G?(l=vec(A,G),_[14]=A,_[15]=G,_[16]=l):l=_[16];const L=t[o(707,"6Fk8")](a,FRUIT_SIZE),T=x+FRUIT_SIZE;let f,k,h,m;if(t[o(490,"*4oa")](_[17],L)||t[o(467,"qDo%")](_[18],T)?t[o(526,"CL1h")](o(436,"hLBM"),t.YPsFc)?(_0x598fa8=_0xb227cd(_0x536b1f,_0x48a083),_0x21037f[3]=_0x2db24f,_0x25993e[4]=_0x39718c,_0xa1aea8[5]=_0x332e01):(f=vec(L,T),_[17]=L,_[18]=T,_[19]=f):t[o(568,"*3pt")]===o(437,"o%$b")?f=_[19]:_0x2860ba=_0x33f3b3[13],t[o(530,"68C^")](_[20],Symbol.for(o(484,"68C^")))?(k=[o(545,"qDo%"),o(429,"*3pt"),"#AA0000"],_[20]=k):k=_[20],_[21]!==l||_[22]!==f){const e={};e[o(528,"3dwg")]=l,e[o(439,"eqE^")]=f,e.colors=k,h=t[o(670,"0mWP")](_0x38922b,LinearGradient,e),_[21]=l,_[22]=f,_[23]=h}else h=_[23];if(_[24]!==x||_[25]!==a||_[26]!==h){const e=o(498,"o*YX")[o(561,"afB2")]("|");let t=0;for(;;){switch(e[t++]){case"0":_[24]=x;continue;case"1":_[27]=m;continue;case"2":_[25]=a;continue;case"3":const e={};e.cx=a,e.cy=x,e.r=FRUIT_SIZE,e[o(505,"aYP]")]=h,m=_0x38922b(Circle,e);continue;case"4":_[26]=h;continue}break}}else m=_[27];const H=n-1,D=r-t[o(701,"R@Y2")](FRUIT_SIZE,1.3);let N;if(_[28]!==H||_[29]!==D){const e={};e.x=H,e.y=D,e[o(406,"G#[C")]=2,e.height=1.3*FRUIT_SIZE,e.r=1,e.color=t[o(671,"fdg)")],N=_0x38922b(RoundedRect,e),_[28]=H,_[29]=D,_[30]=N}else N=_[30];const M=n+t[o(672,"s9A$")](FRUIT_SIZE,.3),b=r-1.1*FRUIT_SIZE;let U,F;if(_[31]!==M||_[32]!==b?(U=t.hlzVO(_0x38922b,Circle,{cx:M,cy:b,r:t[o(613,"*3pt")](FRUIT_SIZE,.3),color:o(463,"^R7P")}),_[31]=M,_[32]=b,_[33]=U):o(575,"afB2")!==o(645,"6#9j")?U=_[33]:_0x3859f7=_0x237ed3[6],t.Yigvf(_[34],m)||_[35]!==N||_[36]!==U||t[o(457,"o%$b")](_[37],I)){const e={};e[o(624,"6#9j")]=[I,m,N,U],F=_0x3b9d8c(Group,e),_[34]=m,_[35]=N,_[36]=U,_[37]=I,_[38]=F}else F=_[38];return F});FruitItem[_0x3d078d(677,"60hd")]="FruitItem";const ReadyText=_0x30ead2.memo(()=>{const e=_0x3d078d,o={eOGGs:function(e,o,t){return e(o,t)},OJoHR:function(e,o){return e-o},kuOqe:function(e,o){return e+o},tbpAw:function(e,o,t){return e(o,t)}},t=_0x305387(1),_=CANVAS_WIDTH/2,W=CANVAS_HEIGHT/2,d=4*CELL_SIZE,n=1.6*CELL_SIZE;let r;return t[0]===Symbol.for(e(438,"94(%"))?(r=o[e(610,"a)P^")](_0x3b9d8c,Group,{children:[_0x38922b(RoundedRect,{x:o[e(590,"*4oa")](_,d/2),y:o[e(577,"kN4q")](W,n/2),width:d,height:n,r:10,color:e(462,"rwJB")}),o[e(633,"Ul5R")](_0x38922b,RoundedRect,{x:_-d/2+2,y:o[e(604,"6Fk8")](W-n/2,2),width:d-4,height:n-4,r:8,style:"stroke",strokeWidth:2,color:e(572,"d![N")}),o[e(516,"5KC8")](_0x38922b,Circle,{cx:_,cy:W,r:.12*CELL_SIZE,color:e(570,"JbbW")})]}),t[0]=r):r=t[0],r});ReadyText[_0x3d078d(688,"kN4q")]=_0x3d078d(517,"*4oa");const _0x3f0058={};_0x3f0058[_0x3d078d(643,"qDo%")]=CANVAS_WIDTH,_0x3f0058[_0x3d078d(563,"3dwg")]=CANVAS_HEIGHT;const CANVAS_STYLE=_0x3f0058,_0x7dd177={};_0x7dd177[_0x3d078d(434,"0mWP")]=CANVAS_WIDTH,_0x7dd177[_0x3d078d(445,"rwJB")]=CANVAS_HEIGHT;const _0x358947={};_0x358947[_0x3d078d(693,"0vqN")]=_0x3d078d(591,"jv&C"),_0x358947[_0x3d078d(686,"a)P^")]=_0x3d078d(597,"YtMs"),_0x358947.overflow="hidden",_0x358947.borderRadius=8;const CONTAINER_STYLE=[_0x7dd177,_0x358947],GameCanvasComponent=()=>{const e="fdg)",o="CL1h",t=")blO",_=_0x3d078d,W={tLWyO:function(e){return e()},lHmMU:function(e,o){return e(o)},PJrxM:function(e,o,t,_){return e(o,t,_)},SfvvU:function(e,o,t){return e(o,t)},uboUa:function(e,o,t){return e(o,t)},GjohW:function(e,o,t){return e(o,t)}},d=W[_(673,"afB2")](usePacManVisual),n=useGhostVisuals(),r=useMaze(),S=useFruit(),a=useIsReady(),x=W.lHmMU(useRef,null);if(!x[_(661,"YM1R")]||x[_(534,e)][_(605,"^O0z")]!==r[_(564,o)]){const t=[],d=[],n=[],S=[];for(let o=0;o<GRID_ROWS;o++)for(let a=0;a<GRID_COLS;a++){const x=r[_(513,"O3I@")][o]?.[a],s=a+"-"+o;switch(x){case CellType[_(495,"!XM9")]:const r={};r.x=a,r.y=o,t[_(667,"rwJB")](_0x38922b(WallCell,r,s));break;case CellType[_(601,"jv&C")]:const x={};x.x=a,x.y=o,d[_(635,"*4oa")](_0x38922b(Dot,x,s));break;case CellType[_(582,"*4oa")]:const i={};i.x=a,i.y=o,n[_(472,"*hWO")](_0x38922b(PowerPellet,i,s));break;case CellType[_(416,"5KC8")]:const u={};u.x=a,u.y=o,S[_(502,e)](W[_(480,"6#9j")](_0x38922b,GhostDoor,u,s))}}const a={};a.dotsRemaining=r[_(682,"&UqO")],a[_(511,o)]=t,a.dots=d,a.powerPellets=n,a[_(642,"uXOf")]=S,x[_(488,"Fys1")]=a}const s=x[_(440,"Ul5R")],i=useMemo(()=>n[_(501,"&UqO")](e=>_0x38922b(GhostCharacter,{...e},e[_(426,"*3pt")])),[n]),u={};return u[_(706,"Fys1")]=d.direction,u[_(648,"!XM9")]=d[_(525,"d![N")],_0x38922b(View,{style:CONTAINER_STYLE,children:_0x38922b(Canvas,{style:CANVAS_STYLE,children:W[_(458,"^O0z")](_0x3b9d8c,Group,{children:[W[_(494,"^R7P")](_0x38922b,MazeBackground,{}),s[_(459,"eqE^")],s[_(683,t)],s.dots,s[_(644,"x$0n")],S&&S.active&&_0x38922b(FruitItem,{x:S.x,y:S.y}),i,_0x38922b(PacManCharacter,u),a&&W[_(684,t)](_0x38922b,ReadyText,{})]})})})};export const GameCanvas=_0x30ead2[_0x3d078d(470,"d![N")](GameCanvasComponent);GameCanvas[_0x3d078d(468,"B5ro")]="GameCanvas";
@@ -1 +0,0 @@
1
- "use strict";const _0x32bf4c=_0x11e2;!function(){const e=_0x11e2,o=_0x9e05();for(;;)try{if(321197==parseInt(e(474,"DcBn"))/1+parseInt(e(481,"GD6O"))/2*(parseInt(e(487,"DcBn"))/3)+-parseInt(e(492,"thD9"))/4*(-parseInt(e(457,"QFke"))/5)+-parseInt(e(497,"1gYR"))/6*(parseInt(e(488,"3GAE"))/7)+-parseInt(e(485,"3Jg5"))/8*(parseInt(e(475,"3Jg5"))/9)+-parseInt(e(494,"MIMF"))/10*(parseInt(e(459,"zhd^"))/11)+-parseInt(e(454,"zhd^"))/12*(-parseInt(e(478,"Q8CX"))/13))break;o.push(o.shift())}catch(e){o.push(o.shift())}}();import{c as _0x399f0f}from"react/compiler-runtime";import _0x599f1f from"react";function _0x11e2(e,o){e-=454;const r=_0x9e05();let t=r[e];if(void 0===_0x11e2.ZWVOWN){const e=function(e,o){let r,t,n=[],W=0,a="";for(e=function(e){let o="",r="";for(let r,t,n=0,W=0;t=e.charAt(W++);~t&&(r=n%4?64*r+t:t,n++%4)?o+=String.fromCharCode(255&r>>(-2*n&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let e=0,t=o.length;e<t;e++)r+="%"+("00"+o.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(r)}(e),t=0;t<256;t++)n[t]=t;for(t=0;t<256;t++)W=(W+n[t]+o.charCodeAt(t%o.length))%256,r=n[t],n[t]=n[W],n[W]=r;t=0,W=0;for(let o=0;o<e.length;o++)t=(t+1)%256,W=(W+n[t])%256,r=n[t],n[t]=n[W],n[W]=r,a+=String.fromCharCode(e.charCodeAt(o)^n[(n[t]+n[W])%256]);return a};_0x11e2.DTfPzO=e,_0x11e2.rguqxa={},_0x11e2.ZWVOWN=!0}const n=r[0];_0x11e2.VSJDVA!==n&&(_0x11e2.rguqxa={},_0x11e2.VSJDVA=n);const W=_0x11e2.rguqxa[e];return void 0===W?(void 0===_0x11e2.qUfiQg&&(_0x11e2.qUfiQg=!0),t=_0x11e2.DTfPzO(t,o),_0x11e2.rguqxa[e]=t):t=W,t}import{View}from"react-native";import{useScore,useLives,useTimeElapsed}from"../PacManStore.js";import{PACMAN_GAME_CONFIG}from"../PacManConstants.js";import{ScoreBoardContainer,ScoreValue,ScoreLives,ScoreTimer,scoreBoardStyles as _0x417ca2}from"../../../helpers/index.js";import{jsx as _0x1cdc21,jsxs as _0x5e9912}from"react/jsx-runtime";const formatScoreValue=e=>e[_0x32bf4c(496,"0#jx")]();export const ScoreBoard=_0x599f1f[_0x32bf4c(465,"g$C)")](e=>{const o="E@Cl",r=_0x32bf4c,t={nzrnK:function(e,o){return e!==o},EftVc:function(e,o,r){return e(o,r)},dIVoq:function(e,o,r){return e(o,r)},RambW:function(e,o){return e!==o},zTKPg:r(490,o),jXLSe:"xAjrh"},n=_0x399f0f(13),{offset:W}=e,a=void 0===W?0:W,s=useScore(),d=useLives(),f=useTimeElapsed();let i,x,m,u,k;if(n[0]!==s){const e={};e[r(477,"@l]U")]=s,e.formatter=formatScoreValue,i=_0x1cdc21(ScoreValue,e),n[0]=s,n[1]=i}else i=n[1];if(t[r(461,"@l]U")](n[2],d)){const e={};e[r(464,"MkX(")]=d,e[r(486,"3n4&")]=PACMAN_GAME_CONFIG[r(473,"x1dx")],x=t.EftVc(_0x1cdc21,ScoreLives,e),n[2]=d,n[3]=x}else x=n[3];if(n[4]!==f){const e={};e[r(458,"GMT5")]=f,e[r(470,"Ak%d")]=0,m=t[r(468,"Ak%d")](_0x1cdc21,ScoreTimer,e),n[4]=f,n[5]=m}else m=n[5];if(n[6]!==i||t[r(471,o)](n[7],x)||t[r(462,"3Jg5")](n[8],m)){const e=t.zTKPg.split("|");let o=0;for(;;){switch(e[o++]){case"0":n[9]=u;continue;case"1":n[7]=x;continue;case"2":n[8]=m;continue;case"3":const e={};e[r(493,"1gYR")]=_0x417ca2.row,e.children=[i,x,m],u=_0x5e9912(View,e);continue;case"4":n[6]=i;continue}break}}else u=n[9];if(n[10]!==a||n[11]!==u){const e={};e[r(495,"3GAE")]=a,e.children=u,k=t[r(460,"ayRE")](_0x1cdc21,ScoreBoardContainer,e),n[10]=a,n[11]=u,n[12]=k}else r(467,"7CjY")===t[r(455,"0#jx")]?_0x1ab1cf=_0xe70ba5[5]:k=n[12];return k});function _0x9e05(){const e=["rCoiW6TIxbDqW5K","W7ldMmkzWQOPW5m","iqFcG8kTzr0kvxRcGCkPW6JcTSoS","W7BdO8k4iZKHyCoFDZO","g8oyW6BdHCkFWP1HtM0ZWQu","pZdcG8kryW","y17dUSkbDJ4tweS","omkfW5XJeXnmbmoGW4i","tCkfn8kdWOlcUaW","hSoFW6BdGmkzW6WZvxOTWRNcLLK","rmkvdx3cSq","WRaeW5FdQ3i","vdtdIqxdHa","eSofkSoZlc0NBmoTz8oe","sSkABSkLAq","W4n8W4fY","W6yWh8oMWOqnW694xSk4W6BcVG","lfqMemkX","DmorWPD4W48","iMDlW7zIWR/cL18","Fmo3WRzdW5BdSmo0W6ldKqCdWQy","W5tcNqJdImoT","d8o5WOBdJmkhWQaqW6Xxkq","eu7cMqFdHLnVWOLGWRtdQK13","vaJcQmoaW7C9b8kDWOv1bCoP","pWxdSahdVCkIWO4","nL/dSmkaWQvmd8kZWQ5A","WQ0DW4RdT1W","WO4KkSoEdqVdOxZcL0e","WR9dzY/cGSkIuCkjW5TB","WO/dN0VcKCkqW7bHrvddR8ktWOe","W4zEfxG3pSkV","WP0HWPqLdv4yWPG6WQDOtCoo","WQpcS8kOpSkWhSoJ","AthdOMxcVYOsWQD6WO/dTwrY","nw3cNf/cQSoKW63cLLyCaCk7WQ8","eKzMy1b+eCkq","uatcRSofW7y3fmk2WOvknSoy","WQVcImokWPO8W6vOW6f6","emodFCkoFdagua","WONcM07dMSkxWRuNxtK","kmkDW7BdNg/cHmkBqhZcUrG","eM85gGK6e18","WRtcPSoZFq0"];return(_0x9e05=function(){return e})()}ScoreBoard[_0x32bf4c(491,"61*n")]=_0x32bf4c(476,"DcBn");
@@ -1 +0,0 @@
1
- "use strict";function _0x28e7(){const W=["kmkXDSoTyW","W43cTIVdSXZdU0i1oSkWW4/dRgVcQW","fbv6aWDLW7maWO0lB2xcOf/dUW","quaUx1i2WOO8WOqvEfdcVG","W5RcQq7dSae","zmoFj8oeWP/dMW","cI3dMSoOEW","W6ZcU1xdIdjOcKJdL8oGrSob","W6BdNHCuW7K","gCkUDgvGW4FdGMpdOJe6","h8kZyG","W5WRWRlcLJZdJY7dJa","WOhcOCkTASkOzwBcNCk7oq","WQXJa2tdKgWssG","WRyZta","aeLGWPFcHq","WO7dRNxcTqO","kIX+uCkK","W6BdNbCpW70KxCoJWRqXW4nO","W5iiW6NcLeb1WPCGe8oaCCol","W45gW68JpslcI8oFlmo8W4/dUYhcJmktrSkBW78","gCkisCo/jW","WPVdJSo6WRGwha","WRHYgeFdQgijxW","W6xdNqO2W6KIwSoPWR4","WRFdTSkMyGK","WRlcMudcNCoDpCo8W5zzD8oJW6S","W6tcS1q","zSomkSoyWPBdP8oBa8ovW6fI","k8kRW5JdPZyX","cmkKzw1IW6W","hZldJ8oEr0O","sxlcQ8k4W4v5W67cOZC","W4LTECo2","W6pdLXGdW6K8qmoFWQOcW5fG","kCkpymo0gW","aSkRE2L+W7S","W7pdGb8lW7a","W5NcPSocW7ddLW","W6xcSmkAWPFcHJZcHCoUW7e","W4HTzmoVW6FdOrVcUfO","W5jzW6pcI8kvW6JdKWZcIq","WOneoW","W4BcJSoTW7ddGHG","W5jtW6C","w3RdPW","WP43uaFdLuC","sSkGWRldUmoH","W47cQYFdQb/dOvKY","W4/cSd8","txZdOG","vxxdM3TA","qxNcNmkkW4fSW6/cTa","W5DyW6O1CwVdRcldQa","WO/dSJLzW4CneqWfbCoq","jCk1sW","W6pcTuO","WPKGvdxdJ0iyxW","j8kXACowza","WR87rG","WPq4tGpdIva","WRVcK1dcMCo4pCoPW7Xmza","W50gW6/cJMDvWPCInCoaAmobWOpcHq","W4DoW4nUW4Dx","gCo6jt0","W43cUZldSZK","W73dNCoga8kk","Cmorp8oIWO7dICoyca","WPu7Ea","W6ZdKConbW","WRVdQglcLqXLW6ldMCoEW4X6F0tcPa","W4P3EmoQ","W5dcI8oGW73dGHHJ","W5HTF8owW5VdVthcTeW","W5zNzCoLW5RdPW","vNpcMa","W7NcLYLxjG","WPxdJmohWRSb","j8o2eI0W","W5VcSYFdTYe","W6pcHJZdNcKyW7Deq8kRrCkuaXZcKq","W5dcJSoIW6/dTaT2CuaGWPK","WPVdL8oaWQGwaq","yCoroCof","W4FcJ3FdQ0O","fdHeW4qAua","ymoBomobWPVdN8oclmoe","CsuKF8kVWPuDWO4NW68oWPu","WP0ZECoLWP5AW7D/WQj/iN4","WPNdQf3cVrK","gvT2WQpcGmkX","hCkPzMq","pCk+xmoWpW","W4LBW54","be12WQlcNCkV","W4aOWRpcGWldKW","aZyXWPf1","WPu/WOeTW7G","WP0MtG/dIeSRwX9M","W7xdNrepW5u+CmoLWQG","mSo3aciW","jmk1u8o7CmkkmN7dPq","WPlcQmkMB8kVFNe","vSo9ke1u","pmkluCoIjJa","t3BdU0DMWPNcNCofEmkp","WRldLmo1WRi9","qhxcHSk9W6z9W7RcPJW","eI9bW4Saymkifmoal2xcTCktW5C","W45WASoRW4i","kNjHm8ooW5yVWQS+W4qHWR4","smkdWPzWWQNcOCkWgYldTW","W4pdSCoVlmkQhq","WPRcUwdcQa","W7ZcL1/dPeddQK8","fW7dQmoftW","btjvW4WyE8kAcmoxngi","cSkHCSoz","xxZdOxb7WPBcJSoK","W4nUW6aifW","WRRdLSo1WRaXW7pcLCopomki","l2bqkmoP","W4reW4Ohvq","vSo9ke1uEvWhWQmwha","ivfnWQNcPq","W5HCW4nVW5XkWOpdOvhdKG","WPzkcCk+lW","gSoCfZCoW4FcSSkEbLtcUa","W4LpW5lcLmka","ndfvjW","W6hcHsW","W6NcL0RdVI8","fmkDvNH8","WPi9F8o/WRL6W7D9WOr/o3tcHHC","W5OmW7VcHh9OWPW1","brTU","nSk/sColBmkwo1/dQmk+","WQBdMSoAWO8o","aYJdUSogrwzMzs5Z","WRdcKeNcK8oA","lbpdNwVcI3nVcLK","WP0JtWNdIq","eY9aW7yauCkDfCo9m2u","dKjOWQBcGCk4","W7dcJJZdNWmjW4PaCSk1qmkPaWa","W41bW51QW5Ta","nmk1uSobyq","hmkNySoFaa","W6NcLb3dMZG","qhucWPDeaSovvmo7f1xcRmkaW48","WQ/dIrDEW5O","WOSLWRuzW4m","WRZdJ8oYWQeQW6e","WOBdGCoaWQKlhW","kh9uWOS","fs3dNSoOW5j/W57cNtFcSW","aJpdRSofuq","WRG9wa","WPZcNCkKy8kf","F8oBfmkUywK5WP5odCoGgmoS","whBdOwfJWPJcMCoQDmkzWQZcNmkWWQqqg8ogWOFcV1zyl8oUW6Tx","W43cQJVdSa","W4WgW60","WOZdVI4","W6ZcOSohW5a","W4xcReJdV0e","CmoQbgPc","oG/dGgFcI3DVcutcLr08WRewk8k2","gbPAcHj1W48bWRG","W7FcTb3dTHK","WRVdL8oXWQeBW73cLq","W63cTXHRgW","g8oQiIaYsa","xhZdUq","WPdcNKhcMmo8","W5bzW77cN8kDW7hdMGNcLmox","nSkZrmoevSkzoN7dHCkLBq","cCoskIed","l3vpWOK","vwJcICk0W4vpW7FcVJhcOq","fCkozSo9uCkNcf7dK8kEvSkyW5pdNSkE","uSoRm09s","bfrmWRlcNCkY","asXvW5WrrSkE","fIva","gfvQWRm","WPHydSkYfa","uSoJkf1DrfG","WRJdUx/cGY94W6ddQG","WRi8umobcW","c8owca","WOfEp8k1m8ozWONdL8k6W4jmW5ysoSoqWQ0","W6/cIqVdGt4s","W7RcUcBdGvmHWRFcQmo2W61kFfFcOa","WRJcK8k1BmkL","WP0CBHpdLW","W4ddUSogkSkZeaXAoh8","WPTSW6VdL0lcKxBdLWRcOSouW4nW","W50gW7y","W5NcUXPQadq","WRT+hG","gmomfZa","W5GfW7xcJ2e","jxjXl8o4W4ydWQG6W4eTWQlcTNdcMa","W5NcSgddNYy","W7FcNqtdMWu","WQVcTbhdR8kd","W53dSCoYo8k/aI1UmNK","WPxdMCkoEqS","W6VdT8kGvWfvW7O","vNNcHSk9W5XJW7ZcLtVcUa","umoGpePC","W6VdM8owbq","W53dSCo1pSkSgW","ESorjSouWRNdH8oa","h8o3eGae","W5BcG2tdIMq","W7fPW57cGCkM","C8k7WO7dOmoQ","WQZdMmkSwGjOW58","aJNdQmooqwnRzYG","W44fW7VcMxzZWOe","ySkXWPldOG","W6tcV0xdLqvOk3tdI8olwmoDaI7cJ8kidX8","WPVdSIG","t3/dTfPQWOxcIq","rhpcNmknW4b/W7xcTdy","jHVdGhVcI2zTlL/cUaSM","WOKUtGldLe4","vxNcNmkDW5X/W77cSIBcO07dNW","WPJdU8kABq","W4TwW4e","d8kZyv94W63dHx7dIdy9","WOfhlCkKbCoFWPS","WRtcG0HtW7SICCoaWR8A","nbpdJmoL","uSo6oKW","g8oGiq","WOSyWRy2W6y","WPNdTZvDW6y","WQ0JWPaxW54","dWjLzCkh","x8oLjdu+W5JdG3ZdJZmC","tdLbuSkXbaK","WRhdPmoBWRZcUGVcVCo1W74","WQ3dPh7cMHb/W4JdU8osW5K","WQBdQCoPWOuW","iCkivmobFW","W6FcPXldJXi","mSkZrmoe","iNzZi8oXW4SKWR4","W5LgW7GDmcK","W5JcJHD4gq","WOVdKsbLW7e","WQG3qmoWgKzrbSobEbC","W4b6W4SooG","h8k4D8oGjW","sCksWOrTWRJcLmkYnI7dQa","adxdUmoazKvSBWLXvq","W7lcIcG","W40WWQNcTqtdGtxdMq","WPdcKJtdImkbkSo4W68XWOFdRq","jmk1u8o8CCkDlgJdJSk5AW","gdpdTeFcJa","WRxcK0O","WPKUvaxdK3CfwrK","W5SNWPtcPsa","W694W6boW6PGWRhdT3NdTmoBW6q6ofPv","kCk8vSo5lG","oH/dNwVcSw1Pov7cPq","W67cLeRdJLhdVuWTWPa3WPG","zvNcPmkv","iCkBrSobaG","DCkMWPRdP8oIeCozWOlcJxKP","xSo7dCoL","WOhcOmk5zCkR","W5lcGSoYW6VdIXX1CeaGWPK","WPpdHCoAWPKweYxcGmkZW6T1W5BdULy","nMzHlW","WQlcJKFcLCoehSo/W6TmzmoN","q8oHieLzqKigWQG2cSkg","W5/dUmoGmSk7bZa","hCo9nZWSAuNcG8o0W5nk","W5bqW7hcGSkrW63dJG","vmoxpCofWPm","lH/dGhVcQMX3gfm","WQlcJKFcLCoe","W5BcTw/dMwG","lmkbuCoeidTXWO9fnSo8","W4NdUmoUjmkS","ih99kmoV","yCokbwG","fXTFuSkelJZdTmkYWOxdH8ot","WOxdNSklqca","W5hcRCoQW53dSq","bXfRdq1ZW5CWWRWxEMNcU1q","WPVcOSknvSku","dWHnt8k7","ocSBWOXjhxqCWOpdQ8kp","ymk2WOG","WOeeWQHqnIJcTsZdR8kJeeBcSa","W6ZcHIZdGb8zW51KE8kOu8kd","WPiuWRWDmYlcHmoBcW","BSkHWPJdMmoy","vh3cHSk9W5PG","W6VdKW0wW48KuCo8WO4kW4TR","nhXL","WQ/dMmkKqai","WOhdSCoBWOWm","r8k+WRBdH8oO","W51qEmoSW5q","hZldNmokweffFcHQ","w8khWQZdHSom","gGS/WQ9o","W5JcKtHljW","WP7dVZ4","W4XCW4XVW5LnWORdGa","hmommdiG","WRD2hW","W6JdHrahW64J","WOm9Fq","dCkmW7RdGXq","rSoQkebux0um","pmoOmJO1","bc7dUSocwwT9zcHQva","WRm9wCobmery","lCkxW7hdHce","g192WQpcHSkYgHddO8oK","CCorjW","obxdHa","WRHYgetdSgiex8oOcqKsvaLdASkeba","rxpcHa","WPFdJ8oBWQmqjINcNSkoW7vVW5ZdULW","W4WgW7xcJvPVWRy5nq","W6axWPhcTJe","aSkYvM18W7ZdGh/dOG","WPieB8ojWOq","WRu0WP8zW4BdIq","W5XtW6WQsG","WOZdR3ZdKGRdNeCYpq","WRtcK1lcR8oCmmo8W6a","W7OMW43cRG","WRRdNCkJrZrQW40sWOO","W5roW7hcKSkyW5ddIIpcMmoxda","WPZdTdy","WQFdTmoVWP8WlrJcQCkUW45sW6FdH3Cz","uLxcI8kTW58","WOjFlCkVfmoHWOFdJmk5","BvRdKMTB","c8oybZahW5xcNSkjeLhcQ0uKWPNdTa","WROuzCo/WPS","lHpdGq","W7lcHJhdKcmr","kt7dSmorxG","WR83vCoah0jAlW","iIq2WR9p","WR3dTvtcPIC","WOpcMY7dKCki","u3BdU0r7WP8","A0ldG0fy","WPdcQSkQy8kGF2JcTSk8grNcIq","jCkHW4ldKZy4evK","kSkDweLtW4ZdOf/dHHCaW7P8p8kkgG","WR7dPmox","CxRcHmkXW4y","bX16adfGW5WwWPKoFa","F8kfWObgWQe","W6FdPmoddSkq","rSoMoW","WQK9WPahW5FdK8kU","WRO+WP0","W5ehW5NcGwn1WOCIiG","nCkHW4pdRIy","WQK0WP8AW5VdJ8k6jMtcKW","WP7dTZneW7e","W4pcSHrooq","WQGByttdR3W4FYbrWQtdSJpdTZi","WQ7dM8k6","WPjeia","cmkWB8o5tq","W5PzW5KaAxZdJthdQCkH","WRy9qSobi0Dvm8obBa","cmoTjq","WPNcOmk2F8oUqNnJbh9fowe","b1TRWRpcVmkOgctdNSo/x2O","W5PwW5O","WRZdNHz+","W5pcSd8","WRmDxSooWO5HW4DbWQi","W5/cTW10","WOBdHCoAWRGwha","W4/cUWH+bZBcMSo0dSk2eb8","WPnskKa","jSkIW5/dTIC","WOKGvW","W5nzW6tcR8kDW7ldMahcMmodcW","wCkjubi7W6pcPSkkja","WQ14gW","WPNcQ8kUA8ktzhy","aWz4aG5oW40DWRGvFq","W7ZdGmoeg8kboba","W4bNo8kOW7GzWQPTWRjyj0hcOq","W5LTFSoSW5RdMZRcO1RdQmo1WO1aDG","fdxdQq","WQNdRgtcKaTEW6hdS8ol","W4nRo8kOW79+W6r+WR5MgG","WONdKsbzW7G","CCoFkmozWP/dJmoLhSoGW79WvCkqmYa","uCo7kfzmEKqgWRy","CCkXWPxdQSoNmmojWQJcGxK","xN/dVfvQ","W5HTF8orW5RdQI/cOMFdTmo1"];return(_0x28e7=function(){return W})()}const _0x162d4b=_0x3318;!function(){const W=_0x3318,o=_0x28e7();for(;;)try{if(959055==-parseInt(W(333,"w7Bv"))/1*(-parseInt(W(480,"y&h3"))/2)+-parseInt(W(478,"Docy"))/3+parseInt(W(583,"jZ(S"))/4*(parseInt(W(629,")e6&"))/5)+-parseInt(W(337,"SRVv"))/6*(parseInt(W(387,"acoU"))/7)+parseInt(W(517,"SA1M"))/8*(parseInt(W(265,"S%XK"))/9)+parseInt(W(561,"rN&q"))/10+-parseInt(W(327,"5F1#"))/11)break;o.push(o.shift())}catch(W){o.push(o.shift())}}();import{usePaperIoStore}from"./PaperIoStore.js";function _0x3318(W,o){W-=231;const t=_0x28e7();let d=t[W];if(void 0===_0x3318.aoaAyp){const W=function(W,o){let t,d,n=[],r=0,e="";for(W=function(W){let o="",t="";for(let t,d,n=0,r=0;d=W.charAt(r++);~d&&(t=n%4?64*t+d:d,n++%4)?o+=String.fromCharCode(255&t>>(-2*n&6)):0)d="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(d);for(let W=0,d=o.length;W<d;W++)t+="%"+("00"+o.charCodeAt(W).toString(16)).slice(-2);return decodeURIComponent(t)}(W),d=0;d<256;d++)n[d]=d;for(d=0;d<256;d++)r=(r+n[d]+o.charCodeAt(d%o.length))%256,t=n[d],n[d]=n[r],n[r]=t;d=0,r=0;for(let o=0;o<W.length;o++)d=(d+1)%256,r=(r+n[d])%256,t=n[d],n[d]=n[r],n[r]=t,e+=String.fromCharCode(W.charCodeAt(o)^n[(n[d]+n[r])%256]);return e};_0x3318.yXdJlx=W,_0x3318.SgNWfy={},_0x3318.aoaAyp=!0}const n=t[0];_0x3318.wmzJMr!==n&&(_0x3318.SgNWfy={},_0x3318.wmzJMr=n);const r=_0x3318.SgNWfy[W];return void 0===r?(void 0===_0x3318.BOwfCB&&(_0x3318.BOwfCB=!0),d=_0x3318.yXdJlx(d,o),_0x3318.SgNWfy[W]=d):d=r,d}import{PAPER_CONFIG,DIRECTIONS}from"./PaperIoConstants.js";const C=PAPER_CONFIG,{COLS:COLS,ROWS:ROWS}=C,TOTAL=COLS*ROWS,cellIndex=(W,o)=>o*COLS+W,inBounds=(W,o)=>W>=0&&W<COLS&&o>=0&&o<ROWS,shuffle=W=>{const o="rN&q",t=_0x3318,d={};d[t(297,"y&h3")]=function(W,o){return W===o},d[t(373,"9K^i")]=function(W,o){return W+o};const n=d,r=W[t(485,"acoU")]();for(let W=r[t(290,o)]-1;W>0;W--){if(!n[t(309,"y4K4")](t(344,"aUj0"),t(267,"hmr]"))){const W=_0x5c85cd([_0x5ee5a7.UP,_0x3cf130[t(408,"acoU")],_0x48247a[t(342,"bDaf")],_0x1be4d4[t(491,"tsid")]]);return W[t(363,"bnF$")]((W,o)=>this.roomInDir(_0x274b21,o)-this[t(511,"QJjs")](_0x9973a5,W)),this[t(476,"tsid")](_0x38668a,W)}{const d=Math[t(467,o)](Math[t(530,"*ZVC")]()*n.fSNul(W,1));[r[W],r[d]]=[r[d],r[W]]}}return r};export class PaperIoService{destroyed=!1;animationRef=null;[_0x162d4b(609,"QJjs")]=0;[_0x162d4b(494,"pjGZ")]=0;[_0x162d4b(470,"qqds")]=-1;[_0x162d4b(272,"bnF$")]=new Uint8Array(TOTAL);[_0x162d4b(577,"e)(8")]=new Uint8Array(TOTAL);[_0x162d4b(399,"QJjs")]=[];[_0x162d4b(527,"$^&b")]=!1;setPlaying(W){this[_0x162d4b(585,"[7fr")]=W}setCallbacks(W,o,t){const d=_0x162d4b;this[d(346,"e)(8")]=W,this[d(621,"Q10f")]=o,this[d(558,"Docy")]=t}getOwners(){return this.owners}[_0x162d4b(455,"AuTm")](){return this[_0x162d4b(521,"&Ope")]}getPlayers(){return this[_0x162d4b(461,"&Ope")]}[_0x162d4b(316,"Q10f")](W,o,t){const d=_0x162d4b,n={LnpSJ:function(W,o){return W<=o},qsTfQ:function(W,o){return W+o},kBkAn:function(W,o){return W-o},sOVTU:function(W,o,t){return W(o,t)},HpBEN:function(W,o,t){return W(o,t)}},r=C[d(554,"9K^i")];for(let e=t-r;n[d(275,"qTg[")](e,n[d(300,"Docy")](t,r));e++)for(let t=n[d(615,"acoU")](o,r);n.LnpSJ(t,o+r);t++)n[d(492,"hbE8")](inBounds,t,e)&&(this[d(241,"pjGZ")][n[d(545,"rN&q")](cellIndex,t,e)]=W.id);W[d(506,"[7fr")]=o,W[d(507,"wiC)")]=t,W[d(392,"[7fr")]=o,W.homeRow=t,W[d(627,"]N%#")]=[]}[_0x162d4b(520,"acoU")](W){const o=_0x162d4b,t={};t[o(488,"ayOH")]=function(W,o){return W*o},t[o(471,"acoU")]=function(W,o){return W-o};const d=t,n=C[o(358,"Iw!0")]+2;for(let t=0;t<60;t++){const t=n+Math.floor(d[o(293,"Q10f")](Math[o(331,"AuTm")](),COLS-2*n)),r=n+Math[o(468,"S%XK")](Math.random()*(ROWS-d[o(446,"SRVv")](n,2)));let e=!0;for(const d of W)if(Math[o(271,"pjGZ")](d[o(376,"QJjs")]-t)<2*n&&Math[o(308,"*ZVC")](d[o(640,"FBUA")]-r)<2*n){e=!1;break}const i={};if(i[o(556,"yl4u")]=t,i.row=r,e)return i}return{col:n+Math[o(317,"jyHX")](Math[o(482,"w7Bv")]()*(COLS-2*n)),row:n+Math[o(380,"QJjs")](Math[o(406,"9K^i")]()*d[o(382,"y4K4")](ROWS,d[o(425,"Iw!0")](n,2)))}}defaultSpawn(W){const o="SA1M",t=_0x162d4b,d={};d[t(514,"jZ(S")]=function(W,o){return W===o},d[t(450,"SRVv")]=function(W,o){return W-o},d[t(302,"bnF$")]=function(W,o){return W===o};const n=d,r=C.START_TERRITORY+1,e=Math[t(604,"Uf$c")](r,Math[t(324,"Iw!0")](250/C[t(564,"WSA5")])),i=Math.floor(COLS/2);if(n.cVeXI(W,0))return{col:i,row:n[t(481,"L#&1")](ROWS-1,e)};const s={};return s[t(368,"$^&b")]=i,s[t(639,o)]=e,n[t(347,o)](W,1)?s:this[t(285,"w7Bv")]([])}initialize(){const W="jZ(S",o=_0x162d4b,t={};t[o(528,W)]=function(W,o){return W+o},t[o(465,"FX*@")]=function(W,o){return W*o};const d=t;this[o(273,"wcy*")]=new Uint8Array(TOTAL),this[o(301,"aUj0")]=new Uint8Array(TOTAL),this[o(459,"rN&q")]=[];const n=C[o(566,W)]+1;for(let W=0;W<n;W++){const t=this[o(616,"jyHX")](W),n={id:d.KFonV(W,1),index:W,isBot:0!==W,alive:!0,col:t.col,row:t[o(572,"9K^i")],dir:DIRECTIONS[o(441,"wiC)")],pendingDir:DIRECTIONS[o(416,"qTg[")],trail:[],homeCol:t.col,homeRow:t.row,respawnAt:0,botState:o(321,"bnF$"),botStepsOut:0,botTurned:!1};this[o(435,"drkF")](n,t[o(548,"qTg[")],t[o(340,"QJjs")]),this[o(459,"rN&q")][o(242,"5rF9")](n)}this[o(312,"QJjs")]=0,this[o(597,"y4K4")]=-1;const r=this[o(580,"ayOH")](1),e=this.countTerritory(2),i=Math[o(334,"Q10f")](r/TOTAL*1e3)/10,s=Math.round(e/TOTAL*1e3)/10,a=usePaperIoStore[o(642,"w7Bv")]();a[o(582,"hmr]")](Math[o(550,"@7Fb")](C[o(540,"lg)4")]/1e3)),a[o(443,"9K^i")]({score:d[o(594,"*ZVC")](r,10),territoryPct:i,aiPct:s,rank:1,alivePlayers:this[o(397,"acoU")][o(633,"bDaf")](W=>W[o(255,"AuTm")])[o(252,"ayOH")],territoryChanged:!1})}startGame(){const W=_0x162d4b;this[W(562,"bnF$")]=0,this[W(500,"aUj0")]=Date.now()+C[W(445,"pjGZ")],this[W(405,"wiC)")]=-1,this[W(586,"aUj0")]()}[_0x162d4b(525,"yl4u")](){const W="Uf$c",o="lg)4",t=_0x162d4b,d={};d.nkQBf=t(611,"SRVv");const n=d;this[t(638,"SA1M")]();const r=d=>{const e=t;if(e(542,"w7Bv")!==n[e(590,"Iw!0")]){const t=this[e(624,"]N%#")](_0x5c2c13),d={};d.id=_0x5c493a+1,d.index=_0x571979,d[e(326,"*ZVC")]=0!==_0x5e0490,d[e(284,"]IGf")]=!0,d[e(442,"jyHX")]=t[e(335,W)],d[e(498,"jZ(S")]=t[e(600,o)],d.dir=_0x45df9f.RIGHT,d[e(388,"w7Bv")]=_0x45be7f[e(424,"AuTm")],d[e(418,"qTg[")]=[],d[e(503,W)]=t.col,d[e(576,"@y5Y")]=t[e(555,"acoU")],d[e(631,"&Ope")]=0,d[e(296,"FBUA")]=e(620,o),d[e(589,"ayOH")]=0,d.botTurned=!1;const n=d;this[e(357,"w7Bv")](n,t[e(409,"pjGZ")],t[e(632,"yl4u")]),this[e(250,"bDaf")][e(379,"$^&b")](n)}else{if(this.destroyed)return;this[e(567,"hbE8")](d),this[e(608,"]N%#")]=requestAnimationFrame(r)}};this[t(538,"@y5Y")]=requestAnimationFrame(r)}stopLoop(){const W=_0x162d4b,o={};o[W(310,"lg)4")]=function(W,o){return W!==o},o[W(628,"bDaf")](this.animationRef,null)&&(cancelAnimationFrame(this[W(458,"aUj0")]),this.animationRef=null)}[_0x162d4b(407,"w7Bv")](W){const o=_0x162d4b,t={};t[o(430,"hbE8")]=function(W,o){return W===o};const d=t,n=this[o(403,"FBUA")][0];if(!n||!n[o(535,"olgX")])return;const r=DIRECTIONS[W];r.dx===-n[o(402,"WSA5")].dx&&d[o(270,"SRVv")](r.dy,-n[o(378,"swX#")].dy)||(r.dx!==n[o(505,"bnF$")].dx||r.dy!==n.pendingDir.dy)&&(n[o(602,"@y5Y")]=r,this[o(360,"bnF$")]?.())}[_0x162d4b(427,"Iw!0")](W){const o="WSA5",t="rN&q",d="5F1#",n=_0x162d4b,r={};r[n(495,"$^&b")]=function(W,o){return W>o},r[n(637,"L#&1")]=function(W,o){return W!==o},r[n(394,"FX*@")]=function(W,o){return W<=o},r[n(315,"AuTm")]=n(256,"5rF9"),r[n(512,"wcy*")]="tJzWe",r[n(328,o)]=n(349,"hbE8");const e=r;if(!this[n(592,"e)(8")])return;if(e.tuTjB(this[n(428,"S%XK")],0)){const W=Math[n(541,")e6&")](0,this[n(428,"S%XK")]-Date[n(565,"SA1M")]()),o=Math[n(400,"L#&1")](W/1e3);if(e[n(262,"FX*@")](o,this[n(479,"*ZVC")])&&(this[n(405,"wiC)")]=o,usePaperIoStore.getState()[n(432,"Uf$c")](o)),e[n(426,"SA1M")](W,0))return void this.endByTime()}if(0===this.lastStepTime&&(this[n(288,"S%XK")]=W),W-this[n(266,"jZ(S")]<C[n(578,t)])return;this[n(483,"]N%#")]=W;let i=!1;for(const o of this[n(365,"aUj0")])n(336,"@y5Y")===e.RztBj?_0x55a7cb[n(235,"9K^i")]=n(282,"SRVv"):!o[n(598,"]N%#")]&&o[n(306,"&Ope")]&&0!==o.respawnAt&&W>=o.respawnAt&&(this[n(385,t)](o),i=!0);for(const W of this[n(459,t)])e[n(274,"tsid")](e.OHLPA,n(431,o))?(this[n(502,"Q10f")][_0x36a1cc]=_0x2535af.id,_0x2b1988[n(464,"jyHX")].push(_0x5a4d34)):W[n(552,o)]&&W[n(364,"yl4u")]&&this[n(610,"y&h3")](W);const s=this.getBlockedByHeadCollision();for(const W of this[n(361,d)])if(e.PRMlN!==n(462,"[7fr"))_0x4f77e4[n(353,"&Ope")]=_0xc4d2d0,_0x368b69[n(279,"Iw!0")]=!0,_0x2c9153[n(320,d)]=10+_0x5aa610[n(257,"SA1M")](10*_0xebea20[n(268,"bnF$")]());else{if(!W[n(571,"@7Fb")])continue;if(s[n(496,"swX#")](W.id)){W[n(635,"FBUA")]=this[n(454,"bDaf")](W);continue}this[n(239,"jyHX")](W)&&(i=!0)}const a=this[n(510,"AuTm")](1),S=this.countTerritory(2);this.pushStatsBatched(a,S,i),a+S>=TOTAL&&this[n(276,"9K^i")](a>S)}[_0x162d4b(439,"olgX")](W){const o=_0x162d4b,t={};t[o(533,"tsid")]=function(W,o){return W!==o};const d=t;return d[o(641,"FBUA")](W.pendingDir.dx,-W[o(617,"y4K4")].dx)||d[o(474,"@y5Y")](W.pendingDir.dy,-W[o(402,"WSA5")].dy)?W[o(447,"wiC)")]:W.dir}[_0x162d4b(338,"FBUA")](){const W=_0x162d4b,o={ICVHn:function(W,o){return W-o},Ybkzk:function(W,o,t){return W(o,t)}},t=new Map;for(const d of this[W(411,"yl4u")]){if(!d.alive)continue;const n=this[W(305,"$^&b")](d),r=d[W(376,"QJjs")]+n.dx,e=d[W(484,"S%XK")]+n.dy;if(!o.Ybkzk(inBounds,r,e))continue;const i=o[W(531,"Q10f")](cellIndex,r,e),s=t[W(362,"5F1#")](i);s?s[W(249,"ayOH")](d.id):t[W(341,"WSA5")](i,[d.id])}const d=new Set;for(const o of t[W(595,"[7fr")]()){if(W(434,"SRVv")!==W(607,"qqds")){const o=_0x2ff965[W(523,"AuTm")]+1,t=_0x42878d.max(o,_0x129833.round(250/_0x356028[W(469,"aUj0")])),d=_0x5c8fe9[W(319,"9K^i")](_0x595354/2);if(0===_0x1ba5c0)return{col:d,row:qlmdIM[W(384,"olgX")](_0x592564-1,t)};const n={};return n[W(522,"WSA5")]=d,n[W(575,"swX#")]=t,1===_0x321e4f?n:this[W(318,"wiC)")]([])}if(o.length>1)for(const t of o)d[W(493,"WSA5")](t)}return d}[_0x162d4b(559,"Uf$c")](W){const o="Iw!0",t=_0x162d4b,d={NjHVH:function(W,o){return W-o},owpYu:function(W,o){return W!==o},ksxPj:t(625,"SRVv"),FjMIf:function(W,o,t){return W(o,t)},FbgdT:function(W,o){return W>o}};(W[t(314,o)].dx!==-W.dir.dx||d.owpYu(W[t(551,"qTg[")].dy,-W[t(378,"swX#")].dy))&&(d[t(605,"bnF$")]!==t(304,"yl4u")?(_0x23be18(_0x49fe6c,0),_0x3e00c3(_0x30bc5c,d[t(557,o)](_0x583078,1))):W[t(546,"aUj0")]=W.pendingDir);const n=W.col+W.dir.dx,r=W[t(563,"pjGZ")]+W[t(237,"Uf$c")].dy;if(!d[t(487,"L#&1")](inBounds,n,r))return!1;const e=cellIndex(n,r);W[t(233,"Iw!0")]=n,W[t(437,"*ZVC")]=r;let i=!1;const s=this[t(451,"L#&1")][e]===W.id;return this[t(626,"lg)4")][e]===W.id||s?d[t(352,"jyHX")](W.trail[t(619,"@7Fb")],0)&&(this[t(248,"hmr]")](W),i=!0,W[t(299,"S%XK")]||this[t(513,"lg)4")]?.()):0===this[t(457,"jyHX")][e]&&(this[t(618,"[7fr")][e]=W.id,W[t(287,"ayOH")][t(414,"aUj0")](e)),i}[_0x162d4b(473,"e)(8")](W){const o=_0x162d4b,t={QUNzR:function(W,o){return W<o},ZNdzR:function(W,o){return W/o},RtDgq:function(W,o){return W+o},hlzQK:function(W,o,t){return W(o,t)},idrKN:function(W,o){return W<o}},d=W.id;for(const t of W[o(475,"qqds")])this[o(238,"9K^i")][t]=d,this[o(599,"lg)4")][t]=0;W[o(418,"qTg[")]=[];const n=new Uint8Array(TOTAL),r=[],e=(W,o)=>{if(!inBounds(W,o))return;const t=cellIndex(W,o);n[t]||this.owners[t]===d||(n[t]=1,r.push(t))};for(let W=0;t[o(395,"&Ope")](W,COLS);W++)e(W,0),e(W,ROWS-1);for(let W=0;W<ROWS;W++)e(0,W),e(COLS-1,W);for(;r[o(515,"qTg[")]>0;){const W=r[o(253,"w7Bv")](),d=W%COLS,n=t[o(278,"$^&b")](W-d,COLS);e(d-1,n),e(t[o(329,"qTg[")](d,1),n),t[o(553,"hbE8")](e,d,n-1),e(d,n+1)}for(let W=0;t[o(516,"Docy")](W,TOTAL);W++)!n[W]&&this[o(497,"]N%#")][W]!==d&&(this[o(330,"]IGf")][W]=d)}[_0x162d4b(240,"QJjs")](W){const o=_0x162d4b;let t=0;for(let d=0;d<TOTAL;d++)this[o(260,"AuTm")][d]===W&&t++;return t}[_0x162d4b(289,"drkF")](W){const o=_0x162d4b,t={};t[o(444,"wcy*")]=o(323,"pjGZ");const d=t,n=this[o(569,"hbE8")](W[o(367,"Uf$c")]);W[o(255,"AuTm")]=!0,W[o(264,"[7fr")]=0,W.dir=DIRECTIONS[o(325,"SRVv")],W[o(283,"FBUA")]=DIRECTIONS[o(486,"]IGf")],W[o(518,"jyHX")]=d[o(419,"qqds")],W[o(440,"Iw!0")]=0,W[o(614,"]N%#")]=!1,this.stampBlock(W,n[o(335,"Uf$c")],n[o(415,"5rF9")])}[_0x162d4b(401,"y4K4")](W){const o="pjGZ",t="jyHX",d=_0x162d4b,n={};n.ImCZl=d(636,"9K^i"),n[d(355,"$^&b")]=d(391,"rN&q"),n[d(501,"$^&b")]=function(W,o){return W+o},n[d(343,"FX*@")]=d(490,"L#&1"),n[d(359,"aUj0")]=function(W,o){return W>o},n.zqACN=function(W,o){return W!==o};const r=n;if(0===W[d(281,"aUj0")][d(536,"FBUA")])W[d(539,"@7Fb")]=r[d(386,"acoU")],W[d(251,"ayOH")]=!1,W.botStepsOut=12+Math.floor(10*Math.random()),W[d(303,o)]=this[d(322,"*ZVC")](W)??W.dir;else if(W[d(245,"[7fr")]===d(263,"5F1#"))if(W[d(410,"lg)4")]--,W.trail.length>90)W[d(235,"9K^i")]=r[d(236,"Iw!0")];else if(W[d(448,"FX*@")]<=0)if(W[d(404,"w7Bv")])W[d(438,"wcy*")]=d(568,"AuTm");else{const o=0!==W[d(617,"y4K4")].dx?[DIRECTIONS.UP,DIRECTIONS[d(356,"bnF$")]]:[DIRECTIONS[d(570,"swX#")],DIRECTIONS.RIGHT];o[d(623,"ayOH")]((o,t)=>this[d(511,"QJjs")](W,t)-this[d(630,"ayOH")](W,o));const t=this[d(543,"e)(8")](W,o);t?(W[d(602,"@y5Y")]=t,W[d(231,"Docy")]=!0,W[d(466,"SRVv")]=r.TQVbW(10,Math[d(417,"WSA5")](10*Math.random()))):r[d(372,"@y5Y")]!==d(584,"WSA5")?W[d(245,"[7fr")]=d(377,"hbE8"):(this[d(622,"w7Bv")]=_0x2c8619,this[d(370,"*ZVC")]=_0x5212f8,this.onGameOver=_0x202666)}if(W[d(539,"@7Fb")]===d(350,"5rF9")){const o=W[d(348,"]IGf")]-W[d(351,"FBUA")],n=W[d(576,"@y5Y")]-W[d(640,"FBUA")],e=[];Math[d(477,"L#&1")](o)>=Math[d(560,"5rF9")](n)?(0!==o&&e[d(339,"SA1M")](r[d(243,"SA1M")](o,0)?DIRECTIONS[d(526,"FBUA")]:DIRECTIONS[d(291,t)]),0!==n&&e.push(n>0?DIRECTIONS[d(295,"SRVv")]:DIRECTIONS.UP)):(0!==n&&e[d(456,"S%XK")](n>0?DIRECTIONS[d(390,"rN&q")]:DIRECTIONS.UP),r[d(596,"Q10f")](o,0)&&e[d(269,"lg)4")](r[d(453,"@y5Y")](o,0)?DIRECTIONS[d(244,"rN&q")]:DIRECTIONS[d(291,t)])),e.push(W[d(529,"wiC)")]);const i=this[d(232,"WSA5")](W,e);i&&(W[d(587,"L#&1")]=i)}const e=r.TQVbW(W[d(548,"qTg[")],W.pendingDir.dx),i=r[d(537,"FBUA")](W[d(498,"jZ(S")],W[d(447,"wiC)")].dy);if(!inBounds(e,i)||this[d(294,"5F1#")][cellIndex(e,i)]===W.id){const t=this[d(436,"Q10f")](W,shuffle([DIRECTIONS.UP,DIRECTIONS[d(413,"Q10f")],DIRECTIONS[d(452,"[7fr")],DIRECTIONS[d(254,"hbE8")]]));t&&(W[d(303,o)]=t)}}[_0x162d4b(259,"bDaf")](W,o){const t=_0x162d4b,d={qNLrA:function(W,o){return W===o},qJkYV:function(W,o,t){return W(o,t)}};for(const n of o){if(n.dx===-W[t(581,"Q10f")].dx&&d.qNLrA(n.dy,-W[t(246,"jZ(S")].dy))continue;const o=W[t(509,"w7Bv")]+n.dx,r=W[t(634,"&Ope")]+n.dy;if(!d[t(472,"bDaf")](inBounds,o,r))continue;const e=cellIndex(o,r);if(this[t(460,"5rF9")][e]!==W.id)return n}return null}roomInDir(W,o){const t=_0x162d4b,d={BjUPf:function(W,o){return W<o}};d[t(383,"SA1M")]=function(W,o){return W+o};const n=d;let r=0,e=W.col,i=W[t(313,"e)(8")];for(;n.BjUPf(r,n[t(499,"@7Fb")](COLS,ROWS))&&(e+=o.dx,i+=o.dy,inBounds(e,i));)r++;return r}[_0x162d4b(591,"SA1M")](W){const o=_0x162d4b,t=shuffle([DIRECTIONS.UP,DIRECTIONS[o(519,"QJjs")],DIRECTIONS[o(570,"swX#")],DIRECTIONS.RIGHT]);return t[o(261,"[7fr")]((t,d)=>this.roomInDir(W,d)-this[o(277,"]N%#")](W,t)),this[o(354,"Iw!0")](W,t)}endByTime(){const W=_0x162d4b,o=this.countTerritory(1),t=this[W(311,"jZ(S")](2);this[W(369,"yl4u")](o,t,!0),usePaperIoStore.getState()[W(573,"&Ope")](0),this.finishGame(o>t)}[_0x162d4b(423,"hmr]")](W){const o=_0x162d4b;this[o(532,"Uf$c")]=0,this[o(603,"swX#")](),usePaperIoStore[o(613,"swX#")]()[o(429,"y&h3")](W),this[o(489,"Q10f")]?.()}[_0x162d4b(345,"wiC)")](W,o,t){const d=_0x162d4b,n={};n[d(534,"hmr]")]=function(W,o){return W/o},n.tIctj=function(W,o){return W*o},n[d(433,"y&h3")]=function(W,o){return W===o},n[d(544,"drkF")]=function(W,o){return W*o};const r=n,e=r[d(393,"5rF9")](Math[d(389,"aUj0")](W/TOTAL*1e3),10),i=Math[d(396,"L#&1")](r[d(524,"w7Bv")](r.vxDUD(o,TOTAL),1e3))/10;let s=1;for(const t of this.players)r[d(504,"@7Fb")](t.id,1)||(2===t.id?o:this[d(286,"5F1#")](t.id))>W&&s++;let a=0;for(const W of this[d(547,"qTg[")])W[d(588,"FBUA")]&&a++;usePaperIoStore.getState()[d(422,")e6&")]({score:r[d(606,"hmr]")](W,10),territoryPct:e,aiPct:i,rank:s,alivePlayers:a,territoryChanged:t})}[_0x162d4b(508,"swX#")](){const W=_0x162d4b,o={JINol:function(W,o){return W/o}},t=this[W(292,"FX*@")][0];return t?{x:t[W(234,"y4K4")]*C[W(449,"w7Bv")]+o.JINol(C[W(307,"e)(8")],2),y:t.row*C[W(332,"bnF$")]+C[W(247,"rN&q")]/2}:{x:0,y:0}}[_0x162d4b(398,"Q10f")](){const W=_0x162d4b;this[W(366,"hmr]")](),this[W(381,"S%XK")]=!1,this[W(298,"]IGf")]()}[_0x162d4b(280,"@y5Y")](){const W=_0x162d4b;this[W(463,"wiC)")]=!0,this[W(258,"*ZVC")]=!1,this[W(601,"wcy*")](),this[W(549,"QJjs")]=void 0,this[W(612,"AuTm")]=void 0,this[W(374,"rN&q")]=void 0}}
@@ -1 +0,0 @@
1
- "use strict";const _0x50d350=_0x56ad;!function(){const t=_0x56ad,e=_0x2911();for(;;)try{if(906424==-parseInt(t(463,"aDPf"))/1+-parseInt(t(515,"Fd]O"))/2*(-parseInt(t(458,"Fd]O"))/3)+-parseInt(t(455,"5YAZ"))/4+-parseInt(t(479,"On6$"))/5*(-parseInt(t(494,"t*%C"))/6)+-parseInt(t(459,"9M3F"))/7+-parseInt(t(466,"1hUJ"))/8+parseInt(t(510,"gy)$"))/9*(parseInt(t(482,"lGNl"))/10))break;e.push(e.shift())}catch(t){e.push(e.shift())}}();import{create}from"zustand";import{subscribeWithSelector}from"zustand/middleware";import{PAPER_CONFIG}from"./PaperIoConstants.js";const FULL_TIME=Math.round(PAPER_CONFIG[_0x50d350(505,"t*%C")]/1e3),_0x36cfb8={};_0x36cfb8[_0x50d350(516,"On6$")]=0,_0x36cfb8[_0x50d350(517,"xj*c")]=0,_0x36cfb8[_0x50d350(487,"ox#x")]=0,_0x36cfb8.aiPct=0,_0x36cfb8[_0x50d350(454,"Fd]O")]=1,_0x36cfb8[_0x50d350(464,"gy)$")]=1,_0x36cfb8.timeLeft=FULL_TIME,_0x36cfb8[_0x50d350(503,"f4z(")]=!1,_0x36cfb8[_0x50d350(481,"gy)$")]=!1,_0x36cfb8[_0x50d350(483,"xj*c")]=!1,_0x36cfb8[_0x50d350(485,"9M3F")]=0,_0x36cfb8.stepVersion=0;const INITIAL=_0x36cfb8;export const usePaperIoStore=create()(subscribeWithSelector(t=>({...INITIAL,startGame:()=>{const e=_0x50d350,o={};o[e(472,"VKQ#")]=0,o[e(499,"quDB")]=0,o[e(508,"On6$")]=0,o[e(513,"1hUJ")]=FULL_TIME,o[e(461,"h1#9")]=!1,o[e(468,"Iy^r")]=!0,o[e(473,"OyKm")]=!1,t(o)},stopGame:()=>{const e={};e[_0x50d350(502,"lGNl")]=!1,t(e)},resetGame:()=>{const e=_0x50d350;t(t=>({score:0,territoryPct:0,aiPct:0,rank:1,timeLeft:FULL_TIME,won:!1,isPlaying:!1,gameOver:!1,territoryVersion:t[e(506,"(J13")]+1,stepVersion:t.stepVersion+1}))},setTimeLeft:e=>{t({timeLeft:Math[_0x50d350(490,"@wdm")](0,e)})},setWin:e=>{const o=_0x50d350;t(t=>({won:e,gameOver:!0,isPlaying:!1,best:Math[o(492,"Bn%Z")](t[o(477,"v^t6")],t[o(517,"xj*c")])}))},batchTick:e=>{const o=_0x50d350,r={};r[o(469,"t*%C")]=function(t,e){return t+e};const n=r;t(t=>{const r=o,W={score:e[r(474,"VEgF")],territoryPct:e[r(487,"ox#x")],aiPct:e[r(489,"xj*c")],rank:e[r(501,"@wdm")],alivePlayers:e[r(471,"[3e!")],best:Math[r(462,"9M3F")](e.score,t[r(457,"t*%C")]),stepVersion:n[r(500,"BTda")](t.stepVersion,1)};return e[r(493,"ST%1")]&&(W[r(498,"oni[")]=n[r(460,"#YTU")](t.territoryVersion,1)),W})},batchInit:e=>{const o=_0x50d350;t(t=>({timeLeft:e,territoryVersion:t.territoryVersion+1,stepVersion:t[o(456,"L#bU")]+1}))}})));export const useScore=()=>usePaperIoStore(_temp);function _0x2911(){const t=["BGXEcSonFmklWQ/dIxW","lNhcRNlcVSkcWRWOWPRdImojW59mD8ohW74","hYD+W7tcMw46W6uuwqpdJG","D8k0WOuoW4K","WO0hW4ZcTW","W7FdHx3dS1FdO3RdOmoi","qmoxzW","o8oXWOWVWOvPuCoO","WPjvW7VcSCkNvZxcUJFdM3xdSw4qmty","WOO8WOq5WR0FdCkwbmoFw8oNBmo/cCkr","W69sW73cJSoOweKvW5BdSKLruW","WR0qWRpdJ8oh","lCkjkmo/W4hdQ8kChCosWQu2WRe","BCkMW5jYW7OVq8ojWO5Lvgi","W6xcICokFSonkCkADupdRCojla","WRiJWRGpWOW","W4pcTGZcIr8nbmoF","W6TiW5hcNSoQW5a/WR5hma","W51dWRqbnNzreeSD","WQ8AWOZdNSow","W5Tbj8kE","AmkwWOenW6rTW4pdRW","WPGtW6Hy","uSknW4upWRbQWRj0AIfkl8ob","W5RcKSkYhSkUr2jFW7FcPda","WRDXW4xcGa","W5HgW4Hlnw1WfW","WRxdL8kqmCkDtCoai1ldVCotkmkArq","W4ldIq9lsa","vSk5lW","W6NcHmoB","W4JdRv9MWOy2WOrbWOuaW7fa","pCo8WOG8WQ9pwmo7WPnMq1u","WOPAxSk+","WOtdQfJdLgvCuSomWRPqhSohyq","W4O8z8o8WRW","WRL3W7BdSaHjWRtcNs4","WR5FW5/cKSkz","W49SW4r5W6DtuSk8b8oqACodzG","WQyPWRy+mtRdH8otE2/cTfG","WQJdQxrOW5C","e8oslmodWP3dOSojza","l14dsmol","kmo1WPm4WQnRw8oOWPnvvfqaBmkrWPe","WO0TWPm7WOioemkxfmoMua","WPTCqSk4nq","i3lcOhf+WQdcPSkjWQpdSHamFa","W61jWO/dHCoJW7GbWO4","WP9qqW","nCoJWReMWQTMxCo0WO0","WQZcHX/cR1xdMfddHCo7WO8","W55foCkpCmkqW4ua","EmoJbuz4","W7dcGmorESobdCkzzKpdNSoElCkHsHSI","Fmo2eez+WPGjzZe","W5Twu8o6umkRrs3dPCoNW77dVa","W5VdOWHg","W5HnbmkjsW","WPihW5O","s8oksZNcHW","W5q+Ca","W4jkWQRcMZJcKmooiSo0WRHRw8orW5LWaW","W6qHWOtdHComifJcGaZdTuRdN3q","WOfPoCk6W6NdHSo2W67dQSkDwmoR","g8krkgpdHJ5pD8kEsIfVW4me"];return(_0x2911=function(){return t})()}export const useBest=()=>usePaperIoStore(_temp2);function _0x56ad(t,e){t-=453;const o=_0x2911();let r=o[t];if(void 0===_0x56ad.JbSyaa){const t=function(t,e){let o,r,n=[],W=0,s="";for(t=function(t){let e="",o="";for(let o,r,n=0,W=0;r=t.charAt(W++);~r&&(o=n%4?64*o+r:r,n++%4)?e+=String.fromCharCode(255&o>>(-2*n&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=e.length;t<r;t++)o+="%"+("00"+e.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(o)}(t),r=0;r<256;r++)n[r]=r;for(r=0;r<256;r++)W=(W+n[r]+e.charCodeAt(r%e.length))%256,o=n[r],n[r]=n[W],n[W]=o;r=0,W=0;for(let e=0;e<t.length;e++)r=(r+1)%256,W=(W+n[r])%256,o=n[r],n[r]=n[W],n[W]=o,s+=String.fromCharCode(t.charCodeAt(e)^n[(n[r]+n[W])%256]);return s};_0x56ad.CquHrz=t,_0x56ad.QBhbPb={},_0x56ad.JbSyaa=!0}const n=o[0];_0x56ad.OhHSLN!==n&&(_0x56ad.QBhbPb={},_0x56ad.OhHSLN=n);const W=_0x56ad.QBhbPb[t];return void 0===W?(void 0===_0x56ad.GhnURa&&(_0x56ad.GhnURa=!0),r=_0x56ad.CquHrz(r,e),_0x56ad.QBhbPb[t]=r):r=W,r}export const useTerritoryPct=()=>usePaperIoStore(_temp3);export const useAiPct=()=>usePaperIoStore(_temp4);export const useTimeLeft=()=>usePaperIoStore(_temp5);export const useWon=()=>usePaperIoStore(_temp6);export const useRank=()=>({LzNDX:function(t,e){return t(e)}}[_0x50d350(512,"(J13")](usePaperIoStore,_temp7));export const useAlivePlayers=()=>usePaperIoStore(_temp8);export const useIsPlaying=()=>({mfElg:function(t,e){return t(e)}}[_0x50d350(484,"RFME")](usePaperIoStore,_temp9));export const useGameOver=()=>usePaperIoStore(_temp0);export const useTerritoryVersion=()=>usePaperIoStore(_temp1);export const useStepVersion=()=>usePaperIoStore(_temp10);function _temp(t){return t[_0x50d350(467,"Bn%Z")]}function _temp2(t){return t[_0x50d350(465,"v^t6")]}function _temp3(t){return t[_0x50d350(509,"wQHC")]}function _temp4(t){return t[_0x50d350(491,"XPV(")]}function _temp5(t){return t[_0x50d350(453,"BTda")]}function _temp6(t){return t[_0x50d350(480,"v^t6")]}function _temp7(t){return t[_0x50d350(488,"#YTU")]}function _temp8(t){return t[_0x50d350(511,"9M3F")]}function _temp9(t){return t[_0x50d350(486,"RFME")]}function _temp0(t){return t[_0x50d350(504,"gy)$")]}function _temp1(t){return t[_0x50d350(475,"gy)$")]}function _temp10(t){return t[_0x50d350(476,"(J13")]}