@nayan-ui/games 1.18.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1808) hide show
  1. package/README.md +53 -191
  2. package/lib/module/assets/fonts/Inter-SemiBold.ttf +0 -0
  3. package/lib/module/assets/models/explorer/explorer.glb +0 -0
  4. package/lib/module/assets/models/explorer/params.json +51 -0
  5. package/lib/module/assets/models/explorer/source.json +222 -0
  6. package/lib/module/assets/models/play-with-tua/play-with-tua.glb +0 -0
  7. package/lib/module/assets/models/play-with-tua/sources.json +141 -0
  8. package/lib/module/assets/sfx/balloon_pop.wav +0 -0
  9. package/lib/module/assets/sfx/blocked.wav +0 -0
  10. package/lib/module/assets/sfx/boing.wav +0 -0
  11. package/lib/module/assets/sfx/bonus.wav +0 -0
  12. package/lib/module/assets/sfx/boom.wav +0 -0
  13. package/lib/module/assets/sfx/bump.wav +0 -0
  14. package/lib/module/assets/sfx/cannon.wav +0 -0
  15. package/lib/module/assets/sfx/capture.wav +0 -0
  16. package/lib/module/assets/sfx/card_flip.wav +0 -0
  17. package/lib/module/assets/sfx/card_place.wav +0 -0
  18. package/lib/module/assets/sfx/catch.wav +0 -0
  19. package/lib/module/assets/sfx/chime.wav +0 -0
  20. package/lib/module/assets/sfx/chomp.wav +0 -0
  21. package/lib/module/assets/sfx/chomp_alt.wav +0 -0
  22. package/lib/module/assets/sfx/clack.wav +0 -0
  23. package/lib/module/assets/sfx/clang.wav +0 -0
  24. package/lib/module/assets/sfx/clash.wav +0 -0
  25. package/lib/module/assets/sfx/click.wav +0 -0
  26. package/lib/module/assets/sfx/coin.wav +0 -0
  27. package/lib/module/assets/sfx/combo.wav +0 -0
  28. package/lib/module/assets/sfx/crash.wav +0 -0
  29. package/lib/module/assets/sfx/crunch.wav +0 -0
  30. package/lib/module/assets/sfx/dance.wav +0 -0
  31. package/lib/module/assets/sfx/deselect.wav +0 -0
  32. package/lib/module/assets/sfx/dice_roll.wav +0 -0
  33. package/lib/module/assets/sfx/die.wav +0 -0
  34. package/lib/module/assets/sfx/draw.wav +0 -0
  35. package/lib/module/assets/sfx/drop.wav +0 -0
  36. package/lib/module/assets/sfx/eat.wav +0 -0
  37. package/lib/module/assets/sfx/engine.wav +0 -0
  38. package/lib/module/assets/sfx/error.wav +0 -0
  39. package/lib/module/assets/sfx/flag.wav +0 -0
  40. package/lib/module/assets/sfx/flap.wav +0 -0
  41. package/lib/module/assets/sfx/flip_disc.wav +0 -0
  42. package/lib/module/assets/sfx/footstep_run.wav +0 -0
  43. package/lib/module/assets/sfx/footstep_walk.wav +0 -0
  44. package/lib/module/assets/sfx/game_over.wav +0 -0
  45. package/lib/module/assets/sfx/gate.wav +0 -0
  46. package/lib/module/assets/sfx/hit.wav +0 -0
  47. package/lib/module/assets/sfx/hop.wav +0 -0
  48. package/lib/module/assets/sfx/hurt.wav +0 -0
  49. package/lib/module/assets/sfx/invalid.wav +0 -0
  50. package/lib/module/assets/sfx/jump.wav +0 -0
  51. package/lib/module/assets/sfx/ladder.wav +0 -0
  52. package/lib/module/assets/sfx/land.wav +0 -0
  53. package/lib/module/assets/sfx/laugh.wav +0 -0
  54. package/lib/module/assets/sfx/lose.wav +0 -0
  55. package/lib/module/assets/sfx/merge.wav +0 -0
  56. package/lib/module/assets/sfx/miss.wav +0 -0
  57. package/lib/module/assets/sfx/nitro.wav +0 -0
  58. package/lib/module/assets/sfx/pew.wav +0 -0
  59. package/lib/module/assets/sfx/place.wav +0 -0
  60. package/lib/module/assets/sfx/pling.wav +0 -0
  61. package/lib/module/assets/sfx/point.wav +0 -0
  62. package/lib/module/assets/sfx/pop.wav +0 -0
  63. package/lib/module/assets/sfx/pop_soft.wav +0 -0
  64. package/lib/module/assets/sfx/power_up.wav +0 -0
  65. package/lib/module/assets/sfx/reveal.wav +0 -0
  66. package/lib/module/assets/sfx/robot.wav +0 -0
  67. package/lib/module/assets/sfx/rotate.wav +0 -0
  68. package/lib/module/assets/sfx/run_steps.wav +0 -0
  69. package/lib/module/assets/sfx/select.wav +0 -0
  70. package/lib/module/assets/sfx/shuffle.wav +0 -0
  71. package/lib/module/assets/sfx/six.wav +0 -0
  72. package/lib/module/assets/sfx/slice.wav +0 -0
  73. package/lib/module/assets/sfx/slide.wav +0 -0
  74. package/lib/module/assets/sfx/snake.wav +0 -0
  75. package/lib/module/assets/sfx/snap.wav +0 -0
  76. package/lib/module/assets/sfx/splash.wav +0 -0
  77. package/lib/module/assets/sfx/star.wav +0 -0
  78. package/lib/module/assets/sfx/start.wav +0 -0
  79. package/lib/module/assets/sfx/swoosh.wav +0 -0
  80. package/lib/module/assets/sfx/tap.wav +0 -0
  81. package/lib/module/assets/sfx/thud.wav +0 -0
  82. package/lib/module/assets/sfx/thunk.wav +0 -0
  83. package/lib/module/assets/sfx/tick.wav +0 -0
  84. package/lib/module/assets/sfx/time_up.wav +0 -0
  85. package/lib/module/assets/sfx/tock.wav +0 -0
  86. package/lib/module/assets/sfx/walk_steps.wav +0 -0
  87. package/lib/module/assets/sfx/warning.wav +0 -0
  88. package/lib/module/assets/sfx/whack.wav +0 -0
  89. package/lib/module/assets/sfx/whoosh.wav +0 -0
  90. package/lib/module/assets/sfx/win.wav +0 -0
  91. package/lib/module/assets/sfx/zap.wav +0 -0
  92. package/lib/module/assets/textures/ad_bolt.png +0 -0
  93. package/lib/module/assets/textures/ad_bubbles.png +0 -0
  94. package/lib/module/assets/textures/ad_chevrons.png +0 -0
  95. package/lib/module/assets/textures/asphalt.png +0 -0
  96. package/lib/module/assets/textures/bark.jpg +0 -0
  97. package/lib/module/assets/textures/explorer-atlas.png +0 -0
  98. package/lib/module/assets/textures/facade.png +0 -0
  99. package/lib/module/assets/textures/grass.png +0 -0
  100. package/lib/module/assets/textures/leaves.png +0 -0
  101. package/lib/module/assets/textures/limestone.jpg +0 -0
  102. package/lib/module/assets/textures/meadow.jpg +0 -0
  103. package/lib/module/assets/textures/nature-sources.json +87 -0
  104. package/lib/module/assets/textures/pine.png +0 -0
  105. package/lib/module/assets/textures/river.jpg +0 -0
  106. package/lib/module/assets/textures/soft_glow.png +0 -0
  107. package/lib/module/games/arrows/Arrows.js +1 -1
  108. package/lib/module/games/arrows/ArrowsConstants.js +1 -1
  109. package/lib/module/games/arrows/ArrowsGame.js +1 -0
  110. package/lib/module/games/arrows/ArrowsScene.js +1 -0
  111. package/lib/module/games/balloon-blaster/BalloonBlaster.js +1 -1
  112. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +1 -1
  113. package/lib/module/games/balloon-blaster/BalloonBlasterGame.js +1 -0
  114. package/lib/module/games/balloon-blaster/BalloonBlasterPhysics.js +1 -0
  115. package/lib/module/games/balloon-blaster/BalloonBlasterScene.js +1 -0
  116. package/lib/module/games/bike-racing/BikeMeshes.js +1 -0
  117. package/lib/module/games/bike-racing/BikeRacing.js +1 -1
  118. package/lib/module/games/bike-racing/BikeRacingConstants.js +1 -1
  119. package/lib/module/games/bike-racing/BikeRacingGame.js +1 -0
  120. package/lib/module/games/bike-racing/BikeRacingScene.js +1 -0
  121. package/lib/module/games/block-blast/BlockBlast.js +1 -1
  122. package/lib/module/games/block-blast/BlockBlastConstants.js +1 -1
  123. package/lib/module/games/block-blast/BlockBlastGame.js +1 -0
  124. package/lib/module/games/block-blast/BlockBlastScene.js +1 -0
  125. package/lib/module/games/block-breaker/BlockBreaker.js +1 -1
  126. package/lib/module/games/block-breaker/BlockBreakerConstants.js +1 -1
  127. package/lib/module/games/block-breaker/BlockBreakerGame.js +1 -0
  128. package/lib/module/games/block-breaker/BlockBreakerScene.js +1 -0
  129. package/lib/module/games/bluk/Bluk.js +1 -1
  130. package/lib/module/games/bluk/BlukConstants.js +1 -1
  131. package/lib/module/games/bluk/BlukGame.js +1 -0
  132. package/lib/module/games/bluk/BlukRules.js +1 -0
  133. package/lib/module/games/bluk/BlukScene.js +1 -0
  134. package/lib/module/games/bubble-shooter/BubbleShooter.js +1 -1
  135. package/lib/module/games/bubble-shooter/BubbleShooterConstants.js +1 -1
  136. package/lib/module/games/bubble-shooter/BubbleShooterGame.js +1 -0
  137. package/lib/module/games/bubble-shooter/BubbleShooterScene.js +1 -0
  138. package/lib/module/games/candy-crush/CandyCrush.js +1 -1
  139. package/lib/module/games/candy-crush/CandyCrushConstants.js +1 -1
  140. package/lib/module/games/candy-crush/CandyCrushGame.js +1 -0
  141. package/lib/module/games/candy-crush/CandyCrushScene.js +1 -0
  142. package/lib/module/games/car-racing/CarMeshes.js +1 -0
  143. package/lib/module/games/car-racing/CarRacing.js +1 -1
  144. package/lib/module/games/car-racing/CarRacingConstants.js +1 -1
  145. package/lib/module/games/car-racing/CarRacingFacade.js +1 -0
  146. package/lib/module/games/car-racing/CarRacingGame.js +1 -0
  147. package/lib/module/games/car-racing/CarRacingScene.js +1 -0
  148. package/lib/module/games/car-racing/CarRacingScenery.js +1 -0
  149. package/lib/module/games/chameleon-run/ChameleonRun.js +1 -1
  150. package/lib/module/games/chameleon-run/ChameleonRunBackdrop.js +1 -0
  151. package/lib/module/games/chameleon-run/ChameleonRunConstants.js +1 -1
  152. package/lib/module/games/chameleon-run/ChameleonRunGame.js +1 -0
  153. package/lib/module/games/chameleon-run/ChameleonRunMeshes.js +1 -0
  154. package/lib/module/games/chameleon-run/ChameleonRunRules.js +1 -0
  155. package/lib/module/games/chameleon-run/ChameleonRunScene.js +1 -0
  156. package/lib/module/games/checkers/Checkers.js +1 -1
  157. package/lib/module/games/checkers/CheckersAI.js +1 -0
  158. package/lib/module/games/checkers/CheckersConstants.js +1 -1
  159. package/lib/module/games/checkers/CheckersGame.js +1 -0
  160. package/lib/module/games/checkers/CheckersRules.js +1 -0
  161. package/lib/module/games/checkers/CheckersScene.js +1 -0
  162. package/lib/module/games/color-switch/ColorSwitch.js +1 -1
  163. package/lib/module/games/color-switch/ColorSwitchConstants.js +1 -1
  164. package/lib/module/games/color-switch/ColorSwitchGame.js +1 -0
  165. package/lib/module/games/color-switch/ColorSwitchScene.js +1 -0
  166. package/lib/module/games/colors-sort/ColorsSort.js +1 -1
  167. package/lib/module/games/colors-sort/ColorsSortConstants.js +1 -1
  168. package/lib/module/games/colors-sort/ColorsSortGame.js +1 -0
  169. package/lib/module/games/colors-sort/ColorsSortScene.js +1 -0
  170. package/lib/module/games/connect-em-all/ConnectEmAll.js +1 -1
  171. package/lib/module/games/connect-em-all/ConnectEmAllConstants.js +1 -1
  172. package/lib/module/games/connect-em-all/ConnectEmAllGame.js +1 -0
  173. package/lib/module/games/connect-em-all/ConnectEmAllScene.js +1 -0
  174. package/lib/module/games/crossy-road/CrossyRoad.js +1 -1
  175. package/lib/module/games/crossy-road/CrossyRoadCamera.js +1 -0
  176. package/lib/module/games/crossy-road/CrossyRoadConstants.js +1 -1
  177. package/lib/module/games/crossy-road/CrossyRoadGame.js +1 -0
  178. package/lib/module/games/crossy-road/CrossyRoadMeshes.js +1 -0
  179. package/lib/module/games/crossy-road/CrossyRoadPerson.js +1 -0
  180. package/lib/module/games/crossy-road/CrossyRoadRules.js +1 -0
  181. package/lib/module/games/crossy-road/CrossyRoadScene.js +1 -0
  182. package/lib/module/games/dino-jump/DinoJump.js +1 -1
  183. package/lib/module/games/dino-jump/DinoJumpConstants.js +1 -1
  184. package/lib/module/games/dino-jump/DinoJumpGame.js +1 -0
  185. package/lib/module/games/dino-jump/DinoJumpScene.js +1 -0
  186. package/lib/module/games/dots-and-boxes/DotsAndBoxes.js +1 -1
  187. package/lib/module/games/dots-and-boxes/DotsAndBoxesConstants.js +1 -1
  188. package/lib/module/games/dots-and-boxes/DotsAndBoxesGame.js +1 -0
  189. package/lib/module/games/dots-and-boxes/DotsAndBoxesScene.js +1 -0
  190. package/lib/module/games/falling-sticks/FallingSticks.js +1 -1
  191. package/lib/module/games/falling-sticks/FallingSticksConstants.js +1 -1
  192. package/lib/module/games/falling-sticks/FallingSticksGame.js +1 -0
  193. package/lib/module/games/falling-sticks/FallingSticksRules.js +1 -0
  194. package/lib/module/games/falling-sticks/FallingSticksScene.js +1 -0
  195. package/lib/module/games/find-different-number/FindDifferentNumber.js +1 -1
  196. package/lib/module/games/find-different-number/FindDifferentNumberConstants.js +1 -1
  197. package/lib/module/games/find-different-number/FindDifferentNumberGame.js +1 -0
  198. package/lib/module/games/find-different-number/FindDifferentNumberRules.js +1 -0
  199. package/lib/module/games/find-different-number/FindDifferentNumberScene.js +1 -0
  200. package/lib/module/games/flappy-bird/FlappyBird.js +1 -1
  201. package/lib/module/games/flappy-bird/FlappyBirdConstants.js +1 -1
  202. package/lib/module/games/flappy-bird/FlappyBirdGame.js +1 -0
  203. package/lib/module/games/flappy-bird/FlappyBirdScene.js +1 -0
  204. package/lib/module/games/fruit-merger/FruitMerger.js +1 -1
  205. package/lib/module/games/fruit-merger/FruitMergerConstants.js +1 -1
  206. package/lib/module/games/fruit-merger/FruitMergerGame.js +1 -0
  207. package/lib/module/games/fruit-merger/FruitMergerRules.js +1 -0
  208. package/lib/module/games/fruit-merger/FruitMergerScene.js +1 -0
  209. package/lib/module/games/fruit-ninja/FruitNinja.js +1 -1
  210. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +1 -1
  211. package/lib/module/games/fruit-ninja/FruitNinjaGame.js +1 -0
  212. package/lib/module/games/fruit-ninja/FruitNinjaScene.js +1 -0
  213. package/lib/module/games/fruit-ninja/FruitNinjaWorld.js +1 -0
  214. package/lib/module/games/game-2048/Game2048.js +1 -1
  215. package/lib/module/games/game-2048/Game2048Constants.js +1 -1
  216. package/lib/module/games/game-2048/Game2048Game.js +1 -0
  217. package/lib/module/games/game-2048/Game2048Rules.js +1 -0
  218. package/lib/module/games/game-2048/Game2048Scene.js +1 -0
  219. package/lib/module/games/knife-hit/KnifeHit.js +1 -1
  220. package/lib/module/games/knife-hit/KnifeHitConstants.js +1 -1
  221. package/lib/module/games/knife-hit/KnifeHitGame.js +1 -0
  222. package/lib/module/games/knife-hit/KnifeHitScene.js +1 -0
  223. package/lib/module/games/ludo-king/LudoKing.js +1 -1
  224. package/lib/module/games/ludo-king/LudoKingConstants.js +1 -1
  225. package/lib/module/games/ludo-king/LudoKingGame.js +1 -0
  226. package/lib/module/games/ludo-king/LudoKingRules.js +1 -0
  227. package/lib/module/games/ludo-king/LudoKingScene.js +1 -0
  228. package/lib/module/games/maze-runner/MazeRunner.js +1 -1
  229. package/lib/module/games/maze-runner/MazeRunnerConstants.js +1 -1
  230. package/lib/module/games/maze-runner/MazeRunnerGame.js +1 -0
  231. package/lib/module/games/maze-runner/MazeRunnerRules.js +1 -0
  232. package/lib/module/games/maze-runner/MazeRunnerScene.js +1 -0
  233. package/lib/module/games/memory-match/MemoryMatch.js +1 -1
  234. package/lib/module/games/memory-match/MemoryMatchConstants.js +1 -1
  235. package/lib/module/games/memory-match/MemoryMatchGame.js +1 -0
  236. package/lib/module/games/memory-match/MemoryMatchRules.js +1 -0
  237. package/lib/module/games/memory-match/MemoryMatchScene.js +1 -0
  238. package/lib/module/games/mine-sweeper/MineSweeper.js +1 -1
  239. package/lib/module/games/mine-sweeper/MineSweeperConstants.js +1 -1
  240. package/lib/module/games/mine-sweeper/MineSweeperGame.js +1 -0
  241. package/lib/module/games/mine-sweeper/MineSweeperRules.js +1 -0
  242. package/lib/module/games/mine-sweeper/MineSweeperScene.js +1 -0
  243. package/lib/module/games/mob-control/MobControl.js +1 -1
  244. package/lib/module/games/mob-control/MobControlConstants.js +1 -1
  245. package/lib/module/games/mob-control/MobControlGame.js +1 -0
  246. package/lib/module/games/mob-control/MobControlMeshes.js +1 -0
  247. package/lib/module/games/mob-control/MobControlRenderer.js +1 -0
  248. package/lib/module/games/mob-control/MobControlRules.js +1 -0
  249. package/lib/module/games/mob-control/MobControlScene.js +1 -0
  250. package/lib/module/games/number-search/NumberSearch.js +1 -1
  251. package/lib/module/games/number-search/NumberSearchNumbers.js +1 -0
  252. package/lib/module/games/nuts-and-bolts/NutsAndBolts.js +1 -1
  253. package/lib/module/games/nuts-and-bolts/NutsAndBoltsConstants.js +1 -1
  254. package/lib/module/games/nuts-and-bolts/NutsAndBoltsGame.js +1 -0
  255. package/lib/module/games/nuts-and-bolts/NutsAndBoltsRules.js +1 -0
  256. package/lib/module/games/nuts-and-bolts/NutsAndBoltsScene.js +1 -0
  257. package/lib/module/games/pac-man/PacMan.js +1 -1
  258. package/lib/module/games/pac-man/PacManConstants.js +1 -1
  259. package/lib/module/games/pac-man/PacManGame.js +1 -0
  260. package/lib/module/games/pac-man/PacManRules.js +1 -0
  261. package/lib/module/games/pac-man/PacManScene.js +1 -0
  262. package/lib/module/games/paper-io/PaperIo.js +1 -1
  263. package/lib/module/games/paper-io/PaperIoConstants.js +1 -1
  264. package/lib/module/games/paper-io/PaperIoGame.js +1 -0
  265. package/lib/module/games/paper-io/PaperIoMeshes.js +1 -0
  266. package/lib/module/games/paper-io/PaperIoRules.js +1 -0
  267. package/lib/module/games/paper-io/PaperIoScene.js +1 -0
  268. package/lib/module/games/penguin-run/PenguinMeshes.js +1 -0
  269. package/lib/module/games/penguin-run/PenguinModel.js +1 -0
  270. package/lib/module/games/penguin-run/PenguinRun.js +1 -0
  271. package/lib/module/games/penguin-run/PenguinRunConstants.js +1 -0
  272. package/lib/module/games/penguin-run/PenguinRunGame.js +1 -0
  273. package/lib/module/games/penguin-run/PenguinRunScene.js +1 -0
  274. package/lib/module/games/perfect-circle/PerfectCircle.js +1 -1
  275. package/lib/module/games/perfect-circle/PerfectCircleConstants.js +1 -1
  276. package/lib/module/games/perfect-circle/PerfectCircleGame.js +1 -0
  277. package/lib/module/games/perfect-circle/PerfectCircleRules.js +1 -0
  278. package/lib/module/games/perfect-circle/PerfectCircleScene.js +1 -0
  279. package/lib/module/games/pipe-connect/PipeConnect.js +1 -1
  280. package/lib/module/games/pipe-connect/PipeConnectConstants.js +1 -1
  281. package/lib/module/games/pipe-connect/PipeConnectGame.js +1 -0
  282. package/lib/module/games/pipe-connect/PipeConnectRules.js +1 -0
  283. package/lib/module/games/pipe-connect/PipeConnectScene.js +1 -0
  284. package/lib/module/games/play-with-tua/PlayWithTua.js +1 -0
  285. package/lib/module/games/play-with-tua/PlayWithTuaConstants.js +1 -0
  286. package/lib/module/games/play-with-tua/PlayWithTuaGame.js +1 -0
  287. package/lib/module/games/play-with-tua/PlayWithTuaModel.js +1 -0
  288. package/lib/module/games/play-with-tua/PlayWithTuaScene.js +1 -0
  289. package/lib/module/games/popit-fidget/PopitFidget.js +1 -1
  290. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +1 -1
  291. package/lib/module/games/popit-fidget/PopitFidgetGame.js +1 -0
  292. package/lib/module/games/popit-fidget/PopitFidgetScene.js +1 -0
  293. package/lib/module/games/reversi/Reversi.js +1 -1
  294. package/lib/module/games/reversi/ReversiConstants.js +1 -1
  295. package/lib/module/games/reversi/ReversiGame.js +1 -0
  296. package/lib/module/games/reversi/ReversiRules.js +1 -0
  297. package/lib/module/games/reversi/ReversiScene.js +1 -0
  298. package/lib/module/games/search-grid/SearchGrid.js +1 -0
  299. package/lib/module/games/search-grid/SearchGridConstants.js +1 -0
  300. package/lib/module/games/search-grid/SearchGridGame.js +1 -0
  301. package/lib/module/games/search-grid/SearchGridScene.js +1 -0
  302. package/lib/module/games/shared/BackdropCard.js +1 -0
  303. package/lib/module/games/shared/EngineBackdrop.js +1 -0
  304. package/lib/module/games/shared/EngineBlasts.js +1 -0
  305. package/lib/module/games/shared/EngineBlocks.js +1 -0
  306. package/lib/module/games/shared/EngineControlText.js +1 -0
  307. package/lib/module/games/shared/EngineDice.js +1 -0
  308. package/lib/module/games/shared/EngineFootprint.js +1 -0
  309. package/lib/module/games/shared/EngineFruits.js +1 -0
  310. package/lib/module/games/shared/EngineGameLoader.js +1 -0
  311. package/lib/module/games/shared/EngineGameScreen.js +1 -0
  312. package/lib/module/games/shared/EngineGameWidth.js +1 -0
  313. package/lib/module/games/shared/EngineGameWidth.web.js +1 -0
  314. package/lib/module/games/shared/EngineGlyphs.js +1 -0
  315. package/lib/module/games/shared/EngineHud.js +1 -0
  316. package/lib/module/games/shared/EngineLoading.js +1 -0
  317. package/lib/module/games/shared/EngineMeadow.js +1 -0
  318. package/lib/module/games/shared/EngineMeshCache.js +1 -0
  319. package/lib/module/games/shared/EngineMeshes.js +1 -0
  320. package/lib/module/games/shared/EngineRacingChase.js +1 -0
  321. package/lib/module/games/shared/EngineRacingHandling.js +1 -0
  322. package/lib/module/games/shared/EngineReadyContext.js +1 -0
  323. package/lib/module/games/shared/EngineTilt.js +1 -0
  324. package/lib/module/games/shared/EngineTouchSurface.js +1 -0
  325. package/lib/module/games/shared/EngineUtils.js +1 -0
  326. package/lib/module/games/shared/GameActivity.js +1 -0
  327. package/lib/module/games/shared/GameLoading.js +1 -0
  328. package/lib/module/games/shared/GameLoadingTransition.js +1 -0
  329. package/lib/module/games/shared/ProceduralCacheVersion.js +1 -0
  330. package/lib/module/games/shared/useEngineGame.js +1 -0
  331. package/lib/module/games/shared/useGameResource.js +1 -0
  332. package/lib/module/games/shared/useLiveState.js +1 -0
  333. package/lib/module/games/sliding-numbers/SlidingNumbers.js +1 -1
  334. package/lib/module/games/sliding-numbers/SlidingNumbersConstants.js +1 -1
  335. package/lib/module/games/sliding-numbers/SlidingNumbersGame.js +1 -0
  336. package/lib/module/games/sliding-numbers/SlidingNumbersRules.js +1 -0
  337. package/lib/module/games/sliding-numbers/SlidingNumbersScene.js +1 -0
  338. package/lib/module/games/snake-3d/Snake3D.js +1 -1
  339. package/lib/module/games/snake-3d/Snake3DConstants.js +1 -1
  340. package/lib/module/games/snake-3d/Snake3DGame.js +1 -0
  341. package/lib/module/games/snake-3d/Snake3DMotion.js +1 -0
  342. package/lib/module/games/snake-3d/Snake3DRules.js +1 -0
  343. package/lib/module/games/snake-3d/Snake3DScene.js +1 -0
  344. package/lib/module/games/snakes-and-ladders/SnakesAndLadders.js +1 -1
  345. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersConstants.js +1 -1
  346. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersGame.js +1 -0
  347. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersScene.js +1 -0
  348. package/lib/module/games/space-fighter/SpaceFighter.js +1 -1
  349. package/lib/module/games/space-fighter/SpaceFighterConstants.js +1 -1
  350. package/lib/module/games/space-fighter/SpaceFighterGame.js +1 -0
  351. package/lib/module/games/space-fighter/SpaceFighterScene.js +1 -0
  352. package/lib/module/games/spider-solitaire/SpiderSolitaire.js +1 -1
  353. package/lib/module/games/spider-solitaire/SpiderSolitaireConstants.js +1 -1
  354. package/lib/module/games/spider-solitaire/SpiderSolitaireGame.js +1 -0
  355. package/lib/module/games/spider-solitaire/SpiderSolitaireRules.js +1 -0
  356. package/lib/module/games/spider-solitaire/SpiderSolitaireScene.js +1 -0
  357. package/lib/module/games/stack-tower/StackTower.js +1 -1
  358. package/lib/module/games/stack-tower/StackTowerConstants.js +1 -1
  359. package/lib/module/games/stack-tower/StackTowerGame.js +1 -0
  360. package/lib/module/games/stack-tower/StackTowerScene.js +1 -0
  361. package/lib/module/games/sudoku/Sudoku.js +1 -1
  362. package/lib/module/games/sudoku/SudokuConstants.js +1 -1
  363. package/lib/module/games/sudoku/SudokuGame.js +1 -0
  364. package/lib/module/games/sudoku/SudokuRules.js +1 -0
  365. package/lib/module/games/sudoku/SudokuScene.js +1 -0
  366. package/lib/module/games/tangram/Tangram.js +1 -1
  367. package/lib/module/games/tangram/TangramConstants.js +1 -1
  368. package/lib/module/games/tangram/TangramGame.js +1 -0
  369. package/lib/module/games/tangram/TangramRules.js +1 -0
  370. package/lib/module/games/tangram/TangramScene.js +1 -0
  371. package/lib/module/games/tank-1990/Tank1990.js +1 -1
  372. package/lib/module/games/tank-1990/Tank1990Constants.js +1 -1
  373. package/lib/module/games/tank-1990/Tank1990Game.js +1 -0
  374. package/lib/module/games/tank-1990/Tank1990Rules.js +1 -0
  375. package/lib/module/games/tank-1990/Tank1990Scene.js +1 -0
  376. package/lib/module/games/tic-tac-toe/TicTacToe.js +1 -1
  377. package/lib/module/games/tic-tac-toe/TicTacToeConstants.js +1 -1
  378. package/lib/module/games/tic-tac-toe/TicTacToeGame.js +1 -0
  379. package/lib/module/games/tic-tac-toe/TicTacToeRules.js +1 -0
  380. package/lib/module/games/tic-tac-toe/TicTacToeScene.js +1 -0
  381. package/lib/module/games/tile-home/TileHome.js +1 -1
  382. package/lib/module/games/tile-home/TileHomeConstants.js +1 -1
  383. package/lib/module/games/tile-home/TileHomeGame.js +1 -0
  384. package/lib/module/games/tile-home/TileHomeScene.js +1 -0
  385. package/lib/module/games/treasure-hunt/TreasureHunt.js +1 -0
  386. package/lib/module/games/treasure-hunt/TreasureHuntConstants.js +1 -0
  387. package/lib/module/games/treasure-hunt/TreasureHuntControls.js +1 -0
  388. package/lib/module/games/treasure-hunt/TreasureHuntGame.js +1 -0
  389. package/lib/module/games/treasure-hunt/TreasureHuntMeshes.js +1 -0
  390. package/lib/module/games/treasure-hunt/TreasureHuntModel.js +1 -0
  391. package/lib/module/games/treasure-hunt/TreasureHuntRules.js +1 -0
  392. package/lib/module/games/treasure-hunt/TreasureHuntScene.js +1 -0
  393. package/lib/module/games/whack-a-mole/WhackAMole.js +1 -1
  394. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +1 -1
  395. package/lib/module/games/whack-a-mole/WhackAMoleGame.js +1 -0
  396. package/lib/module/games/whack-a-mole/WhackAMoleScene.js +1 -0
  397. package/lib/module/games/word-search/WordSearch.js +1 -1
  398. package/lib/module/games/word-search/WordSearchWords.js +1 -0
  399. package/lib/module/helpers/GamePatternData.js +1 -0
  400. package/lib/module/helpers/GameSettingsModal.js +1 -1
  401. package/lib/module/helpers/GameTheme.js +1 -0
  402. package/lib/module/helpers/IconPaths.js +1 -0
  403. package/lib/module/helpers/index.js +1 -1
  404. package/lib/module/index.js +1 -1
  405. package/lib/module/services/GameAssetLoader.js +1 -0
  406. package/lib/module/services/GameAssets.js +1 -0
  407. package/lib/module/services/GameLoaders.js +1 -0
  408. package/lib/module/services/GamesConstants.js +1 -1
  409. package/lib/module/services/GamesMetadata.js +1 -1
  410. package/lib/module/services/GamesService.js +1 -1
  411. package/lib/module/services/HapticsService.js +1 -1
  412. package/lib/module/services/ScoringService.js +1 -1
  413. package/lib/module/services/SfxSources.js +1 -0
  414. package/lib/module/services/SoundsService.js +1 -1
  415. package/lib/module/services/ThemeService.js +1 -0
  416. package/lib/module/services/UtilsService.js +1 -1
  417. package/lib/module/services/index.js +1 -1
  418. package/lib/typescript/src/games/arrows/Arrows.d.ts +1 -3
  419. package/lib/typescript/src/games/arrows/ArrowsConstants.d.ts +48 -32
  420. package/lib/typescript/src/games/arrows/ArrowsGame.d.ts +60 -0
  421. package/lib/typescript/src/games/arrows/ArrowsScene.d.ts +67 -0
  422. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts +1 -3
  423. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +39 -131
  424. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterGame.d.ts +57 -0
  425. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterPhysics.d.ts +16 -0
  426. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterScene.d.ts +31 -0
  427. package/lib/typescript/src/games/bike-racing/BikeMeshes.d.ts +14 -0
  428. package/lib/typescript/src/games/bike-racing/BikeRacing.d.ts +2 -1
  429. package/lib/typescript/src/games/bike-racing/BikeRacingConstants.d.ts +38 -29
  430. package/lib/typescript/src/games/bike-racing/BikeRacingGame.d.ts +104 -0
  431. package/lib/typescript/src/games/bike-racing/BikeRacingScene.d.ts +25 -0
  432. package/lib/typescript/src/games/block-blast/BlockBlast.d.ts +1 -3
  433. package/lib/typescript/src/games/block-blast/BlockBlastConstants.d.ts +48 -30
  434. package/lib/typescript/src/games/block-blast/BlockBlastGame.d.ts +77 -0
  435. package/lib/typescript/src/games/block-blast/BlockBlastScene.d.ts +36 -0
  436. package/lib/typescript/src/games/block-breaker/BlockBreaker.d.ts +1 -3
  437. package/lib/typescript/src/games/block-breaker/BlockBreakerConstants.d.ts +88 -35
  438. package/lib/typescript/src/games/block-breaker/BlockBreakerGame.d.ts +82 -0
  439. package/lib/typescript/src/games/block-breaker/BlockBreakerScene.d.ts +48 -0
  440. package/lib/typescript/src/games/bluk/Bluk.d.ts +1 -3
  441. package/lib/typescript/src/games/bluk/BlukConstants.d.ts +65 -54
  442. package/lib/typescript/src/games/bluk/BlukGame.d.ts +65 -0
  443. package/lib/typescript/src/games/bluk/BlukRules.d.ts +51 -0
  444. package/lib/typescript/src/games/bluk/BlukScene.d.ts +54 -0
  445. package/lib/typescript/src/games/bubble-shooter/BubbleShooter.d.ts +1 -3
  446. package/lib/typescript/src/games/bubble-shooter/BubbleShooterConstants.d.ts +56 -24
  447. package/lib/typescript/src/games/bubble-shooter/BubbleShooterGame.d.ts +70 -0
  448. package/lib/typescript/src/games/bubble-shooter/BubbleShooterScene.d.ts +26 -0
  449. package/lib/typescript/src/games/candy-crush/CandyCrush.d.ts +1 -3
  450. package/lib/typescript/src/games/candy-crush/CandyCrushConstants.d.ts +63 -32
  451. package/lib/typescript/src/games/candy-crush/CandyCrushGame.d.ts +65 -0
  452. package/lib/typescript/src/games/candy-crush/CandyCrushScene.d.ts +28 -0
  453. package/lib/typescript/src/games/car-racing/CarMeshes.d.ts +44 -0
  454. package/lib/typescript/src/games/car-racing/CarRacing.d.ts +2 -1
  455. package/lib/typescript/src/games/car-racing/CarRacingConstants.d.ts +60 -29
  456. package/lib/typescript/src/games/car-racing/CarRacingFacade.d.ts +5 -0
  457. package/lib/typescript/src/games/car-racing/CarRacingGame.d.ts +96 -0
  458. package/lib/typescript/src/games/car-racing/CarRacingScene.d.ts +97 -0
  459. package/lib/typescript/src/games/car-racing/CarRacingScenery.d.ts +22 -0
  460. package/lib/typescript/src/games/chameleon-run/ChameleonRun.d.ts +1 -3
  461. package/lib/typescript/src/games/chameleon-run/ChameleonRunBackdrop.d.ts +14 -0
  462. package/lib/typescript/src/games/chameleon-run/ChameleonRunConstants.d.ts +44 -42
  463. package/lib/typescript/src/games/chameleon-run/ChameleonRunGame.d.ts +60 -0
  464. package/lib/typescript/src/games/chameleon-run/ChameleonRunMeshes.d.ts +20 -0
  465. package/lib/typescript/src/games/chameleon-run/ChameleonRunRules.d.ts +52 -0
  466. package/lib/typescript/src/games/chameleon-run/ChameleonRunScene.d.ts +44 -0
  467. package/lib/typescript/src/games/checkers/Checkers.d.ts +1 -3
  468. package/lib/typescript/src/games/checkers/CheckersAI.d.ts +11 -0
  469. package/lib/typescript/src/games/checkers/CheckersConstants.d.ts +32 -72
  470. package/lib/typescript/src/games/checkers/CheckersGame.d.ts +56 -0
  471. package/lib/typescript/src/games/checkers/CheckersRules.d.ts +48 -0
  472. package/lib/typescript/src/games/checkers/CheckersScene.d.ts +41 -0
  473. package/lib/typescript/src/games/color-switch/ColorSwitch.d.ts +1 -3
  474. package/lib/typescript/src/games/color-switch/ColorSwitchConstants.d.ts +27 -31
  475. package/lib/typescript/src/games/color-switch/ColorSwitchGame.d.ts +61 -0
  476. package/lib/typescript/src/games/color-switch/ColorSwitchScene.d.ts +43 -0
  477. package/lib/typescript/src/games/colors-sort/ColorsSort.d.ts +1 -3
  478. package/lib/typescript/src/games/colors-sort/ColorsSortConstants.d.ts +37 -44
  479. package/lib/typescript/src/games/colors-sort/ColorsSortGame.d.ts +41 -0
  480. package/lib/typescript/src/games/colors-sort/ColorsSortScene.d.ts +33 -0
  481. package/lib/typescript/src/games/connect-em-all/ConnectEmAll.d.ts +1 -3
  482. package/lib/typescript/src/games/connect-em-all/ConnectEmAllConstants.d.ts +43 -17
  483. package/lib/typescript/src/games/connect-em-all/ConnectEmAllGame.d.ts +54 -0
  484. package/lib/typescript/src/games/connect-em-all/ConnectEmAllScene.d.ts +49 -0
  485. package/lib/typescript/src/games/crossy-road/CrossyRoad.d.ts +1 -3
  486. package/lib/typescript/src/games/crossy-road/CrossyRoadCamera.d.ts +14 -0
  487. package/lib/typescript/src/games/crossy-road/CrossyRoadConstants.d.ts +82 -50
  488. package/lib/typescript/src/games/crossy-road/CrossyRoadGame.d.ts +64 -0
  489. package/lib/typescript/src/games/crossy-road/CrossyRoadMeshes.d.ts +16 -0
  490. package/lib/typescript/src/games/crossy-road/CrossyRoadPerson.d.ts +10 -0
  491. package/lib/typescript/src/games/crossy-road/CrossyRoadRules.d.ts +36 -0
  492. package/lib/typescript/src/games/crossy-road/CrossyRoadScene.d.ts +38 -0
  493. package/lib/typescript/src/games/dino-jump/DinoJump.d.ts +1 -3
  494. package/lib/typescript/src/games/dino-jump/DinoJumpConstants.d.ts +48 -72
  495. package/lib/typescript/src/games/dino-jump/DinoJumpGame.d.ts +60 -0
  496. package/lib/typescript/src/games/dino-jump/DinoJumpScene.d.ts +35 -0
  497. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxes.d.ts +1 -3
  498. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesConstants.d.ts +31 -36
  499. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesGame.d.ts +44 -0
  500. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesScene.d.ts +31 -0
  501. package/lib/typescript/src/games/falling-sticks/FallingSticks.d.ts +1 -3
  502. package/lib/typescript/src/games/falling-sticks/FallingSticksConstants.d.ts +31 -43
  503. package/lib/typescript/src/games/falling-sticks/FallingSticksGame.d.ts +42 -0
  504. package/lib/typescript/src/games/falling-sticks/FallingSticksRules.d.ts +36 -0
  505. package/lib/typescript/src/games/falling-sticks/FallingSticksScene.d.ts +26 -0
  506. package/lib/typescript/src/games/find-different-number/FindDifferentNumber.d.ts +1 -3
  507. package/lib/typescript/src/games/find-different-number/FindDifferentNumberConstants.d.ts +33 -29
  508. package/lib/typescript/src/games/find-different-number/FindDifferentNumberGame.d.ts +43 -0
  509. package/lib/typescript/src/games/find-different-number/FindDifferentNumberRules.d.ts +8 -0
  510. package/lib/typescript/src/games/find-different-number/FindDifferentNumberScene.d.ts +31 -0
  511. package/lib/typescript/src/games/flappy-bird/FlappyBird.d.ts +1 -3
  512. package/lib/typescript/src/games/flappy-bird/FlappyBirdConstants.d.ts +39 -35
  513. package/lib/typescript/src/games/flappy-bird/FlappyBirdGame.d.ts +66 -0
  514. package/lib/typescript/src/games/flappy-bird/FlappyBirdScene.d.ts +41 -0
  515. package/lib/typescript/src/games/fruit-merger/FruitMerger.d.ts +1 -3
  516. package/lib/typescript/src/games/fruit-merger/FruitMergerConstants.d.ts +71 -44
  517. package/lib/typescript/src/games/fruit-merger/FruitMergerGame.d.ts +63 -0
  518. package/lib/typescript/src/games/fruit-merger/FruitMergerRules.d.ts +39 -0
  519. package/lib/typescript/src/games/fruit-merger/FruitMergerScene.d.ts +49 -0
  520. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +1 -3
  521. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +51 -76
  522. package/lib/typescript/src/games/fruit-ninja/FruitNinjaGame.d.ts +76 -0
  523. package/lib/typescript/src/games/fruit-ninja/FruitNinjaScene.d.ts +52 -0
  524. package/lib/typescript/src/games/fruit-ninja/FruitNinjaWorld.d.ts +8 -0
  525. package/lib/typescript/src/games/game-2048/Game2048.d.ts +1 -3
  526. package/lib/typescript/src/games/game-2048/Game2048Constants.d.ts +25 -120
  527. package/lib/typescript/src/games/game-2048/Game2048Game.d.ts +45 -0
  528. package/lib/typescript/src/games/game-2048/Game2048Rules.d.ts +32 -0
  529. package/lib/typescript/src/games/game-2048/Game2048Scene.d.ts +34 -0
  530. package/lib/typescript/src/games/knife-hit/KnifeHit.d.ts +1 -3
  531. package/lib/typescript/src/games/knife-hit/KnifeHitConstants.d.ts +41 -49
  532. package/lib/typescript/src/games/knife-hit/KnifeHitGame.d.ts +49 -0
  533. package/lib/typescript/src/games/knife-hit/KnifeHitScene.d.ts +37 -0
  534. package/lib/typescript/src/games/ludo-king/LudoKing.d.ts +1 -3
  535. package/lib/typescript/src/games/ludo-king/LudoKingConstants.d.ts +50 -28
  536. package/lib/typescript/src/games/ludo-king/LudoKingGame.d.ts +40 -0
  537. package/lib/typescript/src/games/ludo-king/LudoKingRules.d.ts +42 -0
  538. package/lib/typescript/src/games/ludo-king/LudoKingScene.d.ts +53 -0
  539. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -3
  540. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +34 -10
  541. package/lib/typescript/src/games/maze-runner/MazeRunnerGame.d.ts +44 -0
  542. package/lib/typescript/src/games/maze-runner/MazeRunnerRules.d.ts +34 -0
  543. package/lib/typescript/src/games/maze-runner/MazeRunnerScene.d.ts +29 -0
  544. package/lib/typescript/src/games/memory-match/MemoryMatch.d.ts +1 -3
  545. package/lib/typescript/src/games/memory-match/MemoryMatchConstants.d.ts +42 -42
  546. package/lib/typescript/src/games/memory-match/MemoryMatchGame.d.ts +53 -0
  547. package/lib/typescript/src/games/memory-match/MemoryMatchRules.d.ts +14 -0
  548. package/lib/typescript/src/games/memory-match/MemoryMatchScene.d.ts +35 -0
  549. package/lib/typescript/src/games/mine-sweeper/MineSweeper.d.ts +1 -3
  550. package/lib/typescript/src/games/mine-sweeper/MineSweeperConstants.d.ts +43 -82
  551. package/lib/typescript/src/games/mine-sweeper/MineSweeperGame.d.ts +59 -0
  552. package/lib/typescript/src/games/mine-sweeper/MineSweeperRules.d.ts +18 -0
  553. package/lib/typescript/src/games/mine-sweeper/MineSweeperScene.d.ts +23 -0
  554. package/lib/typescript/src/games/mob-control/MobControl.d.ts +1 -3
  555. package/lib/typescript/src/games/mob-control/MobControlConstants.d.ts +99 -85
  556. package/lib/typescript/src/games/mob-control/MobControlGame.d.ts +45 -0
  557. package/lib/typescript/src/games/mob-control/MobControlMeshes.d.ts +2 -0
  558. package/lib/typescript/src/games/mob-control/MobControlRenderer.d.ts +20 -0
  559. package/lib/typescript/src/games/mob-control/MobControlRules.d.ts +68 -0
  560. package/lib/typescript/src/games/mob-control/MobControlScene.d.ts +58 -0
  561. package/lib/typescript/src/games/number-search/NumberSearch.d.ts +1 -3
  562. package/lib/typescript/src/games/number-search/NumberSearchNumbers.d.ts +1 -0
  563. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBolts.d.ts +1 -3
  564. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsConstants.d.ts +27 -79
  565. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsGame.d.ts +56 -0
  566. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsRules.d.ts +65 -0
  567. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsScene.d.ts +48 -0
  568. package/lib/typescript/src/games/pac-man/PacMan.d.ts +1 -3
  569. package/lib/typescript/src/games/pac-man/PacManConstants.d.ts +66 -106
  570. package/lib/typescript/src/games/pac-man/PacManGame.d.ts +48 -0
  571. package/lib/typescript/src/games/pac-man/PacManRules.d.ts +52 -0
  572. package/lib/typescript/src/games/pac-man/PacManScene.d.ts +44 -0
  573. package/lib/typescript/src/games/paper-io/PaperIo.d.ts +1 -3
  574. package/lib/typescript/src/games/paper-io/PaperIoConstants.d.ts +60 -40
  575. package/lib/typescript/src/games/paper-io/PaperIoGame.d.ts +49 -0
  576. package/lib/typescript/src/games/paper-io/PaperIoMeshes.d.ts +13 -0
  577. package/lib/typescript/src/games/paper-io/PaperIoRules.d.ts +71 -0
  578. package/lib/typescript/src/games/paper-io/PaperIoScene.d.ts +39 -0
  579. package/lib/typescript/src/games/penguin-run/PenguinMeshes.d.ts +9 -0
  580. package/lib/typescript/src/games/penguin-run/PenguinModel.d.ts +42 -0
  581. package/lib/typescript/src/games/penguin-run/PenguinRun.d.ts +1 -0
  582. package/lib/typescript/src/games/penguin-run/PenguinRunConstants.d.ts +58 -0
  583. package/lib/typescript/src/games/penguin-run/PenguinRunGame.d.ts +64 -0
  584. package/lib/typescript/src/games/penguin-run/PenguinRunScene.d.ts +65 -0
  585. package/lib/typescript/src/games/perfect-circle/PerfectCircle.d.ts +1 -3
  586. package/lib/typescript/src/games/perfect-circle/PerfectCircleConstants.d.ts +23 -45
  587. package/lib/typescript/src/games/perfect-circle/PerfectCircleGame.d.ts +40 -0
  588. package/lib/typescript/src/games/perfect-circle/PerfectCircleRules.d.ts +55 -0
  589. package/lib/typescript/src/games/perfect-circle/PerfectCircleScene.d.ts +32 -0
  590. package/lib/typescript/src/games/pipe-connect/PipeConnect.d.ts +1 -3
  591. package/lib/typescript/src/games/pipe-connect/PipeConnectConstants.d.ts +36 -32
  592. package/lib/typescript/src/games/pipe-connect/PipeConnectGame.d.ts +40 -0
  593. package/lib/typescript/src/games/pipe-connect/PipeConnectRules.d.ts +16 -0
  594. package/lib/typescript/src/games/pipe-connect/PipeConnectScene.d.ts +28 -0
  595. package/lib/typescript/src/games/play-with-tua/PlayWithTua.d.ts +2 -0
  596. package/lib/typescript/src/games/play-with-tua/PlayWithTuaConstants.d.ts +64 -0
  597. package/lib/typescript/src/games/play-with-tua/PlayWithTuaGame.d.ts +34 -0
  598. package/lib/typescript/src/games/play-with-tua/PlayWithTuaModel.d.ts +9 -0
  599. package/lib/typescript/src/games/play-with-tua/PlayWithTuaScene.d.ts +13 -0
  600. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +1 -4
  601. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +25 -36
  602. package/lib/typescript/src/games/popit-fidget/PopitFidgetGame.d.ts +37 -0
  603. package/lib/typescript/src/games/popit-fidget/PopitFidgetScene.d.ts +19 -0
  604. package/lib/typescript/src/games/reversi/Reversi.d.ts +1 -3
  605. package/lib/typescript/src/games/reversi/ReversiConstants.d.ts +31 -62
  606. package/lib/typescript/src/games/reversi/ReversiGame.d.ts +54 -0
  607. package/lib/typescript/src/games/reversi/ReversiRules.d.ts +22 -0
  608. package/lib/typescript/src/games/reversi/ReversiScene.d.ts +27 -0
  609. package/lib/typescript/src/games/search-grid/SearchGrid.d.ts +20 -0
  610. package/lib/typescript/src/games/search-grid/SearchGridConstants.d.ts +60 -0
  611. package/lib/typescript/src/games/search-grid/SearchGridGame.d.ts +52 -0
  612. package/lib/typescript/src/games/search-grid/SearchGridScene.d.ts +43 -0
  613. package/lib/typescript/src/games/shared/BackdropCard.d.ts +2 -0
  614. package/lib/typescript/src/games/shared/EngineBackdrop.d.ts +19 -0
  615. package/lib/typescript/src/games/shared/EngineBlasts.d.ts +26 -0
  616. package/lib/typescript/src/games/shared/EngineBlocks.d.ts +19 -0
  617. package/lib/typescript/src/games/shared/EngineControlText.d.ts +2 -0
  618. package/lib/typescript/src/games/shared/EngineDice.d.ts +24 -0
  619. package/lib/typescript/src/games/shared/EngineFootprint.d.ts +17 -0
  620. package/lib/typescript/src/games/shared/EngineFruits.d.ts +27 -0
  621. package/lib/typescript/src/games/shared/EngineGameLoader.d.ts +4 -0
  622. package/lib/typescript/src/games/shared/EngineGameScreen.d.ts +48 -0
  623. package/lib/typescript/src/games/shared/EngineGameWidth.d.ts +3 -0
  624. package/lib/typescript/src/games/shared/EngineGameWidth.web.d.ts +3 -0
  625. package/lib/typescript/src/games/shared/EngineGlyphs.d.ts +15 -0
  626. package/lib/typescript/src/games/shared/EngineHud.d.ts +138 -0
  627. package/lib/typescript/src/games/shared/EngineLoading.d.ts +77 -0
  628. package/lib/typescript/src/games/shared/EngineMeadow.d.ts +90 -0
  629. package/lib/typescript/src/games/shared/EngineMeshCache.d.ts +3 -0
  630. package/lib/typescript/src/games/shared/EngineMeshes.d.ts +3 -0
  631. package/lib/typescript/src/games/shared/EngineRacingChase.d.ts +11 -0
  632. package/lib/typescript/src/games/shared/EngineRacingHandling.d.ts +15 -0
  633. package/lib/typescript/src/games/shared/EngineReadyContext.d.ts +2 -0
  634. package/lib/typescript/src/games/shared/EngineTilt.d.ts +19 -0
  635. package/lib/typescript/src/games/shared/EngineTouchSurface.d.ts +20 -0
  636. package/lib/typescript/src/games/shared/EngineUtils.d.ts +18 -0
  637. package/lib/typescript/src/games/shared/GameActivity.d.ts +3 -0
  638. package/lib/typescript/src/games/shared/GameLoading.d.ts +14 -0
  639. package/lib/typescript/src/games/shared/GameLoadingTransition.d.ts +9 -0
  640. package/lib/typescript/src/games/shared/ProceduralCacheVersion.d.ts +1 -0
  641. package/lib/typescript/src/games/shared/useEngineGame.d.ts +69 -0
  642. package/lib/typescript/src/games/shared/useGameResource.d.ts +2 -0
  643. package/lib/typescript/src/games/shared/useLiveState.d.ts +4 -0
  644. package/lib/typescript/src/games/sliding-numbers/SlidingNumbers.d.ts +1 -3
  645. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersConstants.d.ts +32 -40
  646. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersGame.d.ts +48 -0
  647. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersRules.d.ts +22 -0
  648. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersScene.d.ts +30 -0
  649. package/lib/typescript/src/games/snake-3d/Snake3D.d.ts +1 -3
  650. package/lib/typescript/src/games/snake-3d/Snake3DConstants.d.ts +31 -68
  651. package/lib/typescript/src/games/snake-3d/Snake3DGame.d.ts +42 -0
  652. package/lib/typescript/src/games/snake-3d/Snake3DMotion.d.ts +3 -0
  653. package/lib/typescript/src/games/snake-3d/Snake3DRules.d.ts +42 -0
  654. package/lib/typescript/src/games/snake-3d/Snake3DScene.d.ts +35 -0
  655. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLadders.d.ts +1 -3
  656. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersConstants.d.ts +58 -50
  657. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersGame.d.ts +45 -0
  658. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersScene.d.ts +50 -0
  659. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +1 -3
  660. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +33 -23
  661. package/lib/typescript/src/games/space-fighter/SpaceFighterGame.d.ts +58 -0
  662. package/lib/typescript/src/games/space-fighter/SpaceFighterScene.d.ts +51 -0
  663. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaire.d.ts +1 -3
  664. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireConstants.d.ts +52 -35
  665. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireGame.d.ts +67 -0
  666. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireRules.d.ts +39 -0
  667. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireScene.d.ts +60 -0
  668. package/lib/typescript/src/games/stack-tower/StackTower.d.ts +1 -3
  669. package/lib/typescript/src/games/stack-tower/StackTowerConstants.d.ts +31 -23
  670. package/lib/typescript/src/games/stack-tower/StackTowerGame.d.ts +58 -0
  671. package/lib/typescript/src/games/stack-tower/StackTowerScene.d.ts +27 -0
  672. package/lib/typescript/src/games/sudoku/Sudoku.d.ts +1 -3
  673. package/lib/typescript/src/games/sudoku/SudokuConstants.d.ts +50 -55
  674. package/lib/typescript/src/games/sudoku/SudokuGame.d.ts +56 -0
  675. package/lib/typescript/src/games/sudoku/SudokuRules.d.ts +23 -0
  676. package/lib/typescript/src/games/sudoku/SudokuScene.d.ts +44 -0
  677. package/lib/typescript/src/games/tangram/Tangram.d.ts +1 -3
  678. package/lib/typescript/src/games/tangram/TangramConstants.d.ts +33 -52
  679. package/lib/typescript/src/games/tangram/TangramGame.d.ts +68 -0
  680. package/lib/typescript/src/games/tangram/TangramRules.d.ts +61 -0
  681. package/lib/typescript/src/games/tangram/TangramScene.d.ts +42 -0
  682. package/lib/typescript/src/games/tank-1990/Tank1990.d.ts +1 -3
  683. package/lib/typescript/src/games/tank-1990/Tank1990Constants.d.ts +44 -127
  684. package/lib/typescript/src/games/tank-1990/Tank1990Game.d.ts +50 -0
  685. package/lib/typescript/src/games/tank-1990/Tank1990Rules.d.ts +67 -0
  686. package/lib/typescript/src/games/tank-1990/Tank1990Scene.d.ts +38 -0
  687. package/lib/typescript/src/games/tic-tac-toe/TicTacToe.d.ts +1 -3
  688. package/lib/typescript/src/games/tic-tac-toe/TicTacToeConstants.d.ts +35 -72
  689. package/lib/typescript/src/games/tic-tac-toe/TicTacToeGame.d.ts +54 -0
  690. package/lib/typescript/src/games/tic-tac-toe/TicTacToeRules.d.ts +10 -0
  691. package/lib/typescript/src/games/tic-tac-toe/TicTacToeScene.d.ts +26 -0
  692. package/lib/typescript/src/games/tile-home/TileHome.d.ts +1 -3
  693. package/lib/typescript/src/games/tile-home/TileHomeConstants.d.ts +72 -70
  694. package/lib/typescript/src/games/tile-home/TileHomeGame.d.ts +72 -0
  695. package/lib/typescript/src/games/tile-home/TileHomeScene.d.ts +28 -0
  696. package/lib/typescript/src/games/treasure-hunt/TreasureHunt.d.ts +3 -0
  697. package/lib/typescript/src/games/treasure-hunt/TreasureHuntConstants.d.ts +144 -0
  698. package/lib/typescript/src/games/treasure-hunt/TreasureHuntControls.d.ts +75 -0
  699. package/lib/typescript/src/games/treasure-hunt/TreasureHuntGame.d.ts +41 -0
  700. package/lib/typescript/src/games/treasure-hunt/TreasureHuntMeshes.d.ts +26 -0
  701. package/lib/typescript/src/games/treasure-hunt/TreasureHuntModel.d.ts +57 -0
  702. package/lib/typescript/src/games/treasure-hunt/TreasureHuntRules.d.ts +198 -0
  703. package/lib/typescript/src/games/treasure-hunt/TreasureHuntScene.d.ts +40 -0
  704. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts +1 -3
  705. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +35 -45
  706. package/lib/typescript/src/games/whack-a-mole/WhackAMoleGame.d.ts +51 -0
  707. package/lib/typescript/src/games/whack-a-mole/WhackAMoleScene.d.ts +31 -0
  708. package/lib/typescript/src/games/word-search/WordSearch.d.ts +1 -3
  709. package/lib/typescript/src/games/word-search/WordSearchWords.d.ts +1 -0
  710. package/lib/typescript/src/helpers/GamePatternData.d.ts +46 -0
  711. package/lib/typescript/src/helpers/GameSettingsModal.d.ts +1 -1
  712. package/lib/typescript/src/helpers/GameTheme.d.ts +18 -0
  713. package/lib/typescript/src/helpers/IconPaths.d.ts +4 -0
  714. package/lib/typescript/src/helpers/index.d.ts +1 -19
  715. package/lib/typescript/src/index.d.ts +3 -0
  716. package/lib/typescript/src/services/GameAssetLoader.d.ts +32 -0
  717. package/lib/typescript/src/services/GameAssets.d.ts +11 -0
  718. package/lib/typescript/src/services/GameLoaders.d.ts +18 -0
  719. package/lib/typescript/src/services/GamesConstants.d.ts +11 -0
  720. package/lib/typescript/src/services/GamesMetadata.d.ts +2 -0
  721. package/lib/typescript/src/services/HapticsService.d.ts +1 -1
  722. package/lib/typescript/src/services/SfxSources.d.ts +79 -0
  723. package/lib/typescript/src/services/SoundsService.d.ts +487 -1566
  724. package/lib/typescript/src/services/ThemeService.d.ts +117 -0
  725. package/lib/typescript/src/services/UtilsService.d.ts +20 -2
  726. package/lib/typescript/src/services/index.d.ts +3 -0
  727. package/lib/web/assets/005ea2045b17-explorer.glb +0 -0
  728. package/lib/web/assets/01e2f0a0bbf6-hurt.wav +0 -0
  729. package/lib/web/assets/01fc0ecf658c-explorer-atlas.png +0 -0
  730. package/lib/web/assets/029329b2c7c0-asphalt.png +0 -0
  731. package/lib/web/assets/0376bda32be3-robot.wav +0 -0
  732. package/lib/web/assets/0719fb0bb38e-soft_glow.png +0 -0
  733. package/lib/web/assets/0b21278bffba-boing.wav +0 -0
  734. package/lib/web/assets/1333c9d1273c-flip_disc.wav +0 -0
  735. package/lib/web/assets/15785f62ee5f-time_up.wav +0 -0
  736. package/lib/web/assets/177f00502e08-bonus.wav +0 -0
  737. package/lib/web/assets/19e47dcfda1f-pling.wav +0 -0
  738. package/lib/web/assets/1a677e0f7f6c-laugh.wav +0 -0
  739. package/lib/web/assets/1ad2914478b1-eat.wav +0 -0
  740. package/lib/web/assets/1b0d703ddd1a-dance.wav +0 -0
  741. package/lib/web/assets/1e4330fddd74-chime.wav +0 -0
  742. package/lib/web/assets/2432a97b0af1-cannon.wav +0 -0
  743. package/lib/web/assets/2574370d6aa0-blocked.wav +0 -0
  744. package/lib/web/assets/2699065037ad-select.wav +0 -0
  745. package/lib/web/assets/28d30f53ad73-ladder.wav +0 -0
  746. package/lib/web/assets/2c1ec05270b2-point.wav +0 -0
  747. package/lib/web/assets/2e1dd99a0213-tick.wav +0 -0
  748. package/lib/web/assets/3084575cecdb-card_flip.wav +0 -0
  749. package/lib/web/assets/308bc31b6af5-engine.wav +0 -0
  750. package/lib/web/assets/336d63b739b5-combo.wav +0 -0
  751. package/lib/web/assets/3a369e2596e4-clash.wav +0 -0
  752. package/lib/web/assets/3a816e20212f-capture.wav +0 -0
  753. package/lib/web/assets/40240217810a-nitro.wav +0 -0
  754. package/lib/web/assets/46edaa54d1ea-crunch.wav +0 -0
  755. package/lib/web/assets/501994226995-coin.wav +0 -0
  756. package/lib/web/assets/5525d7f6a4b8-rotate.wav +0 -0
  757. package/lib/web/assets/5e816e1f0929-dice_roll.wav +0 -0
  758. package/lib/web/assets/60e2dec3cf41-deselect.wav +0 -0
  759. package/lib/web/assets/6ab86ea29e5c-six.wav +0 -0
  760. package/lib/web/assets/6da3b101926d-merge.wav +0 -0
  761. package/lib/web/assets/6e686dea513c-bark.jpg +0 -0
  762. package/lib/web/assets/6ff9a6a13714-limestone.jpg +0 -0
  763. package/lib/web/assets/735c4a1cd22e-invalid.wav +0 -0
  764. package/lib/web/assets/73f75c35ff5d-snake.wav +0 -0
  765. package/lib/web/assets/7506e3efe264-catch.wav +0 -0
  766. package/lib/web/assets/76493a2ada2d-ad_bolt.png +0 -0
  767. package/lib/web/assets/793abe620201-card_place.wav +0 -0
  768. package/lib/web/assets/7da09c57f52d-facade.png +0 -0
  769. package/lib/web/assets/7e1a902176f6-pine.png +0 -0
  770. package/lib/web/assets/7eb943b85c21-play-with-tua.glb +0 -0
  771. package/lib/web/assets/837d43c06dba-ad_bubbles.png +0 -0
  772. package/lib/web/assets/84f1a7dfa368-game_over.wav +0 -0
  773. package/lib/web/assets/850e26ce3b0a-flap.wav +0 -0
  774. package/lib/web/assets/854b31683cb2-draw.wav +0 -0
  775. package/lib/web/assets/8616150393b7-error.wav +0 -0
  776. package/lib/web/assets/87cc6d503ec6-river.jpg +0 -0
  777. package/lib/web/assets/88755845922c-hop.wav +0 -0
  778. package/lib/web/assets/8ec8f469492d-chomp_alt.wav +0 -0
  779. package/lib/web/assets/8f17f89b138c-pew.wav +0 -0
  780. package/lib/web/assets/9210a24472d1-place.wav +0 -0
  781. package/lib/web/assets/930d833ebf89-splash.wav +0 -0
  782. package/lib/web/assets/970f7c59265d-swoosh.wav +0 -0
  783. package/lib/web/assets/9900b8d1b6ad-flag.wav +0 -0
  784. package/lib/web/assets/9ab04403898b-clang.wav +0 -0
  785. package/lib/web/assets/9d8b97a10d45-drop.wav +0 -0
  786. package/lib/web/assets/9d9c02ddc7ed-boom.wav +0 -0
  787. package/lib/web/assets/9e1b5114d56d-pop_soft.wav +0 -0
  788. package/lib/web/assets/a01f22d6dbb3-thud.wav +0 -0
  789. package/lib/web/assets/a44a1cf1a1a8-bump.wav +0 -0
  790. package/lib/web/assets/a76940a48c68-hit.wav +0 -0
  791. package/lib/web/assets/a98ddb724460-leaves.png +0 -0
  792. package/lib/web/assets/aa0960e8bee6-footstep_run.wav +0 -0
  793. package/lib/web/assets/aa570c9d3e15-star.wav +0 -0
  794. package/lib/web/assets/aacb999f3c49-tock.wav +0 -0
  795. package/lib/web/assets/aae0c16c5e89-reveal.wav +0 -0
  796. package/lib/web/assets/ab37cd128509-click.wav +0 -0
  797. package/lib/web/assets/b0bc66f49005-warning.wav +0 -0
  798. package/lib/web/assets/b1edd756ac43-zap.wav +0 -0
  799. package/lib/web/assets/b3894545cf71-slice.wav +0 -0
  800. package/lib/web/assets/b3c6225d055a-meadow.jpg +0 -0
  801. package/lib/web/assets/b60ca65cdfcb-gate.wav +0 -0
  802. package/lib/web/assets/b8900bb2c5c7-win.wav +0 -0
  803. package/lib/web/assets/baff6feda846-lose.wav +0 -0
  804. package/lib/web/assets/bed31305d60d-ad_chevrons.png +0 -0
  805. package/lib/web/assets/c26f4a624e7d-shuffle.wav +0 -0
  806. package/lib/web/assets/c3a9edfad195-die.wav +0 -0
  807. package/lib/web/assets/c4aa9d773f2a-footstep_walk.wav +0 -0
  808. package/lib/web/assets/c5ab3ff0003f-crash.wav +0 -0
  809. package/lib/web/assets/c5eb07deddd4-start.wav +0 -0
  810. package/lib/web/assets/c6c58d9ae452-pop.wav +0 -0
  811. package/lib/web/assets/cea48c3cd9c7-balloon_pop.wav +0 -0
  812. package/lib/web/assets/d15591767778-tap.wav +0 -0
  813. package/lib/web/assets/d1781a52234f-slide.wav +0 -0
  814. package/lib/web/assets/d3bf2d9f793b-snap.wav +0 -0
  815. package/lib/web/assets/d8f59ebd3537-jump.wav +0 -0
  816. package/lib/web/assets/dafea2f28854-power_up.wav +0 -0
  817. package/lib/web/assets/e2e7f5ae2d1b-whoosh.wav +0 -0
  818. package/lib/web/assets/e2f90a23e1bd-chomp.wav +0 -0
  819. package/lib/web/assets/e454e56df89a-clack.wav +0 -0
  820. package/lib/web/assets/e8cbc2b88bc4-Inter-SemiBold.ttf +0 -0
  821. package/lib/web/assets/ed6496b891fc-land.wav +0 -0
  822. package/lib/web/assets/f21920200a81-thunk.wav +0 -0
  823. package/lib/web/assets/f753b43be89d-whack.wav +0 -0
  824. package/lib/web/assets/f798c4b5cf4d-miss.wav +0 -0
  825. package/lib/web/assets/fbe299716916-grass.png +0 -0
  826. package/lib/web/chunk-52ez2s9z.js +15 -0
  827. package/lib/web/chunk-8675t224.js +1 -0
  828. package/lib/web/index.js +2 -0
  829. package/lib/web/package.json +1 -0
  830. package/lib/web/services.js +2 -0
  831. package/package.json +94 -73
  832. package/src/assets/fonts/Inter-SemiBold.ttf +0 -0
  833. package/src/assets/models/explorer/explorer.glb +0 -0
  834. package/src/assets/models/explorer/params.json +51 -0
  835. package/src/assets/models/explorer/source.json +222 -0
  836. package/src/assets/models/play-with-tua/play-with-tua.glb +0 -0
  837. package/src/assets/models/play-with-tua/sources.json +141 -0
  838. package/src/assets/sfx/balloon_pop.wav +0 -0
  839. package/src/assets/sfx/blocked.wav +0 -0
  840. package/src/assets/sfx/boing.wav +0 -0
  841. package/src/assets/sfx/bonus.wav +0 -0
  842. package/src/assets/sfx/boom.wav +0 -0
  843. package/src/assets/sfx/bump.wav +0 -0
  844. package/src/assets/sfx/cannon.wav +0 -0
  845. package/src/assets/sfx/capture.wav +0 -0
  846. package/src/assets/sfx/card_flip.wav +0 -0
  847. package/src/assets/sfx/card_place.wav +0 -0
  848. package/src/assets/sfx/catch.wav +0 -0
  849. package/src/assets/sfx/chime.wav +0 -0
  850. package/src/assets/sfx/chomp.wav +0 -0
  851. package/src/assets/sfx/chomp_alt.wav +0 -0
  852. package/src/assets/sfx/clack.wav +0 -0
  853. package/src/assets/sfx/clang.wav +0 -0
  854. package/src/assets/sfx/clash.wav +0 -0
  855. package/src/assets/sfx/click.wav +0 -0
  856. package/src/assets/sfx/coin.wav +0 -0
  857. package/src/assets/sfx/combo.wav +0 -0
  858. package/src/assets/sfx/crash.wav +0 -0
  859. package/src/assets/sfx/crunch.wav +0 -0
  860. package/src/assets/sfx/dance.wav +0 -0
  861. package/src/assets/sfx/deselect.wav +0 -0
  862. package/src/assets/sfx/dice_roll.wav +0 -0
  863. package/src/assets/sfx/die.wav +0 -0
  864. package/src/assets/sfx/draw.wav +0 -0
  865. package/src/assets/sfx/drop.wav +0 -0
  866. package/src/assets/sfx/eat.wav +0 -0
  867. package/src/assets/sfx/engine.wav +0 -0
  868. package/src/assets/sfx/error.wav +0 -0
  869. package/src/assets/sfx/flag.wav +0 -0
  870. package/src/assets/sfx/flap.wav +0 -0
  871. package/src/assets/sfx/flip_disc.wav +0 -0
  872. package/src/assets/sfx/footstep_run.wav +0 -0
  873. package/src/assets/sfx/footstep_walk.wav +0 -0
  874. package/src/assets/sfx/game_over.wav +0 -0
  875. package/src/assets/sfx/gate.wav +0 -0
  876. package/src/assets/sfx/hit.wav +0 -0
  877. package/src/assets/sfx/hop.wav +0 -0
  878. package/src/assets/sfx/hurt.wav +0 -0
  879. package/src/assets/sfx/invalid.wav +0 -0
  880. package/src/assets/sfx/jump.wav +0 -0
  881. package/src/assets/sfx/ladder.wav +0 -0
  882. package/src/assets/sfx/land.wav +0 -0
  883. package/src/assets/sfx/laugh.wav +0 -0
  884. package/src/assets/sfx/lose.wav +0 -0
  885. package/src/assets/sfx/merge.wav +0 -0
  886. package/src/assets/sfx/miss.wav +0 -0
  887. package/src/assets/sfx/nitro.wav +0 -0
  888. package/src/assets/sfx/pew.wav +0 -0
  889. package/src/assets/sfx/place.wav +0 -0
  890. package/src/assets/sfx/pling.wav +0 -0
  891. package/src/assets/sfx/point.wav +0 -0
  892. package/src/assets/sfx/pop.wav +0 -0
  893. package/src/assets/sfx/pop_soft.wav +0 -0
  894. package/src/assets/sfx/power_up.wav +0 -0
  895. package/src/assets/sfx/reveal.wav +0 -0
  896. package/src/assets/sfx/robot.wav +0 -0
  897. package/src/assets/sfx/rotate.wav +0 -0
  898. package/src/assets/sfx/run_steps.wav +0 -0
  899. package/src/assets/sfx/select.wav +0 -0
  900. package/src/assets/sfx/shuffle.wav +0 -0
  901. package/src/assets/sfx/six.wav +0 -0
  902. package/src/assets/sfx/slice.wav +0 -0
  903. package/src/assets/sfx/slide.wav +0 -0
  904. package/src/assets/sfx/snake.wav +0 -0
  905. package/src/assets/sfx/snap.wav +0 -0
  906. package/src/assets/sfx/splash.wav +0 -0
  907. package/src/assets/sfx/star.wav +0 -0
  908. package/src/assets/sfx/start.wav +0 -0
  909. package/src/assets/sfx/swoosh.wav +0 -0
  910. package/src/assets/sfx/tap.wav +0 -0
  911. package/src/assets/sfx/thud.wav +0 -0
  912. package/src/assets/sfx/thunk.wav +0 -0
  913. package/src/assets/sfx/tick.wav +0 -0
  914. package/src/assets/sfx/time_up.wav +0 -0
  915. package/src/assets/sfx/tock.wav +0 -0
  916. package/src/assets/sfx/walk_steps.wav +0 -0
  917. package/src/assets/sfx/warning.wav +0 -0
  918. package/src/assets/sfx/whack.wav +0 -0
  919. package/src/assets/sfx/whoosh.wav +0 -0
  920. package/src/assets/sfx/win.wav +0 -0
  921. package/src/assets/sfx/zap.wav +0 -0
  922. package/src/assets/textures/ad_bolt.png +0 -0
  923. package/src/assets/textures/ad_bubbles.png +0 -0
  924. package/src/assets/textures/ad_chevrons.png +0 -0
  925. package/src/assets/textures/asphalt.png +0 -0
  926. package/src/assets/textures/bark.jpg +0 -0
  927. package/src/assets/textures/explorer-atlas.png +0 -0
  928. package/src/assets/textures/facade.png +0 -0
  929. package/src/assets/textures/grass.png +0 -0
  930. package/src/assets/textures/leaves.png +0 -0
  931. package/src/assets/textures/limestone.jpg +0 -0
  932. package/src/assets/textures/meadow.jpg +0 -0
  933. package/src/assets/textures/nature-sources.json +87 -0
  934. package/src/assets/textures/pine.png +0 -0
  935. package/src/assets/textures/river.jpg +0 -0
  936. package/src/assets/textures/soft_glow.png +0 -0
  937. package/src/games/arrows/Arrows.tsx +69 -0
  938. package/src/games/arrows/ArrowsConstants.ts +107 -0
  939. package/src/games/arrows/ArrowsGame.ts +735 -0
  940. package/src/games/arrows/ArrowsScene.ts +395 -0
  941. package/src/games/balloon-blaster/BalloonBlaster.tsx +75 -0
  942. package/src/games/balloon-blaster/BalloonBlasterConstants.ts +79 -0
  943. package/src/games/balloon-blaster/BalloonBlasterGame.ts +287 -0
  944. package/src/games/balloon-blaster/BalloonBlasterPhysics.ts +95 -0
  945. package/src/games/balloon-blaster/BalloonBlasterScene.ts +225 -0
  946. package/src/games/bike-racing/BikeMeshes.ts +273 -0
  947. package/src/games/bike-racing/BikeRacing.tsx +211 -0
  948. package/src/games/bike-racing/BikeRacingConstants.ts +103 -0
  949. package/src/games/bike-racing/BikeRacingGame.ts +557 -0
  950. package/src/games/bike-racing/BikeRacingScene.ts +119 -0
  951. package/src/games/block-blast/BlockBlast.tsx +73 -0
  952. package/src/games/block-blast/BlockBlastConstants.ts +179 -0
  953. package/src/games/block-blast/BlockBlastGame.ts +471 -0
  954. package/src/games/block-blast/BlockBlastScene.ts +156 -0
  955. package/src/games/block-breaker/BlockBreaker.tsx +79 -0
  956. package/src/games/block-breaker/BlockBreakerConstants.ts +139 -0
  957. package/src/games/block-breaker/BlockBreakerGame.ts +459 -0
  958. package/src/games/block-breaker/BlockBreakerScene.ts +257 -0
  959. package/src/games/bluk/Bluk.tsx +82 -0
  960. package/src/games/bluk/BlukConstants.ts +121 -0
  961. package/src/games/bluk/BlukGame.ts +323 -0
  962. package/src/games/bluk/BlukRules.ts +154 -0
  963. package/src/games/bluk/BlukScene.ts +514 -0
  964. package/src/games/bubble-shooter/BubbleShooter.tsx +76 -0
  965. package/src/games/bubble-shooter/BubbleShooterConstants.ts +103 -0
  966. package/src/games/bubble-shooter/BubbleShooterGame.ts +459 -0
  967. package/src/games/bubble-shooter/BubbleShooterScene.ts +158 -0
  968. package/src/games/candy-crush/CandyCrush.tsx +77 -0
  969. package/src/games/candy-crush/CandyCrushConstants.ts +94 -0
  970. package/src/games/candy-crush/CandyCrushGame.ts +477 -0
  971. package/src/games/candy-crush/CandyCrushScene.ts +209 -0
  972. package/src/games/car-racing/CarMeshes.ts +440 -0
  973. package/src/games/car-racing/CarRacing.tsx +211 -0
  974. package/src/games/car-racing/CarRacingConstants.ts +167 -0
  975. package/src/games/car-racing/CarRacingFacade.ts +40 -0
  976. package/src/games/car-racing/CarRacingGame.ts +539 -0
  977. package/src/games/car-racing/CarRacingScene.ts +1026 -0
  978. package/src/games/car-racing/CarRacingScenery.ts +265 -0
  979. package/src/games/chameleon-run/ChameleonRun.tsx +96 -0
  980. package/src/games/chameleon-run/ChameleonRunBackdrop.ts +186 -0
  981. package/src/games/chameleon-run/ChameleonRunConstants.ts +47 -0
  982. package/src/games/chameleon-run/ChameleonRunGame.ts +309 -0
  983. package/src/games/chameleon-run/ChameleonRunMeshes.ts +305 -0
  984. package/src/games/chameleon-run/ChameleonRunRules.ts +252 -0
  985. package/src/games/chameleon-run/ChameleonRunScene.ts +310 -0
  986. package/src/games/checkers/Checkers.tsx +83 -0
  987. package/src/games/checkers/CheckersAI.ts +255 -0
  988. package/src/games/checkers/CheckersConstants.ts +68 -0
  989. package/src/games/checkers/CheckersGame.ts +322 -0
  990. package/src/games/checkers/CheckersRules.ts +167 -0
  991. package/src/games/checkers/CheckersScene.ts +308 -0
  992. package/src/games/color-switch/ColorSwitch.tsx +75 -0
  993. package/src/games/color-switch/ColorSwitchConstants.ts +61 -0
  994. package/src/games/color-switch/ColorSwitchGame.ts +329 -0
  995. package/src/games/color-switch/ColorSwitchScene.ts +220 -0
  996. package/src/games/colors-sort/ColorsSort.tsx +82 -0
  997. package/src/games/colors-sort/ColorsSortConstants.ts +119 -0
  998. package/src/games/colors-sort/ColorsSortGame.ts +246 -0
  999. package/src/games/colors-sort/ColorsSortScene.ts +315 -0
  1000. package/src/games/connect-em-all/ConnectEmAll.tsx +70 -0
  1001. package/src/games/connect-em-all/ConnectEmAllConstants.ts +77 -0
  1002. package/src/games/connect-em-all/ConnectEmAllGame.ts +401 -0
  1003. package/src/games/connect-em-all/ConnectEmAllScene.ts +235 -0
  1004. package/src/games/crossy-road/CrossyRoad.tsx +74 -0
  1005. package/src/games/crossy-road/CrossyRoadCamera.ts +59 -0
  1006. package/src/games/crossy-road/CrossyRoadConstants.ts +132 -0
  1007. package/src/games/crossy-road/CrossyRoadGame.ts +293 -0
  1008. package/src/games/crossy-road/CrossyRoadMeshes.ts +195 -0
  1009. package/src/games/crossy-road/CrossyRoadPerson.ts +198 -0
  1010. package/src/games/crossy-road/CrossyRoadRules.ts +99 -0
  1011. package/src/games/crossy-road/CrossyRoadScene.ts +355 -0
  1012. package/src/games/dino-jump/DinoJump.tsx +77 -0
  1013. package/src/games/dino-jump/DinoJumpConstants.ts +80 -0
  1014. package/src/games/dino-jump/DinoJumpGame.ts +344 -0
  1015. package/src/games/dino-jump/DinoJumpScene.ts +686 -0
  1016. package/src/games/dots-and-boxes/DotsAndBoxes.tsx +83 -0
  1017. package/src/games/dots-and-boxes/DotsAndBoxesConstants.ts +77 -0
  1018. package/src/games/dots-and-boxes/DotsAndBoxesGame.ts +271 -0
  1019. package/src/games/dots-and-boxes/DotsAndBoxesScene.ts +249 -0
  1020. package/src/games/falling-sticks/FallingSticks.tsx +72 -0
  1021. package/src/games/falling-sticks/FallingSticksConstants.ts +62 -0
  1022. package/src/games/falling-sticks/FallingSticksGame.ts +220 -0
  1023. package/src/games/falling-sticks/FallingSticksRules.ts +145 -0
  1024. package/src/games/falling-sticks/FallingSticksScene.ts +245 -0
  1025. package/src/games/find-different-number/FindDifferentNumber.tsx +74 -0
  1026. package/src/games/find-different-number/FindDifferentNumberConstants.ts +74 -0
  1027. package/src/games/find-different-number/FindDifferentNumberGame.ts +174 -0
  1028. package/src/games/find-different-number/FindDifferentNumberRules.ts +43 -0
  1029. package/src/games/find-different-number/FindDifferentNumberScene.ts +193 -0
  1030. package/src/games/flappy-bird/FlappyBird.tsx +73 -0
  1031. package/src/games/flappy-bird/FlappyBirdConstants.ts +95 -0
  1032. package/src/games/flappy-bird/FlappyBirdGame.ts +375 -0
  1033. package/src/games/flappy-bird/FlappyBirdScene.ts +630 -0
  1034. package/src/games/fruit-merger/FruitMerger.tsx +73 -0
  1035. package/src/games/fruit-merger/FruitMergerConstants.ts +102 -0
  1036. package/src/games/fruit-merger/FruitMergerGame.ts +285 -0
  1037. package/src/games/fruit-merger/FruitMergerRules.ts +286 -0
  1038. package/src/games/fruit-merger/FruitMergerScene.ts +498 -0
  1039. package/src/games/fruit-ninja/FruitNinja.tsx +129 -0
  1040. package/src/games/fruit-ninja/FruitNinjaConstants.ts +107 -0
  1041. package/src/games/fruit-ninja/FruitNinjaGame.ts +391 -0
  1042. package/src/games/fruit-ninja/FruitNinjaScene.ts +319 -0
  1043. package/src/games/fruit-ninja/FruitNinjaWorld.ts +17 -0
  1044. package/src/games/game-2048/Game2048.tsx +84 -0
  1045. package/src/games/game-2048/Game2048Constants.ts +68 -0
  1046. package/src/games/game-2048/Game2048Game.ts +181 -0
  1047. package/src/games/game-2048/Game2048Rules.ts +101 -0
  1048. package/src/games/game-2048/Game2048Scene.ts +206 -0
  1049. package/src/games/knife-hit/KnifeHit.tsx +78 -0
  1050. package/src/games/knife-hit/KnifeHitConstants.ts +89 -0
  1051. package/src/games/knife-hit/KnifeHitGame.ts +264 -0
  1052. package/src/games/knife-hit/KnifeHitScene.ts +360 -0
  1053. package/src/games/ludo-king/LudoKing.tsx +86 -0
  1054. package/src/games/ludo-king/LudoKingConstants.ts +212 -0
  1055. package/src/games/ludo-king/LudoKingGame.ts +326 -0
  1056. package/src/games/ludo-king/LudoKingRules.ts +143 -0
  1057. package/src/games/ludo-king/LudoKingScene.ts +397 -0
  1058. package/src/games/maze-runner/MazeRunner.tsx +88 -0
  1059. package/src/games/maze-runner/MazeRunnerConstants.ts +65 -0
  1060. package/src/games/maze-runner/MazeRunnerGame.ts +176 -0
  1061. package/src/games/maze-runner/MazeRunnerRules.ts +161 -0
  1062. package/src/games/maze-runner/MazeRunnerScene.ts +245 -0
  1063. package/src/games/memory-match/MemoryMatch.tsx +77 -0
  1064. package/src/games/memory-match/MemoryMatchConstants.ts +105 -0
  1065. package/src/games/memory-match/MemoryMatchGame.ts +222 -0
  1066. package/src/games/memory-match/MemoryMatchRules.ts +38 -0
  1067. package/src/games/memory-match/MemoryMatchScene.ts +268 -0
  1068. package/src/games/mine-sweeper/MineSweeper.tsx +77 -0
  1069. package/src/games/mine-sweeper/MineSweeperConstants.ts +94 -0
  1070. package/src/games/mine-sweeper/MineSweeperGame.ts +234 -0
  1071. package/src/games/mine-sweeper/MineSweeperRules.ts +67 -0
  1072. package/src/games/mine-sweeper/MineSweeperScene.ts +262 -0
  1073. package/src/games/mob-control/MobControl.tsx +73 -0
  1074. package/src/games/mob-control/MobControlConstants.ts +106 -0
  1075. package/src/games/mob-control/MobControlGame.ts +176 -0
  1076. package/src/games/mob-control/MobControlMeshes.ts +85 -0
  1077. package/src/games/mob-control/MobControlRenderer.ts +108 -0
  1078. package/src/games/mob-control/MobControlRules.ts +522 -0
  1079. package/src/games/mob-control/MobControlScene.ts +399 -0
  1080. package/src/games/number-search/NumberSearch.tsx +18 -0
  1081. package/src/games/number-search/NumberSearchNumbers.ts +623 -0
  1082. package/src/games/nuts-and-bolts/NutsAndBolts.tsx +85 -0
  1083. package/src/games/nuts-and-bolts/NutsAndBoltsConstants.ts +75 -0
  1084. package/src/games/nuts-and-bolts/NutsAndBoltsGame.ts +298 -0
  1085. package/src/games/nuts-and-bolts/NutsAndBoltsRules.ts +474 -0
  1086. package/src/games/nuts-and-bolts/NutsAndBoltsScene.ts +498 -0
  1087. package/src/games/pac-man/PacMan.tsx +86 -0
  1088. package/src/games/pac-man/PacManConstants.ts +169 -0
  1089. package/src/games/pac-man/PacManGame.ts +406 -0
  1090. package/src/games/pac-man/PacManRules.ts +255 -0
  1091. package/src/games/pac-man/PacManScene.ts +387 -0
  1092. package/src/games/paper-io/PaperIo.tsx +91 -0
  1093. package/src/games/paper-io/PaperIoConstants.ts +86 -0
  1094. package/src/games/paper-io/PaperIoGame.ts +193 -0
  1095. package/src/games/paper-io/PaperIoMeshes.ts +233 -0
  1096. package/src/games/paper-io/PaperIoRules.ts +315 -0
  1097. package/src/games/paper-io/PaperIoScene.ts +310 -0
  1098. package/src/games/penguin-run/PenguinMeshes.ts +269 -0
  1099. package/src/games/penguin-run/PenguinModel.ts +712 -0
  1100. package/src/games/penguin-run/PenguinRun.tsx +77 -0
  1101. package/src/games/penguin-run/PenguinRunConstants.ts +69 -0
  1102. package/src/games/penguin-run/PenguinRunGame.ts +406 -0
  1103. package/src/games/penguin-run/PenguinRunScene.ts +949 -0
  1104. package/src/games/perfect-circle/PerfectCircle.tsx +74 -0
  1105. package/src/games/perfect-circle/PerfectCircleConstants.ts +52 -0
  1106. package/src/games/perfect-circle/PerfectCircleGame.ts +153 -0
  1107. package/src/games/perfect-circle/PerfectCircleRules.ts +111 -0
  1108. package/src/games/perfect-circle/PerfectCircleScene.ts +176 -0
  1109. package/src/games/pipe-connect/PipeConnect.tsx +69 -0
  1110. package/src/games/pipe-connect/PipeConnectConstants.ts +101 -0
  1111. package/src/games/pipe-connect/PipeConnectGame.ts +179 -0
  1112. package/src/games/pipe-connect/PipeConnectRules.ts +326 -0
  1113. package/src/games/pipe-connect/PipeConnectScene.ts +271 -0
  1114. package/src/games/play-with-tua/PlayWithTua.tsx +123 -0
  1115. package/src/games/play-with-tua/PlayWithTuaConstants.ts +70 -0
  1116. package/src/games/play-with-tua/PlayWithTuaGame.ts +167 -0
  1117. package/src/games/play-with-tua/PlayWithTuaModel.ts +42 -0
  1118. package/src/games/play-with-tua/PlayWithTuaScene.ts +36 -0
  1119. package/src/games/popit-fidget/PopitFidget.tsx +72 -0
  1120. package/src/games/popit-fidget/PopitFidgetConstants.ts +71 -0
  1121. package/src/games/popit-fidget/PopitFidgetGame.ts +148 -0
  1122. package/src/games/popit-fidget/PopitFidgetScene.ts +242 -0
  1123. package/src/games/reversi/Reversi.tsx +94 -0
  1124. package/src/games/reversi/ReversiConstants.ts +67 -0
  1125. package/src/games/reversi/ReversiGame.ts +266 -0
  1126. package/src/games/reversi/ReversiRules.ts +176 -0
  1127. package/src/games/reversi/ReversiScene.ts +240 -0
  1128. package/src/games/search-grid/SearchGrid.tsx +92 -0
  1129. package/src/games/search-grid/SearchGridConstants.ts +178 -0
  1130. package/src/games/search-grid/SearchGridGame.ts +209 -0
  1131. package/src/games/search-grid/SearchGridScene.ts +301 -0
  1132. package/src/games/shared/BackdropCard.tsx +54 -0
  1133. package/src/games/shared/EngineBackdrop.ts +300 -0
  1134. package/src/games/shared/EngineBlasts.ts +136 -0
  1135. package/src/games/shared/EngineBlocks.ts +91 -0
  1136. package/src/games/shared/EngineControlText.ts +17 -0
  1137. package/src/games/shared/EngineDice.ts +250 -0
  1138. package/src/games/shared/EngineFootprint.ts +35 -0
  1139. package/src/games/shared/EngineFruits.ts +1435 -0
  1140. package/src/games/shared/EngineGameLoader.tsx +88 -0
  1141. package/src/games/shared/EngineGameScreen.tsx +325 -0
  1142. package/src/games/shared/EngineGameWidth.ts +3 -0
  1143. package/src/games/shared/EngineGameWidth.web.ts +3 -0
  1144. package/src/games/shared/EngineGlyphs.ts +178 -0
  1145. package/src/games/shared/EngineHud.ts +815 -0
  1146. package/src/games/shared/EngineLoading.ts +477 -0
  1147. package/src/games/shared/EngineMeadow.ts +725 -0
  1148. package/src/games/shared/EngineMeshCache.ts +15 -0
  1149. package/src/games/shared/EngineMeshes.ts +10 -0
  1150. package/src/games/shared/EngineRacingChase.ts +21 -0
  1151. package/src/games/shared/EngineRacingHandling.ts +48 -0
  1152. package/src/games/shared/EngineReadyContext.ts +4 -0
  1153. package/src/games/shared/EngineTilt.ts +44 -0
  1154. package/src/games/shared/EngineTouchSurface.tsx +103 -0
  1155. package/src/games/shared/EngineUtils.ts +52 -0
  1156. package/src/games/shared/GameActivity.ts +13 -0
  1157. package/src/games/shared/GameLoading.tsx +202 -0
  1158. package/src/games/shared/GameLoadingTransition.tsx +61 -0
  1159. package/src/games/shared/ProceduralCacheVersion.ts +2 -0
  1160. package/src/games/shared/useEngineGame.ts +240 -0
  1161. package/src/games/shared/useGameResource.ts +21 -0
  1162. package/src/games/shared/useLiveState.ts +58 -0
  1163. package/src/games/sliding-numbers/SlidingNumbers.tsx +71 -0
  1164. package/src/games/sliding-numbers/SlidingNumbersConstants.ts +65 -0
  1165. package/src/games/sliding-numbers/SlidingNumbersGame.ts +192 -0
  1166. package/src/games/sliding-numbers/SlidingNumbersRules.ts +79 -0
  1167. package/src/games/sliding-numbers/SlidingNumbersScene.ts +193 -0
  1168. package/src/games/snake-3d/Snake3D.tsx +76 -0
  1169. package/src/games/snake-3d/Snake3DConstants.ts +61 -0
  1170. package/src/games/snake-3d/Snake3DGame.ts +192 -0
  1171. package/src/games/snake-3d/Snake3DMotion.ts +22 -0
  1172. package/src/games/snake-3d/Snake3DRules.ts +116 -0
  1173. package/src/games/snake-3d/Snake3DScene.ts +322 -0
  1174. package/src/games/snakes-and-ladders/SnakesAndLadders.tsx +87 -0
  1175. package/src/games/snakes-and-ladders/SnakesAndLaddersConstants.ts +136 -0
  1176. package/src/games/snakes-and-ladders/SnakesAndLaddersGame.ts +310 -0
  1177. package/src/games/snakes-and-ladders/SnakesAndLaddersScene.ts +515 -0
  1178. package/src/games/space-fighter/SpaceFighter.tsx +74 -0
  1179. package/src/games/space-fighter/SpaceFighterConstants.ts +86 -0
  1180. package/src/games/space-fighter/SpaceFighterGame.ts +292 -0
  1181. package/src/games/space-fighter/SpaceFighterScene.ts +550 -0
  1182. package/src/games/spider-solitaire/SpiderSolitaire.tsx +80 -0
  1183. package/src/games/spider-solitaire/SpiderSolitaireConstants.ts +107 -0
  1184. package/src/games/spider-solitaire/SpiderSolitaireGame.ts +387 -0
  1185. package/src/games/spider-solitaire/SpiderSolitaireRules.ts +123 -0
  1186. package/src/games/spider-solitaire/SpiderSolitaireScene.ts +352 -0
  1187. package/src/games/stack-tower/StackTower.tsx +76 -0
  1188. package/src/games/stack-tower/StackTowerConstants.ts +74 -0
  1189. package/src/games/stack-tower/StackTowerGame.ts +236 -0
  1190. package/src/games/stack-tower/StackTowerScene.ts +186 -0
  1191. package/src/games/sudoku/Sudoku.tsx +73 -0
  1192. package/src/games/sudoku/SudokuConstants.ts +127 -0
  1193. package/src/games/sudoku/SudokuGame.ts +250 -0
  1194. package/src/games/sudoku/SudokuRules.ts +125 -0
  1195. package/src/games/sudoku/SudokuScene.ts +304 -0
  1196. package/src/games/tangram/Tangram.tsx +79 -0
  1197. package/src/games/tangram/TangramConstants.ts +64 -0
  1198. package/src/games/tangram/TangramGame.ts +356 -0
  1199. package/src/games/tangram/TangramRules.ts +409 -0
  1200. package/src/games/tangram/TangramScene.ts +203 -0
  1201. package/src/games/tank-1990/Tank1990.tsx +78 -0
  1202. package/src/games/tank-1990/Tank1990Constants.ts +81 -0
  1203. package/src/games/tank-1990/Tank1990Game.ts +331 -0
  1204. package/src/games/tank-1990/Tank1990Rules.ts +390 -0
  1205. package/src/games/tank-1990/Tank1990Scene.ts +434 -0
  1206. package/src/games/tic-tac-toe/TicTacToe.tsx +98 -0
  1207. package/src/games/tic-tac-toe/TicTacToeConstants.ts +69 -0
  1208. package/src/games/tic-tac-toe/TicTacToeGame.ts +200 -0
  1209. package/src/games/tic-tac-toe/TicTacToeRules.ts +103 -0
  1210. package/src/games/tic-tac-toe/TicTacToeScene.ts +245 -0
  1211. package/src/games/tile-home/TileHome.tsx +92 -0
  1212. package/src/games/tile-home/TileHomeConstants.ts +139 -0
  1213. package/src/games/tile-home/TileHomeGame.ts +435 -0
  1214. package/src/games/tile-home/TileHomeScene.ts +154 -0
  1215. package/src/games/treasure-hunt/TreasureHunt.tsx +206 -0
  1216. package/src/games/treasure-hunt/TreasureHuntConstants.ts +266 -0
  1217. package/src/games/treasure-hunt/TreasureHuntControls.ts +280 -0
  1218. package/src/games/treasure-hunt/TreasureHuntGame.ts +402 -0
  1219. package/src/games/treasure-hunt/TreasureHuntMeshes.ts +422 -0
  1220. package/src/games/treasure-hunt/TreasureHuntModel.ts +506 -0
  1221. package/src/games/treasure-hunt/TreasureHuntRules.ts +1210 -0
  1222. package/src/games/treasure-hunt/TreasureHuntScene.ts +586 -0
  1223. package/src/games/whack-a-mole/WhackAMole.tsx +79 -0
  1224. package/src/games/whack-a-mole/WhackAMoleConstants.ts +94 -0
  1225. package/src/games/whack-a-mole/WhackAMoleGame.ts +233 -0
  1226. package/src/games/whack-a-mole/WhackAMoleScene.ts +349 -0
  1227. package/src/games/word-search/WordSearch.tsx +18 -0
  1228. package/src/games/word-search/WordSearchWords.ts +1642 -0
  1229. package/src/helpers/GamePatternData.ts +120 -0
  1230. package/src/helpers/GameSettingsModal.tsx +384 -0
  1231. package/src/helpers/GameTheme.tsx +37 -0
  1232. package/src/helpers/IconPaths.ts +6 -0
  1233. package/src/helpers/index.ts +2 -0
  1234. package/src/index.tsx +60 -0
  1235. package/src/services/GameAssetLoader.ts +111 -0
  1236. package/src/services/GameAssets.ts +149 -0
  1237. package/src/services/GameLoaders.ts +93 -0
  1238. package/src/services/GamesConstants.ts +193 -0
  1239. package/src/services/GamesMetadata.ts +711 -0
  1240. package/src/services/GamesService.ts +116 -0
  1241. package/src/services/HapticsService.ts +48 -0
  1242. package/src/services/ScoringService.ts +19 -0
  1243. package/src/services/SfxSources.ts +81 -0
  1244. package/src/services/SoundsService.ts +582 -0
  1245. package/src/services/ThemeService.ts +281 -0
  1246. package/src/services/UtilsService.ts +134 -0
  1247. package/src/services/index.ts +6 -0
  1248. package/lib/module/games/arrows/ArrowsService.js +0 -1
  1249. package/lib/module/games/arrows/ArrowsStore.js +0 -1
  1250. package/lib/module/games/arrows/components/ArrowsGrid.js +0 -1
  1251. package/lib/module/games/arrows/components/ScoreBoard.js +0 -1
  1252. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +0 -1
  1253. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +0 -1
  1254. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +0 -1
  1255. package/lib/module/games/balloon-blaster/components/GameArea.js +0 -1
  1256. package/lib/module/games/balloon-blaster/components/GameBackground.js +0 -1
  1257. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +0 -1
  1258. package/lib/module/games/bike-racing/BikeRacingService.js +0 -1
  1259. package/lib/module/games/bike-racing/BikeRacingStore.js +0 -1
  1260. package/lib/module/games/bike-racing/components/BikeComponent.js +0 -1
  1261. package/lib/module/games/bike-racing/components/GameBackground.js +0 -1
  1262. package/lib/module/games/bike-racing/components/ScoreBoard.js +0 -1
  1263. package/lib/module/games/block-blast/BlockBlastService.js +0 -1
  1264. package/lib/module/games/block-blast/BlockBlastStore.js +0 -1
  1265. package/lib/module/games/block-blast/components/BlockPieceComponent.js +0 -1
  1266. package/lib/module/games/block-blast/components/GameArea.js +0 -1
  1267. package/lib/module/games/block-blast/components/GridComponent.js +0 -1
  1268. package/lib/module/games/block-blast/components/ScoreBoard.js +0 -1
  1269. package/lib/module/games/block-breaker/BlockBreakerService.js +0 -1
  1270. package/lib/module/games/block-breaker/BlockBreakerStore.js +0 -1
  1271. package/lib/module/games/block-breaker/components/BlastAnimation.js +0 -1
  1272. package/lib/module/games/block-breaker/components/GameArea.js +0 -1
  1273. package/lib/module/games/block-breaker/components/ScoreBoard.js +0 -1
  1274. package/lib/module/games/bluk/BlukService.js +0 -1
  1275. package/lib/module/games/bluk/BlukStore.js +0 -1
  1276. package/lib/module/games/bluk/components/GameArea.js +0 -1
  1277. package/lib/module/games/bluk/components/GameBackground.js +0 -1
  1278. package/lib/module/games/bluk/components/ScoreBoard.js +0 -1
  1279. package/lib/module/games/bubble-shooter/BubbleShooterService.js +0 -1
  1280. package/lib/module/games/bubble-shooter/BubbleShooterStore.js +0 -1
  1281. package/lib/module/games/bubble-shooter/components/GameArea.js +0 -1
  1282. package/lib/module/games/bubble-shooter/components/ScoreBoard.js +0 -1
  1283. package/lib/module/games/candy-crush/CandyCrushService.js +0 -1
  1284. package/lib/module/games/candy-crush/CandyCrushStore.js +0 -1
  1285. package/lib/module/games/candy-crush/components/CandyItem.js +0 -1
  1286. package/lib/module/games/candy-crush/components/GameGrid.js +0 -1
  1287. package/lib/module/games/candy-crush/components/ScoreBoard.js +0 -1
  1288. package/lib/module/games/car-racing/CarRacingService.js +0 -1
  1289. package/lib/module/games/car-racing/CarRacingStore.js +0 -1
  1290. package/lib/module/games/car-racing/components/CarComponent.js +0 -1
  1291. package/lib/module/games/car-racing/components/GameBackground.js +0 -1
  1292. package/lib/module/games/car-racing/components/ScoreBoard.js +0 -1
  1293. package/lib/module/games/chameleon-run/ChameleonRunService.js +0 -1
  1294. package/lib/module/games/chameleon-run/ChameleonRunStore.js +0 -1
  1295. package/lib/module/games/chameleon-run/components/GameArea.js +0 -1
  1296. package/lib/module/games/chameleon-run/components/GameBackground.js +0 -1
  1297. package/lib/module/games/chameleon-run/components/ScoreBoard.js +0 -1
  1298. package/lib/module/games/checkers/CheckersService.js +0 -1
  1299. package/lib/module/games/checkers/CheckersStore.js +0 -1
  1300. package/lib/module/games/checkers/components/GameBoard.js +0 -1
  1301. package/lib/module/games/checkers/components/ScoreBoard.js +0 -1
  1302. package/lib/module/games/color-switch/ColorSwitchService.js +0 -1
  1303. package/lib/module/games/color-switch/ColorSwitchStore.js +0 -1
  1304. package/lib/module/games/color-switch/components/GameArea.js +0 -1
  1305. package/lib/module/games/color-switch/components/ScoreBoard.js +0 -1
  1306. package/lib/module/games/colors-sort/ColorsSortService.js +0 -1
  1307. package/lib/module/games/colors-sort/ColorsSortStore.js +0 -1
  1308. package/lib/module/games/colors-sort/components/ColorContainer.js +0 -1
  1309. package/lib/module/games/colors-sort/components/ScoreBoard.js +0 -1
  1310. package/lib/module/games/connect-em-all/ConnectEmAllService.js +0 -1
  1311. package/lib/module/games/connect-em-all/ConnectEmAllStore.js +0 -1
  1312. package/lib/module/games/connect-em-all/components/GameBoard.js +0 -1
  1313. package/lib/module/games/connect-em-all/components/ScoreBoard.js +0 -1
  1314. package/lib/module/games/crossy-road/CrossyRoadService.js +0 -1
  1315. package/lib/module/games/crossy-road/CrossyRoadStore.js +0 -1
  1316. package/lib/module/games/crossy-road/components/GameArea.js +0 -1
  1317. package/lib/module/games/crossy-road/components/ScoreBoard.js +0 -1
  1318. package/lib/module/games/dino-jump/DinoJumpService.js +0 -1
  1319. package/lib/module/games/dino-jump/DinoJumpStore.js +0 -1
  1320. package/lib/module/games/dino-jump/components/DinoSprite.js +0 -1
  1321. package/lib/module/games/dino-jump/components/GameArea.js +0 -1
  1322. package/lib/module/games/dino-jump/components/GameBackground.js +0 -1
  1323. package/lib/module/games/dino-jump/components/ObstacleSprite.js +0 -1
  1324. package/lib/module/games/dino-jump/components/ScoreBoard.js +0 -1
  1325. package/lib/module/games/dino-jump/components/StarSprite.js +0 -1
  1326. package/lib/module/games/dots-and-boxes/DotsAndBoxesService.js +0 -1
  1327. package/lib/module/games/dots-and-boxes/DotsAndBoxesStore.js +0 -1
  1328. package/lib/module/games/dots-and-boxes/components/GameBoard.js +0 -1
  1329. package/lib/module/games/dots-and-boxes/components/ScoreBoard.js +0 -1
  1330. package/lib/module/games/falling-sticks/FallingSticksService.js +0 -1
  1331. package/lib/module/games/falling-sticks/FallingSticksStore.js +0 -1
  1332. package/lib/module/games/falling-sticks/components/GameArea.js +0 -1
  1333. package/lib/module/games/falling-sticks/components/GameBackground.js +0 -1
  1334. package/lib/module/games/falling-sticks/components/ScoreBoard.js +0 -1
  1335. package/lib/module/games/find-different-number/FindDifferentNumberService.js +0 -1
  1336. package/lib/module/games/find-different-number/FindDifferentNumberStore.js +0 -1
  1337. package/lib/module/games/find-different-number/components/GameGrid.js +0 -1
  1338. package/lib/module/games/find-different-number/components/ScoreBoard.js +0 -1
  1339. package/lib/module/games/flappy-bird/FlappyBirdStore.js +0 -1
  1340. package/lib/module/games/flappy-bird/components/Bird.js +0 -1
  1341. package/lib/module/games/flappy-bird/components/GameArea.js +0 -1
  1342. package/lib/module/games/flappy-bird/components/GameBackground.js +0 -1
  1343. package/lib/module/games/flappy-bird/components/Pipes.js +0 -1
  1344. package/lib/module/games/flappy-bird/components/ScoreBoard.js +0 -1
  1345. package/lib/module/games/fruit-merger/FruitMergerService.js +0 -1
  1346. package/lib/module/games/fruit-merger/FruitMergerStore.js +0 -1
  1347. package/lib/module/games/fruit-merger/components/FruitItem.js +0 -1
  1348. package/lib/module/games/fruit-merger/components/GameArea.js +0 -1
  1349. package/lib/module/games/fruit-merger/components/ScoreBoard.js +0 -1
  1350. package/lib/module/games/fruit-ninja/FruitNinjaService.js +0 -1
  1351. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +0 -1
  1352. package/lib/module/games/fruit-ninja/components/FruitComponent.js +0 -1
  1353. package/lib/module/games/fruit-ninja/components/GameArea.js +0 -1
  1354. package/lib/module/games/fruit-ninja/components/GameBackground.js +0 -1
  1355. package/lib/module/games/fruit-ninja/components/ScoreBoard.js +0 -1
  1356. package/lib/module/games/game-2048/Game2048Service.js +0 -1
  1357. package/lib/module/games/game-2048/Game2048Store.js +0 -1
  1358. package/lib/module/games/game-2048/components/GameGrid.js +0 -1
  1359. package/lib/module/games/game-2048/components/ScoreBoard.js +0 -1
  1360. package/lib/module/games/knife-hit/KnifeHitService.js +0 -1
  1361. package/lib/module/games/knife-hit/KnifeHitStore.js +0 -1
  1362. package/lib/module/games/knife-hit/components/GameArea.js +0 -1
  1363. package/lib/module/games/knife-hit/components/ScoreBoard.js +0 -1
  1364. package/lib/module/games/ludo-king/LudoKingService.js +0 -1
  1365. package/lib/module/games/ludo-king/LudoKingStore.js +0 -1
  1366. package/lib/module/games/ludo-king/components/Dice.js +0 -1
  1367. package/lib/module/games/ludo-king/components/GameBoard.js +0 -1
  1368. package/lib/module/games/ludo-king/components/ScoreBoard.js +0 -1
  1369. package/lib/module/games/maze-runner/MazeRunnerStore.js +0 -1
  1370. package/lib/module/games/maze-runner/components/EnhancedBallComponent.js +0 -1
  1371. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +0 -1
  1372. package/lib/module/games/maze-runner/components/ScoreBoard.js +0 -1
  1373. package/lib/module/games/maze-runner/components/SkiaPipeComponent.js +0 -1
  1374. package/lib/module/games/maze-runner/components/WallComponent.js +0 -1
  1375. package/lib/module/games/memory-match/MemoryMatchService.js +0 -1
  1376. package/lib/module/games/memory-match/MemoryMatchStore.js +0 -1
  1377. package/lib/module/games/memory-match/components/Card.js +0 -1
  1378. package/lib/module/games/memory-match/components/GameBoard.js +0 -1
  1379. package/lib/module/games/memory-match/components/ScoreBoard.js +0 -1
  1380. package/lib/module/games/mine-sweeper/MineSweeperService.js +0 -1
  1381. package/lib/module/games/mine-sweeper/MineSweeperStore.js +0 -1
  1382. package/lib/module/games/mine-sweeper/components/GameArea.js +0 -1
  1383. package/lib/module/games/mine-sweeper/components/ScoreBoard.js +0 -1
  1384. package/lib/module/games/mob-control/MobControlService.js +0 -1
  1385. package/lib/module/games/mob-control/MobControlStore.js +0 -1
  1386. package/lib/module/games/mob-control/components/GameArea.js +0 -1
  1387. package/lib/module/games/mob-control/components/ScoreBoard.js +0 -1
  1388. package/lib/module/games/number-search/NumberSearchConstants.js +0 -1
  1389. package/lib/module/games/number-search/NumberSearchService.js +0 -1
  1390. package/lib/module/games/number-search/NumberSearchStore.js +0 -1
  1391. package/lib/module/games/number-search/components/GameBoard.js +0 -1
  1392. package/lib/module/games/number-search/components/NumberList.js +0 -1
  1393. package/lib/module/games/number-search/components/ScoreBoard.js +0 -1
  1394. package/lib/module/games/nuts-and-bolts/NutsAndBoltsService.js +0 -1
  1395. package/lib/module/games/nuts-and-bolts/NutsAndBoltsStore.js +0 -1
  1396. package/lib/module/games/nuts-and-bolts/components/GameBoard.js +0 -1
  1397. package/lib/module/games/nuts-and-bolts/components/ScoreBoard.js +0 -1
  1398. package/lib/module/games/pac-man/PacManService.js +0 -1
  1399. package/lib/module/games/pac-man/PacManStore.js +0 -1
  1400. package/lib/module/games/pac-man/components/GameCanvas.js +0 -1
  1401. package/lib/module/games/pac-man/components/ScoreBoard.js +0 -1
  1402. package/lib/module/games/paper-io/PaperIoService.js +0 -1
  1403. package/lib/module/games/paper-io/PaperIoStore.js +0 -1
  1404. package/lib/module/games/paper-io/components/GameArea.js +0 -1
  1405. package/lib/module/games/paper-io/components/ScoreBoard.js +0 -1
  1406. package/lib/module/games/perfect-circle/PerfectCircleService.js +0 -1
  1407. package/lib/module/games/perfect-circle/PerfectCircleStore.js +0 -1
  1408. package/lib/module/games/perfect-circle/components/DrawingCanvas.js +0 -1
  1409. package/lib/module/games/perfect-circle/components/ScoreBoard.js +0 -1
  1410. package/lib/module/games/pipe-connect/PipeConnectService.js +0 -1
  1411. package/lib/module/games/pipe-connect/PipeConnectStore.js +0 -1
  1412. package/lib/module/games/pipe-connect/components/GameArea.js +0 -1
  1413. package/lib/module/games/pipe-connect/components/ScoreBoard.js +0 -1
  1414. package/lib/module/games/popit-fidget/PopitFidgetService.js +0 -1
  1415. package/lib/module/games/popit-fidget/PopitFidgetStore.js +0 -1
  1416. package/lib/module/games/popit-fidget/components/BubbleComponent.js +0 -1
  1417. package/lib/module/games/popit-fidget/components/FidgetGrid.js +0 -1
  1418. package/lib/module/games/popit-fidget/components/ScoreBoard.js +0 -1
  1419. package/lib/module/games/reversi/ReversiStore.js +0 -1
  1420. package/lib/module/games/reversi/components/GameBoard.js +0 -1
  1421. package/lib/module/games/reversi/components/ScoreBoard.js +0 -1
  1422. package/lib/module/games/sliding-numbers/SlidingNumbersService.js +0 -1
  1423. package/lib/module/games/sliding-numbers/SlidingNumbersStore.js +0 -1
  1424. package/lib/module/games/sliding-numbers/components/NumbersGrid.js +0 -1
  1425. package/lib/module/games/sliding-numbers/components/ScoreBoard.js +0 -1
  1426. package/lib/module/games/snake-3d/Snake3DService.js +0 -1
  1427. package/lib/module/games/snake-3d/Snake3DStore.js +0 -1
  1428. package/lib/module/games/snake-3d/components/GameGrid.js +0 -1
  1429. package/lib/module/games/snake-3d/components/ScoreBoard.js +0 -1
  1430. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersService.js +0 -1
  1431. package/lib/module/games/snakes-and-ladders/SnakesAndLaddersStore.js +0 -1
  1432. package/lib/module/games/snakes-and-ladders/components/Dice.js +0 -1
  1433. package/lib/module/games/snakes-and-ladders/components/GameBoard.js +0 -1
  1434. package/lib/module/games/snakes-and-ladders/components/ScoreBoard.js +0 -1
  1435. package/lib/module/games/space-fighter/SpaceFighterService.js +0 -1
  1436. package/lib/module/games/space-fighter/SpaceFighterStore.js +0 -1
  1437. package/lib/module/games/space-fighter/components/AsteroidComponent.js +0 -1
  1438. package/lib/module/games/space-fighter/components/GameArea.js +0 -1
  1439. package/lib/module/games/space-fighter/components/GameBackground.js +0 -1
  1440. package/lib/module/games/space-fighter/components/ScoreBoard.js +0 -1
  1441. package/lib/module/games/space-fighter/components/Spacecraft3D.js +0 -1
  1442. package/lib/module/games/space-fighter/components/SpacecraftPath.js +0 -1
  1443. package/lib/module/games/spider-solitaire/SpiderSolitaireService.js +0 -1
  1444. package/lib/module/games/spider-solitaire/SpiderSolitaireStore.js +0 -1
  1445. package/lib/module/games/spider-solitaire/components/Card.js +0 -1
  1446. package/lib/module/games/spider-solitaire/components/CardPile.js +0 -1
  1447. package/lib/module/games/spider-solitaire/components/ScoreBoard.js +0 -1
  1448. package/lib/module/games/stack-tower/StackTowerService.js +0 -1
  1449. package/lib/module/games/stack-tower/StackTowerStore.js +0 -1
  1450. package/lib/module/games/stack-tower/components/GameArea.js +0 -1
  1451. package/lib/module/games/stack-tower/components/ScoreBoard.js +0 -1
  1452. package/lib/module/games/sudoku/SudokuService.js +0 -1
  1453. package/lib/module/games/sudoku/SudokuStore.js +0 -1
  1454. package/lib/module/games/sudoku/components/GameArea.js +0 -1
  1455. package/lib/module/games/sudoku/components/ScoreBoard.js +0 -1
  1456. package/lib/module/games/tangram/TangramService.js +0 -1
  1457. package/lib/module/games/tangram/TangramStore.js +0 -1
  1458. package/lib/module/games/tangram/components/GameBoard.js +0 -1
  1459. package/lib/module/games/tangram/components/ScoreBoard.js +0 -1
  1460. package/lib/module/games/tank-1990/Tank1990Service.js +0 -1
  1461. package/lib/module/games/tank-1990/Tank1990Store.js +0 -1
  1462. package/lib/module/games/tank-1990/components/Controls.js +0 -1
  1463. package/lib/module/games/tank-1990/components/GameBoard.js +0 -1
  1464. package/lib/module/games/tank-1990/components/ScoreBoard.js +0 -1
  1465. package/lib/module/games/tic-tac-toe/TicTacToeService.js +0 -1
  1466. package/lib/module/games/tic-tac-toe/TicTacToeStore.js +0 -1
  1467. package/lib/module/games/tic-tac-toe/components/GameBoard.js +0 -1
  1468. package/lib/module/games/tic-tac-toe/components/ScoreBoard.js +0 -1
  1469. package/lib/module/games/tile-home/TileHomeService.js +0 -1
  1470. package/lib/module/games/tile-home/TileHomeStore.js +0 -1
  1471. package/lib/module/games/tile-home/components/AnimatingTile.js +0 -1
  1472. package/lib/module/games/tile-home/components/FlyingTile.js +0 -1
  1473. package/lib/module/games/tile-home/components/GameBoard.js +0 -1
  1474. package/lib/module/games/tile-home/components/ScoreBoard.js +0 -1
  1475. package/lib/module/games/tile-home/components/TileItem.js +0 -1
  1476. package/lib/module/games/tile-home/components/TileSlot.js +0 -1
  1477. package/lib/module/games/whack-a-mole/WhackAMoleService.js +0 -1
  1478. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +0 -1
  1479. package/lib/module/games/whack-a-mole/components/GameBackground.js +0 -1
  1480. package/lib/module/games/whack-a-mole/components/GameGrid.js +0 -1
  1481. package/lib/module/games/whack-a-mole/components/GameHole.js +0 -1
  1482. package/lib/module/games/whack-a-mole/components/MoleCharacter.js +0 -1
  1483. package/lib/module/games/whack-a-mole/components/ScoreBoard.js +0 -1
  1484. package/lib/module/games/word-search/WordSearchConstants.js +0 -1
  1485. package/lib/module/games/word-search/WordSearchService.js +0 -1
  1486. package/lib/module/games/word-search/WordSearchStore.js +0 -1
  1487. package/lib/module/games/word-search/components/GameBoard.js +0 -1
  1488. package/lib/module/games/word-search/components/ScoreBoard.js +0 -1
  1489. package/lib/module/games/word-search/components/WordList.js +0 -1
  1490. package/lib/module/helpers/AnimatedScore.js +0 -1
  1491. package/lib/module/helpers/AnimationFrame.js +0 -1
  1492. package/lib/module/helpers/AnimationTracker.js +0 -1
  1493. package/lib/module/helpers/BlastAnimation.js +0 -1
  1494. package/lib/module/helpers/ErrorHandler.js +0 -1
  1495. package/lib/module/helpers/GameBackgroundPattern.js +0 -1
  1496. package/lib/module/helpers/GameControlButton.js +0 -1
  1497. package/lib/module/helpers/GameOverModal.js +0 -1
  1498. package/lib/module/helpers/GameTimer.js +0 -1
  1499. package/lib/module/helpers/Icons.js +0 -1
  1500. package/lib/module/helpers/ParticleBlast.js +0 -1
  1501. package/lib/module/helpers/ScoreBoardContainer.js +0 -1
  1502. package/lib/module/helpers/assets/apple-fruit.js +0 -1
  1503. package/lib/module/helpers/assets/avocado-item.js +0 -1
  1504. package/lib/module/helpers/assets/banana-fruit.js +0 -1
  1505. package/lib/module/helpers/assets/bomb-item.js +0 -1
  1506. package/lib/module/helpers/assets/broccoli-item.js +0 -1
  1507. package/lib/module/helpers/assets/cherries-fruit.js +0 -1
  1508. package/lib/module/helpers/assets/donut-item.js +0 -1
  1509. package/lib/module/helpers/assets/dragonfruit-item.js +0 -1
  1510. package/lib/module/helpers/assets/fries-item.js +0 -1
  1511. package/lib/module/helpers/assets/fruit-helpers.js +0 -1
  1512. package/lib/module/helpers/assets/grapes-fruit.js +0 -1
  1513. package/lib/module/helpers/assets/icecream-item.js +0 -1
  1514. package/lib/module/helpers/assets/index.js +0 -1
  1515. package/lib/module/helpers/assets/kiwi-fruit.js +0 -1
  1516. package/lib/module/helpers/assets/mango-fruit.js +0 -1
  1517. package/lib/module/helpers/assets/orange-fruit.js +0 -1
  1518. package/lib/module/helpers/assets/papaya-fruit.js +0 -1
  1519. package/lib/module/helpers/assets/papaya-full-fruit.js +0 -1
  1520. package/lib/module/helpers/assets/peach-fruit.js +0 -1
  1521. package/lib/module/helpers/assets/pineapple-fruit.js +0 -1
  1522. package/lib/module/helpers/assets/pomegranate-fruit.js +0 -1
  1523. package/lib/module/helpers/assets/pumpkin-fruit.js +0 -1
  1524. package/lib/module/helpers/assets/raspberry-item.js +0 -1
  1525. package/lib/module/helpers/assets/star-item.js +0 -1
  1526. package/lib/module/helpers/assets/strawberry-fruit.js +0 -1
  1527. package/lib/module/helpers/assets/watermelon-fruit.js +0 -1
  1528. package/lib/module/types.d.js +0 -1
  1529. package/lib/typescript/src/games/arrows/ArrowsService.d.ts +0 -6
  1530. package/lib/typescript/src/games/arrows/ArrowsStore.d.ts +0 -51
  1531. package/lib/typescript/src/games/arrows/components/ArrowsGrid.d.ts +0 -13
  1532. package/lib/typescript/src/games/arrows/components/ScoreBoard.d.ts +0 -6
  1533. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +0 -80
  1534. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +0 -30
  1535. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts +0 -9
  1536. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts +0 -9
  1537. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts +0 -7
  1538. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts +0 -6
  1539. package/lib/typescript/src/games/bike-racing/BikeRacingService.d.ts +0 -44
  1540. package/lib/typescript/src/games/bike-racing/BikeRacingStore.d.ts +0 -68
  1541. package/lib/typescript/src/games/bike-racing/components/BikeComponent.d.ts +0 -12
  1542. package/lib/typescript/src/games/bike-racing/components/GameBackground.d.ts +0 -7
  1543. package/lib/typescript/src/games/bike-racing/components/ScoreBoard.d.ts +0 -6
  1544. package/lib/typescript/src/games/block-blast/BlockBlastService.d.ts +0 -16
  1545. package/lib/typescript/src/games/block-blast/BlockBlastStore.d.ts +0 -70
  1546. package/lib/typescript/src/games/block-blast/components/BlockPieceComponent.d.ts +0 -11
  1547. package/lib/typescript/src/games/block-blast/components/GameArea.d.ts +0 -11
  1548. package/lib/typescript/src/games/block-blast/components/GridComponent.d.ts +0 -8
  1549. package/lib/typescript/src/games/block-blast/components/ScoreBoard.d.ts +0 -6
  1550. package/lib/typescript/src/games/block-breaker/BlockBreakerService.d.ts +0 -88
  1551. package/lib/typescript/src/games/block-breaker/BlockBreakerStore.d.ts +0 -47
  1552. package/lib/typescript/src/games/block-breaker/components/BlastAnimation.d.ts +0 -15
  1553. package/lib/typescript/src/games/block-breaker/components/GameArea.d.ts +0 -8
  1554. package/lib/typescript/src/games/block-breaker/components/ScoreBoard.d.ts +0 -6
  1555. package/lib/typescript/src/games/bluk/BlukService.d.ts +0 -71
  1556. package/lib/typescript/src/games/bluk/BlukStore.d.ts +0 -52
  1557. package/lib/typescript/src/games/bluk/components/GameArea.d.ts +0 -17
  1558. package/lib/typescript/src/games/bluk/components/GameBackground.d.ts +0 -9
  1559. package/lib/typescript/src/games/bluk/components/ScoreBoard.d.ts +0 -6
  1560. package/lib/typescript/src/games/bubble-shooter/BubbleShooterService.d.ts +0 -35
  1561. package/lib/typescript/src/games/bubble-shooter/BubbleShooterStore.d.ts +0 -63
  1562. package/lib/typescript/src/games/bubble-shooter/components/GameArea.d.ts +0 -8
  1563. package/lib/typescript/src/games/bubble-shooter/components/ScoreBoard.d.ts +0 -6
  1564. package/lib/typescript/src/games/candy-crush/CandyCrushService.d.ts +0 -37
  1565. package/lib/typescript/src/games/candy-crush/CandyCrushStore.d.ts +0 -53
  1566. package/lib/typescript/src/games/candy-crush/components/CandyItem.d.ts +0 -11
  1567. package/lib/typescript/src/games/candy-crush/components/GameGrid.d.ts +0 -2
  1568. package/lib/typescript/src/games/candy-crush/components/ScoreBoard.d.ts +0 -5
  1569. package/lib/typescript/src/games/car-racing/CarRacingService.d.ts +0 -44
  1570. package/lib/typescript/src/games/car-racing/CarRacingStore.d.ts +0 -68
  1571. package/lib/typescript/src/games/car-racing/components/CarComponent.d.ts +0 -12
  1572. package/lib/typescript/src/games/car-racing/components/GameBackground.d.ts +0 -7
  1573. package/lib/typescript/src/games/car-racing/components/ScoreBoard.d.ts +0 -6
  1574. package/lib/typescript/src/games/chameleon-run/ChameleonRunService.d.ts +0 -76
  1575. package/lib/typescript/src/games/chameleon-run/ChameleonRunStore.d.ts +0 -48
  1576. package/lib/typescript/src/games/chameleon-run/components/GameArea.d.ts +0 -8
  1577. package/lib/typescript/src/games/chameleon-run/components/GameBackground.d.ts +0 -7
  1578. package/lib/typescript/src/games/chameleon-run/components/ScoreBoard.d.ts +0 -6
  1579. package/lib/typescript/src/games/checkers/CheckersService.d.ts +0 -6
  1580. package/lib/typescript/src/games/checkers/CheckersStore.d.ts +0 -48
  1581. package/lib/typescript/src/games/checkers/components/GameBoard.d.ts +0 -6
  1582. package/lib/typescript/src/games/checkers/components/ScoreBoard.d.ts +0 -6
  1583. package/lib/typescript/src/games/color-switch/ColorSwitchService.d.ts +0 -63
  1584. package/lib/typescript/src/games/color-switch/ColorSwitchStore.d.ts +0 -43
  1585. package/lib/typescript/src/games/color-switch/components/GameArea.d.ts +0 -8
  1586. package/lib/typescript/src/games/color-switch/components/ScoreBoard.d.ts +0 -6
  1587. package/lib/typescript/src/games/colors-sort/ColorsSortService.d.ts +0 -61
  1588. package/lib/typescript/src/games/colors-sort/ColorsSortStore.d.ts +0 -56
  1589. package/lib/typescript/src/games/colors-sort/components/ColorContainer.d.ts +0 -7
  1590. package/lib/typescript/src/games/colors-sort/components/ScoreBoard.d.ts +0 -6
  1591. package/lib/typescript/src/games/connect-em-all/ConnectEmAllService.d.ts +0 -20
  1592. package/lib/typescript/src/games/connect-em-all/ConnectEmAllStore.d.ts +0 -48
  1593. package/lib/typescript/src/games/connect-em-all/components/GameBoard.d.ts +0 -7
  1594. package/lib/typescript/src/games/connect-em-all/components/ScoreBoard.d.ts +0 -6
  1595. package/lib/typescript/src/games/crossy-road/CrossyRoadService.d.ts +0 -89
  1596. package/lib/typescript/src/games/crossy-road/CrossyRoadStore.d.ts +0 -39
  1597. package/lib/typescript/src/games/crossy-road/components/GameArea.d.ts +0 -8
  1598. package/lib/typescript/src/games/crossy-road/components/ScoreBoard.d.ts +0 -6
  1599. package/lib/typescript/src/games/dino-jump/DinoJumpService.d.ts +0 -39
  1600. package/lib/typescript/src/games/dino-jump/DinoJumpStore.d.ts +0 -97
  1601. package/lib/typescript/src/games/dino-jump/components/DinoSprite.d.ts +0 -2
  1602. package/lib/typescript/src/games/dino-jump/components/GameArea.d.ts +0 -7
  1603. package/lib/typescript/src/games/dino-jump/components/GameBackground.d.ts +0 -7
  1604. package/lib/typescript/src/games/dino-jump/components/ObstacleSprite.d.ts +0 -8
  1605. package/lib/typescript/src/games/dino-jump/components/ScoreBoard.d.ts +0 -6
  1606. package/lib/typescript/src/games/dino-jump/components/StarSprite.d.ts +0 -2
  1607. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesService.d.ts +0 -45
  1608. package/lib/typescript/src/games/dots-and-boxes/DotsAndBoxesStore.d.ts +0 -37
  1609. package/lib/typescript/src/games/dots-and-boxes/components/GameBoard.d.ts +0 -7
  1610. package/lib/typescript/src/games/dots-and-boxes/components/ScoreBoard.d.ts +0 -6
  1611. package/lib/typescript/src/games/falling-sticks/FallingSticksService.d.ts +0 -38
  1612. package/lib/typescript/src/games/falling-sticks/FallingSticksStore.d.ts +0 -31
  1613. package/lib/typescript/src/games/falling-sticks/components/GameArea.d.ts +0 -7
  1614. package/lib/typescript/src/games/falling-sticks/components/GameBackground.d.ts +0 -6
  1615. package/lib/typescript/src/games/falling-sticks/components/ScoreBoard.d.ts +0 -6
  1616. package/lib/typescript/src/games/find-different-number/FindDifferentNumberService.d.ts +0 -6
  1617. package/lib/typescript/src/games/find-different-number/FindDifferentNumberStore.d.ts +0 -36
  1618. package/lib/typescript/src/games/find-different-number/components/GameGrid.d.ts +0 -7
  1619. package/lib/typescript/src/games/find-different-number/components/ScoreBoard.d.ts +0 -6
  1620. package/lib/typescript/src/games/flappy-bird/FlappyBirdStore.d.ts +0 -68
  1621. package/lib/typescript/src/games/flappy-bird/components/Bird.d.ts +0 -2
  1622. package/lib/typescript/src/games/flappy-bird/components/GameArea.d.ts +0 -7
  1623. package/lib/typescript/src/games/flappy-bird/components/GameBackground.d.ts +0 -7
  1624. package/lib/typescript/src/games/flappy-bird/components/Pipes.d.ts +0 -8
  1625. package/lib/typescript/src/games/flappy-bird/components/ScoreBoard.d.ts +0 -6
  1626. package/lib/typescript/src/games/fruit-merger/FruitMergerService.d.ts +0 -3
  1627. package/lib/typescript/src/games/fruit-merger/FruitMergerStore.d.ts +0 -66
  1628. package/lib/typescript/src/games/fruit-merger/components/FruitItem.d.ts +0 -8
  1629. package/lib/typescript/src/games/fruit-merger/components/GameArea.d.ts +0 -8
  1630. package/lib/typescript/src/games/fruit-merger/components/ScoreBoard.d.ts +0 -6
  1631. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts +0 -73
  1632. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts +0 -38
  1633. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts +0 -8
  1634. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts +0 -7
  1635. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts +0 -7
  1636. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts +0 -6
  1637. package/lib/typescript/src/games/game-2048/Game2048Service.d.ts +0 -102
  1638. package/lib/typescript/src/games/game-2048/Game2048Store.d.ts +0 -44
  1639. package/lib/typescript/src/games/game-2048/components/GameGrid.d.ts +0 -2
  1640. package/lib/typescript/src/games/game-2048/components/ScoreBoard.d.ts +0 -6
  1641. package/lib/typescript/src/games/knife-hit/KnifeHitService.d.ts +0 -48
  1642. package/lib/typescript/src/games/knife-hit/KnifeHitStore.d.ts +0 -41
  1643. package/lib/typescript/src/games/knife-hit/components/GameArea.d.ts +0 -8
  1644. package/lib/typescript/src/games/knife-hit/components/ScoreBoard.d.ts +0 -6
  1645. package/lib/typescript/src/games/ludo-king/LudoKingService.d.ts +0 -33
  1646. package/lib/typescript/src/games/ludo-king/LudoKingStore.d.ts +0 -34
  1647. package/lib/typescript/src/games/ludo-king/components/Dice.d.ts +0 -7
  1648. package/lib/typescript/src/games/ludo-king/components/GameBoard.d.ts +0 -7
  1649. package/lib/typescript/src/games/ludo-king/components/ScoreBoard.d.ts +0 -6
  1650. package/lib/typescript/src/games/maze-runner/MazeRunnerStore.d.ts +0 -62
  1651. package/lib/typescript/src/games/maze-runner/components/EnhancedBallComponent.d.ts +0 -10
  1652. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts +0 -33
  1653. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts +0 -24
  1654. package/lib/typescript/src/games/maze-runner/components/SkiaPipeComponent.d.ts +0 -24
  1655. package/lib/typescript/src/games/maze-runner/components/WallComponent.d.ts +0 -9
  1656. package/lib/typescript/src/games/memory-match/MemoryMatchService.d.ts +0 -6
  1657. package/lib/typescript/src/games/memory-match/MemoryMatchStore.d.ts +0 -42
  1658. package/lib/typescript/src/games/memory-match/components/Card.d.ts +0 -6
  1659. package/lib/typescript/src/games/memory-match/components/GameBoard.d.ts +0 -6
  1660. package/lib/typescript/src/games/memory-match/components/ScoreBoard.d.ts +0 -6
  1661. package/lib/typescript/src/games/mine-sweeper/MineSweeperService.d.ts +0 -22
  1662. package/lib/typescript/src/games/mine-sweeper/MineSweeperStore.d.ts +0 -73
  1663. package/lib/typescript/src/games/mine-sweeper/components/GameArea.d.ts +0 -8
  1664. package/lib/typescript/src/games/mine-sweeper/components/ScoreBoard.d.ts +0 -6
  1665. package/lib/typescript/src/games/mob-control/MobControlService.d.ts +0 -74
  1666. package/lib/typescript/src/games/mob-control/MobControlStore.d.ts +0 -66
  1667. package/lib/typescript/src/games/mob-control/components/GameArea.d.ts +0 -11
  1668. package/lib/typescript/src/games/mob-control/components/ScoreBoard.d.ts +0 -6
  1669. package/lib/typescript/src/games/number-search/NumberSearchConstants.d.ts +0 -63
  1670. package/lib/typescript/src/games/number-search/NumberSearchService.d.ts +0 -34
  1671. package/lib/typescript/src/games/number-search/NumberSearchStore.d.ts +0 -70
  1672. package/lib/typescript/src/games/number-search/components/GameBoard.d.ts +0 -7
  1673. package/lib/typescript/src/games/number-search/components/NumberList.d.ts +0 -2
  1674. package/lib/typescript/src/games/number-search/components/ScoreBoard.d.ts +0 -6
  1675. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsService.d.ts +0 -67
  1676. package/lib/typescript/src/games/nuts-and-bolts/NutsAndBoltsStore.d.ts +0 -45
  1677. package/lib/typescript/src/games/nuts-and-bolts/components/GameBoard.d.ts +0 -7
  1678. package/lib/typescript/src/games/nuts-and-bolts/components/ScoreBoard.d.ts +0 -6
  1679. package/lib/typescript/src/games/pac-man/PacManService.d.ts +0 -73
  1680. package/lib/typescript/src/games/pac-man/PacManStore.d.ts +0 -89
  1681. package/lib/typescript/src/games/pac-man/components/GameCanvas.d.ts +0 -2
  1682. package/lib/typescript/src/games/pac-man/components/ScoreBoard.d.ts +0 -6
  1683. package/lib/typescript/src/games/paper-io/PaperIoService.d.ts +0 -70
  1684. package/lib/typescript/src/games/paper-io/PaperIoStore.d.ts +0 -51
  1685. package/lib/typescript/src/games/paper-io/components/GameArea.d.ts +0 -8
  1686. package/lib/typescript/src/games/paper-io/components/ScoreBoard.d.ts +0 -6
  1687. package/lib/typescript/src/games/perfect-circle/PerfectCircleService.d.ts +0 -15
  1688. package/lib/typescript/src/games/perfect-circle/PerfectCircleStore.d.ts +0 -55
  1689. package/lib/typescript/src/games/perfect-circle/components/DrawingCanvas.d.ts +0 -8
  1690. package/lib/typescript/src/games/perfect-circle/components/ScoreBoard.d.ts +0 -6
  1691. package/lib/typescript/src/games/pipe-connect/PipeConnectService.d.ts +0 -17
  1692. package/lib/typescript/src/games/pipe-connect/PipeConnectStore.d.ts +0 -31
  1693. package/lib/typescript/src/games/pipe-connect/components/GameArea.d.ts +0 -7
  1694. package/lib/typescript/src/games/pipe-connect/components/ScoreBoard.d.ts +0 -6
  1695. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +0 -30
  1696. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +0 -33
  1697. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts +0 -10
  1698. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts +0 -10
  1699. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +0 -6
  1700. package/lib/typescript/src/games/reversi/ReversiStore.d.ts +0 -46
  1701. package/lib/typescript/src/games/reversi/components/GameBoard.d.ts +0 -6
  1702. package/lib/typescript/src/games/reversi/components/ScoreBoard.d.ts +0 -6
  1703. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersService.d.ts +0 -6
  1704. package/lib/typescript/src/games/sliding-numbers/SlidingNumbersStore.d.ts +0 -38
  1705. package/lib/typescript/src/games/sliding-numbers/components/NumbersGrid.d.ts +0 -7
  1706. package/lib/typescript/src/games/sliding-numbers/components/ScoreBoard.d.ts +0 -6
  1707. package/lib/typescript/src/games/snake-3d/Snake3DService.d.ts +0 -29
  1708. package/lib/typescript/src/games/snake-3d/Snake3DStore.d.ts +0 -49
  1709. package/lib/typescript/src/games/snake-3d/components/GameGrid.d.ts +0 -2
  1710. package/lib/typescript/src/games/snake-3d/components/ScoreBoard.d.ts +0 -6
  1711. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersService.d.ts +0 -22
  1712. package/lib/typescript/src/games/snakes-and-ladders/SnakesAndLaddersStore.d.ts +0 -40
  1713. package/lib/typescript/src/games/snakes-and-ladders/components/Dice.d.ts +0 -7
  1714. package/lib/typescript/src/games/snakes-and-ladders/components/GameBoard.d.ts +0 -2
  1715. package/lib/typescript/src/games/snakes-and-ladders/components/ScoreBoard.d.ts +0 -6
  1716. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts +0 -117
  1717. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts +0 -54
  1718. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts +0 -9
  1719. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts +0 -9
  1720. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts +0 -6
  1721. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts +0 -6
  1722. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts +0 -11
  1723. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts +0 -9
  1724. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireService.d.ts +0 -23
  1725. package/lib/typescript/src/games/spider-solitaire/SpiderSolitaireStore.d.ts +0 -71
  1726. package/lib/typescript/src/games/spider-solitaire/components/Card.d.ts +0 -10
  1727. package/lib/typescript/src/games/spider-solitaire/components/CardPile.d.ts +0 -12
  1728. package/lib/typescript/src/games/spider-solitaire/components/ScoreBoard.d.ts +0 -6
  1729. package/lib/typescript/src/games/stack-tower/StackTowerService.d.ts +0 -51
  1730. package/lib/typescript/src/games/stack-tower/StackTowerStore.d.ts +0 -52
  1731. package/lib/typescript/src/games/stack-tower/components/GameArea.d.ts +0 -8
  1732. package/lib/typescript/src/games/stack-tower/components/ScoreBoard.d.ts +0 -6
  1733. package/lib/typescript/src/games/sudoku/SudokuService.d.ts +0 -24
  1734. package/lib/typescript/src/games/sudoku/SudokuStore.d.ts +0 -65
  1735. package/lib/typescript/src/games/sudoku/components/GameArea.d.ts +0 -8
  1736. package/lib/typescript/src/games/sudoku/components/ScoreBoard.d.ts +0 -6
  1737. package/lib/typescript/src/games/tangram/TangramService.d.ts +0 -6
  1738. package/lib/typescript/src/games/tangram/TangramStore.d.ts +0 -34
  1739. package/lib/typescript/src/games/tangram/components/GameBoard.d.ts +0 -7
  1740. package/lib/typescript/src/games/tangram/components/ScoreBoard.d.ts +0 -6
  1741. package/lib/typescript/src/games/tank-1990/Tank1990Service.d.ts +0 -80
  1742. package/lib/typescript/src/games/tank-1990/Tank1990Store.d.ts +0 -48
  1743. package/lib/typescript/src/games/tank-1990/components/Controls.d.ts +0 -2
  1744. package/lib/typescript/src/games/tank-1990/components/GameBoard.d.ts +0 -2
  1745. package/lib/typescript/src/games/tank-1990/components/ScoreBoard.d.ts +0 -6
  1746. package/lib/typescript/src/games/tic-tac-toe/TicTacToeService.d.ts +0 -0
  1747. package/lib/typescript/src/games/tic-tac-toe/TicTacToeStore.d.ts +0 -51
  1748. package/lib/typescript/src/games/tic-tac-toe/components/GameBoard.d.ts +0 -6
  1749. package/lib/typescript/src/games/tic-tac-toe/components/ScoreBoard.d.ts +0 -6
  1750. package/lib/typescript/src/games/tile-home/TileHomeService.d.ts +0 -1
  1751. package/lib/typescript/src/games/tile-home/TileHomeStore.d.ts +0 -57
  1752. package/lib/typescript/src/games/tile-home/components/AnimatingTile.d.ts +0 -9
  1753. package/lib/typescript/src/games/tile-home/components/FlyingTile.d.ts +0 -16
  1754. package/lib/typescript/src/games/tile-home/components/GameBoard.d.ts +0 -7
  1755. package/lib/typescript/src/games/tile-home/components/ScoreBoard.d.ts +0 -6
  1756. package/lib/typescript/src/games/tile-home/components/TileItem.d.ts +0 -11
  1757. package/lib/typescript/src/games/tile-home/components/TileSlot.d.ts +0 -7
  1758. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts +0 -32
  1759. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts +0 -39
  1760. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts +0 -7
  1761. package/lib/typescript/src/games/whack-a-mole/components/GameGrid.d.ts +0 -10
  1762. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts +0 -11
  1763. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts +0 -6
  1764. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts +0 -6
  1765. package/lib/typescript/src/games/word-search/WordSearchConstants.d.ts +0 -63
  1766. package/lib/typescript/src/games/word-search/WordSearchService.d.ts +0 -34
  1767. package/lib/typescript/src/games/word-search/WordSearchStore.d.ts +0 -70
  1768. package/lib/typescript/src/games/word-search/components/GameBoard.d.ts +0 -7
  1769. package/lib/typescript/src/games/word-search/components/ScoreBoard.d.ts +0 -6
  1770. package/lib/typescript/src/games/word-search/components/WordList.d.ts +0 -2
  1771. package/lib/typescript/src/helpers/AnimatedScore.d.ts +0 -36
  1772. package/lib/typescript/src/helpers/AnimationFrame.d.ts +0 -40
  1773. package/lib/typescript/src/helpers/AnimationTracker.d.ts +0 -44
  1774. package/lib/typescript/src/helpers/BlastAnimation.d.ts +0 -16
  1775. package/lib/typescript/src/helpers/ErrorHandler.d.ts +0 -123
  1776. package/lib/typescript/src/helpers/GameBackgroundPattern.d.ts +0 -7
  1777. package/lib/typescript/src/helpers/GameControlButton.d.ts +0 -11
  1778. package/lib/typescript/src/helpers/GameOverModal.d.ts +0 -15
  1779. package/lib/typescript/src/helpers/GameTimer.d.ts +0 -26
  1780. package/lib/typescript/src/helpers/Icons.d.ts +0 -12
  1781. package/lib/typescript/src/helpers/ParticleBlast.d.ts +0 -11
  1782. package/lib/typescript/src/helpers/ScoreBoardContainer.d.ts +0 -85
  1783. package/lib/typescript/src/helpers/assets/apple-fruit.d.ts +0 -4
  1784. package/lib/typescript/src/helpers/assets/avocado-item.d.ts +0 -4
  1785. package/lib/typescript/src/helpers/assets/banana-fruit.d.ts +0 -4
  1786. package/lib/typescript/src/helpers/assets/bomb-item.d.ts +0 -4
  1787. package/lib/typescript/src/helpers/assets/broccoli-item.d.ts +0 -4
  1788. package/lib/typescript/src/helpers/assets/cherries-fruit.d.ts +0 -4
  1789. package/lib/typescript/src/helpers/assets/donut-item.d.ts +0 -4
  1790. package/lib/typescript/src/helpers/assets/dragonfruit-item.d.ts +0 -4
  1791. package/lib/typescript/src/helpers/assets/fries-item.d.ts +0 -4
  1792. package/lib/typescript/src/helpers/assets/fruit-helpers.d.ts +0 -154
  1793. package/lib/typescript/src/helpers/assets/grapes-fruit.d.ts +0 -4
  1794. package/lib/typescript/src/helpers/assets/icecream-item.d.ts +0 -4
  1795. package/lib/typescript/src/helpers/assets/index.d.ts +0 -31
  1796. package/lib/typescript/src/helpers/assets/kiwi-fruit.d.ts +0 -4
  1797. package/lib/typescript/src/helpers/assets/mango-fruit.d.ts +0 -4
  1798. package/lib/typescript/src/helpers/assets/orange-fruit.d.ts +0 -4
  1799. package/lib/typescript/src/helpers/assets/papaya-fruit.d.ts +0 -4
  1800. package/lib/typescript/src/helpers/assets/papaya-full-fruit.d.ts +0 -4
  1801. package/lib/typescript/src/helpers/assets/peach-fruit.d.ts +0 -4
  1802. package/lib/typescript/src/helpers/assets/pineapple-fruit.d.ts +0 -4
  1803. package/lib/typescript/src/helpers/assets/pomegranate-fruit.d.ts +0 -4
  1804. package/lib/typescript/src/helpers/assets/pumpkin-fruit.d.ts +0 -4
  1805. package/lib/typescript/src/helpers/assets/raspberry-item.d.ts +0 -4
  1806. package/lib/typescript/src/helpers/assets/star-item.d.ts +0 -4
  1807. package/lib/typescript/src/helpers/assets/strawberry-fruit.d.ts +0 -4
  1808. package/lib/typescript/src/helpers/assets/watermelon-fruit.d.ts +0 -4
@@ -1 +0,0 @@
1
- "use strict";const _0x5ddf1e=_0x1371;function _0x1371(r,o){r-=388;const e=_0x1a36();let t=e[r];if(void 0===_0x1371.yFwnrR){const r=function(r,o){let e,t,n=[],a=0,W="";for(r=function(r){let o="",e="";for(let e,t,n=0,a=0;t=r.charAt(a++);~t&&(e=n%4?64*e+t:t,n++%4)?o+=String.fromCharCode(255&e>>(-2*n&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let r=0,t=o.length;r<t;r++)e+="%"+("00"+o.charCodeAt(r).toString(16)).slice(-2);return decodeURIComponent(e)}(r),t=0;t<256;t++)n[t]=t;for(t=0;t<256;t++)a=(a+n[t]+o.charCodeAt(t%o.length))%256,e=n[t],n[t]=n[a],n[a]=e;t=0,a=0;for(let o=0;o<r.length;o++)t=(t+1)%256,a=(a+n[t])%256,e=n[t],n[t]=n[a],n[a]=e,W+=String.fromCharCode(r.charCodeAt(o)^n[(n[t]+n[a])%256]);return W};_0x1371.NsWqyk=r,_0x1371.StctzL={},_0x1371.yFwnrR=!0}const n=e[0];_0x1371.kKARoV!==n&&(_0x1371.StctzL={},_0x1371.kKARoV=n);const a=_0x1371.StctzL[r];return void 0===a?(void 0===_0x1371.KoqnSh&&(_0x1371.KoqnSh=!0),t=_0x1371.NsWqyk(t,o),_0x1371.StctzL[r]=t):t=a,t}!function(){const r=_0x1371,o=_0x1a36();for(;;)try{if(416484==-parseInt(r(399,"RSWi"))/1*(-parseInt(r(390,"q(#!"))/2)+parseInt(r(403,"SwzA"))/3*(parseInt(r(397,"SwzA"))/4)+-parseInt(r(388,"xzgC"))/5+parseInt(r(410,"[x0r"))/6*(-parseInt(r(398,"BKfy"))/7)+-parseInt(r(389,"xURR"))/8*(-parseInt(r(393,"RSWi"))/9)+-parseInt(r(408,"s@dS"))/10+parseInt(r(396,"1A!a"))/11)break;o.push(o.shift())}catch(r){o.push(o.shift())}}();import{c as _0x2a3aa1}from"react/compiler-runtime";import _0x4494df from"react";import{View}from"react-native";function _0x1a36(){const r=["WPv3AJ0EEmoUW4lcSSokFJ57","W5n/WQtcMYqgW5yqWPxdSfTOaG","hSkTW6tcPCoGWQVdKW","WO7dJbxcRCoq","WQydFImXW7/dJmkGW7OIW7y","W4xdM0GbBxPV","h8oWWQxdOCkqW53cLmoEfCodCx9c","jMhcU8kcW6hcOSkzW65DWODiuZy","BLv9ySkcF8kkW6Gqpq/dV8kw","W6X0rYb0W4RdTh7cUSkCW4W","iJxdGmoBWRldL8oi","W43cJrL7pWHYW7tdKJ3cLKu","WPuRW7pdMhy","W5NcGhf8W7e9tG","WQPCW6VcSCkzW6BdRG","W6v3p1eRW6NdINi","Dmo2W61+W4NdOs/cHW","ASodWPBdLSosW4BcNa","fSo+rG","W4/cGv3dTmkmW7VcNrRdLcVcSJXj","W4LjW5/cHmkKW67cGMHaW4JdOvtdLq","W5WCW7NcIXm/FmonWRddQ8oKjq","W6OoWRVdQ8obWRBcRWVcPSkcnHGI"];return(_0x1a36=function(){return r})()}import{useScore,useTime}from"../NumberSearchStore.js";import{formatScore}from"../NumberSearchService.js";import{ScoreBoardContainer,ScoreValue,ScoreTimer,scoreBoardStyles as _0x3fab33}from"../../../helpers/index.js";import{jsx as _0x41da39,jsxs as _0x51ca48}from"react/jsx-runtime";export const ScoreBoard=_0x4494df.memo(r=>{const o=_0x1371,e=_0x2a3aa1(10),{offset:t}=r,n=void 0===t?0:t,a=useScore(),W=useTime();let s,d,i,x;if(e[0]!==a){const r={};r[o(400,"xURR")]=a,r.formatter=formatScore,s=_0x41da39(ScoreValue,r),e[0]=a,e[1]=s}else s=e[1];if(e[2]!==W){const r={};r[o(402,"[x0r")]=W,r[o(409,"#Gli")]=0,d=_0x41da39(ScoreTimer,r),e[2]=W,e[3]=d}else d=e[3];if(e[4]!==s||e[5]!==d){const r={};r[o(391,"@wq@")]=_0x3fab33[o(406,"!GM*")],r[o(404,"A&!C")]=[s,d],i=_0x51ca48(View,r),e[4]=s,e[5]=d,e[6]=i}else i=e[6];if(e[7]!==n||e[8]!==i){const r={};r.offset=n,r.children=i,x=_0x41da39(ScoreBoardContainer,r),e[7]=n,e[8]=i,e[9]=x}else x=e[9];return x});ScoreBoard[_0x5ddf1e(392,"QPfD")]="ScoreBoard";
@@ -1 +0,0 @@
1
- "use strict";const _0x4adecf=_0x4610;!function(){const o=_0x4610,t=_0x47e0();for(;;)try{if(133256==-parseInt(o(599,"uqJb"))/1*(-parseInt(o(512,"l9yf"))/2)+-parseInt(o(423,"DhKW"))/3+parseInt(o(440,"%70Y"))/4*(-parseInt(o(487,"uVBq"))/5)+-parseInt(o(568,"Y)lU"))/6+parseInt(o(401,"(DPb"))/7*(-parseInt(o(461,"l9yf"))/8)+parseInt(o(454,"T4Oc"))/9+parseInt(o(496,"AYQN"))/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[_0x4610(579,"jDF)")]();const _0x2da0ce={};_0x2da0ce[_0x4adecf(469,"ooG6")]=_0x4adecf(596,"9h(G"),_0x2da0ce.vertical=_0x4adecf(508,"^cbm");const PLANK_COLORS=_0x2da0ce;export const getPlankPositions=o=>{const t=_0x4adecf,n={};n[t(572,"1[Tw")]=function(o,t){return o+t},n[t(598,"A^um")]=t(523,"tHAB");const r=n,W=[];for(let n=0;n<o[t(397,"CYr7")];n++)if(o.orientation===t(459,"f@w@"))W[t(539,"(DPb")]({row:o[t(466,"&EOI")],col:r[t(433,"AYQN")](o[t(431,"aj@N")],n)});else if("jSjTT"===r.DoAph){const r={};r.row=o.startRow+n,r[t(526,"%6Cb")]=o[t(439,"A^um")],W[t(481,"Y)lU")](r)}else{const o=_0x2a4616[t(546,"uVBq")](o=>o.id===_0x422f4e[t(573,"Y)lU")]);o&&(o[t(380,"kLZN")]=null)}return W};export const plankCoversPosition=(o,t,n)=>{const r=_0x4adecf,W={eMibr:function(o,t){return o===t}};W.oQPiG=r(447,"f]m6"),W.jQbGK=function(o,t){return o+t};const e=W;for(let W=0;W<o[r(514,"3%^T")];W++)if(e[r(494,"1[Tw")](o[r(442,"^cbm")],e.oQPiG)){if(o[r(571,"tHAB")]===t&&e[r(569,"!^)h")](o[r(589,"xY!o")],W)===n)return!0}else{if("SzSDw"!==r(521,"RiO8"))return null===_0x5ad3b4[r(478,"TJn4")];if(o.startRow+W===t&&o.startCol===n)return!0}return!1};const randomInt=(o,t)=>{const n=_0x4adecf,r={};r[n(536,"jDF)")]=function(o,t){return o*t},r[n(540,"col4")]=function(o,t){return o+t},r.EZxVN=function(o,t){return o-t};const W=r;return Math[n(532,"aj@N")](W[n(490,"IMFI")](Math.random(),W.TImHD(W[n(463,"xY!o")](t,o),1)))+o},shuffleArray=o=>{const t=_0x4adecf,n={};n[t(405,"&6R[")]=function(o,t){return o+t};const r=n,W=[...o];for(let o=W[t(449,"TJn4")]-1;o>0;o--){const n=Math[t(479,"tHAB")](Math[t(432,"ZrwF")]()*r[t(408,"i^oy")](o,1));[W[o],W[n]]=[W[n],W[o]]}return W};export const generatePuzzle=()=>{const o="RiO8",t="i^oy",n="uqJb",r="col4",W="%70Y",e="Q1C&",d="TJn4",s=_0x4adecf,a={AXcCa:function(o,t){return o<t},BVWRE:function(o,t,n){return o(t,n)},dDgSB:function(o,t){return o(t)},xDSwN:s(398,"oV%E"),ECRst:s(415,"(DPb"),ZBZOH:function(o,t){return o===t},zwzld:function(o,t){return o%t},sbCqt:function(o,t){return o-t},PfTFd:function(o,t,n){return o(t,n)},APrEv:function(o,t){return o-t},BvIyJ:function(o,t,n){return o(t,n)},HROMc:function(o,t,n){return o(t,n)},MaWZg:function(o,t,n){return o(t,n)},TnPNM:function(o,t,n){return o(t,n)},Dqyty:function(o,t){return o(t)},JtjRQ:function(o,t){return o+t}},f=[],l=[];let i=[];const{BOARD_COLS:u,BOARD_ROWS:k,EXTRA_HOLES:C}=NUTS_AND_BOLTS_GAME_CONFIG;let m=0,x=0,O=!1,S=0;for(;!O&&a[s(428,o)](S,500);){S++,i=[],m=0;const f=a[s(501,"&6R[")](randomInt,0,3);if(0===f){const o=shuffleArray([...Array(k)[s(531,t)]()])[s(488,"TJn4")](0,3),n=a[s(434,"Y)lU")](shuffleArray,[...Array(u)[s(422,"rk9N")]()])[s(430,"AYQN")](0,3);for(const t of o){const o=randomInt(0,1),n=u-o-randomInt(0,1);i.push({id:s(392,"oV%E")+m++,orientation:a[s(506,"rk9N")],startRow:t,startCol:o,length:Math[s(558,"ZrwF")](2,n),color:PLANK_COLORS[s(395,"AYQN")],zIndex:m})}for(const o of n)if("ZtxPv"!==a[s(435,"&6R[")]){if(_0x366e7f[s(483,"l9yf")]+_0x5adce1===_0x4f3dc8&&_0x2f2723[s(564,"&6R[")]===_0x5ce8eb)return!0}else{const t=randomInt(0,1),n=k-t-randomInt(0,1);i[s(382,"CYr7")]({id:s(419,"f]m6")+m++,orientation:s(480,"ld5]"),startRow:t,startCol:o,length:Math[s(528,"&6R[")](2,n),color:PLANK_COLORS[s(513,"ooG6")],zIndex:m})}}else if(a[s(413,"r142")](f,1)){const o=Math[s(547,"i^oy")](k/2),t=Math[s(443,"6G0T")](u/2);for(let t=0;t<3;t++){const r=a[s(416,"f@w@")](a[s(493,"kLZN")](o,1)+t,k);i.push({id:s(550,"tbfA")+m++,orientation:a[s(585,"AYQN")],startRow:r,startCol:randomInt(0,1),length:u-a[s(389,"(DPb")](randomInt,0,1),color:PLANK_COLORS[s(399,n)],zIndex:m})}for(let o=0;o<3;o++){const n=(a[s(518,r)](t,1)+o)%u;i[s(458,"f@w@")]({id:s(406,r)+m++,orientation:s(381,"r8Yb"),startRow:randomInt(0,1),startCol:n,length:k-a.BVWRE(randomInt,0,1),color:PLANK_COLORS[s(383,"%6Cb")],zIndex:m})}}else if(2===f){for(let n=0;n<3;n++)if(s(582,"tbfA")!==s(500,t)){const o=a[s(453,"ld5]")](randomInt,0,k-1),t=n%2==0?0:randomInt(0,1),r=n%2==0?u-a[s(378,"^cbm")](randomInt,0,1):u;i[s(551,"T4Oc")]({id:"plank-"+m++,orientation:"horizontal",startRow:o,startCol:t,length:Math[s(400,"DhKW")](2,r-t),color:PLANK_COLORS.horizontal,zIndex:m})}else{const t={};t[s(544,"f]m6")]=_0x1b7c20[s(554,o)]+_0x26b3b8,t[s(384,"3%^T")]=_0x32cbc4[s(549,W)],_0x4b896d[s(555,"9h(G")](t)}for(let o=0;o<3;o++){const t=randomInt(0,a.APrEv(u,1)),n=o%2==0?0:randomInt(0,1),r=0===a.zwzld(o,2)?k-a[s(560,"col4")](randomInt,0,1):k;i[s(426,"Zjy1")]({id:s(525,"W8fx")+m++,orientation:s(376,"bjqL"),startRow:n,startCol:t,length:Math[s(504,"uqJb")](2,r-n),color:PLANK_COLORS[s(465,"lfsT")],zIndex:m})}}else{for(let o=0;o<3;o++){const o=randomInt(0,k-1),t=a[s(495,e)](randomInt,2,u),n=randomInt(0,Math[s(489,"%6Cb")](0,u-t)),r={};r.id=s(429,"Zjy1")+m++,r[s(404,W)]=a[s(475,"i^oy")],r[s(566,"ZrwF")]=o,r[s(476,"qX^J")]=n,r[s(403,"qX^J")]=t,r[s(477,"(w3x")]=PLANK_COLORS[s(563,e)],r[s(592,"(DPb")]=m,i[s(551,"T4Oc")](r)}for(let o=0;o<3;o++){const o=a.TnPNM(randomInt,0,a[s(446,"!^)h")](u,1)),t=randomInt(2,k),n=randomInt(0,Math[s(597,"bjqL")](0,k-t)),r={};r.id="plank-"+m++,r.orientation=s(520,"W8fx"),r[s(567,"Sx5S")]=n,r[s(444,d)]=o,r[s(484,"tbfA")]=t,r[s(535,"&6R[")]=PLANK_COLORS[s(600,"^cbm")],r[s(541,"TJn4")]=m,i[s(425,"tHAB")](r)}}const l=3;for(let o=0;o<i.length;o++){const t=i[o],n=getPlankPositions(t),r=[];for(let t=0;t<n[s(460,"aj@N")];t++){const W=n[t];for(let n=0;n<i[s(409,"%6Cb")];n++)if(n!==o&&plankCoversPosition(i[n],W.row,W[s(472,"uVBq")])){r[s(485,"6G0T")](t);break}}if(r.length>l){const o=r[l-1];t[s(530,"f]m6")]=o+1}}const C=a[s(450,"Zjy1")](getPlankIntersections,i),x=4;if(a.AXcCa(C[s(445,n)],x))continue;let h=!0;for(const o of i)if(!getPlankPositions(o).some(o=>C[s(464,"3%^T")](t=>t.row===o[s(502,"aj@N")]&&t[s(527,"tHAB")]===o[s(427,"Q1C&")]))){h=!1;break}h&&C.length>=x&&i[s(482,"&6R[")]>=3&&(O=!0)}const h=getPlankIntersections(i);for(const o of h){const t={};t.id="bolt-"+x++,t.row=o[s(565,"T4Oc")],t[s(580,"W8fx")]=o[s(511,"6G0T")],t.originalRow=o.row,t.originalCol=o[s(393,"A^um")],t[s(498,"f@w@")]=null,l[s(517,"1[Tw")](t)}for(let o=0;o<C;o++)f[s(509,"rk9N")]({id:s(391,"l9yf")+o,row:k,col:a.JtjRQ(o,Math[s(556,"%6Cb")]((u-C)/2)),boltId:null});const P={};return P[s(387,"xY!o")]=f,P[s(414,"oV%E")]=l,P[s(394,d)]=i,P};export const getBoltById=(o,t)=>t[_0x4adecf(467,"Y)lU")](t=>t.id===o)||null;export const getBoltAtPosition=(o,t,n)=>{const r=_0x4adecf;return n[r(603,"Q1C&")](n=>n.row===o&&n[r(543,"ooG6")]===t&&null===n[r(559,"aj@N")])||null};export const getHoleById=(o,t)=>t[_0x4adecf(456,"f@w@")](t=>t.id===o)||null;function _0x47e0(){const o=["yrpcTq","e1lcJxrk","iCoLfG","cwLBbSob","W4BdHsvLmdxcQqJcNSksWO47W44t","iY7cHq","xCkpvmo1D14","W7icW7zZW6a","WOaLW47cQsK","r8kbs8oKCG","hMZdHmoFW58","A8okWO4","ySo+WQTtFa","WOlcUwjFDG","kmkhW5/dQhqOW6NcKq","W73dKaiqW4O","bCoGmSoIDG","v8ose8kkW44I","ldNcJSkgW5C","mCoLdCo+AG","W6pcH08","W5LczvddUSopyG","amowFq","W4joW65eBW","WPeaW4P0tCkUW5udESkyga","WQZcQCo9B8oYWPX1W6a","W5tdGWDU","WRyZW7C","WQ03tSkA","g8osD8ovWP7cN8k+WO0","v8kdvmo2","WPJcMSoysCoE","jI3cHSkhW58","ufNcGbBdJeO","WRmZW7hdMmkLhCkCiW","fvNdHSoe","AfFdSmoYWPy4W5Oy","mmoLdq","W5RdHqvVgJa","WRWtW5FcIbq","m8kCW5ldV3m","ce3dHq","FCo9kCkOW48","mffE","WOVdNCktWRKk","W6xdKW8BW5ldHW","W6voW4m","avhcGg5sfa","dKFdPCobW6S/W4FdU8k5xG","W7xcOrW","cuNdM8olomoy","W73dKbWCW4pcHuNdRZ7dSq","W4TBWOeVbmkdW7C8DmkM","ENLG","gSoZfCkMW7G1WQW","tvun","WOxdH8omyCoFvq","zCoJWQ5tyCkUoeyuA3y","ySoejCksW4m","o8ozgmo1asu","dKFdU8onW5G0","qSoLWONdVWG","CLFdRmoHWOSZ","WQNdSfrJsmoYhCkCi2/cINxcRG","WRFcSCo7W49T","x8kdpmktW4tcVSktWQRcGa/cOq","W7/dGCkzAmkC","W7FdKaibW4O","D8oVbCk+W50","kSo4WOpcPmoe","n2ddOCoJW6m","WQ05W6/dICkfgG","WPdcUM9fBHG","WONcSCkaFSkuccW","WOVdJCooCSoy","wmkqWOlcQG","jsWUzwddGSkVy8kTf8otW4i","WPdcOxrMDa","WPmtv8kh","luvDkG","WQGXta","fMDWg0C","lvXplmoKqq","futdVSolW7q","c8k/WOldQhXMyCop","e8kyjmoEW5xcIG","jwBdK8oDW7G","WOqyESouW6m","y8ojamk0W7G","W43dRmkVqSkDWQC","WQmXtmkBWOvY","WQJcO8o4","W7vvW45gC2pdOai","pmkLW7CgoSoOhvSly1ldUG","yCk6W4JdVSkzWOpcT8oIaCo9WOj8ra","WRxcVSoMFSo1WOT1W7JdJMnW","W5RcNmklsmke","aKNcGhjnjdpcNa","W49rWP0HcSke","hmktWRxdTgW","WOJcUxXcF1PosqGD","W6ldUCk+","hvJcJ2DndW","gufxnSo2","W4a4W7H9W49X","WQmMW5BdLmke","WQO8W6VcTra","hWnwW6/dQmoEemkrW7WEFdWJ","Bf3dTq","nSoMWPFcRa","jmohemo8a2yAfs8sWPO","imo6WORcOa","omoGWOVcOCoAW5NdQ8o5m8oY","fmkUWO3dVxXn","W5lcH8ooW6OEnSo/kcNcQmkXzCok","WRdcRmo+W413W7ldVSkRsSoyW7m","hSkPW4BdJe4","imoLdmoV","b0i9WP3cTmobjeS","CqJcUa7dJSoWWRXN","WOy1C8oJ","CrNcRq","WOxdMSo2qCkZb8kbWRK0W5a","W6ZcR8onsmoPWOLD","ggqvWRhcTG","WRZcSCo7","wCklsq","W44VW7nNW7W","FSoVWQ3dNqK","WPRdLSodDmoFFKCS","f8krWOVdHHi","e1lcJxrWaW","WOuks8kaW50","WP4VW5dcUdpcV37cJq","WPaPBSoV","sSoVpmkGW7G2","WPddHSkEWQ5tuCkIma","W44YW7PUW7j9","W4ZcHCkxtW","fe3dUSojW7G+W4ddOCk/yH/cHN3dJru","W6RcN8oZW7n8W53dQa","aLhcIgnC","C1pdUG","W4tcJKuzWO0","bKpdMq","fvVdJ8oHpq","qvtcRXpdSq","W73cJqu5cG","WOy/D8kKWQS","uH3cPCkEWQDJWPNdHSkOFZVcG1u","kmoAfq","omoGWPxcRCoPW5i","dupdMCojbCou","z8oUWQFdRc4","zmoCbCkvW4K","cSkKWPq","WOtdG8os","W45vWOS","eSkxWOVdNqvl","s8kXWQJcRSol","w8ozWRf9Fq","W7NcJ8k/wmkRWRWK","q8kaWOJcSq","WOxdM8ktWQHcCq","W5/cN8ki","W5xdKCk9WO9vDCke","WPVdKmo2xmkGc8koWQe","p8oVd8oTBwC","WQZdTv5TtSoYgCkmjg7cQLdcIW","FmoIWPddJIjV","W6JcTr8Z","cSoLc8oEha","hghdUComW7qO","nItcM8kCW4tdRSosWPi","bevahfe","rLunWRRcMmko","WOK1tSk7W7S","kmkdW5ldS3q","mc3cImkgW4BcOa","Fv3dRG","WOajsa","s8oRkG","qCkAWOW","WOZcS2bmCv0","BCooWOFdMq","hSkNWOZdTxO","fKpdMmoj","rmoLpSkZW4u6","rCoLpSkOW74","W7JdGHTicW","y8osWP1Uza","BX3cQq","xCoUdSkg","h8o8fmotlG","c3tcJ2rChW","W4ddIWDUpdK","WO7dMSoO","WPlcUxK","cea3WO7cSq","WRNcT8o5W44","ymohWPhdHtu","f1tcJ2q","ECoLWQzeE8kznL4","W5i7W7vNW604","xK8sWRC","W77cQqi/","feFdOa","jeTYkLldJvdcKq","WOOpvaW","Ef7dRCoPWO0","WRlcO8oJFSosWPS","dmkymG","emkKWO/dV0fb","a8oNnSowcq","W4uYW6a","BCohWO7cQJvzW4lcLh9+WOZdGG","WQmXuSkxWRz5z8kMW7ldMa","vCo+m8k1W7GDEve","xfuw","eSknk8oiW47cTvVcUa","W7ldOSkZp3ddHrVcKa","W5fSjCk/WPhcIeVcGHVcISkLW77cJW","n8ksWQxdTLe","ESoKWRrE","WPasrCkDW5VcUmoBWQW","W5VcJIGUeq","WOGZCCoIW6JdNW","ASooWPddJtn/"];return(_0x47e0=function(){return o})()}export const getPlanksAtPosition=(o,t,n)=>n[_0x4adecf(505,"(w3x")](n=>plankCoversPosition(n,o,t));function _0x4610(o,t){o-=376;const n=_0x47e0();let r=n[o];if(void 0===_0x4610.HonWkC){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};_0x4610.GUDCrN=o,_0x4610.VwWqCt={},_0x4610.HonWkC=!0}const W=n[0];_0x4610.UHhhsM!==W&&(_0x4610.VwWqCt={},_0x4610.UHhhsM=W);const e=_0x4610.VwWqCt[o];return void 0===e?(void 0===_0x4610.nTnVzW&&(_0x4610.nTnVzW=!0),r=_0x4610.GUDCrN(r,t),_0x4610.VwWqCt[o]=r):r=e,r}export const getPlankIntersections=o=>{const t=_0x4adecf,n={vkqvq:function(o,t){return o(t)}},r=new Map;for(const W of o){const o=n[t(584,"U9D%")](getPlankPositions,W);for(const n of o){const o=n[t(455,"%6Cb")]+"-"+n.col;r[t(468,"&EOI")](o,(r[t(561,"tbfA")](o)||0)+1)}}const W=[];for(const[o,n]of r)if(n>=2){const[n,r]=o[t(524,"xY!o")]("-")[t(388,"CYr7")](Number),e={};e[t(553,"AYQN")]=n,e[t(580,"W8fx")]=r,W.push(e)}return W};export const getValidBoltPositions=o=>({VjSho:function(o,t){return o(t)}}[_0x4adecf(591,"3%^T")](getPlankIntersections,o));export const getEmptyGridHoles=(o,t)=>{const n=_0x4adecf,r=new Set(t[n(510,"l9yf")](o=>null===o[n(499,"CYr7")])[n(503,"qX^J")](o=>o.row+"-"+o[n(448,"Sx5S")])),W=new Map;for(const o of t){const t=o.originalRow+"-"+o.originalCol,r={};r.row=o[n(457,"col4")],r[n(402,"T4Oc")]=o[n(462,"uVBq")],W[n(602,"r8Yb")](t,r)}const e=[];for(const[o,t]of W)!r[n(473,"U9D%")](o)&&e.push(t);return e};export const canSelectBolt=(o,t)=>{const n=_0x4adecf,r={};if(r[n(507,"%70Y")]=function(o,t){return o!==t},r[n(417,"AYQN")](o[n(436,"r142")],null))return!1;const W=getPlanksAtPosition(o[n(529,"rk9N")],o[n(497,"col4")],t);if(0===W[n(574,"i^oy")])return!0;const e=Math[n(595,"IMFI")](...W[n(390,"Zjy1")](o=>o[n(516,"i^oy")]));return void 0!==W.find(o=>o[n(519,"AYQN")]===e)};export const canPlaceBoltInHole=o=>null===o.boltId;export const moveBoltToHole=(o,t,n,r)=>{const W="jDF)",e="tbfA",d=_0x4adecf,s={};s[d(452,"r8Yb")]=function(o,t){return o+t},s[d(424,"f]m6")]=function(o,t){return o||t},s[d(386,"ld5]")]=function(o,t){return o!==t},s[d(593,"W8fx")]=d(545,"lfsT");const a=s,f=n[d(538,"&EOI")](o=>({...o})),l=r[d(396,"1[Tw")](o=>({...o})),i=f[d(601,W)](t=>t.id===o),u=l[d(548,"TJn4")](o=>o.id===t),k={};if(k[d(421,"qX^J")]=n,k[d(411,"uVBq")]=r,a[d(492,"CYr7")](!i,!u))return k;if(i.holeId){if(!a[d(578,"Zjy1")]("tDzms",a[d(474,e)]))return _0xf75bbc[d(379,"W8fx")](_0x3f0a87[d(542,W)]()*xRkxuu.fpUxH(_0x576367-_0x3552f6,1))+_0x47b688;{const o=l[d(377,"U9D%")](o=>o.id===i[d(385,"jDF)")]);o&&(o.boltId=null)}}u[d(451,e)]=o,i[d(418,"r8Yb")]=t;const C={};return C[d(576,"TJn4")]=f,C[d(587,"%70Y")]=l,C};export const moveBoltToGrid=(o,t,n,r,W)=>{const e=_0x4adecf,d=r[e(586,"i^oy")](o=>({...o})),s=W.map(o=>({...o})),a=d[e(552,"1[Tw")](t=>t.id===o),f={};if(f[e(594,"3%^T")]=r,f[e(590,"oV%E")]=W,!a)return f;if(a[e(437,"Q1C&")]){const o=s.find(o=>o.id===a[e(407,"AYQN")]);o&&(o[e(534,"&6R[")]=null)}a[e(438,"^cbm")]=t,a[e(575,"&EOI")]=n,a[e(522,"T4Oc")]=null;const l={};return l[e(588,"f]m6")]=d,l[e(583,"ld5]")]=s,l};export const checkPlankRemoval=(o,t)=>{const n=_0x4adecf,r=[],W=[],e=new Set(t[n(505,"(w3x")](o=>null===o[n(557,"^cbm")])[n(586,"i^oy")](o=>o[n(577,"3%^T")]+"-"+o[n(491,"CYr7")]));for(const t of o)getPlankPositions(t)[n(533,"CYr7")](o=>e.has(o.row+"-"+o.col))?W.push(t):r[n(570,"%70Y")](t);const d={};return d.removedPlanks=r,d[n(486,"AYQN")]=W,d};export const isPuzzleComplete=o=>0===o[_0x4adecf(581,"U9D%")];export const calculateScore=o=>{const t=_0x4adecf,n={};n[t(537,"%70Y")]=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(471,"lfsT")](W+o*e,1.5))};
@@ -1 +0,0 @@
1
- "use strict";const _0x3c31b0=_0x33a0;!function(){const e=_0x33a0,o=_0x3951();for(;;)try{if(173795==parseInt(e(251,")s*["))/1+parseInt(e(367,"oD4A"))/2+-parseInt(e(298,"7AnL"))/3+parseInt(e(352,"d8u6"))/4*(parseInt(e(375,"eg#M"))/5)+-parseInt(e(252,"fZIe"))/6+parseInt(e(327,"bra)"))/7*(parseInt(e(324,"O)6B"))/8)+parseInt(e(349,"(JbC"))/9*(-parseInt(e(221,"yMK0"))/10))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";import{generatePuzzle,isPuzzleComplete,canSelectBolt,canPlaceBoltInHole,moveBoltToHole,moveBoltToGrid,checkPlankRemoval,getBoltById,getBoltAtPosition,getHoleById,getPlanksAtPosition}from"./NutsAndBoltsService.js";function _0x3951(){const e=["qXieW7FcOHVcTCoulSkyWPOEW48","W6ldL3tcO8kCcWCGhr0","W6rsWOH2hLFcJwyLW6hcQcxdQSkD","tmkCDSoiW6T+","sKqpW5O","W6tcQrupAevDWRpcGSkFqG","W657W67dQHG","W67dOSkJh8k2AHdcM21wngC9","yLddKcRcIg7cVmoRt0WN","lSkoWRFcTSkPW7G","gbSrpYu","W7JcUbmAza","W6maWPlcPmkMWQrSgh3cTW","WRFcGmk3FctcIsCx","WRxdVXRdVSo4","W7j+W6JdOqK","WRBcO2Tam8kCESo7t8k6WQC6W5W","W4n+WQLwiM/cOu8UW5O","vmoAW4rjAmkMmdBcUmoP","FtBcJ8kic8k2WOThW6/cKmoAqvRdRa","w0mdW50oygrZWO7cSwroW5e","kCoCW4eP","W6qLWRhcICk9mSkjECkxbhpdPCoC","tW81W7NcRWFcLmoBoq","WR5yWRVdHbxcUxmSWPRdPa","WRJdOCkPW7ddOq","p8oyW4NcKMVdPd7cJvnBW6pcGq","B8kbWP58W6hdKgrMW7JcKHqe","dCkzW5bAWRdcMmkECSoVqYTF","WOpcKf8PoW","W7tdKxJcTa","W5bDW54","zCkFWQ7dJZJcRr/cOMm","aGuIsSkSFqLZW5VcVbrHqc4","gCoKdmk+W6y5WO4aW6/dP8oTWOC","WRXZW5GTnG","c8otDCoF","kglcKCkVg8kFWPHJ","vHaeW7VcPq3cQ8oqlmkFWPOsW5i","W73cVGOABG","W7y0WO7cPSkT","W6ORWRhcGmkN","zmkfB8oCWOTiWOGfW6FdJCoGWO07W6y","zCk4p8kkAq","dmolnmkGW7ldH8oAxMzr","WRxcRgzonSkxtSoevSk1WQ0I","lmk/W7v3WPm","isWYgWu","W4O1W6ddI8od","x8ogW69CDG","Dmo4aZnoWO06WRa","WRNdTfWFrCkvl8oFuZW","W486WQFcHCkDWRDhpuBcJmoIdhpcMa","WOtdJKe2E8kGd8o8Fq","WPbfWOZdG8o6","zCoHW5TlCG","W4uRWPpcMSkyW4pcNmoCna","vrXkrZu","WQFcISk2AsVcMa","r2TdsIznyghcVNa","WP3cVmkQqaNcTrO8nG","wSk8wSoHWR96","WQf+WORcTSk5jSkYl8kyW4hdVCk4","tSokW6XAya","bCkQWP/cK8kvW5VdQCk7W4zDsSo7eCoF","bCkQWP/cK8kvW5VdQCk9W49ov8o5dq","ACkWt8ovW4RdICo+xh9Y","WRVdNSkuW7VdOa","xHzRumklfW","WO9/WPFdOYBcKhiaWQpdHmk6W4ZdHa","WRFdJ0mquG","W54sW6BdKSoux8kVbCkxW5FdGSkLCSkw","W4TbW67dGYfAmmoMW5NcIa","nSkRomovB8onESoqWQRdRSoqvtq","WOWTW5VcI8oyoa","C8kheSkyz3usW6O","W69aWPXlfW","cCkBWRyCm8o7lWJcRSonWRKz","qcdcVG4t","WRldKrxdQW","WOlcQ14/bq","W7PXWOLgnq","WRT5W5O6","fs4aDCkI","W6WoWOm","W5pdINWXiSopWOddTq","WQ/cQMCof8o0WPVdN3T7WOujtf4","k8oNfCkaW47dV8o2D21QW4rqvCkw","W4BdLSkBimkartNcJ151fuaAWPm","pColm8kilq","WQyhW7BcQCoi","W4uRWPtcN8kx","CdbaBmkw","mmkoWR/cUSk/W6e","btWzhYj7AeRcRgHdzMmk","vmkFE8odW7m","WR7cOgP6gW","W5erWP7cPSkrd8k9","tXXRqCkHbWxdMCkisCkjd8k4W48","iahcJh7dKK/cLmozqLy/kNVcHG","f8kOW4VdNSk9WPldRCoTlG","gbmzrSkH","e8oTgmk0cG","WOFdUmk1W5VdJgKkuKH3","WOFcNL8XiCoBWRldI0HyWQqUAW","WR98W5yXomooWPldRmoIWPa5W4en","iSkJebPBWQ8DWQ3cImkput8","pqZcT13dQa","bCocWO4klZ8","iCkJW6H9WPZcJ8k1rmodAaT9W4VcIG","W5pdHmo9v8kKywhdSmo8WOK3W4pcUa","dmoFDmoFWRDkB8kujwFcRcjLoG","rbmjW6hcVq","WQ1/W5SRia","W7yMW57dRCoICmkgf8kTW6FdVSkasCkR","W4mQWQRcKCkqW5tcLmoEemkydW","vCkdr8okW6f0pSkxuG","mSoxmCkrBNSIW6dcGq3cSHNdTmkr","WOH+WPRdTtNcO18tWQddMCk8W4e","C33dNhxcTG","W5NcIcvSkSkvfmo4wb3dNG","zmo/ymkpnSoVB8oQWOtdUSoW","cCkFW5bAWQBcVa","WRNcSvbfna","bY3cRv7dRNFcUmoWsw0","W7ikWP/cS8kHWOjShvVcOCobng7cRW","WOJdK3a4DSk8nCo9BWBdTfC","W4qoW7/dHmouuSkOdmkbW4e","qb0jW7NcPXdcMSoLmSknWP0wW48","mCoXpSkeW4ddRSoCzuP3","iSk6WQhcKSkr","cf0OgM0FWQS4WRaFr8ot","eW8VxCkRwWL2W73cQG","nGRcGxNdNv7cOSosDvC3lq","gSouECoyWRHBqSkrf3ZcQtvF","kmkPhmoqBq","W60kWP3cSCk2WP4","mSkLomonDq","WRlcUN8yc8oH","bSkfW6XcWQlcT8ksBSo7","WO/cKeq","lSkJgaXEWQSIWPBcLmkmua","e8oFDSoDWQbw","WQpcP2TjoCkgEmopyCk0WQuLW6BcOq","mXFdGCkuW7hdJ8kVzIZcSmko","vNddILtcL8kqsxZcTmoGW4pcNG","WOTjWO/dLmoS","xfpdO1BcVa","W5pdRvBcKSk9cJe","weWoW5mlA0TeWPVcT35eW40F","WPagWPVcKNGklCohW4xcUmkUW7e","uCkEW5nnxM1dW449pZRdPq","kmoUgmklW4BdUa","umoVW659tq","WP3cH0nLd8k/","f8kOW4ZdM8kY","wHbRumkNaq","mqVcJg/dGG","tWXYxd4","wNtcUSoMWPG","WP3cG8kYyZe","uv8lW5GlA01+WRZcQMfzW7iEWRbaWRJdR8kdDL0","e8kNWPlcKCkxW4y","WOL+WPO","l8kIhr1e","n8oWemkcW4tdPCoYF21QW4rqtmkDW7ZdSmkLW7b9Ffe","lmoCu3FcIa","AZBcKSkXbG","WOSSW5BcNCo9owaOuqFdO8o2WQG","hmkvW5nCWQy","p8oAW4a4WQBcS1ndW7lcUqmn","W7W9W5VdRmoU","BSkKfmkFD8k4WQ0+A1C","lCkQW63dLmkv","W4WrWONcTSklhCkGBCkKj1ldGSo7W4W","W5zBW4tdHW","lSoazeJcVJv5CCkFW48vymkLWOm","WRhcGs3dPSokyteVktbGWPS","tYBcTbyls8o2WQa","W7uPW5pdO8oNE8kYlSk9W7VdQCkA","W7WIW5ZdPSo/DG","W6CQWRZcH8k4oCkMsmklextdRCoC","BSoSW49TrSkx","f8obWOmqdsG","WQtdLXtdUSop","x8ogW69CtmkN","o8k/W7fRWPZcGSkYtCovFG","WRxdQLOzsG","WQjYWRldGSo0"];return(_0x3951=function(){return e})()}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&&({nhWFY:function(e,o){return e(o)}}[_0x33a0(208,"7AnL")](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[_0x3c31b0(228,"d8u6")],initialTime:NUTS_AND_BOLTS_GAME_CONFIG[_0x3c31b0(314,"KI13")],boardReady:!1,boltsVersion:0,planksVersion:0,fallingVersion:0,initializeGame:()=>{const o=_0x3c31b0;clearTimer();const t=NUTS_AND_BOLTS_GAME_CONFIG[o(204,"todn")],n=generatePuzzle(),W=n[o(213,"FUF!")].map(e=>({row:e[o(295,"8WtC")],col:e[o(216,"uvdX")]}));e(e=>{const r=o;e[r(357,"todn")]=n.holes,e[r(339,"oD4A")]=n[r(238,"%vS5")],e[r(263,"SZjU")]=n[r(253,"2nk*")],e[r(363,"%vS5")]=[],e[r(262,"PIOU")]=W,e[r(212,"&SVh")]=null,e[r(301,"8WtC")]=0,e[r(372,"zx2]")]=t,e[r(242,"y!3t")]=t,e[r(343,"yMK0")]=!1,e.isGameOver=!1,e[r(381,"uvdX")]=!1,e[r(233,"Mxgc")]=!0,e[r(246,"1zMo")]+=1,e[r(328,"FUF!")]+=1,e[r(250,"PIOU")]+=1})},startGame:()=>{const t=_0x3c31b0,n={xwxXj:function(e,o){return e(o)},CIIYP:function(e,o){return e!==o},kobpg:function(e){return e()},vevro:function(e){return e()}};n[t(329,"8WtC")](clearTimer),timerIntervalRef=setGameInterval(()=>{const e=t;n[e(336,"Hsu1")]("tnSvK",e(337,"(JbC"))?n.kobpg(o).decrementTime():(n[e(366,"eoac")](_0x4394ef,o=>{o[e(218,"tBp5")]=_0x21dae5.id}),_0xeca3cd(_0x1a10ba.NUTS_AND_BOLTS[e(348,"@6Bd")],_0x30c7e5[e(207,"y!3t")]),_0x390bd0(_0x5ab3c5[e(368,"hcag")],_0x1a0578[e(359,"KI13")]))},1e3),e(e=>{const o=t;e[o(322,"]THC")]=!0,e[o(273,"hRla")]=!1,e[o(202,"Mxgc")]=!1})},stopGame:()=>{clearTimer(),e(e=>{e[_0x33a0(346,"uvdX")]=!1})},resetGame:()=>{const o="2nk*";clearTimer(),e(e=>{const t=_0x33a0;e[t(217,"exRV")]=!1,e[t(230,o)]=!1,e.isWin=!1,e[t(265,"y!3t")]=[],e[t(333,"hRla")]=[],e[t(351,"O)6B")]=[],e[t(355,"SZjU")]=[],e[t(266,o)]=[],e.selectedBoltId=null,e[t(325,"zx2]")]=0,e[t(311,"kH@O")]=NUTS_AND_BOLTS_GAME_CONFIG[t(341,"yMK0")],e[t(302,"I6H(")]=!1,e[t(271,"kH@O")]+=1,e.planksVersion+=1,e.fallingVersion+=1})},handleTap:(t,n,W,r,a)=>{const l="JOU*",s="oD4A",i="I6H(",d="S$eI",k="d8u6",m=_0x3c31b0,u={ZrRJH:function(e,o){return e>o},hLEvX:function(e,o,t,n){return e(o,t,n)},lzime:function(e,o,t){return e(o,t)},AqRmm:m(274,l),XWKCP:function(e,o){return e(o)},iLHOY:function(e,o){return e&&o},LIcli:"xcHik",ATQsk:function(e,o){return e(o)},sGbpD:function(e,o,t){return e(o,t)},TiJZw:function(e,o){return e(o)},GbzUR:function(e){return e()},mFmUH:function(e,o,t){return e(o,t)},aAnhn:function(e,o){return e(o)},paqUd:function(e,o){return e(o)},juhwk:function(e,o,t){return e(o,t)}},S=o();if(!S[m(201,l)])return;const{holes:p,bolts:C,planks:f,originalBoltPositions:O,selectedBoltId:_}=S;if(_){if(!getBoltById(_,C))return void u[m(288,"yMK0")](e,e=>{e[m(195,"(JbC")]=null});if(u[m(261,"@6Bd")](W,r)){const o=getHoleById(r,p);if(o){if(o[m(209,"fZIe")]===_){if(m(236,"%vS5")===u[m(267,"Z9L*")])return void u[m(289,"JgE&")](e,e=>{e[m(200,"7AnL")]=null});_0x460e5d[m(306,"*aCd")]=_0x58bead.fallingPlanks[m(257,"]B#^")](e=>e.id!==_0x29341f),_0xadab64[m(354,"SZjU")]+=1}if(canPlaceBoltInHole(o)){const o=moveBoltToHole(_,r,C,p),{removedPlanks:t,remainingPlanks:n}=u.sGbpD(checkPlankRemoval,f,o[m(319,"eg#M")]),W=Date[m(241,"eg#M")](),l=t[m(374,i)](e=>({...e,fallStartTime:W})),s=u.TiJZw(isPuzzleComplete,n);s&&u[m(220,"1zMo")](clearTimer),e(e=>{const t=m;if(e.bolts=o[t(379,"FeDk")],e[t(247,"JgE&")]=o[t(331,"S$eI")],e[t(284,"fZIe")]=n,e[t(312,"S$eI")]=[...e[t(205,"eg#M")],...l],e[t(244,"*aCd")]=null,e[t(219,"KI13")]+=1,e.planksVersion+=1,u[t(338,"d8u6")](l.length,0)&&(e.fallingVersion+=1),s){const o=NUTS_AND_BOLTS_GAME_CONFIG[t(334,"2nk*")]-e[t(320,"e8r[")];e[t(270,"Hsu1")]=calculateTimeBasedScore(o,NUTS_AND_BOLTS_GAME_CONFIG[t(307,"eoac")],e[t(259,"s*Bb")]),e.isGameOver=!0,e.isWin=!0,e[t(313,"FUF!")]=!1}}),s?(u[m(371,"eoac")](playSound,GAME_SOUNDS[m(342,i)][m(279,"hcag")],a[m(335,"*aCd")]),playHaptic(HapticType[m(249,"e8r[")],a.enableHaptics)):(u[m(304,"lB*&")](playSound,GAME_SOUNDS[m(275,"S$eI")][m(305,")s*[")],a.enableSounds),playHaptic(HapticType[m(299,"SZjU")],a.enableHaptics))}else o[m(358,"]B#^")]&&(e(e=>{const t=m;e[t(199,"]B#^")]=o[t(286,"oD4A")]}),playSound(GAME_SOUNDS[m(376,"eg#M")].SELECT,a[m(234,"7AnL")]),playHaptic(HapticType[m(296,")s*[")],a[m(310,"PIOU")]))}}else{const o=getBoltAtPosition(t,n,C);if(o&&o.id===_)return m(300,"(JbC")!==m(330,d)?void e(e=>{e[m(292,"eoac")]=null}):_0x934914(_0x3072f4);if(o&&canSelectBolt(o,f))return u.aAnhn(e,e=>{e[m(377,"2nk*")]=o.id}),playSound(GAME_SOUNDS[m(210,"Hsu1")][m(239,"eg#M")],a.enableSounds),void u.lzime(playHaptic,HapticType.LIGHT,a[m(290,"FUF!")]);if(!o){const o=O.some(e=>e[m(321,")s*[")]===t&&e[m(264,"KI13")]===n),W=u.hLEvX(getPlanksAtPosition,t,n,f);if(o||W[m(281,k)]>0){const o=moveBoltToGrid(_,t,n,C,p),{removedPlanks:W,remainingPlanks:r}=checkPlankRemoval(f,o[m(258,"7AnL")]),l=Date.now(),i=W.map(e=>({...e,fallStartTime:l})),S=u[m(268,"bra)")](isPuzzleComplete,r);S&&clearTimer(),e(e=>{const t=m;if(e[t(285,"lB*&")]=o[t(214,"zx2]")],e[t(196,"exRV")]=o[t(331,"S$eI")],e[t(293,"exRV")]=r,e[t(229,"FUF!")]=[...e.fallingPlanks,...i],e[t(323,"Mxgc")]=null,e[t(318,"Hsu1")]+=1,e[t(206,"zx2]")]+=1,u[t(360,"yMK0")](i[t(243,"&SVh")],0)&&(e[t(215,"d8u6")]+=1),S){const o=NUTS_AND_BOLTS_GAME_CONFIG[t(225,"7AnL")]-e[t(276,")s*[")];e.score=u[t(248,"1zMo")](calculateTimeBasedScore,o,NUTS_AND_BOLTS_GAME_CONFIG[t(287,"Hsu1")],e[t(353,"oD4A")]),e[t(308,"oD4A")]=!0,e[t(256,"JOU*")]=!0,e[t(240,"Hsu1")]=!1}}),S?(playSound(GAME_SOUNDS[m(277,"Z9L*")][m(303,"@6Bd")],a[m(227,"yMK0")]),playHaptic(HapticType[m(198,d)],a.enableHaptics)):(u.juhwk(playSound,GAME_SOUNDS[m(378,"Xd%l")].PLACE,a[m(280,k)]),u[m(254,s)](playHaptic,HapticType[m(255,"*aCd")],a[m(282,"S$eI")]))}}}}else if(W){const o=r?getHoleById(r,p):null;o&&o.boltId&&getBoltById(o.boltId,C)&&(e(e=>{const t=m;e[t(199,"]B#^")]=o[t(364,")vqw")]}),u[m(272,"d8u6")](playSound,GAME_SOUNDS.NUTS_AND_BOLTS[m(283,s)],a.enableSounds),u.lzime(playHaptic,HapticType[m(203,"FeDk")],a[m(235,"&SVh")]))}else{const o=getBoltAtPosition(t,n,C);o&&canSelectBolt(o,f)&&(u[m(231,"SZjU")]===m(370,"eg#M")?_0x18038a[m(201,"JOU*")]=!1:(u[m(260,"GML[")](e,e=>{e.selectedBoltId=o.id}),playSound(GAME_SOUNDS[m(361,"d8u6")][m(194,"SZjU")],a.enableSounds),playHaptic(HapticType[m(193,"]B#^")],a[m(269,")vqw")])))}},removeFallingPlank:o=>{const t=_0x3c31b0;({dNNZm:function(e,o){return e(o)}})[t(373,"Mxgc")](e,e=>{const n=t;e[n(211,"A[NO")]=e[n(297,"Xd%l")][n(223,"Hsu1")](e=>e.id!==o),e[n(309,"bra)")]+=1})},decrementTime:()=>{const t=_0x3c31b0,n={kPQnr:function(e){return e()},MtKPb:function(e,o){return e(o)}},W=o();W.isPlaying&&(W[t(326,"&SVh")]<=1?(n[t(315,"todn")](clearTimer),n.MtKPb(e,e=>{const o=t;e.time=0,e[o(362,")s*[")]=!0,e[o(347,"s*Bb")]=!1,e[o(350,"@6Bd")]=!1}),playSound(GAME_SOUNDS[t(332,"O)6B")].GAME_OVER,!0),playHaptic(HapticType[t(380,")vqw")],!0)):e(e=>{e[t(294,"PIOU")]-=1}))}}))));export const useIsPlaying=()=>useNutsAndBoltsStore(_temp);function _0x33a0(e,o){e-=193;const t=_0x3951();let n=t[e];if(void 0===_0x33a0.XIneli){const e=function(e,o){let t,n,W=[],r=0,a="";for(e=function(e){let o="",t="";for(let t,n,W=0,r=0;n=e.charAt(r++);~n&&(t=W%4?64*t+n:n,W++%4)?o+=String.fromCharCode(255&t>>(-2*W&6)):0)n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(n);for(let e=0,n=o.length;e<n;e++)t+="%"+("00"+o.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(t)}(e),n=0;n<256;n++)W[n]=n;for(n=0;n<256;n++)r=(r+W[n]+o.charCodeAt(n%o.length))%256,t=W[n],W[n]=W[r],W[r]=t;n=0,r=0;for(let o=0;o<e.length;o++)n=(n+1)%256,r=(r+W[n])%256,t=W[n],W[n]=W[r],W[r]=t,a+=String.fromCharCode(e.charCodeAt(o)^W[(W[n]+W[r])%256]);return a};_0x33a0.PhGNYv=e,_0x33a0.EwOWpf={},_0x33a0.XIneli=!0}const W=t[0];_0x33a0.qbIrhj!==W&&(_0x33a0.EwOWpf={},_0x33a0.qbIrhj=W);const r=_0x33a0.EwOWpf[e];return void 0===r?(void 0===_0x33a0.MuBWiX&&(_0x33a0.MuBWiX=!0),n=_0x33a0.PhGNYv(n,o),_0x33a0.EwOWpf[e]=n):n=r,n}export const useIsGameOver=()=>useNutsAndBoltsStore(_temp2);export const useIsWin=()=>useNutsAndBoltsStore(_temp3);export const useBoardReady=()=>useNutsAndBoltsStore(_temp4);export const useBoltsVersion=()=>useNutsAndBoltsStore(_temp5);export const usePlanksVersion=()=>({nbmVA:function(e,o){return e(o)}}[_0x3c31b0(197,"*aCd")](useNutsAndBoltsStore,_temp6));export const useFallingVersion=()=>useNutsAndBoltsStore(_temp7);export const useSelectedBoltId=()=>useNutsAndBoltsStore(_temp8);export const useScore=()=>({XHXcw:function(e,o){return e(o)}}[_0x3c31b0(345,"oD4A")](useNutsAndBoltsStore,_temp9));export const useTime=()=>useNutsAndBoltsStore(_temp0);export const usePlanksCount=()=>useNutsAndBoltsStore(_temp1);function _temp(e){return e.isPlaying}function _temp2(e){return e.isGameOver}function _temp3(e){return e[_0x3c31b0(224,"*aCd")]}function _temp4(e){return e[_0x3c31b0(291,"e8r[")]}function _temp5(e){return e.boltsVersion}function _temp6(e){return e.planksVersion}function _temp7(e){return e.fallingVersion}function _temp8(e){return e[_0x3c31b0(226,"I6H(")]}function _temp9(e){return e[_0x3c31b0(344,"JgE&")]}function _temp0(e){return e[_0x3c31b0(369,"lB*&")]}function _temp1(e){const o=_0x3c31b0;return e.planks[o(237,"I6H(")]}
@@ -1 +0,0 @@
1
- "use strict";const _0x21660b=_0x1ac2;!function(){const o=_0x1ac2,e=_0xdeb5();for(;;)try{if(913815==-parseInt(o(602,"o^yY"))/1+parseInt(o(646,"S!WN"))/2*(-parseInt(o(610,"QLqC"))/3)+-parseInt(o(469,"uBq0"))/4*(-parseInt(o(595,"wMVw"))/5)+-parseInt(o(713,"prNR"))/6*(parseInt(o(758,"ZsDH"))/7)+parseInt(o(566,"wVlK"))/8+parseInt(o(565,"HNpI"))/9*(parseInt(o(548,"^b2A"))/10)+parseInt(o(717,"HAe9"))/11*(-parseInt(o(449,"%eUf"))/12))break;e.push(e.shift())}catch(o){e.push(e.shift())}}();import{c as _0x4a0f5d}from"react/compiler-runtime";import _0x3e986c,{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 _0x130786,jsxs as _0x4b9983}from"react/jsx-runtime";const C=NUTS_AND_BOLTS_COLORS,BOLT_GRAD_NORMAL=[C[_0x21660b(607,"]$I(")],C[_0x21660b(581,"2vPi")],C[_0x21660b(497,"prNR")]],BOLT_RING_NORMAL=[C.BOLT_RING_TOP,C[_0x21660b(647,"wVlK")],C[_0x21660b(750,"^b2A")]],BOLT_CENTER_NORMAL=[C.BOLT_CENTER_TOP,C[_0x21660b(577,"rR8O")],C[_0x21660b(735,"O49x")]],BOLT_GRAD_SEL=[C[_0x21660b(573,"EvB!")],C[_0x21660b(546,"Z&uG")],C[_0x21660b(642,"EvB!")]],BOLT_RING_SEL=[C[_0x21660b(756,"01xd")],C[_0x21660b(478,"1vdg")],C[_0x21660b(671,"O49x")]],BOLT_CENTER_SEL=[C.BOLT_SEL_CENTER_TOP,C[_0x21660b(529,"(h(p")],C[_0x21660b(557,"]W5%")]],PLANK_H_GRAD=[C.PLANK_H_TOP,C[_0x21660b(539,"wDKy")],C[_0x21660b(527,"(TVd")]],PLANK_V_GRAD=[C[_0x21660b(611,"01xd")],C[_0x21660b(617,"uG9f")],C[_0x21660b(755,"%eUf")]],{BOARD_COLS:BOARD_COLS,BOARD_ROWS:BOARD_ROWS,HOLE_RADIUS:HOLE_RADIUS,BOLT_RADIUS:BOLT_RADIUS}=NUTS_AND_BOLTS_GAME_CONFIG;function _0x1ac2(o,e){o-=449;const n=_0xdeb5();let t=n[o];if(void 0===_0x1ac2.RxVMcq){const o=function(o,e){let n,t,W=[],r=0,d="";for(o=function(o){let e="",n="";for(let n,t,W=0,r=0;t=o.charAt(r++);~t&&(n=W%4?64*n+t:t,W++%4)?e+=String.fromCharCode(255&n>>(-2*W&6)):0)t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(t);for(let o=0,t=e.length;o<t;o++)n+="%"+("00"+e.charCodeAt(o).toString(16)).slice(-2);return decodeURIComponent(n)}(o),t=0;t<256;t++)W[t]=t;for(t=0;t<256;t++)r=(r+W[t]+e.charCodeAt(t%e.length))%256,n=W[t],W[t]=W[r],W[r]=n;t=0,r=0;for(let e=0;e<o.length;e++)t=(t+1)%256,r=(r+W[t])%256,n=W[t],W[t]=W[r],W[r]=n,d+=String.fromCharCode(o.charCodeAt(e)^W[(W[t]+W[r])%256]);return d};_0x1ac2.IFECbQ=o,_0x1ac2.fonvlO={},_0x1ac2.RxVMcq=!0}const W=n[0];_0x1ac2.cybWRA!==W&&(_0x1ac2.fonvlO={},_0x1ac2.cybWRA=W);const r=_0x1ac2.fonvlO[o];return void 0===r?(void 0===_0x1ac2.rcvQEy&&(_0x1ac2.rcvQEy=!0),t=_0x1ac2.IFECbQ(t,e),_0x1ac2.fonvlO[o]=t):t=r,t}let _k=0;function _0xdeb5(){const o=["W5tdRM8","zcWi","tmk/WQ3cJCoKW6jVDmov","zuRdHmkGW68","WRPNk8oNW7/dTSkyqgisW4ZcKCoaWQJdJJbFW7VdNW","dCk3WP1E","cG7cGCovW4a","W6pcHh8","WObwW5i","W5xcHmoVfCoiWQSodHHuhG","fCkzgCosW7O","W4JcTmoYjhe","sCoJW5RcLW","stjeECkO","i8k2jmodW7dcJwmQqq","A8ohW7VcQ8oM","WOjboCoBW5W","qvhcKCkocG","WQ8+W7yEW5v2W67dJu4","sSk/W45K","dxajj8o1WPD9zCkXWPNcRq","oX/cOmopW60","sNBcU8kbimkaW5y9W50","o3ZcOrZdNW","W6uYrSoNaW","Bs3dSWy7","aCk3WOfFW5JcKSoAAYpcVmoYxG","WOa2xSkZW6JcICkLuLpcU8ko","r8kekmk2WO3dGe7dK03dICoHW6jp","W7q2xSobeHeBW5O","CSkfW7fjo8o5f8kyySkXptNdSxVcHf8","DdRdLrqR","WOeStCkZW6NcR8k0","EN/cUCk9ga","W5eOWPNdU8oxWOS","W4ztkSojDJjJW58","W50kW6tcHSoQaG","yfldHmkrW7e","DcWEW656W40rWPu5Ca","gZtcS8ojrMuZmCoVW6D2qG","aSo/WOvib8onpSkAxG","i2NdTSokp8oP","W7BdVmoaF8kC","W6v3W7FcJ8o0","FXTmWQ7dL3NdV8o5WO0","FCkNW7fynG","W7hdKmo6FSky","Fh7cMmoslq","lNzhW5H9W6SjWQCJ","WQbQomoFW6a","FuLTrCkQW6y","WQf5l8odxq","yCouWOVdQWPn","wSo+W4dcK8oWdNXJ","cYlcS8oErMup","D8o7Cmoxmq","WRPNgmonW4m","gCkapmoTW47cQq","WQv/pSogBq","WOndtW","W5NdTSotWQS","W7fXWQquFW","p8kJW7JdVrJdRZVdVf10WPi0cmosBCkYuXq","sSoZWQddNWK","AuLV","W4FdThdcHa","W6ZdL8obumkd","WPybW6C8W79qW5hdVhOWf8ojWQVdJG","WOq2v8kIfq","WRqIW5e","W6mMwCo6","AGP8w8kgWQzNsSkbWRVcJcy","WPaXWQNdQ1C","bJJcR8oj","W5OxA8o0iW","qSo+WQpdUdS","WP1AW6C","W6fXWQ4iCCo0W6lcId/dPSoZWOqVgXRdMG","W6/dL8oA","WPiStmkP","wX/dI2S","WPJcS8osWRCnWOXCWPC","v0XcB8keW4hdMCk/bY7cUezsW4S","kHJcJCo4FfG+gmozW5jxEeldIqZdQCop","WPmYzSk5W7y","mh3cSwnEnmkOb1vPW7e","W7ddMCov","vmoZW4tcKa","zstdRW","f3tcHdxdPa","mdy3e8o3W7ddNCkqmWlcJG","l14gWO3dN3BdSq","W4jzmG","WO1ohSo6W4ddImkKEG","W5VdRmox","FSowvq","DWFcN8kQcqDhxwddIc4","DJ7dSdS","W7uCh8kdjCo7brldLmojWPpdMCoJW7lcRcWnWP7cQq","q2FdH8koW5a","nCkJW7JdRbJdPtddVeXJ","EbufW7DA","WOnzuCkcW6BcRCo4","WP9EW4uXW7a","W4bQW6JcN8oyW4CBeuNdMHDxBq","E8oCs8o8kdKRjG","ycitW6L7","eqlcI8ogW5WU","W4xcImoX","FCorDmo0da","stxcTCozW78wWRi","d8kIWPTHW54","W7FcNmor","E8omvCoIhJ4L","W4Ltn8o9AIC","W5uLlCkL","WPLhW5i1rq","W4VdRmobWReJWPfoWRu+WOhdQa","e8kTWObt","W7xdJK/cUgVcGqjMWOtdTCo1lxpdUxmdW53cVq","e8kCgmoTW5a","W5iaW6y","W5tcImoOhSoj","xJNdRZW6","ASovWOBdOWTrt04","W5aHxCoXnG","cSoJw21rW7q","nmkhW7VcUNzrW6/dSfaqW57dGqq","WQqIW4CaW5bFW6BdH00romoQ","W6JcLSoleW","l0qyWPddIa","W4ddUCoJxsxdSmk9ca","WRb5o8oayCk1krfQW4K","W6FcNmohdNKrcCojFSkzfmoe","t0jHnCkU","W7ldG8orzW","W7NdJ8oHWO0mWOzJWOmrWQddM8kGESo7WPCSdW","qGVdMq","EmkfW7fyo8oZgSkyDCkIptldSghcLuiv","xdyq","WQqIW4OgW4DzW6ldKvOroCoJ","CWj8C8ki","gfldImoGc8oEySoI","wcLCz8kP","dHlcH8osW4S0WOfjlq","cWBcICouW40","W4f8WOCQAG","afhdHCoRh8oty8oWjCoVs8okqM4","sqxdHG","xJOhW7TT","WP1FiCogW6m","W7hcLgNcUGVdPG","usisW7LCW7uzWOmP","AJDitmkE","W5GyeSogWRFdTCk4wH41zSoUW7i","WQv0W4i6yq","aCkHW5pcMKe","BmolrSo+cdWWnW3dHq","amoLyxbyW7/cNG","WOfoumkFW6/cTSo4zW8vAmo2","W7BcKNRcUXpdR8kmWOlcJmor","WObsW4GIW7dcSW","WRfJkmoaymkmna","f3hdImoTpa","WPuoW5bShCktW6NcSb/dGmo4WRG","AhJcKmojnW","WOLebSogW4y","vCkhjCkSWPNdJf3dGfRdH8oQW6vuWO1zWO/cGG","WQiBESkzo1RcLG0ismkrsCkEfW","E2lcJ8oo","mSk8omowW73cN3iPtmkzWQpdGePMihvkWRhdVgG","ycNcUSkzjG","l8kOW4ddSY0","WOS7WQhdImoiWRSk","gWBcIConW4eOWO97jmkQWQBdGva","WOXjtCkxW7FcQW","Bmk4nmkoWRpdQMldSxu","zqJcI2ldKG","zhvXu8kQW7ddUW","W5OIWPZdS8on","W7f6h8ousqXFW6vGWOpcO1C","WRmNWQBdTga","o1BdTSocbq","oLtcNsNdOG","WPLNg8o8W7u","W41ebmodrq","W5e/k8kQcG","wSo2A8oejamudZFdKGJcVtRcHSoeWPhcPCkKba","WQHJB8k1W5ZcKmoeqW0ZuW","WPioWPaOzmoZW5ZcJq","EWhcGmk/lai","ie4AWPJdJNa","W4ddUCoJxsxdSmk2aCkYk3q","zYqLW45l","WOq/WQtdRfy","W4brWO4","c8k3WP9EW7tcHa","s8k9c8kWWQy","vaWZW4HbW4K9WR0swXiUgNmjgSoDW6tdPe7dUhW","hSkNW5VcI2bM","W4L1b8ocDW","W6/cI33cLIW","b8kXWOblW5hcGCoXrcBcUmoI","gKVdTmo9hG","afhdHCoRh8oty8oWmCo1s8ohqWG","uxldRSk2W5i","nmo6vmowW6hcOdNcQ3pdQ8o8W5vOWQa","k1RdNCoSuvaks1BdRcL2W6i","l0qy","qmkjWQhcVCo9","cf/cJd3dPMtcLSkuaSkFsmkPrha","wsnrECkEWPbvCa","ztddQuNcQq","DsWt","rHlcLvhdQmkxWPpdG8orbrhdRSo3gCkohZ9c","ACoAW5VcM8oJ","W74brmolnW","WOXAW7W","WQawC8kvW5pcGSkfDwdcLSkOW5/dPvGuW6e","WPa4wSkLffxcVZyUBSkREG","pKqd","iNldSW","WQHKjSo9W6VdPSkfs2ieW5tcKSoEWQNdHa","d8k9WP1CW4NcIa","ef/cPYRdPW","w2FdUCo9tMObb8oc","bmo1z1fjW7dcNIS","DCk+f8kk","W4hdPSojWQqVWQ0","eCkjW5RdJJpdHa","ASofWP3dVsq","jmkdW4ddNYa","A8ojs8o5dW","hmkoW4FdHIVdMqRdL09yWQWh","W5vep8o0Ctv4W4Hl","scLk","WRxcHSksn1hcMCokkCkUa18sWOu","ELldJSkCW78nFeS0aa","W7hcUelcNbi","WOTcW5m3W73cQxq","CmkeW7jQia","W5mXmSk4cW","v2j5qmkI","pbyXqmoytSofW7ldQZrlW54","igJdT8on","W5GCW4lcJSoYdW","WQjJkCoA","y27cU8kihW","EaLXqCksWRz6qCkcWQJcKdFcHq8","W4RdRmom","ELnWga","W5KoWPf3WQJdVJpcUcSAtLxdNq","obVcGmoIAfqTc8osW49o","WPiSvSkVW7y","qCokrmkWWPldTqqTESkBWOtdQuK","BdlcTwddVSkG","qcygW5L4","W4VcKmoAkSo9","W5jPW6xcHComW4SDc0ZdJHHt","uxlcGSkhaW","DmkSpSkWWOC","yqhcMmk7eqm","W7mvW47cP8o5","Dw90","uSkLW49LhSotiCk4uCkC","bCkNW4xcMG","W7dcJ2W","W4X3gCosuq","W4OUWOldUCoAWPe8WPldSxdcMW","f8k3WOzCW5K","DJJcUgBdG8oQWRVdQSoJjrVdMCotkmk5lI9HA8krW6JdS8kijxm","qwlcP8kxkCklW7y","W4TBWOS7rSos","WPXbW6iJxSol","rG/dHgJcSCk6","uNJcVmklomkaW7azW5VdJmotW4mD","WRarWOtdJwZdLqGotW","WRtdGSkwsc5YwSkzE8kvk8oBD0i","W6VdUSoDzSks","FIWtW7LxW74","wCkLW5fJfG","W7bkW5m","fCk4W6BcQhK","rHlcLvhdQmkxWPpdG8orbrhdRSo3gCkoct9gwSkWW5e","W7ncW77cMCos","WPe4vW","WRu5W5qDW59Q","W5jACSkKW7tcH8oT","ushcOmkooJr3xuBdUG1dW6JcKW","Dc0BW6X1","qMJdSCkX","W7tdL8ooEGq","W7xdJK/cUgVcGqjMWOtdOmoWlgm","dCoeW7NcH8odlem","W4XxlG","yHVcJCk+","gs/cJ8o3W44","WOiRWRVdSq","cZJcRCoduq","zmouWOe","W4blWPaUs8oiW58","WQq+tSkjW4K","CmopW6ZcMSoo","m2xdTSoxhW","W7zxW4xcPCo0W7GQig/dLG","W7HjW5hcPmoa","ssvpCmkOWPDNCmkUWP3cPXC","DhvHuSkSW6ZdPSkcia","WOeQWRRdTLJdOW","vx7cSCkrja","zt7dSseniSk0","WOaEB8kBW4m","p8kJW7JdVrJdVZVdVLzJWOKLdCocE8kPsa0CW4y","DYNcQ2RdNmkH"];return(_0xdeb5=function(){return o})()}const renderBolt=(o,e,n,t,W)=>{const r="PXy$",d=_0x21660b,u={Pbzam:function(o,e){return o+e},wtKoW:function(o,e,n){return o(e,n)},mAGHS:function(o,e){return o-e},GmLTR:function(o,e){return o*e},BfEAB:function(o,e){return o*e},sXYIr:function(o,e,n,t){return o(e,n,t)},RDtZj:function(o,e){return o-e},PquYS:function(o,e,n){return o(e,n)},OPAMr:function(o,e){return o*e},rFRRu:function(o,e){return o-e},qzEWp:function(o,e,n){return o(e,n)},qkYxz:function(o,e){return o*e},VeyEf:function(o,e,n,t){return o(e,n,t)}},i=t?1.15*n:n,s=t?BOLT_GRAD_SEL:BOLT_GRAD_NORMAL,a=t?BOLT_RING_SEL:BOLT_RING_NORMAL,l=t?BOLT_CENTER_SEL:BOLT_CENTER_NORMAL,x=t?C[d(486,"JYnS")]:C[d(635,")QbK")],k=t?C.BOLT_SEL_SPECULAR:C[d(463,"uG9f")];if(t){const n={};n.cx=o,n.cy=e,n.r=i+8,n[d(639,"prNR")]=C[d(701,"HNpI")],W[d(649,"PXy$")](_0x130786(Circle,n,_k++))}W[d(456,"ZsDH")](_0x130786(Circle,{cx:o,cy:u[d(601,"%eUf")](e,2),r:i+1,color:C.BOLT_OUTER_SHADOW},_k++)),W[d(456,"ZsDH")](_0x130786(Circle,{cx:o,cy:e,r:i,children:_0x130786(LinearGradient,{start:vec(o,e-i),end:vec(o,e+i),colors:s})},_k++)),W.push(_0x130786(Circle,{cx:o,cy:e,r:.72*i,children:u[d(509,"2vPi")](_0x130786,LinearGradient,{start:vec(o,u[d(626,"wDKy")](e,.72*i)),end:vec(o,e+.72*i),colors:a})},_k++)),W[d(477,"qL[V")](_0x130786(Circle,{cx:o,cy:e,r:u[d(718,"prNR")](i,.52),children:_0x130786(LinearGradient,{start:vec(o,e-u.BfEAB(i,.52)),end:vec(o,e+.52*i),colors:l})},_k++)),W[d(649,r)](u[d(597,"X^uK")](_0x130786,Line,{p1:vec(u[d(531,"O49x")](o,.32*i),e),p2:u[d(512,"]$I(")](vec,u.Pbzam(o,u.OPAMr(i,.32)),e),color:x,style:d(632,"ry[2"),strokeWidth:2.5,strokeCap:d(481,"LbGA")},_k++)),W.push(_0x130786(Line,{p1:vec(o,u.rFRRu(e,.32*i)),p2:u[d(458,r)](vec,o,e+u[d(757,"rR8O")](i,.32)),color:x,style:d(672,"EvB!"),strokeWidth:2.5,strokeCap:"round"},_k++)),W[d(733,"]OxX")](u[d(615,"]W5%")](_0x130786,Circle,{cx:o-u.BfEAB(i,.2),cy:e-.2*i,r:.16*i,color:k},_k++))},renderHole=(o,e,n,t,W)=>{const r=_0x21660b,d={aURge:function(o,e,n,t){return o(e,n,t)},Yotvg:function(o,e){return o+e},CNOPf:function(o,e,n,t){return o(e,n,t)},lzhZc:function(o,e){return o-e}},u=t?C.HOLE_EXTRA_SHADOW:C[r(547,"S!WN")],i=t?C.HOLE_EXTRA_RIM:C[r(501,"iOCg")],s=t?C.HOLE_EXTRA_DEPTH:C[r(596,"PXy$")],a=t?C[r(703,"prNR")]:C[r(459,"O49x")];W.push(d[r(536,"EvB!")](_0x130786,Circle,{cx:o,cy:d[r(590,"O49x")](e,1),r:n+2,color:u},_k++));const l={};l.cx=o,l.cy=e,l.r=n,l[r(525,"2vPi")]=i,W[r(494,"wMVw")](d[r(736,"NfV#")](_0x130786,Circle,l,_k++));const x={};x.cx=o,x.cy=e,x.r=n-3,x[r(696,"3L9H")]=s,W.push(_0x130786(Circle,x,_k++)),W[r(609,"o^yY")](_0x130786(Circle,{cx:o,cy:e,r:d[r(470,"qL[V")](n,5),color:a},_k++))},renderPlank=(o,e,n,t,W,r)=>{const d="iOCg",u="HNpI",i=_0x21660b,s={vrByp:function(o,e,n,t){return o(e,n,t)},bBevD:function(o,e,n){return o(e,n)},dHjVf:function(o,e){return o-e},bGPZO:function(o,e){return o+e},mapgb:function(o,e){return o+e},tStxv:function(o,e,n){return o(e,n)}},a=W?C[i(563,d)]:C[i(740,"!KU^")],l=W?C[i(677,"2vPi")]:C[i(457,"gDyX")],x=W?PLANK_H_GRAD:PLANK_V_GRAD,k=W?C[i(495,"]OxX")]:C[i(526,u)],_=W?C[i(506,"iOCg")]:C.PLANK_V_GRAIN1,f={};f.x=o+2,f.y=e+3,f.width=n,f[i(707,"v#*b")]=t,f.r=5,f[i(657,"01xd")]=a,r[i(738,"1vdg")](_0x130786(RoundedRect,f,_k++));const S={};if(S.x=o,S.y=e,S[i(731,")keo")]=n,S[i(631,"^b2A")]=t,S.r=5,S[i(538,"v#*b")]=l,r[i(692,"prNR")](s[i(475,"ry[2")](_0x130786,RoundedRect,S,_k++)),r[i(656,")QbK")](_0x130786(RoundedRect,{x:o,y:e,width:n,height:t-1,r:5,children:_0x130786(LinearGradient,{start:s[i(505,"^b2A")](vec,o,e),end:W?vec(o,s[i(655,"uBq0")](s[i(542,"3L9H")](e,t),1)):vec(o+n,e),colors:x})},_k++)),r[i(586,u)](_0x130786(RoundedRect,{x:s.mapgb(o,1),y:e+1,width:n-2,height:Math[i(751,"wMVw")](.25*t,3),r:3,color:k},_k++)),W){const W=s.bGPZO(e,.55*t);r[i(743,"yPVl")](_0x130786(Line,{p1:vec(o+6,W),p2:vec(o+n-6,W),color:_,style:i(667,")QbK"),strokeWidth:1},_k++))}else{const W=o+.55*n;r[i(474,"gDyX")](_0x130786(Line,{p1:vec(W,e+6),p2:s.tStxv(vec,W,s[i(670,"rR8O")](e,t)-6),color:_,style:i(714,d),strokeWidth:1},_k++))}},buildBoardBg=(o,e,n)=>{const t=_0x21660b,W={IYEeZ:function(o,e,n,t){return o(e,n,t)},mkfCL:function(o,e){return o-e}},r={x:0,y:0};r[t(515,"JYnS")]=o,r[t(587,"]OxX")]=e,r.r=16,r[t(524,"o1V&")]=C[t(490,"wMVw")],n[t(528,"o1V&")](_0x130786(RoundedRect,r,_k++)),n[t(605,")keo")](W[t(661,"XR(g")](_0x130786,RoundedRect,{x:2,y:2,width:W[t(560,"X^uK")](o,4),height:e-4,r:14,color:C[t(551,"wMVw")]},_k++));const d={x:0};d.y=e-3,d[t(462,"QLqC")]=o,d.height=3,d.r=0,d[t(538,"v#*b")]=C.BOARD_BORDER,n[t(752,"rR8O")](_0x130786(RoundedRect,d,_k++))},stableRemoveFallingPlank=o=>{useNutsAndBoltsStore[_0x21660b(708,"wDKy")]().removeFallingPlank(o)},FallingPlankItem=o=>{const e="XR(g",n=_0x21660b,t={qnFXV:n(684,"Al%4"),puinz:function(o,e,n){return o(e,n)},ehSdw:function(o,e,n){return o(e,n)},nVzkD:function(o,e){return o(e)},qgZRU:function(o,e){return o!==e},PLrdw:function(o,e){return o!==e},KCLwT:function(o,e){return o!==e},CrwcP:"5|6|2|4|10|9|3|0|1|8|7",kfpUS:function(o,e){return o+e},RQRTr:function(o,e){return o/e},cxrrK:function(o,e){return o!==e},lrZYG:function(o,e){return o!==e},EdbEE:function(o,e,n){return o(e,n)}},W=_0x4a0f5d(34),{plank:r,cellSize:d,boardPadding:u,boardHeight:i}=o,{startRow:s,startCol:a,length:l,orientation:x,id:k}=r,_=useSharedValue(0),f=useSharedValue(0),S=t[n(460,"]W5%")](useSharedValue,1),m="horizontal"===x;let O,R,h,b,L,P;if(t[n(552,"]W5%")](W[0],_)||W[1]!==k||W[2]!==m||W[3]!==S||W[4]!==f?(O=()=>{const o=n,e={};e[o(559,"wDKy")]=t.qnFXV;const W=e;_[o(600,"gDyX")]=t[o(612,"rR8O")](withTiming,1,{duration:600,easing:Easing.in(Easing[o(753,"j^mV")])}),f[o(553,")QbK")]=t[o(468,"Z&uG")](withTiming,m?.3:-.3,{duration:600,easing:Easing.in(Easing[o(654,"wVlK")])}),S[o(650,"wMVw")]=withTiming(0,{duration:600,easing:Easing.in(Easing.quad)},e=>{const n=o;if(e){if("MGTXl"!==W[n(739,"DZ9c")])return void _0x17e7dd.getState()[n(695,"cu(u")](_0x25daa1[n(742,"!KU^")],_0x5d4ad0.col,_0x3520aa[n(485,"%vdm")],_0x275e8e[n(614,"EvB!")],_0x7411b7.current);runOnJS(stableRemoveFallingPlank)(k)}})},W[0]=_,W[1]=k,W[2]=m,W[3]=S,W[4]=f,W[5]=O):O=W[5],W[6]===Symbol[n(454,"Z&uG")](n(629,"EvB!"))?(R=[],W[6]=R):R=W[6],useEffect(O,R),t[n(619,"HNpI")](W[7],u)||W[8]!==d||W[9]!==m||W[10]!==l||t[n(574,"XR(g")](W[11],a)||t[n(748,"NfV#")](W[12],s)){const o=t[n(484,"yPVl")][n(591,"Z&uG")]("|");let e=0;for(;;){switch(o[e++]){case"0":W[13]=b;continue;case"1":W[14]=L;continue;case"2":W[8]=d;continue;case"3":W[12]=s;continue;case"4":W[9]=m;continue;case"5":m?(h=u+a*d-10,P=t[n(698,"ZsDH")](u,s*d)-12,L=l*d+20,b=24):(h=u+a*d-12,P=u+s*d-10,L=24,b=l*d+20);continue;case"6":W[7]=u;continue;case"7":W[16]=h;continue;case"8":W[15]=P;continue;case"9":W[11]=a;continue;case"10":W[10]=l;continue}break}}else b=W[13],L=W[14],P=W[15],h=W[16];const v=m?C[n(744,"]$I(")]:C.PLANK_V_FACE,N=m?C.PLANK_H_SHADOW:C[n(569,"3L9H")],g=useDerivedValue(()=>P+_[n(600,"gDyX")]*i*.5),y=useDerivedValue(()=>S.value),G=useDerivedValue(()=>f[n(504,"uBq0")]),A=h+t[n(688,e)](L,2),V=useDerivedValue(()=>g[n(697,"yPVl")]+b/2),B={};B[n(516,"Z&uG")]=A;const q={};q[n(519,"X^uK")]=V.value;const D={};D[n(620,"wVlK")]=G[n(741,"(TVd")];const p={};p.translateX=-A;const H={};H[n(663,"uG9f")]=-V[n(465,"]W5%")];const E=useDerivedValue(()=>[B,q,D,p,H]),I=h+2,J=b+3;let T,Q,w;if(W[17]!==g||t[n(662,"iOCg")](W[18],N)||t[n(643,"uG9f")](W[19],I)||W[20]!==J||t.lrZYG(W[21],L)){const o={};o.x=I,o.y=g,o[n(679,"uBq0")]=L,o.height=J,o.r=5,o[n(489,"HAe9")]=N,T=_0x130786(RoundedRect,o),W[17]=g,W[18]=N,W[19]=I,W[20]=J,W[21]=L,W[22]=T}else T=W[22];if(t[n(729,"2vPi")](W[23],g)||t[n(544,"wDKy")](W[24],v)||W[25]!==b||W[26]!==L||t.lrZYG(W[27],h)){const o={};o.x=h,o.y=g,o[n(720,"o1V&")]=L,o[n(473,"wDKy")]=b,o.r=5,o[n(479,"(h(p")]=v,Q=_0x130786(RoundedRect,o),W[23]=g,W[24]=v,W[25]=b,W[26]=L,W[27]=h,W[28]=Q}else Q=W[28];if(W[29]!==y||W[30]!==E||W[31]!==T||t[n(589,"NfV#")](W[32],Q)){const o={};o[n(593,"wDKy")]=E,o.opacity=y,o[n(726,e)]=[T,Q],w=t[n(493,"o^yY")](_0x4b9983,Group,o),W[29]=y,W[30]=E,W[31]=T,W[32]=Q,W[33]=w}else w=W[33];return w};FallingPlankItem.displayName="FallingPlankItem";const BoardCanvas=_0x3e986c.memo(({boardWidth:o,boardHeight:e,cellSize:n,boardPadding:t})=>{const W="iOCg",r="j^mV",d=_0x21660b,u={ohaBY:function(o,e){return o/e},souqX:function(o,e,n,t){return o(e,n,t)},IDAfE:function(o,e){return o+e},ejmPX:function(o,e,n,t,W,r){return o(e,n,t,W,r)},rhXwj:function(o,e){return o*e},FgqHE:function(o,e){return o===e},OgIFI:function(o,e){return o-e},AynmS:function(o,e){return o+e},XrloR:function(o,e){return o+e},JARvT:function(o,e){return o!==e},JNOfD:function(o,e,n,t,W,r,d){return o(e,n,t,W,r,d)},wEQGF:function(o,e){return o-e},cpQFP:function(o,e){return o*e},KsakM:function(o,e,n,t,W,r){return o(e,n,t,W,r)},BzDFg:d(746,"01xd")},i=useBoltsVersion(),s=usePlanksVersion(),a=useSelectedBoltId(),l=useMemo(()=>{const i=d;_k=0;const s=[];buildBoardBg(o,e,s);const l=useNutsAndBoltsStore.getState(),{holes:x,bolts:k,planks:_,originalBoltPositions:f}=l,S=x[i(588,"O49x")],m=1.2*n,O=(S-1)*m,R=u.ohaBY(o-O,2),h=isTablet?t+20:t,b=e-h-HOLE_RADIUS-.5*n;s[i(603,W)](u[i(724,")keo")](_0x130786,Line,{p1:vec(t,b),p2:vec(o-t,b),color:C[i(687,"(h(p")],style:i(645,"!KU^"),strokeWidth:1},_k++));for(let o=0;o<x[i(550,"HAe9")];o++){const t=R+o*m,W=u[i(747,"yPVl")](e-h-HOLE_RADIUS,.2*n);renderHole(t,W,HOLE_RADIUS,!0,s)}const L=new Set;for(let o=0;o<k[i(534,"S!WN")];o++){const e=k[o];null===e.holeId&&L[i(680,"X^uK")](e[i(579,"HAe9")]+"-"+e[i(673,"1vdg")])}for(const o of f)!L[i(496,r)](o.row+"-"+o[i(761,"ZsDH")])&&u[i(683,"(h(p")](renderHole,t+o[i(554,"^b2A")]*n,t+u.rhXwj(o[i(749,"ry[2")],n),HOLE_RADIUS,!1,s);if(_[i(633,r)]>0){const o=[..._][i(624,"JYnS")]((o,e)=>o[i(723,"%eUf")]-e.zIndex),e=10,r=24;for(const d of o){const{startRow:o,startCol:a,length:l,orientation:x}=d;let C,k,_,f;u[i(660,"rR8O")](x,i(623,"prNR"))?(C=u.OgIFI(u[i(500,"]$I(")](t,u[i(715,"DZ9c")](a,n)),e),k=u[i(540,")QbK")](t,u.rhXwj(o,n))-r/2,_=u[i(482,"ZsDH")](l*n,2*e),f=r):u[i(514,"ry[2")]("iqOWG",i(541,W))?(C=u[i(762,"3L9H")](t+a*n,r/2),k=t+o*n-e,_=r,f=l*n+2*e):_0x441c6e=_0x4df89f[33],u[i(599,"prNR")](renderPlank,C,k,_,f,"horizontal"===x,s)}}for(const o of k){let r,d;if(o[i(549,"wVlK")]){const s=x.findIndex(e=>e.id===o.holeId);u[i(722,"2vPi")](s,-1)?(r=u[i(606,"cu(u")](R,u.rhXwj(s,m)),d=u.wEQGF(e-h,HOLE_RADIUS)+.2*n):(r=t+o[i(467,"LbGA")]*n,d=t+u[i(641,"JYnS")](o[i(580,W)],n))}else r=t+o[i(576,"ry[2")]*n,d=t+o[i(759,"wMVw")]*n;u.KsakM(renderBolt,r,d,BOLT_RADIUS,o.id===a,s)}return s},[i,s,a,o,e,n,t]),x={};return x[d(686,"]$I(")]=StyleSheet[d(592,"O49x")],x[d(634,"cu(u")]=u[d(621,"T7Rx")],x[d(483,"NfV#")]=l,_0x130786(Canvas,x)});BoardCanvas.displayName="BoardCanvas";const FallingPlanksCanvas=_0x3e986c[_0x21660b(488,"Al%4")](({cellSize:o,boardPadding:e,boardHeight:n})=>{const t=_0x21660b,W={kWqRk:t(545,"gDyX"),HLjYJ:function(o,e,n){return o(e,n)},DNhpT:function(o,e){return o===e}},r=useFallingVersion(),d=W[t(583,"3L9H")](useMemo,()=>{const o=t;if(W.kWqRk===o(628,"qL[V"))return useNutsAndBoltsStore[o(585,"%vdm")]()[o(533,"uBq0")];{const e=_0x30a4dc+DBvVBg[o(690,"cu(u")](_0x2e7e65,.55);_0x51fab6[o(456,"ZsDH")](_0x15cad6(_0x5557cc,{p1:DBvVBg[o(704,"ZsDH")](_0x326ef6,e,_0x480f32+6),p2:_0x53e893(e,_0x2f79a1+_0x1f35c3-6),color:_0x4c7362,style:o(510,"X^uK"),strokeWidth:1},_0x529ca7++))}},[r]);return W.DNhpT(d[t(466,"uBq0")],0)?null:_0x130786(Canvas,{style:StyleSheet[t(518,"S!WN")],pointerEvents:t(678,"qL[V"),children:d[t(653,"wDKy")](W=>_0x130786(FallingPlankItem,{plank:W,cellSize:o,boardPadding:e,boardHeight:n},t(498,"]$I(")+W.id))})});FallingPlanksCanvas[_0x21660b(455,"wVlK")]="FallingPlanksCanvas";export const GameBoard=_0x3e986c[_0x21660b(760,"XR(g")](({settings:o})=>{const e="ry[2",n=_0x21660b,t={NvoRt:function(o){return o()},hjSrh:function(o,e){return o*e},gRSDs:function(o,e){return o+e},seWbO:function(o){return o()},WlXEc:function(o,e){return o*e},bndpk:function(o,e){return o!==e},GlLHh:function(o,e){return o-e},sLqUA:function(o,e){return o-e},eqdgx:function(o,e){return o+e},oBWGJ:function(o,e){return o+e},uDbvn:function(o,e,n){return o(e,n)},mwGZP:function(o,e,n){return o(e,n)},sGVCC:function(o,e,n){return o(e,n)},WWFyO:function(o,e,n){return o(e,n)},JVpXJ:function(o,e,n){return o(e,n)},FxEnE:function(o,e,n){return o(e,n)}},W=useBoardReady(),{height:r}=useWindowDimensions(),{width:d}=getGameDimensions(),u=useRef(!1),i=useRef(o);i[n(669,"ZsDH")]=o,useEffect(()=>{const o=n;return u.current=useNutsAndBoltsStore[o(452,"2vPi")]()[o(535,"HNpI")],useNutsAndBoltsStore[o(503,"uBq0")](e=>e[o(691,"!KU^")],e=>{u[o(461,"S!WN")]=e})},[]);const s=useRef(null);if(!s[n(517,"%vdm")]||t[n(648,"]W5%")](s[n(659,"^b2A")][n(682,"LbGA")],d)||s[n(537,"%eUf")][n(665,"]$I(")]!==r){const o=t[n(522,"iOCg")](r,250),e=(d-60)/BOARD_COLS,W=t[n(543,"2vPi")](o,80)/(BOARD_ROWS+2.5),u=Math[n(658,"NfV#")](e,W),i=30,a=t.eqdgx(u*BOARD_COLS,2*i),l=isTablet?30:0,x=t[n(728,"Z&uG")](u*(BOARD_ROWS+2),t.WlXEc(i,2))+l,C={};C[n(627,"v#*b")]=d,C[n(712,"01xd")]=r,C[n(491,")keo")]=a,C[n(700,"rR8O")]=x,C.cellSize=u,C[n(487,"!KU^")]=i,s[n(450,"HAe9")]=C}const{boardWidth:a,boardHeight:l,cellSize:x,boardPadding:C}=s[n(727,"01xd")],k=useRef([]),_=useRef(0);t[n(719,"DZ9c")](useEffect,()=>{const o=n,W={mRnYQ:function(o,e){return t[_0x1ac2(689,"2vPi")](o,e)},XhlXT:function(o,e){return o-e},OZCFl:o(734,"^b2A"),iDfqv:function(e,n){return t[o(716,"uG9f")](e,n)},IoMxM:function(o,e){return o*e},dWbTu:function(o,e){return o*e}},r=.5*x;_[o(472,"Z&uG")]=r*r;const d=()=>{const n=o,t=function(o,e){return W[_0x1ac2(575,"yPVl")](o,e)},r=useNutsAndBoltsStore[n(708,"wDKy")](),{holes:d,bolts:u,originalBoltPositions:i}=r,s=[],_=d[n(709,"T7Rx")],f=1.2*x,S=(a-(_-1)*f)/2,m=isTablet?C+20:C;for(let o=0;o<d[n(582,"qL[V")];o++)if(n(508,"]W5%")===n(664,"uG9f")){const o={};o.cx=_0x916755,o.cy=_0x2e2f1b,o.r=_0x2d593f+8,o[n(564,"PXy$")]=_0x1de2de[n(651,"1vdg")],_0x1a930b[n(474,"gDyX")](_0x367ae1(_0x196816,o,_0x431119++))}else{const e=d[o];s[n(477,"qL[V")]({x:S+o*f,y:W[n(706,"cu(u")](l-m,HOLE_RADIUS)+.2*x,row:e[n(622,"%eUf")],col:e[n(644,"(TVd")],isHole:!0,holeId:e.id})}const O=new Set;for(const o of u)null===o[n(558,"JYnS")]&&O[n(680,"X^uK")](o[n(594,"]$I(")]+"-"+o[n(507,"j^mV")]);for(const o of i)!O[n(681,"QLqC")](o[n(749,e)]+"-"+o[n(572,"]W5%")])&&(n(710,"PXy$")===W[n(571,"j^mV")]?s[n(685,"XR(g")]({x:W.iDfqv(C,W.IoMxM(o[n(480,"T7Rx")],x)),y:C+W[n(568,"OUH8")](o[n(471,"Al%4")],x),row:o.row,col:o[n(608,"]OxX")],isHole:!1,holeId:null}):_0x5bda75[n(692,"prNR")]({x:_0x350ba1+_0x11c2d3[n(576,e)]*_0xd05c02,y:_0x4bc381+t(_0x208c56.row,_0x1d2d21),row:_0x51da63.row,col:_0x4f0dcc[n(567,"HAe9")],isHole:!1,holeId:null}));for(const o of u)if(null===o[n(555,"qL[V")]){const e={};e.x=C+o[n(732,"S!WN")]*x,e.y=C+o[n(640,"uG9f")]*x,e[n(453,"]OxX")]=o[n(674,"]W5%")],e[n(737,"o^yY")]=o[n(451,"wDKy")],e[n(730,"(h(p")]=!1,e[n(638,"]W5%")]=null,s[n(586,"HNpI")](e)}k[n(521,")keo")]=s};return t[o(618,"cu(u")](d),useNutsAndBoltsStore[o(666,"%eUf")](e=>e[o(499,"!KU^")],()=>{t[o(556,"HNpI")](d)})},[x,a,l,C]);const f=t.uDbvn(useCallback,(o,e)=>{const W=n;if(!u[W(598,"QLqC")])return;const r=k[W(705,"rR8O")],d=_.current;for(let n=0;n<r.length;n++){const u=r[n],s=o-u.x,a=e-u.y;if(s*s+t.WlXEc(a,a)<=d)return void useNutsAndBoltsStore[W(702,"yPVl")]()[W(675,"OUH8")](u[W(625,"X^uK")],u.col,u[W(604,"T7Rx")],u.holeId,i[W(630,"cu(u")])}},[]),S=useMemo(()=>Gesture.Tap()[n(637,"DZ9c")](o=>{runOnJS(f)(o.x,o.y)}),[f]),m={};m[n(668,"cu(u")]=a,m[n(520,"QLqC")]=l;const O=t[n(616,"LbGA")](useMemo,()=>[styles[n(745,")QbK")],m],[a,l]);if(!W)return null;const R={};R[n(711,"]W5%")]=a,R[n(476,"]OxX")]=l,R[n(570,"]$I(")]=x,R[n(578,"(TVd")]=C;const h={};return h[n(464,"Z&uG")]=x,h[n(492,"Al%4")]=C,h.boardHeight=l,t[n(530,"wVlK")](_0x130786,GestureDetector,{gesture:S,children:t[n(676,"PXy$")](_0x4b9983,View,{style:O,children:[t[n(562,"iOCg")](_0x130786,BoardCanvas,R),t[n(694,"uBq0")](_0x130786,FallingPlanksCanvas,h)]})})});const _0x569e20={};_0x569e20[_0x21660b(699,"qL[V")]=16,_0x569e20.overflow=_0x21660b(725,"NfV#");const _0x4560d2={};_0x4560d2[_0x21660b(502,"]$I(")]=_0x569e20;const styles=StyleSheet.create(_0x4560d2);GameBoard[_0x21660b(561,"qL[V")]=_0x21660b(511,"]W5%");
@@ -1 +0,0 @@
1
- "use strict";const _0x4f33f3=_0x2711;function _0x2711(e,o){e-=483;const t=_0x42be();let r=t[e];if(void 0===_0x2711.Gybzvs){const e=function(e,o){let t,r,n=[],s=0,i="";for(e=function(e){let o="",t="";for(let t,r,n=0,s=0;r=e.charAt(s++);~r&&(t=n%4?64*t+r:r,n++%4)?o+=String.fromCharCode(255&t>>(-2*n&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let e=0,r=o.length;e<r;e++)t+="%"+("00"+o.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(t)}(e),r=0;r<256;r++)n[r]=r;for(r=0;r<256;r++)s=(s+n[r]+o.charCodeAt(r%o.length))%256,t=n[r],n[r]=n[s],n[s]=t;r=0,s=0;for(let o=0;o<e.length;o++)r=(r+1)%256,s=(s+n[r])%256,t=n[r],n[r]=n[s],n[s]=t,i+=String.fromCharCode(e.charCodeAt(o)^n[(n[r]+n[s])%256]);return i};_0x2711.tBGdCP=e,_0x2711.lFnRfQ={},_0x2711.Gybzvs=!0}const n=t[0];_0x2711.zrUDBV!==n&&(_0x2711.lFnRfQ={},_0x2711.zrUDBV=n);const s=_0x2711.lFnRfQ[e];return void 0===s?(void 0===_0x2711.SkSjiu&&(_0x2711.SkSjiu=!0),r=_0x2711.tBGdCP(r,o),_0x2711.lFnRfQ[e]=r):r=s,r}!function(){const e="te31",o=_0x2711,t=_0x42be();for(;;)try{if(147117==-parseInt(o(516,e))/1*(parseInt(o(493,"800j"))/2)+parseInt(o(496,"U&4!"))/3*(parseInt(o(495,"gMR8"))/4)+-parseInt(o(525,"0]ku"))/5+parseInt(o(526,"g1VQ"))/6+-parseInt(o(524,"ir*L"))/7*(-parseInt(o(484,e))/8)+-parseInt(o(512,"8%^g"))/9+-parseInt(o(529,"gjcK"))/10*(parseInt(o(504,"800j"))/11))break;t.push(t.shift())}catch(e){t.push(t.shift())}}();import{c as _0x24a2b9}from"react/compiler-runtime";import _0x4f0867,{useMemo}from"react";import{View}from"react-native";import{useScore,useTime,usePlanksCount}from"../NutsAndBoltsStore.js";import{formatScore}from"../NutsAndBoltsService.js";function _0x42be(){const e=["W6GPir0NCreiEG","kxKIW7es","W5VdTmo8WObW","W6dcQgFcRmkw","eCoAW6OGyq","egxcISogW4q","kx4NW7iehSo8Ea","W5BdJCoYWQHK","W6BdMce0v8kVWQ0sW6ZcGmoVCq","W7HwWRddHSoZW4JdSCo+WRxcIHXhW5q","W5BdImo2zmo6ArZcI37cJGBdMCku","u1PpW7D3","rCknWOGXr8o3lSkbkG","EYj+W50ho8oluXS","W7BcR8opWR7dVq","W6qTzGupvXaT","W79HyCoYrSkJcctcN3pcNI8","WQPyWOdcLSkQ","gg3cJ8owW4a","WRJcI35/bSoU","jCkVW74vW70","AgNdSCobW7/cRqjMCIu","yCk1i2NcIa","WQDDr8kqna","ybJdH1rHW7lcOJq","WOJcL8kjoWO5mSoMW4ig","WO8qW6GpWPumjq","W719z0VdJq/dOCkYlmktimkD","rCkjWO1ee8krsCkxmfhdQCoeWQq","aGFdK8kBz8o2WPK7WRK","W5DEWRddPmoUmLv6WO8","WPGaWOdcLLFcNYGdW44fWP1d","kg7dUvzM","v2VdVmowW7y","WQXeWRNcKSkx","yXtcKsutWPdcTs9GW5hdSCoE","dJ3cQCkgWQJdMaLrrWjRwa","amo4E8o2Ca","cmkvWRVdUSo3","wgxdSSoCW6G","WORcMSkKwCky","W4iteG","W63cVmopWORdIa","q8kohCkicu9Io2LsESo8","f8kksmo+WRJcMCoXWQe","imkQafpcNuKw","WPKYsCk7W4HWtLZcPCkS"];return(_0x42be=function(){return e})()}import{formatTime}from"../../../services/UtilsService.js";import{ScoreBoardContainer,ScoreColumn,scoreBoardStyles as _0x25f5cc}from"../../../helpers/index.js";import{NUTS_AND_BOLTS_COLORS}from"../NutsAndBoltsConstants.js";import{jsx as _0x5701ce,jsxs as _0x2bc96d}from"react/jsx-runtime";export const ScoreBoard=_0x4f0867.memo(e=>{const o="U(eX",t=_0x2711,r={OZMqg:function(e){return e()},diguh:function(e,o){return e!==o},BcCYs:function(e,o,t){return e(o,t)},ecRRA:function(e,o){return e!==o},ultUr:function(e,o){return e!==o},esUkO:t(506,"8%^g")},n=_0x24a2b9(17),{offset:s}=e,i=void 0===s?0:s,W=r[t(511,"s$u@")](usePlanksCount),a=useScore(),u=r[t(523,o)](useTime);let f;r[t(487,"7)ro")](n[0],a)?(f=formatScore(a),n[0]=a,n[1]=f):f=n[1];const d=f;let m;n[2]!==u?(m=formatTime(u),n[2]=u,n[3]=m):m=n[3];const S=m;let C,x,_,l,k;if(r[t(509,"n8Wo")](n[4],W)){const e={};e[t(521,"7)ro")]="PLANKS",e.value=W,e[t(508,"cekv")]=NUTS_AND_BOLTS_COLORS[t(515,"InAV")],C=r[t(518,o)](_0x5701ce,ScoreColumn,e),n[4]=W,n[5]=C}else C=n[5];if(n[6]!==d){const e={};e[t(502,"cekv")]=t(527,"#Vs*"),e.value=d,e[t(486,"N]XZ")]=NUTS_AND_BOLTS_COLORS[t(494,"nZ1C")],x=_0x5701ce(ScoreColumn,e),n[6]=d,n[7]=x}else x=n[7];if(r.diguh(n[8],S)){const e={};e[t(519,"Hg84")]=t(483,"s$u@"),e[t(507,"sbqj")]=S,e[t(517,"gjcK")]=NUTS_AND_BOLTS_COLORS.SCORE_TEXT,_=_0x5701ce(ScoreColumn,e),n[8]=S,n[9]=_}else _=n[9];if(n[10]!==C||r[t(520,"CHxh")](n[11],x)||r[t(489,"Jj]V")](n[12],_)){const e=t(498,"FQE)")[t(492,"DgRq")]("|");let o=0;for(;;){switch(e[o++]){case"0":n[11]=x;continue;case"1":n[13]=l;continue;case"2":n[12]=_;continue;case"3":const e={};e.style=_0x25f5cc[t(510,"$t5E")],e[t(522,"gjcK")]=[C,x,_],l=_0x2bc96d(View,e);continue;case"4":n[10]=C;continue}break}}else l=n[13];if(n[14]!==i||r[t(491,"98bE")](n[15],l))if(r[t(503,"N]XZ")]===t(501,"800j")){const e={};e[t(488,"ir*L")]=i,e[t(513,"0irq")]=l,k=_0x5701ce(ScoreBoardContainer,e),n[14]=i,n[15]=l,n[16]=k}else _0x276a52=_0x2e2435[1];else k=n[16];return k});ScoreBoard.displayName=_0x4f33f3(490,"cekv");
@@ -1 +0,0 @@
1
- "use strict";const _0x1341f9=_0x3c19;function _0x3c19(t,W){t-=365;const o=_0x223e();let e=o[t];if(void 0===_0x3c19.TdRXjX){const t=function(t,W){let o,e,n=[],r=0,s="";for(t=function(t){let W="",o="";for(let o,e,n=0,r=0;e=t.charAt(r++);~e&&(o=n%4?64*o+e:e,n++%4)?W+=String.fromCharCode(255&o>>(-2*n&6)):0)e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(e);for(let t=0,e=W.length;t<e;t++)o+="%"+("00"+W.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(o)}(t),e=0;e<256;e++)n[e]=e;for(e=0;e<256;e++)r=(r+n[e]+W.charCodeAt(e%W.length))%256,o=n[e],n[e]=n[r],n[r]=o;e=0,r=0;for(let W=0;W<t.length;W++)e=(e+1)%256,r=(r+n[e])%256,o=n[e],n[e]=n[r],n[r]=o,s+=String.fromCharCode(t.charCodeAt(W)^n[(n[e]+n[r])%256]);return s};_0x3c19.eUgOMQ=t,_0x3c19.ffXJgL={},_0x3c19.TdRXjX=!0}const n=o[0];_0x3c19.WlwOME!==n&&(_0x3c19.ffXJgL={},_0x3c19.WlwOME=n);const r=_0x3c19.ffXJgL[t];return void 0===r?(void 0===_0x3c19.UQDBLP&&(_0x3c19.UQDBLP=!0),e=_0x3c19.eUgOMQ(e,W),_0x3c19.ffXJgL[t]=e):e=r,e}!function(){const t=_0x3c19,W=_0x223e();for(;;)try{if(356297==parseInt(t(486,"@OEk"))/1*(-parseInt(t(571,"e)Gq"))/2)+-parseInt(t(551,"@OEk"))/3+parseInt(t(496,"7ffL"))/4+parseInt(t(464,"de3g"))/5+parseInt(t(414,"de3g"))/6+parseInt(t(619,"NU]A"))/7+-parseInt(t(602,"onzK"))/8)break;W.push(W.shift())}catch(t){W.push(W.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{mouthAnimationFrame=0;constructor(){const t=_0x3c19;this.maze=this[t(596,"VrgY")]()}initializeMaze(){const t=_0x3c19,W={kfqwB:function(t,W){return t<W}};W[t(485,"8TmC")]=function(t,W){return t===W};const o=W,e=PACMAN_MAZE.map(t=>[...t]);let n=0;for(let W=0;o.kfqwB(W,e[t(439,"KYjj")]);W++){const r=e[W];if(r)for(let W=0;W<r[t(593,"]h6F")];W++)(r[W]===CellType[t(562,"Owde")]||o[t(614,"YNJc")](r[W],CellType.POWER_PELLET))&&n++}const r={};return r[t(605,"BA3I")]=e,r[t(495,"]h6F")]=n,r[t(423,"VrgY")]=n,r}resetMaze(){return this[_0x3c19(589,"de3g")]=this.initializeMaze(),this.getMaze()}[_0x1341f9(544,"]h6F")](){const t=_0x1341f9;return{cells:this[t(589,"de3g")][t(503,"JrI8")].map(t=>[...t]),dotsRemaining:this[t(402,"VrgY")][t(382,"L67]")],totalDots:this.maze[t(490,"e)Gq")]}}[_0x1341f9(419,"@kfF")](){const t=_0x1341f9,W={};W[t(459,"8TmC")]="LEFT";const o=W,e={};return e.x=PACMAN_START.x,e.y=PACMAN_START.y,e[t(585,"Owde")]=PACMAN_START.x,e[t(597,"k%Mi")]=PACMAN_START.y,e.direction=t(492,"9GJw"),e[t(404,"@#u)")]=o[t(462,"JrI8")],e.mouthOpen=!0,e.mouthAngle=45,e}[_0x1341f9(569,"%It9")](){const t=_0x1341f9;return[this[t(438,"n20C")](GhostName[t(441,"hN19")],GhostMode.SCATTER),this.createGhost(GhostName[t(554,"JrI8")],GhostMode[t(540,"#CGB")]),this[t(383,"YNJc")](GhostName[t(457,"8Xhg")],GhostMode.IN_HOUSE),this[t(608,"BA3I")](GhostName[t(470,"#CGB")],GhostMode[t(494,"de3g")])]}createGhost(t,W){const o=_0x1341f9,e=GHOST_START_POSITIONS[t],n=GHOST_SCATTER_TARGETS[t],r={};return r[o(575,"YNJc")]=t,r.x=e.x,r.y=e.y,r[o(510,"HUtf")]=e.x,r.visualY=e.y,r[o(536,"HUtf")]="UP",r[o(448,"@#u)")]=W,r.previousMode=GhostMode.SCATTER,r.targetX=n.x,r[o(520,"B)j$")]=n.y,r[o(465,"NU]A")]=0,r[o(415,"YhWS")]=!1,r}[_0x1341f9(443,"KYjj")](t){const W=_0x1341f9,o={};o[W(548,"Wq)(")]=function(t,W){return t+W},o[W(378,"#ilF")]=function(t,W){return t<W};const e=o;this[W(456,"ase9")]=e[W(370,"NU]A")](this[W(371,"onzK")],1)%8,t[W(514,"YNJc")]=e[W(409,"wEvM")](this.mouthAnimationFrame,4),t[W(467,")O)1")]=t[W(471,"QPOx")]?45:5}movePacMan(t){const W="pNm7",o=_0x1341f9,e={};e[o(400,"1qo4")]=function(t,W){return t-W},e[o(504,"QPOx")]=function(t,W){return t!==W},e[o(587,"g(IS")]=o(484,"g(IS"),e[o(411,"hN19")]=function(t,W){return t+W},e.mJhBJ=function(t,W){return t===W};const n=e,r={...t};if(n.fxece(t.nextDirection,t[o(561,"wEvM")]))if(n[o(393,"w0qV")](n[o(613,"5#Bh")],"LniDS"))_0x52da65.direction=_0x9569d.nextDirection;else{const W=DIRECTIONS[t.nextDirection],e=t.x+W.x,n=t.y+W.y;this[o(374,"e)Gq")](e,n)&&(r[o(555,"YhWS")]=t[o(386,"JrI8")])}const s=DIRECTIONS[r.direction];let d=n[o(479,"B)j$")](t.x,s.x),i=n[o(541,"kOcU")](t.y,s.y);if(d<0){if(n.mJhBJ("nzOdt","zbNOa"))return n[o(376,"f7o5")](this[o(529,"ase9")][o(424,"onzK")],this[o(505,"g(IS")].dotsRemaining);d=PACMAN_GAME_CONFIG[o(603,"Owde")]-1}else d>=PACMAN_GAME_CONFIG[o(501,W)]&&(d=0);return this[o(381,"#ilF")](d,i)&&(r.x=d,r.y=i),r[o(592,W)]=r.x,r[o(455,"hN19")]=r.y,this[o(406,"mvoX")](r),r}[_0x1341f9(518,"L67]")](t,W){const o=_0x1341f9,e={zzGsl:function(t,W){return t!==W}};if(W<0||W>=PACMAN_GAME_CONFIG[o(373,"hN19")])return!1;if(t<0||t>=PACMAN_GAME_CONFIG[o(506,"g(IS")])return!0;const n=this[o(398,"f7o5")].cells[W]?.[t];return e[o(401,"n20C")](n,CellType[o(385,"e)Gq")])&&n!==CellType[o(384,"de3g")]}canGhostMove(t,W,o){const e=_0x1341f9,n={cysGI:function(t,W){return t<W},BxJLe:function(t,W){return t===W}};n[e(584,"cDWB")]=function(t,W){return t!==W};const r=n;if(r[e(367,"@#u)")](W,0)||W>=PACMAN_GAME_CONFIG[e(458,"QPOx")])return!1;if(t<0||t>=PACMAN_GAME_CONFIG[e(506,"g(IS")])return!0;const s=this[e(586,"pNm7")][e(450,"n20C")][W]?.[t];return s===CellType[e(567,"ase9")]?o.mode===GhostMode.LEAVING_HOUSE||r[e(553,"n20C")](o[e(509,"JrI8")],GhostMode[e(580,"8TmC")]):r[e(442,"kOcU")](s,CellType[e(460,"HUtf")])}eatDot(t,W){const o=_0x1341f9,e=this[o(481,"9GJw")].cells[W];if(!e)return null;const n=e[t];if(n===CellType[o(440,"L67]")]){e[t]=CellType[o(528,"Qn[c")],this[o(368,"fY[5")][o(576,"JrI8")]--;const W={};return W[o(523,"QPOx")]=PACMAN_GAME_CONFIG.POINTS_PER_DOT,W[o(565,"8Xhg")]=!1,W}if(n===CellType[o(508,"ce^D")]){e[t]=CellType[o(377,"VrgY")],this.maze.dotsRemaining--;const W={};return W[o(550,"f7o5")]=PACMAN_GAME_CONFIG[o(372,"QOsJ")],W[o(365,"JrI8")]=!0,W}return null}checkGhostCollision(t,W){return t.x===W.x&&t.y===W.y}[_0x1341f9(472,"e)Gq")](t,W,o){const e="[yzc",n=_0x1341f9,r={baBEs:function(t,W){return t-W}};r[n(531,"HUtf")]=function(t,W){return t===W};const s=r,d={...t};switch(t.mode){case GhostMode[n(366,"YNJc")]:return d.visualX=d.x,d[n(582,"@OEk")]=d.y,d;case GhostMode[n(611,"@Lj(")]:if(t.y>7)d.y--,d[n(497,"8TmC")]="UP";else{if(s[n(500,"YNJc")](n(532,"@#u)"),n(433,"mvoX"))){const t={};t.x=_0x2e58ba.x+2*_0xbf133.x,t.y=_0x14b470.y+2*_0x4c5a44.y;const W=t;return{x:_0xee39b2[n(591,"[yzc")](0,_0x1dc886[n(572,"9GJw")](s.baBEs(_0x2b4b6a.GRID_COLS,1),W.x+(W.x-_0x458a0d.x))),y:_0x106682[n(568,"%It9")](0,_0x4fd66a[n(391,"pNm7")](s[n(413,"hN19")](_0x46e0c6.GRID_ROWS,1),W.y+(W.y-_0x3438c6.y)))}}d.mode=GhostMode[n(422,e)],d[n(515,"w0qV")]=n(412,e)}return d[n(454,"[yzc")]=d.x,d[n(507,"5#Bh")]=d.y,d;case GhostMode.EATEN:return this[n(463,"5#Bh")](d,9,9);case GhostMode[n(537,"]h6F")]:return this[n(436,"B)j$")](d);case GhostMode.SCATTER:const r=GHOST_SCATTER_TARGETS[t[n(517,"wEvM")]];return d.targetX=r.x,d.targetY=r.y,this[n(432,"1qo4")](d,r.x,r.y);case GhostMode[n(447,"N5Kb")]:const i=this[n(395,"e)Gq")](t,W,o);return d[n(397,"Qn[c")]=i.x,d[n(480,"NU]A")]=i.y,this.moveTowardsTarget(d,i.x,i.y);default:return d}}getChaseTarget(t,W,o){const e=_0x1341f9,n={};n[e(399,"%It9")]=function(t,W){return t*W},n[e(539,"Qn[c")]=function(t,W){return t+W},n[e(380,"%It9")]=function(t,W){return t-W},n[e(511,"ase9")]="buFBr",n.gRtqA=e(516,"mvoX");const r=n,s=DIRECTIONS[W.direction];switch(t[e(446,"ce^D")]){case GhostName[e(549,"5#Bh")]:const n={};return n.x=W.x,n.y=W.y,n;case GhostName[e(421,"8Xhg")]:return{x:Math.max(0,Math.min(PACMAN_GAME_CONFIG[e(599,"k%Mi")]-1,W.x+4*s.x)),y:Math[e(493,"pNm7")](0,Math.min(PACMAN_GAME_CONFIG.GRID_ROWS-1,W.y+4*s.y))};case GhostName.INKY:if(o){const t={x:W.x+2*s.x,y:W.y+r[e(617,"]h6F")](s.y,2)};return{x:Math.max(0,Math[e(491,"ase9")](PACMAN_GAME_CONFIG[e(564,"ase9")]-1,r.NkwKm(t.x,t.x-o.x))),y:Math[e(530,"e)Gq")](0,Math[e(525,"]h6F")](PACMAN_GAME_CONFIG.GRID_ROWS-1,t.y+(t.y-o.y)))}}const d={};return d.x=W.x,d.y=W.y,d;case GhostName[e(434,"@Lj(")]:if(r[e(449,"f7o5")](Math.abs(r[e(418,"1qo4")](W.x,t.x)),Math[e(600,"@Lj(")](W.y-t.y))>8){if(r[e(547,"HUtf")]!==r[e(396,"YhWS")]){const t={};return t.x=W.x,t.y=W.y,t}{const t={UP:"DOWN"};return t[e(538,"YhWS")]="UP",t[e(620,"@OEk")]=e(533,"B)j$"),t[e(427,"QOsJ")]=e(588,")O)1"),t[e(405,"cDWB")]="NONE",t[_0x1af575]}}return GHOST_SCATTER_TARGETS[GhostName[e(590,"Owde")]];default:const i={};return i.x=W.x,i.y=W.y,i}}moveTowardsTarget(t,W,o){const e="pNm7",n=_0x1341f9,r={};r[n(482,"f7o5")]=function(t,W){return t>W},r[n(560,"k%Mi")]=function(t,W){return t*W};const s=r,d={...t},i=this[n(604,e)](t);if(0===i[n(546,"n20C")])return d;const f=this.getOppositeDirection(t[n(502,"fY[5")]),h=i.filter(t=>t[n(559,"ce^D")]!==f),k=s[n(621,e)](h.length,0)?h:i;let x=k[0],a=1/0;for(const t of k){const e=t.x-W,n=t.y-o,r=s.DXVRi(e,e)+n*n;r<a&&(a=r,x=t)}if(!x)return d;let C=x.x;return C<0?C=PACMAN_GAME_CONFIG.GRID_COLS-1:C>=PACMAN_GAME_CONFIG[n(610,"#ilF")]&&(C=0),d.x=C,d.y=x.y,d.visualX=C,d[n(521,"@Lj(")]=x.y,d[n(558,"QOsJ")]=x[n(497,"8TmC")],d}moveRandomly(t){const W=_0x1341f9,o={qLNhY:function(t,W){return t>W},pQTUY:function(t,W){return t-W},ShNUj:function(t,W){return t>=W}},e={...t},n=this[W(579,"8Xhg")](t);if(0===n[W(425,"HUtf")])return e;const r=this[W(570,"QOsJ")](t[W(522,"Wq)(")]),s=n[W(577,"5#Bh")](t=>t.direction!==r),d=o[W(574,"N5Kb")](s[W(601,"5#Bh")],0)?s:n,i=d[Math.floor(Math.random()*d[W(606,"@OEk")])];if(!i)return e;let f=i.x;return f<0?f=o[W(526,"@kfF")](PACMAN_GAME_CONFIG[W(607,"NU]A")],1):o[W(566,"%It9")](f,PACMAN_GAME_CONFIG[W(519,"YhWS")])&&(f=0),e.x=f,e.y=i.y,e[W(498,"KYjj")]=f,e[W(403,"9GJw")]=i.y,e[W(473,"f7o5")]=i[W(437,"1qo4")],e}[_0x1341f9(552,"w0qV")](t){const W=_0x1341f9,o={};o[W(369,"YhWS")]=W(513,"%It9"),o.hdZNP=function(t,W){return t+W};const e=o,n=[],r=["UP",e[W(417,"NU]A")],W(527,"@#u)"),"RIGHT"];for(const W of r){const o=DIRECTIONS[W],r=t.x+o.x,s=e.hdZNP(t.y,o.y);if(this.canGhostMove(r,s,t)){const t={};t.x=r,t.y=s,t.direction=W,n.push(t)}}return n}getOppositeDirection(t){const W=_0x1341f9,o={};return o.UP=W(598,"VrgY"),o[W(557,"e)Gq")]="UP",o[W(408,"wEvM")]=W(488,"pNm7"),o[W(535,"N5Kb")]="LEFT",o[W(410,"NU]A")]=W(394,"w0qV"),o[t]}[_0x1341f9(618,"YNJc")](t,W){return t.map(t=>{const o=_0x3c19;return t[o(476,"]h6F")]===GhostMode[o(445,"onzK")]||t[o(420,"Wq)(")]===GhostMode[o(542,"]h6F")]?t:{...t,previousMode:t[o(448,"@#u)")],mode:GhostMode[o(512,"#ilF")],frightenedTimer:W,isFlashing:!1,direction:this.getOppositeDirection(t[o(416,"e)Gq")])}})}[_0x1341f9(387,"e)Gq")](t,W){const o=_0x1341f9,e={xVEuR:function(t,W){return t-W}};if(t[o(499,"pNm7")]!==GhostMode.FRIGHTENED)return t;const n=e.xVEuR(t[o(524,"8TmC")],W);if(n<=0){const W={...t};return W[o(615,"8Xhg")]=t[o(390,"mR8l")],W[o(451,"QOsJ")]=0,W[o(545,"1qo4")]=!1,W}const r=n<2e3,s={...t};return s[o(581,"QPOx")]=n,s.isFlashing=r,s}[_0x1341f9(468,"k%Mi")](t){const W=_0x1341f9;if(t[W(476,"]h6F")]!==GhostMode.IN_HOUSE)return t;const o={...t};return o.mode=GhostMode[W(595,"fY[5")],o}checkGhostReachedHouse(t){const W="mR8l",o=_0x1341f9,e={};e[o(428,W)]=function(t,W){return t===W};const n=e;if(t.mode!==GhostMode[o(543,"Owde")])return t;if(9===t.x&&n[o(379,"8Xhg")](t.y,9)){const e={...t};return e[o(444,W)]=GhostMode[o(489,"QOsJ")],e}return t}[_0x1341f9(483,"8TmC")](){const t=_0x1341f9;return this[t(402,"VrgY")][t(469,"Owde")]}[_0x1341f9(426,"8Xhg")](){return 0===this[_0x1341f9(402,"VrgY")].dotsRemaining}getDotsEaten(){const t=_0x1341f9;return this[t(431,"[yzc")][t(474,"1qo4")]-this[t(612,"ce^D")][t(382,"L67]")]}[_0x1341f9(435,"YhWS")](){const t=_0x1341f9,W=this[t(563,"KYjj")]();return PACMAN_GAME_CONFIG[t(375,"JrI8")][t(534,"f7o5")](W)}[_0x1341f9(430,"HUtf")](){const t=_0x1341f9;return{x:9,y:11,active:!0,expiresAt:Date.now()+PACMAN_GAME_CONFIG[t(388,"5#Bh")]}}[_0x1341f9(609,"Wq)(")](t){const W=_0x1341f9,o={};o[W(392,"QPOx")]=function(t,W){return t>W};const e=o;return t[W(389,"mvoX")]&&e[W(556,"JrI8")](Date[W(478,"g(IS")](),t[W(487,"B)j$")])}[_0x1341f9(429,"KYjj")](t,W){const o=_0x1341f9,e={};e[o(583,"#CGB")]=function(t,W){return t===W};const n=e;return W[o(475,"YhWS")]&&t.x===W.x&&n[o(594,"@OEk")](t.y,W.y)}[_0x1341f9(477,"JrI8")](t){const W=_0x1341f9;switch(t){case W(452,"mR8l"):return 0;case W(616,"@#u)"):return 90;case W(461,"KYjj"):return 180;case"UP":return 270;default:return 0}}isValidDirectionChange(t,W){return W!==_0x1341f9(394,"w0qV")}}function _0x223e(){const t=["k8o8zb7dVmkAnwG9WOf+wW","W6O5WPOFggObgaPkr3zx","k8k2j8o2vG","BtpdScdcG8k6dCk1W6a","vCkoySo6xMRcV8ktdW","WOVcNMCFW5JdHMLMW7u","w8kdW60nAX1jpZm","zuaggYJdVW","s2PnBW","W65WD0iLDCoTW4NcO8oNWOnIxJBdHx5h","A8kQAG","hXPXWQBdSq","W47cT19HW5FcI2O","CSo8WQyf","WPFcNwujW4G","hCoFc8kNBdC2Cq9CjJBdUSktc8kK","sCkRDf7cSW","dCoRj8kKCa","W6RdNdJcMSkwW58e","mqbrWQVdICorefmM","WO3dU8kyfga","vCowWRxdKCk9WQr8EcWqW4TghW","tmkoymo+DuBcV8kuca","WQ7cRmkl","u8oyWPO0","WRldK8kN","WPtcPSkiW4xcK8oXWR06","qMPDECkNWOCyBmkRt8kbBmki","WPZcG8oEBGTjW7pdGLD3WQ/cP8o3","hSotdCkgydCStaq","WRzfwa3cNCkAW7W","WRldNCk7oq","W6aGW79ZWPO","WPJdOmkwggVdOmoLWOtcMW","W7fnW6/dTmoQlCoXCfy","W6PWB343","zItdOdFcJG","AmkKz38","qSkxvf7cV8osWOCiWPK","W5xdI3BcM8kFwYK","WRy+W6BcUfbmbs8eW54vja","W6r6z3C","lvbaiSonrmoj","WRBcSSkVW6lcMW","W73dO8oLWQJdPCosWRy5f8oV","bsvKgq","W4udW6TMWRypW7pcPaq","acaYW4xcTqxcKsNcVa","W6/cImkSW4Xg","W4aKh8oy","mmkRbSkzWOHmWQq","q3e7nGhdMCk3W6ZcPa","ibLtWQxdNSoaoG","WP7cN8kxDeJdNfi","W78hF8oszaFdOSo1WPC","CdpdRdRcN8kg","hmoifSkeAZCGtq9veZBdUCkFfW","s2Xh","W6vsWOjVWOy","W4bZumkq","W7FdUCkEvJ8","WQ7cPmkFW48","vCkaBa","e3vsnSoO","W6fEr8khlG","bJfMWORdRW","WOBcMxywW47dLMv6","fffoBq4","p1bbmSopxmo4WO3dQW","yfDGtCk9WRyWq8khzq","qgWLpa","W7ZdN8k5sqS","iCk0iCo6xmo5xKe","A8kOW7qBeW","B0T2qSk6WRCMsa","W4SxWROPba","qwbDr8kuWPGq","rSkFW58azIPoiI4n","eCo5rZ/dL8kx","lK55h8oB","W60kE8orqW","W6hdRKZcOmk1BG","WP/cMhWuW4/dGq","W6pcN27dJmotWPC+u8kuWRCcpW","aYW0W7dcUqlcIY/cSgZdSSkMAfZcN2a","p8oKyXtdHG","W5LCtvKD","yeOafZ3dRSkrW4/cMq","W7LDvKGd","FmkUq8or","FCo6WOBdOSkxWP5ssaO","WOiyW4pcMgfNpauM","hCobxINdTa","W4OSamoypmoeWOmCkW","W4OzWRO","WQDjxZZcK8kcW5FdVSoTW7SuWPu","WOtcL8kSW67cS8ohiGCy","WRlcUghdVmkmWR5oWODDr8oWW7pcRa","eGj9aJ0","WOtcJCkQW7NcUmoBkqqejW","laTl","karAiZ7cSSkIW41wWPfSWQldTCoDW4Ha","FSo2WOddImkeWPPuva0RW7Trm0pcOfbUAvdcJW","dCoqjSkPkJBcHmkOgc50W4C","CSo0WRi","zu4wW7tcJCkdvMqfW7hcJahcSW","n1rhtqm","W4ynW7n3","W616D2ewC8onW4NcPmoBWOv4wa","W4xdI2NcMSkBrq","wSoosmkgimkutLyJW4dcOHi","WRZcRKxdG8kuWQHpWR5Ar8o5W5VcT8krW4hcKq","p8o7k8kMtq","zI7dRdpcG8kbgmk+W6S3W53dJCkOvGK","WQ3dHYJcI8kbW4ms","i8kTjmofsW","W6tcTGpcTY0","W7G/WP0zk2m0","WRldK8kLoq","t8ktB1xcSG","WQeoW6ldIW","WRdcICkTW6G","W40AWRCOdW","mSkzW7i","WQNdM8kSkvxdJ8oY","sMbhBCkbWOO","WPddUqhcICk4","W5LHW5ZdH8oaf8oFqhddUmotW7vL","iCkYl8oqW4P3WRzsWPiwWQjzvmoV","l8oWEW7dVmkfcq","dmkteCoQ","hSolqt/dGSkQh2mg","WONcLmkx","W4/dH2VcICkkxW","BgGTCWxcGIu1WQCzW73cTgi","W4KeWQCOfuWJnta","WRJdL8kRdfVdKmozWQhcQSoXW6VdSJ0yW4xdKq","n8kMcMma","WRFdIZxcMCkuW4C","W73cHgrcW63cVhWYW4C","n8kXa24hq8o6W6ymWOvH","W7iDs8ofCHRdV8oFWOhcKbVdTCoMW7O","W7ZdO8oLWQVdSSofWRW7aq","WQtcS8kLv2ddVKWknCooWQ0zWRy","WOSqW4VcMa","W6NdThFcOCkS","W589W4zvWQ0","WRBcPfxdTG","W4H5qCkk","qurnESkg","W44EW7D1WRy0W6BcRY3cSvZcOJnl","WOVdObOWWOtdIayiW4mZySoVW50","WPFdQX3cQG","WQFdMmkVl0C","W6bMu30ZC8osW7JcQmozWObZsW","W6eIW4fAWPevW5dcHa","W69pzCkdfq","W7HfW6FdTa","y1SqfIq","W4ZcSLTGW7y","mZ9VnL3dThKuWOC3W53cK1tcP8kNqhBcH8kv","sCoCWR3dICkGWRLKDYenW4fffwBcGgffuhRcRCo/cX0","lhZdPwRcG8oYimkzW5K","w8kaESosDNtcTq","W49hvLSqsCoZW7JcJmoIWQjjEW3dUei","WPZcOgeXW7y","dCkrfSoWW7O","W5ZdPSoMWRJdQW","WQ3cMgtdN8kd","nYTvpHy","W5JdKmocWQldGSoWWPy","n8kLhmkNWRvFWQZcQSksWOyriSk8","W4SEW7TZWQOLW4tcQqxcQKC","WPRcOmkyW57cImo7WQOWW4T1","B8kGwmot","W6DWE2yaF8osW43cRSobWOv5uq","tCkrCmo+BwFcLSkseG5UW4yhbCkLW51lWR5GW4pcIq","W6xdSfdcP8kQAdqQW7fpwfWWWQ0","W5JcO8k7W7vXlW","W6VcS8o4eg7dSmoNWQmZzX4Y","WRldM8kX","CbtdKa7cRa","aJeLW4pcSW","kGyoW6u","x8keymoCCwpcO8kflWH0W5uhhW","y3egaX8","W4BdLCk8zqneW6u","WOlcLM8F","jITxjYq","xmk7W60NsG","b8oMBIVdJW","jCk9pmob","ACo0WQ8vF8ktWR0","W6jtBSkWgmoEWO0hWRr1sgZdPq","W6lcJYFcUa","W5JcRSkMW7fMpSk5W6L4WRRcRfW","WPhcMJldN8ooaei3W65bwfSM","W6ianmoP","W4KsomoQgq","W7tcMwnd","ieZdVeRcLG","e8k9W4ZdNG","cu/dRMVcRW","W6/dNmoHWRNdR8kCWQ0TW5zoW7Ls","Bva0hJ/dQCkqW4NcMCkW","xmkizSo6ENBcUCkpfq","W53cRK9IW4G","wCkTW78frG","W7XTWR9oWRy2kJqXyCkZWRZdJN7dU08","W7ybACos","WOVcGN/dMmkI","dmk7W4VdNSoWfIa","pmkZmSofW49sWRvpWPS","kJ9Ui1NdSxGjWPK","n1XDmmoyqa","WRlcUh3dTSknWR5qWPrxrSoSW7RcVCktW4e","s8oAWRpdJ8kG","W63cKSoikN8","WQnetHVcL8kWW5BdJSoLW7SYWProW6PqArtcNru","oeTwnSoytCoxWPddSmkpEq","mSkzW7ddRW","qSkdW68juZzrkJioWPddHSoXtglcM0K","W67cSSkNW7zx","WQVcUSk9rwW","D0SDbZldVSkRW5dcLSkGDxFdHdpcRty","orDxWQFdQCovdxy9W7NcIqO","s8kfW6Sjzc1pjc4","hSoUtdNdL8kAWP49De8N","WQXjrr/cImkE","f8kfpa","kwldPwdcL8o5","Amk8W441mq","WQfcqHxcNCkcW4hdTSoJW7OfWPm","W7BcRSo5aW","gXfob3S","WOGqW5ZcMa","bvbiDH8","W6fzCSkH","WQhcNgiXW5y","hSo5rttdKa","F8oHWP3dOmkCWP5Esqe7W4P8n1tcTW","W4NcImoAlLm","cSoxiSkPkZddOmkwmG91W7u7","kCkrW7NdV8ofpYO","huFdN1VcVComnG","WQ7cQSkqW57cHmofaYiMfavAW64iWOO6W5VcQ04","WPlcHxRdIG","rW7dJbdcTmkNmSkhW50","aSoygmkWva","dhH/gW","WOXPBsW","W7f3zeet","W47dJxpcI8kQwaCEW5fQF0eEWPflWOldPa","W6ZdNmoVWR3dQmkrW5SpW7rUW6n+jq","W5ZcPerHW5RcI1yqW7eYx8o0W5hcMIe","W5naWOpdIZeNasiRW5uIbq","WOaKW5hdQXegWOBcUg3dQW"];return(_0x223e=function(){return t})()}
@@ -1 +0,0 @@
1
- "use strict";const _0x50dd1d=_0x90d3;!function(){const e="D1Iy",a=_0x90d3,t=_0x2061();for(;;)try{if(118279==-parseInt(a(468,"m0zL"))/1*(-parseInt(a(525,e))/2)+parseInt(a(622,e))/3*(-parseInt(a(597,"mIUb"))/4)+-parseInt(a(488,"r#D3"))/5*(parseInt(a(567,"4nuT"))/6)+-parseInt(a(613,"dttC"))/7*(-parseInt(a(436,"x9KE"))/8)+-parseInt(a(660,"#!#B"))/9+-parseInt(a(486,"M4Ny"))/10*(parseInt(a(438,"IXpk"))/11)+-parseInt(a(703,"IJJN"))/12*(-parseInt(a(496,"0w$X"))/13))break;t.push(t.shift())}catch(e){t.push(t.shift())}}();import{create}from"zustand";import{subscribeWithSelector}from"zustand/middleware";import{useShallow}from"zustand/react/shallow";import{PacManService}from"./PacManService.js";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[_0x50dd1d(578,"&bwF")](),_ghosts=gameService.initializeGhosts(),_fruit=null,_score=0,_lives=PACMAN_GAME_CONFIG.INITIAL_LIVES,_ghostsEatenCombo=0,_currentGhostMode=GhostMode[_0x50dd1d(701,"%IyB")],_gameStartTime=0,_enableSounds=!0,_enableHaptics=!0,_lastDotsRemaining=-1,pacmanSubStep=0,ghostSubStep=0,chompCounter=0;const SUB_STEPS=PACMAN_GAME_CONFIG[_0x50dd1d(549,"E!bZ")],MOVE_SPEED=PACMAN_GAME_CONFIG[_0x50dd1d(473,"%IyB")],GHOST_SUB_STEPS=Math[_0x50dd1d(715,"2fUs")](SUB_STEPS/PACMAN_GAME_CONFIG[_0x50dd1d(707,"IXpk")]),GHOST_MOVE_SPEED=1/GHOST_SUB_STEPS,GRID_COLS=PACMAN_GAME_CONFIG[_0x50dd1d(435,"Hcz(")];let gameTimerRef=null,countdownTimerRef=null,ghostModeTimerRef=null,readyTimeoutRef=null;const clearAllTimers=()=>{const e=_0x50dd1d,a={KBKye:function(e,a){return e(a)},peXDW:e(727,"TzAj")};if(gameTimerRef&&(a.KBKye(clearGameInterval,gameTimerRef),gameTimerRef=null),countdownTimerRef)if(e(690,"Xgwx")!==a[e(545,"pG[]")])clearGameInterval(countdownTimerRef),countdownTimerRef=null;else{_0x7207c6({isPaused:!1})}ghostModeTimerRef&&(clearGameInterval(ghostModeTimerRef),ghostModeTimerRef=null),readyTimeoutRef&&(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[_0x50dd1d(599,"*)GP")](e,a)};export const unregisterGhostSharedValues=e=>{ghostSharedValuesMap[_0x50dd1d(717,"PX%@")](e)};const _0x5ddf28={RIGHT:0};_0x5ddf28.DOWN=Math.PI/2,_0x5ddf28[_0x50dd1d(571,"71au")]=Math.PI,_0x5ddf28.UP=3*Math.PI/2,_0x5ddf28[_0x50dd1d(629,"IJJN")]=0;const DIR_ROTATION=_0x5ddf28;export const getPacManPosition=()=>({x:_pacman[_0x50dd1d(480,"TzAj")],y:_pacman[_0x50dd1d(446,"mmY]")],rotation:DIR_ROTATION[_pacman[_0x50dd1d(475,"osIa")]]});export const getGhostPosition=e=>{const a=_0x50dd1d;for(let t=0;t<_ghosts[a(489,"mIUb")];t++){const o=_ghosts[t];if(o[a(644,"%IyB")]===e)return{x:o[a(725,"E!bZ")],y:o[a(569,"dk[G")]}}return null};const writeVisuals=()=>{const e=_0x50dd1d,a={};a[e(426,"re!*")]=function(e,a){return e<a};const t=a;pacmanSharedValues&&(pacmanSharedValues.x[e(502,"2tY2")]=_pacman[e(683,"0w$X")],pacmanSharedValues.y.value=_pacman[e(595,"*)GP")],pacmanSharedValues.rotation[e(564,"*)GP")]=DIR_ROTATION[_pacman[e(433,"re!*")]]);for(let a=0;t[e(608,"k*Rw")](a,_ghosts[e(459,"mmY]")]);a++){const t=_ghosts[a],o=ghostSharedValuesMap[e(722,"re!*")](t[e(726,"TzAj")]);o&&(o.x.value=t[e(427,"Hcz(")],o.y.value=t.visualY)}},buildPacmanVisual=()=>({direction:_pacman[_0x50dd1d(507,"&bwF")],mouthOpen:_pacman[_0x50dd1d(680,"TzAj")]>10}),buildGhostVisuals=()=>_ghosts[_0x50dd1d(516,"sgVJ")](e=>({name:e[_0x50dd1d(504,"k*Rw")],mode:e[_0x50dd1d(558,"wmO9")],isFlashing:e[_0x50dd1d(554,"s@]g")]})),pacmanVisualEquals=(e,a)=>e.direction===a[_0x50dd1d(658,"IXpk")]&&e.mouthOpen===a.mouthOpen,ghostVisualsEqual=(e,a)=>{const t=_0x50dd1d,o={};o[t(624,"71au")]=function(e,a){return e!==a},o.lgTjx=function(e,a){return e!==a};const n=o;if(e[t(657,"UZ!^")]!==a[t(600,"m0zL")])return!1;for(let o=0;o<e.length;o++){const d=e[o],s=a[o];if(d.name!==s.name||n.bMQVB(d[t(596,"re!*")],s[t(668,"M4Ny")])||n.lgTjx(d[t(442,"mIUb")],s[t(659,"dk[G")]))return!1}return!0},_0x175dee={};function _0x2061(){const e=["es7cK8oJAG","kSkzBsxcTIm","W4hcI3T7W4KmbSkDhW","W6FcPZO","W6yrr2FdJq","AmkVWQZdKNrvaa","dIVcQW","W4hdTaVcL8o/","W4i9zuddPXGL","WRJdPSkXWPVdMcHG","E8oEW6Sj","BCoWW40bW6u","WQFdVmkfWO/dLcf3ySkKW6a","W6C7W6GWkG","fmoGtWDDwXm","fSofo0vWimkOW4m7","ASkVWRldGLbvoxJdM2hdSa","papcUmkNjW","W5iLW6Kte8oeW6C","W7/cOt7dHdmNW64","b8k5FCkbWO0","WPDAWQtcI8oW","W6LcysP4W6um","WO1FySooda","dsFcRCkQmSopW5qtBq","W6qvvwRdIZuZ","W6mEW5mIlCoRW7amqq","WR3dUNNdMIqNW7ldOrm","mCoKchnw","WP7cKKeFW7pcHtL/WQWz","WOXXWOBcKmoT","tmkyW60Jua","b8kittBcLa","CspdTW9CjSkqDJZdPW","mCokFszOCHK","n8olzmoToW","W7BdPaRcHSo5","W5LPmSkSmej+","v8kiWPBdS1X4ffFdPe3dGIOk","W4H5W6VcGW","W4FcKgX/W4e","W7RdP8krW5tcGa","C2mpW57dLG","pCkDAmkgWRVdSCkW","W4KTW6ad","y0qHDHpdT2FcVqldULFdJa","swpcNmk1se5+WRJcQmoqW7OU","nffaWOG8WQDU","tgmoW43dKCkRsW","WOZdHMDIWRXjdGzRW6hdQaldOq","W4nLl8k+juy","W5zSW6hcQCoEWQbtpw4","qmovrCoSW6xdOCo+vvu","W7DgW5tcGWS","lSoqxdzOEJG","gSodd016","WQnmWQLQxN1RW7GM","A8kAW6CuvN/dQmkqW6v+iItcVtbQfCoyWQRdSW","W49KrrPlW5yfWPZcQrddRSobWQn7qdiJf3NdRCk7","WQeVAe7dRI07","qmovrCoVW7pdVCoLA1FcN8kmEeK","W7CqWRtcTSoPW5hdHq","WRrgAmo+hmklhW","W6yCWRpcJSoPW4FdUq","W4SoW7JcLdirW6ZdMCoUkW","rSoikGdcIa","jLfbWPG+WR9FlIe","W50kxeNdJG","W4zZbSk4peTOomoBWOm","ySoLtqiDfG","WP9Mp8oyW7ldO8oB","y8owW7uzW4FdSGS","W4pdJcdcQ8oHkMDn","iwv2BmkXvSor","ASk1W7VcRfLO","WOVdKSktlCokWQ06BSoDbsu","WQbeWRzQCwzTW6C","qSkUwhXFW4xcPH7cHa","WO/dJgLZWQHbhY5PW7S","W4LPhCoqW67dOSol","DdxdNWrjpq","W5ldMSkQW7G","p13cPCk8na","EKNcLSkFrG","md7dQKmt","WPjGtmool8k4f24hkchcMG","W7qKW4lcTaWXW5NdM8odah02","n8oHWQtdSHKZWQJdRSkPeWeU","W6dcUXRdMdW","WR5cWQdcRSolWP8x","WONdKSknpCoUWQ0d","WRBdTCkHamoaWPqiwW","g8ocm8oL","W6RdTmkiW4JcKq","WObIWO7cLa","W4RdJcdcQW","imogEHDMAJlcTSoYg2LeW5ZcRx7dGa","f8o2vd5i","WOPQWPhcLmoLWQOWF8kf","W5ddJWDtW57cVYW","p8oujNS","uhhcR8k0sfLbWR/cVa","z8o5gqxcQ1e+","DSonW6mnW5ldUXvDjmk6WPO","BJNdGHzCoCkG","zLldPH7cVsbBW5hcGW","D8k1WO3dGNrDiq","h8onoq","W756pmkLW7y","v28putpdPfW","mqJcR8knjq","y1/dTbNcQq","WO12oSopW4G","is/dOfaD","W7axW6i+c3PSW6q4W73dJW","hxlcPSkrgSo9FW","W7mBkmk7tmoFlMmElI/cLG","acRdT2CU","W4RdIdxcUSoPlhPydb0EoSkr","wCkhWPldOKPQce3dRua","BdJdO3TucSoBCMZcVG","uSo+W4SPW7NdJqnQfmkx","WOG2WRNcQmof","W6RdVmkxW4JcLu4d","mGup","bsVcSCkOjCot","W4GPW7qbbSoa","xhldKY7cGWbm","WOW3WRJcN8oTWRT2bfGfW4ztW5FdHSokFG","W4xdJHffW5tcLbXJWO0vW4hcRaXrW747W61cW7iqnXi","W4xcGqRdUqy","ySkUFCkWW6dcRSky","AmoYsGibcLeNDmomWPdcKCo8W58","nfLFWOG4","WPhdMSktlq","h8oEemoHWPFdTM/dPhtdSW","WPldHKDsWQ8","B8kJW5lcQKbLWPhdQmk2fW","Ab/dMZrx","j8kpushcTZugfW","WP3dMSkaWRhdQHb9rmks","W482WONcHG","wSk7W4u/Aq","y1iQW4ZdPq","WQ1rpCo3W5u","WPBdImk4jmoUWRiZD8oabW","WPxdQwT3WPK","Emk1qmkGW63cRSkYWP3cLwZcImkCkmoYamoi","W7tdRa7cKCoGbey","WOG2WRxcJG","WQBdQeH7Fq","qmovqSoPW6O","W6qxWQBcOCoKW5JdLmkVW4JdV8oOWQHw","uSkfEmkHW5q","W5FdNshcP8ooia","t2pcK8kTta","gI/cOCoRBW","nffaWOG8WQDV","WRDoW7ddT8oLW4VdVCkmW7RdPa","W6ddOHRcGa","EmoPubaieM0","o8ofwmo3fW","DK87W6W","W54+W50icG","omkvCJxcOYO6","ymoHtGa","jvbCWO4PWP1FmJOha8oT","yL47Bbm","W4W8WOpcISoDW7a","WODTWORcHCoVWR81ECkrWOddHCk0ASkuWP/cMW","WP7dJSkbWRhdTav2","wSkdWP7dS10","vCkvW5NcJM5uWPFdKCkD","W659yqv0","W7aOW53cPaWUW6u","W6GkWPxcPSoPW5NdPq","i8ktzsu","W60cW4uUpCo9W6Wf","W4JdHXLd","WPmWWQlcNSoLWRzd","WQjlWRPTuwXrW7G9W53dPmkq","W6jFW5FcOWNdSgNcGXy","cCk4uSk9WPhdHa","r2qbsdC","qCorks/cH3WP","omkvCJxcOYO7","t2VcJmkTseXX","bchcU8kQ","l2lcIfiljSkwBcldJSog","CspdOq9ClmkrCtu","sMFcIW","W74zshJdNJe","WOWQWOhcH8oLWQnZa0u","vM8tW5/dHmkV","W4ZdMSkTW7pcOheeW5RcMCkHxYGpFKVdSa","FmomW5yaW4FdPZPbnG","gI/cPSoUyb0uh8kU","x8kWwSkVW7S","k0TJWPe8WRjFlYG","W7hdOcRcPSoB","EKRcVSklBa","vuyEtJ8","W7iAWQJcSCoT","FCk0xmkGW6dcPSk5","d8koBgZcTumIW5akW4O","W4RcGYtdTJ0","fmoFmSoHWPe","iJpdRfWxW7/cGSkxWPtcPI9f","oZVcVSobrq","W50mx1RdMW","mSoLECo6","zmkxW6Wqsva","W4CTW7qHgSohW4W0x8kuW4NcTW","W7aBs8oiomkHdN0","kI7dGLaBW67cQmkSWP7cOq","weCSW67dSG","zSowBmofW7u","qq7dPu5X","d8o0emo6WOW","qmovuSoHW6NdVCoytvFcGq","cCoSqby","fComoConWPxdPuu","W4tdLbfhW5q","sCkTxGHwW6ZcVttcGeW","AumQya","WOVdKe96WPLzfq1V","W7HGl8k5W6ejirbNu8kcpCobWRK","BdJdThTmhmoXya","W4FcSrepe8oLAZulqY99","W6Dfamkpca","xrhdPszZ","r8ozotFcH34MW4mXW7OGW64","W7CqWRtcTSoPW5hdHa","W5JcOH3dUGO","AsldKN9k","W6GGW4pcTa","tgmoW43dKCkRsG","kaxcImkEgq","W59Vkmk3jv0","W7dcScVdHtO","vSowmZFcH2qvW6CTW7O1W6O","WOFdGCkDWQBdTHfRuq","icFcRCkPnW","yMjjxmkJtCo8","bmoRtWbm","yCkbW5iwseVdPCkB","xSolcJVcK2mvW44","z17dPblcTYe","m8oVC8o4g8kN","W4ldJWzdW5ZcPX1JWPa","z8oZzqKidvWGxCod","nrL/pftcLd3cIJxdKu/dVc0","b2rTvmkk","WOPUiSoGW7ZdUCoM","ewXYWQ8j","W7ngW4hcPX7dOuBcNHeVWR5MimkWWRFdNdPvWRWmdq","k0TJWPWOWRHtjq","n3/dTfL8kCoDuG","WOf3WPjiDv1hW5KnW7C","hmo0dfS","WPHQWPdcHmoNWRia","WR7dOmk1","wmkZW4eOChNdJG","WPddJxr8WRi","xSolfJ/cKhuCW6KTW6iXW64nrwm","oCkrAmkwWQ7dKmkiWRDR","ESkVWQ3dGNznmwFdHG","W7LPpCkGW68","W5VcGqRdUqy","WRVdTmkPbG","b8oYg0TKW5pcTW","EmoqW7myW47dNZ1ipCk2","W6WwWQpcPG","gCo2henY","Cmk5W6BcVKXSWOy","W6GkWPFcOSo9W47dUCkQ","WOFdNSk9hSoy","z00GsaJdL2S","WQKCWPdcVConWPrDmMOVW4nHW7e","WPBdImkPiCoH","E8oAW74yW6ldTYfkmSkNWOC7oq","fmodimosWQ4","W4zZfSkWpW","WPtdIMXJWPLmja","ta/dSfHY","W4dcHGtdPrSkW7RdQGRdUsW3Cq","W7hdUSkaW5G","W5ldHd7cU8omkva","t2VcJmkTseXW","WQSwWP/cRG","oHVcNmkmfmoOW64","nttdTKqxW6FcVG","W5ucW6/cHtKhW64","hYi3W5tdKu9UWOFdHa","DCkwpaniCGFcR8oH","W4ZdLmkNW6lcUwmv","dcS7W4BdJffH","W7vNimkV","W6hdRJT1W6VcJcDCWRSKW5FcLJ9ZW4ixW4y","u3KQW5hdNG","W6GkWOdcOSoLW5JdK8k4W53dUq","WQTbCSo/fmkgk0iXaspcPSkctCoNWQe","kI7dLv0xW7lcJSk0WPW","ELRdOWtcRY1A","h8oEb8oHWO/dOexdTG","W4CRWO7cHmoaW6NdMCkaW73dJW","W5FcJxXWW44"];return(_0x2061=function(){return e})()}_0x175dee.x=-1,_0x175dee.y=0;const _0x2ed4f1={x:1,y:0},_0x5bd980={};function _0x90d3(e,a){e-=423;const t=_0x2061();let o=t[e];if(void 0===_0x90d3.PkzURv){const e=function(e,a){let t,o,n=[],d=0,s="";for(e=function(e){let a="",t="";for(let t,o,n=0,d=0;o=e.charAt(d++);~o&&(t=n%4?64*t+o:o,n++%4)?a+=String.fromCharCode(255&t>>(-2*n&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++)n[o]=o;for(o=0;o<256;o++)d=(d+n[o]+a.charCodeAt(o%a.length))%256,t=n[o],n[o]=n[d],n[d]=t;o=0,d=0;for(let a=0;a<e.length;a++)o=(o+1)%256,d=(d+n[o])%256,t=n[o],n[o]=n[d],n[d]=t,s+=String.fromCharCode(e.charCodeAt(a)^n[(n[o]+n[d])%256]);return s};_0x90d3.QAZjSr=e,_0x90d3.VXOZIu={},_0x90d3.PkzURv=!0}const n=t[0];_0x90d3.hiGJNJ!==n&&(_0x90d3.VXOZIu={},_0x90d3.hiGJNJ=n);const d=_0x90d3.VXOZIu[e];return void 0===d?(void 0===_0x90d3.JBBbFV&&(_0x90d3.JBBbFV=!0),o=_0x90d3.QAZjSr(o,a),_0x90d3.VXOZIu[e]=o):o=d,o}_0x5bd980.x=0,_0x5bd980.y=-1;const _0x2fd61d={x:0,y:1},_0x21c96b={x:0,y:0},_0x1705b1={};_0x1705b1.LEFT=_0x175dee,_0x1705b1[_0x50dd1d(445,"k*Rw")]=_0x2ed4f1,_0x1705b1.UP=_0x5bd980,_0x1705b1.DOWN=_0x2fd61d,_0x1705b1[_0x50dd1d(490,"2tY2")]=_0x21c96b;const DIR_DELTAS=_0x1705b1,_0x18ed3c={};_0x18ed3c.LEFT=_0x50dd1d(551,"#R#K"),_0x18ed3c[_0x50dd1d(677,"x9KE")]="LEFT",_0x18ed3c.UP=_0x50dd1d(678,"s@]g"),_0x18ed3c[_0x50dd1d(568,"k*Rw")]="UP",_0x18ed3c[_0x50dd1d(448,"Bqxu")]=_0x50dd1d(509,"M4Ny");const OPPOSITE_DIR=_0x18ed3c,handleGhostCollision=(e,a)=>{const t="k*Rw",o="QdG5",n=_0x50dd1d,d={};d[n(661,"&FWe")]="NONE";const s=d;if(a){_ghostsEatenCombo++;const a=PACMAN_GAME_CONFIG[n(603,"2tY2")]*Math[n(670,"E!bZ")](2,_ghostsEatenCombo-1);return _score+=a,_ghosts[n(563,t)](e,1),playSound(_ghostsEatenCombo>1?GAME_SOUNDS[n(671,"#R#K")].EAT_GHOST_COMBO:GAME_SOUNDS[n(704,"2tY2")].EAT_GHOST,_enableSounds,!0),playHaptic(HapticType[n(638,"mmY]")],_enableHaptics),n(615,"Xgwx")}return _lives--,playHaptic(HapticType[n(517,"SPU9")],_enableHaptics),_lives<=0?(playSound(GAME_SOUNDS[n(705,o)][n(626,")cNR")],_enableSounds,!0),clearAllTimers(),n(449,"2fUs")):(playSound(GAME_SOUNDS[n(557,t)][n(514,"Sc7O")],_enableSounds,!0),pacmanSubStep=0,ghostSubStep=0,_pacman={...gameService[n(537,"wmO9")](),direction:s[n(559,"Q[q%")],nextDirection:n(550,"4nuT")},_ghosts=gameService.initializeGhosts(),_ghostsEatenCombo=0,_gameStartTime=Date[n(533,o)](),n(439,"&bwF"))};export const usePacManStore=create()(subscribeWithSelector((e,a)=>({pacmanVisual:buildPacmanVisual(),ghostVisuals:buildGhostVisuals(),maze:gameService[_0x50dd1d(472,"4nuT")](),fruit:null,score:0,timeElapsed:0,lives:PACMAN_GAME_CONFIG.INITIAL_LIVES,isPlaying:!1,isGameOver:!1,isWin:!1,isPaused:!1,isReady:!1,enableSounds:!0,enableHaptics:!0,startGame:()=>{const t=_0x50dd1d,o={eGTqQ:t(429,"CFPU"),YXWtU:function(e,a,t){return e(a,t)},qpqEa:function(e,a){return e(a)}};clearAllTimers(),pacmanSubStep=0,ghostSubStep=0,chompCounter=0,o[t(552,"71au")](playSound,GAME_SOUNDS[t(511,"dttC")][t(663,"osIa")],_enableSounds),playHaptic(HapticType[t(577,"4nuT")],_enableHaptics);e({isReady:!0,isPlaying:!1}),readyTimeoutRef=setTimeout(()=>{const n="m0zL",d="4nuT",s="71au",W=t,i={};i[W(625,"H&I^")]=function(e,a){return e===a},i[W(491,"AOu)")]=W(430,"&bwF"),i[W(651,"re!*")]=o.eGTqQ;const m=i;if(!a()[W(584,"4nuT")])return;gameTimerRef=setGameInterval(()=>{const e=W,t=a();t[e(604,"TzAj")]&&!t[e(655,"dttC")]&&!t[e(728,"E!bZ")]&&t[e(485,"bq@y")]()},PACMAN_GAME_CONFIG[W(530,"TzAj")]),countdownTimerRef=o[W(562,"nSpG")](setGameInterval,()=>{const t=W,o=a();o[t(607,"osIa")]&&!o[t(654,"#R#K")]&&!o[t(529,")cNR")]&&e(e=>({timeElapsed:e[t(484,"s@]g")]+1}))},1e3),ghostModeTimerRef=setGameInterval(()=>{const e=W,t={};t[e(547,"mIUb")]="NONE";const o=t;if(m[e(618,n)](e(614,"x9KE"),e(492,"*)GP"))){const t=a();if(t.isPlaying&&!t[e(665,"osIa")]&&!t[e(546,"0w$X")])if(_currentGhostMode===GhostMode.SCATTER){_currentGhostMode=GhostMode[e(609,"*)GP")];for(let a=0;a<_ghosts[e(620,"#R#K")];a++)if(m.TFpXO!==e(627,"Xgwx")){const a=_0x11ca08[_0x1a084e];if(a[e(574,"dk[G")]===_0x46411c)return{x:a[e(434,n)],y:a[e(669,"&bwF")]}}else m[e(432,"D1Iy")](_ghosts[a][e(695,"2tY2")],GhostMode[e(423,"IJJN")])&&(_ghosts[a][e(681,d)]=GhostMode[e(653,"IJJN")])}else{_currentGhostMode=GhostMode[e(518,"#!#B")];for(let a=0;a<_ghosts.length;a++)if(e(582,"Sw)p")!==m[e(451,s)])_ghosts[a].mode===GhostMode[e(437,"sgVJ")]&&(_ghosts[a][e(633,"#!#B")]=GhostMode.SCATTER);else{const a=_0x412a81.x+_0x2ef76b.x,t=_0x4c3abc.y+_0x5d8e0f.y;_0x2fe875[e(465,"bq@y")]!==o.pOjWj&&_0x33f7fb[e(479,"r#D3")](a,t)?(_0x412c71.visualX+=_0x5ac4bc.x*_0xca8076,_0x2b9308[e(645,s)]+=_0x4c52b7.y*_0x2a1cde,_0x232b97.visualX<-.5?_0x33fc92[e(456,"osIa")]+=_0x47f56d:_0x2e139c.visualX>_0x231c66-.5&&(_0x5b4aed[e(532,"2tY2")]-=_0x2d6c54)):(_0x412bf7[e(594,"PX%@")]=_0x5d7041.x,_0x31b89f[e(452,"CFPU")]=_0x35fc26.y,_0x2a8149=0,_0x115549=!0),_0x3e1d3a.animateMouth(_0x30ef80)}}}else _0x48498a[e(641,d)]+=_0x22ec20.x*_0x56922a,_0x20f058[e(431,"Sw)p")]+=_0x2259be.y*_0x54b9e5,_0x15a48b.visualX<-.5?_0x511e13.visualX+=_0x5127f7:_0x7d4083.visualX>_0x532213-.5&&(_0x1aaed4[e(443,"IJJN")]-=_0x2e2079)},PACMAN_GAME_CONFIG.SCATTER_DURATION+PACMAN_GAME_CONFIG[W(635,"SPU9")]),_gameStartTime=Date[W(719,"x9KE")]();const r={};r[W(515,"9zEF")]=!1,r[W(605,"nQSQ")]=!0,r.isPaused=!1,r[W(425,"9zEF")]=0,o[W(462,"Bqxu")](e,r)},2e3)},stopGame:()=>{const e=_0x50dd1d;clearAllTimers(),{OvzVd:function(e,a,t){return e(a,t)}}[e(476,"m0zL")](playSound,GAME_SOUNDS[e(579,"E!bZ")][e(580,"9zEF")],_enableSounds),playHaptic(HapticType[e(656,"Sc7O")],_enableHaptics),a().initializeGame()},pauseGame:()=>{const a={};a[_0x50dd1d(548,"PX%@")]=!0,e(a)},resumeGame:()=>{const a={};a[_0x50dd1d(713,"Xgwx")]=!1,e(a)},resetGame:()=>{a().initializeGame()},initializeGame:()=>{const a=_0x50dd1d;({AKWQH:function(e){return e()}})[a(646,"re!*")](clearAllTimers),pacmanSubStep=0,ghostSubStep=0;const t=gameService[a(674,"CFPU")]();_pacman=gameService.initializePacMan(),_ghosts=gameService[a(710,"D1Iy")](),_fruit=null,_score=0,_lives=PACMAN_GAME_CONFIG[a(447,"9zEF")],_ghostsEatenCombo=0,_currentGhostMode=GhostMode.SCATTER,_gameStartTime=0,_lastDotsRemaining=-1,writeVisuals(),e({pacmanVisual:buildPacmanVisual(),ghostVisuals:buildGhostVisuals(),maze:t,fruit:null,score:0,timeElapsed:0,lives:PACMAN_GAME_CONFIG[a(694,"x9KE")],isPlaying:!1,isGameOver:!1,isWin:!1,isPaused:!1,isReady:!1})},changeDirection:e=>{const t="9zEF",o=_0x50dd1d,n={mohCA:function(e){return e()},hoFmi:function(e,a,t){return e(a,t)}},d=n[o(531,"wmO9")](a);!d.isPlaying||d.isPaused||d.isReady||gameService.isValidDirectionChange(_pacman[o(675,t)],e)&&(n[o(464,"sgVJ")](playHaptic,HapticType[o(581,"0w$X")],_enableHaptics),_pacman[o(689,"TzAj")]=e,e===OPPOSITE_DIR[_pacman[o(675,t)]]&&(_pacman[o(475,"osIa")]=e,_pacman[o(692,"pG[]")]=_pacman.x,_pacman.visualY=_pacman.y,pacmanSubStep=0))},gameLoop:()=>{const t="Sc7O",o="s@]g",n="nSpG",d="dttC",s="mIUb",W="mIUb",i="mmY]",m="IJJN",r="Hcz(",_="UZ!^",u="pG[]",S=_0x50dd1d,p={rnkjJ:function(e,a){return e>=a},yxfth:function(e,a){return e+a},xeCVW:function(e,a){return e>a},hiYHD:function(e,a){return e+a},dOEhx:function(e,a){return e!==a},QVlbH:S(706,"SPU9"),BASJK:function(e,a){return e*a},CwrVX:function(e,a){return e<a},tmaxg:function(e,a){return e!==a},JzNbn:function(e,a,t){return e(a,t)},zrGnx:function(e,a,t){return e(a,t)},QjPKX:function(e,a){return e===a},HgHCD:function(e,a,t,o){return e(a,t,o)},PUZmA:function(e,a){return e*a},hAyrT:"voAXc",eYFYR:function(e,a){return e+a},IDTBK:function(e,a){return e*a},kZUca:function(e,a){return e>a},ItLvV:function(e,a){return e-a},qppZn:function(e,a){return e-a},XFpBt:function(e,a){return e!==a},DjoTm:S(716,"nQSQ"),RJYqB:function(e){return e()},wJtaa:function(e){return e()}};pacmanSubStep++;let l=p[S(672,"pG[]")](pacmanSubStep,SUB_STEPS);l&&(pacmanSubStep=0),ghostSubStep++;const x=ghostSubStep>=GHOST_SUB_STEPS;x&&(ghostSubStep=0);const G=DIR_DELTAS[_pacman[S(718,"2fUs")]];if(!l)if(_pacman[S(458,"pG[]")]!==_pacman[S(424,"sgVJ")]){const e=DIR_DELTAS[_pacman[S(527,"k*Rw")]];if(gameService.canMove(p[S(648,"x9KE")](_pacman.x,e.x),_pacman.y+e.y))_pacman[S(524,"AOu)")]=_pacman.x,_pacman[S(470,"4nuT")]=_pacman.y,pacmanSubStep=0,l=!0;else{const e=_pacman.x+G.x,a=_pacman.y+G.y;_pacman.direction!==S(698,"wmO9")&&gameService[S(686,"#!#B")](e,a)?(_pacman[S(428,"x9KE")]+=G.x*MOVE_SPEED,_pacman[S(573,"PX%@")]+=G.y*MOVE_SPEED,_pacman[S(536,t)]<-.5?_pacman[S(725,"E!bZ")]+=GRID_COLS:p[S(685,o)](_pacman[S(508,"IXpk")],GRID_COLS-.5)&&(_pacman[S(482,"&FWe")]-=GRID_COLS)):(_pacman[S(612,n)]=_pacman.x,_pacman[S(566,"osIa")]=_pacman.y,pacmanSubStep=0,l=!0),gameService[S(649,d)](_pacman)}}else{const e=_pacman.x+G.x,a=p.hiYHD(_pacman.y,G.y);p[S(570,"UZ!^")](_pacman.direction,p[S(553,"r#D3")])&&gameService[S(630,"Xgwx")](e,a)?(_pacman[S(428,"x9KE")]+=p[S(676,"SPU9")](G.x,MOVE_SPEED),_pacman.visualY+=G.y*MOVE_SPEED,p[S(526,"kUwa")](_pacman[S(612,n)],-.5)?_pacman[S(513,s)]+=GRID_COLS:_pacman[S(499,o)]>GRID_COLS-.5&&(_pacman[S(513,W)]-=GRID_COLS)):(_pacman[S(696,"k*Rw")]=_pacman.x,_pacman.visualY=_pacman.y,pacmanSubStep=0,l=!0),gameService[S(616,"kUwa")](_pacman)}let f=!1,P=!1,h=!1,k=!1,O=null;if(l){_pacman=gameService[S(487,"pG[]")](_pacman),_pacman[S(457,"71au")]=_pacman.x,_pacman[S(700,"kUwa")]=_pacman.y;const e=gameService.eatDot(_pacman.x,_pacman.y);if(e){_score+=e[S(647,i)],f=!0;const a=gameService[S(505,m)]();p[S(720,"m0zL")](a,_lastDotsRemaining)&&(_lastDotsRemaining=a,h=!0),e[S(469,"H&I^")]?(_ghosts=gameService[S(541,"dk[G")](_ghosts,PACMAN_GAME_CONFIG[S(467,"Sw)p")]),_ghostsEatenCombo=0,p.JzNbn(playSound,GAME_SOUNDS.PAC_MAN[S(494,"D1Iy")],_enableSounds),playHaptic(HapticType.HEAVY,_enableHaptics)):(chompCounter++,p[S(572,r)](playSound,p[S(642,"x9KE")](chompCounter%2,0)?GAME_SOUNDS[S(724,"m0zL")][S(592,"#!#B")]:GAME_SOUNDS[S(498,"&bwF")][S(702,"QdG5")],_enableSounds),playHaptic(HapticType[S(539,"x9KE")],_enableHaptics)),gameService[S(556,n)]()&&!_fruit&&(_fruit=gameService[S(512,"TzAj")](),k=!0)}_fruit&&gameService.checkFruitCollision(_pacman,_fruit)&&(_score+=PACMAN_GAME_CONFIG.POINTS_PER_FRUIT,f=!0,_fruit=null,k=!0,p[S(617,"nQSQ")](playSound,GAME_SOUNDS[S(498,"&bwF")].FRUIT,_enableSounds,!0),playHaptic(HapticType[S(699,"re!*")],_enableHaptics)),_fruit&&gameService.isFruitExpired(_fruit)&&(_fruit=null,k=!0)}const C=Date.now()-_gameStartTime;for(let e=0;e<_ghosts[S(602,"71au")];e++){const a=_ghosts[e];a[S(585,"PX%@")]===GhostMode[S(500,o)]&&C>=GHOST_RELEASE_TIMING[a[S(503,"&bwF")]]&&(_ghosts[e]=gameService[S(495,"%IyB")](a))}if(x){const e=p[S(506,m)](PACMAN_GAME_CONFIG[S(528,"9zEF")],GHOST_SUB_STEPS);let a=null;for(let e=0;p[S(729,r)](e,_ghosts[S(478,"dk[G")]);e++)if(p.QjPKX("voAXc",p[S(444,_)])){if(p[S(610,"#!#B")](_ghosts[e][S(587,"IXpk")],GhostName[S(591,"CFPU")])){a=_ghosts[e];break}}else{const e=_0x31812c();e[S(601,"wmO9")]&&!e[S(636,")cNR")]&&!e[S(477,i)]&&e[S(481,"k*Rw")]()}for(let t=0;t<_ghosts[S(534,"re!*")];t++){let o=gameService[S(664,"Bqxu")](_ghosts[t],e);o=gameService[S(538,"IXpk")](o),o=gameService.moveGhost(o,_pacman,a),o[S(679,"M4Ny")]=o.x,o[S(583,"%IyB")]=o.y,_ghosts[t]=o}}else for(let e=0;e<_ghosts.length;e++){const a=_ghosts[e];if(p.QjPKX(a.mode,GhostMode[S(650,"E!bZ")]))continue;const o=DIR_DELTAS[a[S(590,"Bqxu")]];a[S(424,"sgVJ")]!==S(706,"SPU9")&&gameService[S(621,"Hcz(")](p[S(723,"k*Rw")](a.x,o.x),a.y+o.y,a)?(a[S(427,"Hcz(")]+=p[S(520,t)](o.x,GHOST_MOVE_SPEED),a[S(588,"wmO9")]+=p[S(693,")cNR")](o.y,GHOST_MOVE_SPEED),a[S(471,"D1Iy")]<-.5?a[S(696,"k*Rw")]+=GRID_COLS:p[S(682,"sgVJ")](a[S(524,"AOu)")],p[S(441,"PX%@")](GRID_COLS,.5))&&(a[S(662,"r#D3")]-=GRID_COLS)):(a.visualX=a.x,a[S(593,"dttC")]=a.y)}if(l)for(let e=0;e<_ghosts[S(535,"Hcz(")];e++){const a=_ghosts[e];if(gameService[S(466,"#R#K")](_pacman,a)){const t=handleGhostCollision(e,a.mode===GhostMode[S(714,"4nuT")]);if(p.QjPKX(t,S(522,"kUwa"))){if(_lives<=0){const e={isGameOver:!0};e[S(691,i)]=!1,e[S(634,u)]=!1,O=e}f=!0,P=!0;break}}}if(!l&&!O)for(let e=0;e<_ghosts[S(483,"0w$X")];e++){const a=_ghosts[e],t=p[S(474,"dttC")](_pacman[S(692,"pG[]")],a[S(697,"*)GP")]),o=_pacman.visualY-a[S(583,"%IyB")];if(t*t+o*o<.36)if(a.mode===GhostMode[S(667,"bq@y")]){if(handleGhostCollision(e,!0)===S(631,"IXpk")){f=!0;break}}else if(a[S(558,"wmO9")]!==GhostMode[S(639,W)]&&a[S(501,"Xgwx")]!==GhostMode[S(586,"Hcz(")]&&p[S(519,"re!*")](a[S(619,_)],GhostMode[S(687,"wmO9")])&&handleGhostCollision(e,!1)===p[S(440,"#R#K")]){if(_lives<=0){const e={isGameOver:!0};e[S(560,"H&I^")]=!1,e[S(510,"*)GP")]=!1,O=e}P=!0;break}}if(!O&&gameService[S(673,"dttC")]()){playSound(GAME_SOUNDS[S(712,"Sc7O")].LEVEL_COMPLETE,_enableSounds,!0),playHaptic(HapticType.SUCCESS,_enableHaptics);const e={};e[S(477,"mmY]")]=!0,e[S(708,"71au")]=!0,e[S(605,"nQSQ")]=!1,O=e,clearAllTimers()}writeVisuals();const T={};let g=!1;f&&(T[S(611,"4nuT")]=_score,g=!0),P&&(T.lives=_lives,g=!0),h&&(T[S(453,r)]=gameService.getMaze(),g=!0),k&&(T[S(450,"2tY2")]=_fruit,g=!0),O&&(T[S(623,"kUwa")]=O[S(544,"Xgwx")],T.isWin=O.isWin,T[S(598,s)]=O[S(461,"H&I^")],g=!0);const R=a(),b=p.RJYqB(buildPacmanVisual);!pacmanVisualEquals(b,R[S(640,d)])&&(T.pacmanVisual=b,g=!0);const I=p[S(555,u)](buildGhostVisuals);!ghostVisualsEqual(I,R[S(575,"osIa")])&&(T[S(454,"#!#B")]=I,g=!0),g&&e(T)},updateSettings:(a,t)=>{const o=_0x50dd1d;_enableSounds=a,_enableHaptics=t;const n={};n[o(589,"bq@y")]=a,n[o(561,"4nuT")]=t,e(n)}})));export const usePacManVisual=()=>usePacManStore(_temp);export const useGhostVisuals=()=>usePacManStore(_temp2);export const useMaze=()=>({qqkZU:function(e,a){return e(a)}}[_0x50dd1d(521,"r#D3")](usePacManStore,_temp3));export const useFruit=()=>usePacManStore(_temp4);export const useScore=()=>({Tmuzz:function(e,a){return e(a)}}[_0x50dd1d(606,"nSpG")](usePacManStore,_temp5));export const useTimeElapsed=()=>usePacManStore(_temp6);export const useLives=()=>usePacManStore(_temp7);export const useIsPlaying=()=>usePacManStore(_temp8);export const useIsGameOver=()=>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[_0x50dd1d(455,"*)GP")]}function _temp2(e){return e.ghostVisuals}function _temp3(e){return e.maze}function _temp4(e){return e[_0x50dd1d(576,"#!#B")]}function _temp5(e){return e[_0x50dd1d(493,"kUwa")]}function _temp6(e){return e.timeElapsed}function _temp7(e){return e[_0x50dd1d(643,")cNR")]}function _temp8(e){return e.isPlaying}function _temp9(e){return e.isGameOver}function _temp0(e){return e[_0x50dd1d(565,"nQSQ")]}function _temp1(e){return e.isPaused}function _temp10(e){return e.isReady}function _temp11(e){const a=_0x50dd1d,t={};return t.isPlaying=e[a(711,"kUwa")],t[a(709,"4nuT")]=e[a(628,"H&I^")],t[a(688,"s@]g")]=e[a(497,"x9KE")],t[a(548,"PX%@")]=e[a(684,"4nuT")],t[a(540,"nSpG")]=e[a(463,"IJJN")],t}
@@ -1 +0,0 @@
1
- "use strict";const _0x405486=_0x1af1;!function(){const e=_0x1af1,_=_0x1fd7();for(;;)try{if(956392==parseInt(e(691,"]knH"))/1+-parseInt(e(579,"wSf9"))/2+-parseInt(e(571,"*l63"))/3+parseInt(e(744,"I7hU"))/4+parseInt(e(692,"ul^Z"))/5*(parseInt(e(618,"7JTd"))/6)+parseInt(e(662,"7JTd"))/7+-parseInt(e(625,"ul^Z"))/8)break;_.push(_.shift())}catch(e){_.push(_.shift())}}();import{c as _0x2f09c2}from"react/compiler-runtime";import _0x22c3d4,{useRef,useMemo,useEffect}from"react";function _0x1af1(e,_){e-=466;const W=_0x1fd7();let o=W[e];if(void 0===_0x1af1.KIhfmT){const e=function(e,_){let W,o,t=[],n=0,r="";for(e=function(e){let _="",W="";for(let W,o,t=0,n=0;o=e.charAt(n++);~o&&(W=t%4?64*W+o:o,t++%4)?_+=String.fromCharCode(255&W>>(-2*t&6)):0)o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(o);for(let e=0,o=_.length;e<o;e++)W+="%"+("00"+_.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(W)}(e),o=0;o<256;o++)t[o]=o;for(o=0;o<256;o++)n=(n+t[o]+_.charCodeAt(o%_.length))%256,W=t[o],t[o]=t[n],t[n]=W;o=0,n=0;for(let _=0;_<e.length;_++)o=(o+1)%256,n=(n+t[o])%256,W=t[o],t[o]=t[n],t[n]=W,r+=String.fromCharCode(e.charCodeAt(_)^t[(t[o]+t[n])%256]);return r};_0x1af1.sHXJIo=e,_0x1af1.cqWJWP={},_0x1af1.KIhfmT=!0}const t=W[0];_0x1af1.HnfPqS!==t&&(_0x1af1.cqWJWP={},_0x1af1.HnfPqS=t);const n=_0x1af1.cqWJWP[e];return void 0===n?(void 0===_0x1af1.utFHQo&&(_0x1af1.utFHQo=!0),o=_0x1af1.sHXJIo(o,_),_0x1af1.cqWJWP[e]=o):o=n,o}import{View}from"react-native";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 _0x21adca,jsxs as _0x1df4cf}from"react/jsx-runtime";const CELL_SIZE=PACMAN_GAME_CONFIG[_0x405486(770,"G%!w")],HALF_CELL=CELL_SIZE/2,GRID_COLS=PACMAN_GAME_CONFIG[_0x405486(717,"w)Qh")],GRID_ROWS=PACMAN_GAME_CONFIG.GRID_ROWS,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,_0x46c100={};_0x46c100[_0x405486(589,")!j(")]=0,_0x46c100[_0x405486(561,"R$TS")]=Math.PI/2,_0x46c100[_0x405486(474,"vgx#")]=Math.PI,_0x46c100.UP=3*Math.PI/2,_0x46c100[_0x405486(693,"xE8P")]=0;const DIR_ROTATION_RAD=_0x46c100,OPEN_MOUTH_RAD=45*Math.PI/180,buildMouthPath=e=>{const _=_0x405486,W={};W[_(481,"B9j3")]=function(e,_){return e*_},W.rAaHO=function(e,_){return e-_},W[_(639,"zBW8")]=function(e,_){return e*_};const o=W,t=Skia[_(792,"vgx#")][_(585,"ul^Z")]();return t[_(704,"&j%&")](0,0),t.lineTo(o.mpKsY(Math[_(518,"EEQk")](e-OPEN_MOUTH_RAD),PACMAN_RADIUS),Math.sin(o.rAaHO(e,OPEN_MOUTH_RAD))*PACMAN_RADIUS),t.lineTo(1.2*o[_(515,"QLLR")](Math.cos(e),PACMAN_RADIUS),Math[_(513,"wsKC")](e)*PACMAN_RADIUS*1.2),t[_(695,"RS6r")](o.mwwwn(Math[_(560,")!j(")](e+OPEN_MOUTH_RAD),PACMAN_RADIUS),Math[_(672,"&x%U")](e+OPEN_MOUTH_RAD)*PACMAN_RADIUS),t[_(487,"QLLR")](),t},DIRECTIONS_ALL=["RIGHT",_0x405486(550,"p3jR"),_0x405486(575,"G%!w"),"UP","NONE"],PACMAN_GEOMETRY=DIRECTIONS_ALL[_0x405486(563,"%c]Z")]((e,_)=>{const W=_0x405486,o={gCvFU:function(e,_){return e/_},Fazaw:function(e,_){return e*_},UNIrf:function(e,_){return e*_},CvVZm:function(e,_){return e(_)},cvfBj:function(e,_){return e-_},RerEC:function(e,_){return e-_}},t=DIR_ROTATION_RAD[_],n=t-o.gCvFU(Math.PI,4),r=o[W(785,"!7pc")](o[W(613,"p3jR")](Math[W(786,"4OH)")](n),PACMAN_RADIUS),.4),a=Math[W(771,"vgx#")](n)*PACMAN_RADIUS*.4;return e[_]={mouthPath:o.CvVZm(buildMouthPath,t),eyeX:r,eyeY:a,pupilX:o[W(586,"Mk&c")](r,.5*PACMAN_PUPIL_RADIUS),pupilY:o.RerEC(a,.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=>({COixX:function(e,_){return e*_}}[_0x405486(607,"G%!w")](e,CELL_SIZE)+HALF_CELL),WALL_GRAD_TOP=[_0x405486(772,"xjw["),_0x405486(543,"MUc8"),_0x405486(602,"I7hU")],lighten=(e,_)=>{const W="QMYd",o=_0x405486,t={};t[o(631,"j*Yu")]=function(e,_){return e+_},t[o(769,"hlGh")]=function(e,_){return e-_};const n=t,r=parseInt(e[o(545,"XQZ&")](1,3),16),a=parseInt(e[o(790,"p3jR")](3,5),16),S=parseInt(e[o(615,"PIZ*")](5,7),16);return o(520,W)+Math.min(255,Math[o(701,"G%!w")](n.AqORk(r,(255-r)*_)))+","+Math[o(654,W)](255,Math[o(723,"rwwN")](n.AqORk(a,n.lhHuU(255,a)*_)))+","+Math[o(578,"QLLR")](255,Math.round(n[o(594,"*l63")](S,(255-S)*_)))+")"},darken=(e,_)=>{const W="QLLR",o=_0x405486,t={};t[o(479,"EEQk")]=function(e,_){return e*_},t[o(491,"4I@u")]=function(e,_){return e-_},t[o(623,"&j%&")]=function(e,_){return e-_};const n=t,r=parseInt(e[o(734,"hlGh")](1,3),16),a=parseInt(e[o(638,"xE8P")](3,5),16),S=parseInt(e.slice(5,7),16);return o(656,"U)Yq")+Math[o(806,W)](n[o(503,W)](r,n.uXLpt(1,_)))+","+Math[o(497,"R$TS")](a*(1-_))+","+Math.round(S*n[o(523,"]knH")](1,_))+")"},GHOST_3D_COLORS={[GhostName[_0x405486(750,"&j%&")]]:[lighten("#FF0000",.35),_0x405486(529,"N7Qu"),darken("#FF0000",.35)],[GhostName[_0x405486(799,"3HF^")]]:[lighten(_0x405486(510,"U)Yq"),.2),_0x405486(531,"0v*2"),darken(_0x405486(678,"B9j3"),.3)],[GhostName[_0x405486(733,"p3jR")]]:[lighten(_0x405486(533,"B9j3"),.25),"#00FFFF",darken(_0x405486(751,"rwwN"),.35)],[GhostName[_0x405486(781,"m(Yp")]]:[lighten(_0x405486(527,"vgx#"),.3),_0x405486(796,"N25Q"),darken(_0x405486(526,"*l63"),.35)]},FRIGHTENED_3D=[lighten("#2121FF",.3),_0x405486(699,"Ad*a"),darken(_0x405486(541,"3HF^"),.35)],FRIGHTENED_FLASH_3D=[_0x405486(720,"XQZ&"),_0x405486(593,"]knH"),_0x405486(719,")!j(")],PACMAN_GRAD=[_0x405486(653,"&x%U"),"#FFCC00",_0x405486(697,"ul^Z")],MazeBackground=_0x22c3d4[_0x405486(619,"aCeN")](()=>{const e=_0x405486,_={swGlq:function(e,_){return e===_}},W=_0x2f09c2(1);let o;if(_[e(782,"Mk&c")](W[0],Symbol[e(569,"ul^Z")](e(499,"MUc8")))){const _={x:0,y:0};_[e(793,"xjw[")]=CANVAS_WIDTH,_[e(706,"%c]Z")]=CANVAS_HEIGHT,_[e(652,"Mk&c")]="rgba(255, 255, 255, 0.3)",o=_0x21adca(Rect,_),W[0]=o}else o=W[0];return o});MazeBackground.displayName="MazeBackground";const WallCell=_0x22c3d4[_0x405486(688,"4OH)")](e=>{const _=_0x405486,W={TZgKB:function(e,_){return e+_},YcFce:function(e,_){return e!==_},PcuYT:function(e,_,W){return e(_,W)}},o=_0x2f09c2(13),{x:t,y:n}=e,r=t*CELL_SIZE+1,a=W[_(718,"EEQk")](n*CELL_SIZE,1);let S;W[_(738,"G%!w")](o[0],r)||W.YcFce(o[1],a)?(S=vec(r,a),o[0]=r,o[1]=a,o[2]=S):S=o[2];const d=a+WALL_SIZE;let x,u,s;if(o[3]!==r||o[4]!==d?(x=W.PcuYT(vec,r,d),o[3]=r,o[4]=d,o[5]=x):x=o[5],o[6]!==S||o[7]!==x){const e={};e[_(657,"wSf9")]=S,e[_(673,"PIZ*")]=x,e[_(758,")!j(")]=WALL_GRAD_TOP,u=_0x21adca(LinearGradient,e),o[6]=S,o[7]=x,o[8]=u}else u=o[8];if(o[9]!==r||W[_(757,"B9j3")](o[10],a)||W[_(610,"PIZ*")](o[11],u)){const e={};e.x=r,e.y=a,e.width=WALL_SIZE,e[_(739,"N7Qu")]=WALL_SIZE,e.r=WALL_CORNER_R,e[_(765,"Mk&c")]=u,s=_0x21adca(RoundedRect,e),o[9]=r,o[10]=a,o[11]=u,o[12]=s}else s=o[12];return s});WallCell[_0x405486(636,"7JTd")]=_0x405486(590,")!j(");const Dot=_0x22c3d4[_0x405486(795,"*l63")](e=>{const _=_0x405486,W={};W[_(749,"RS6r")]=function(e,_){return e+_},W[_(614,"xjw[")]=function(e,_){return e+_};const o=W,t=_0x2f09c2(3),{x:n,y:r}=e,a=o[_(484,"xE8P")](n*CELL_SIZE,HALF_CELL),S=r*CELL_SIZE+HALF_CELL;let d;return t[0]!==a||t[1]!==S?(d=_0x1df4cf(Group,{children:[_0x21adca(Circle,{cx:a,cy:S,r:o[_(486,"QLLR")](DOT_RADIUS,1),color:_(634,"wSf9")}),_0x21adca(Circle,{cx:a,cy:S,r:DOT_RADIUS,color:_(470,"!7pc")})]}),t[0]=a,t[1]=S,t[2]=d):d=t[2],d});Dot[_0x405486(710,"EEQk")]=_0x405486(709,"m(Yp");const PowerPellet=_0x22c3d4[_0x405486(598,"zBW8")](e=>{const _="xjw[",W="0v*2",o=_0x405486,t={gyMoB:function(e,_){return e(_)},DfmxT:function(e,_){return e+_},eghCR:function(e,_){return e!==_},lWIvR:function(e,_){return e!==_},UarRd:function(e,_){return e!==_},sbbZp:function(e,_){return e+_},TQDVN:o(756,_),pjzBA:function(e,_){return e!==_},wiqOy:function(e,_){return e===_},grVKn:function(e,_,W){return e(_,W)},SfAtL:function(e,_){return e!==_},WBqDy:o(559,"5B%E"),SPhGb:function(e,_){return e!==_}},n=t[o(715,"G%!w")](_0x2f09c2,24),{x:r,y:a}=e,S=t.DfmxT(r*CELL_SIZE,HALF_CELL),d=a*CELL_SIZE+HALF_CELL;let x;if(n[0]!==S||t[o(776,"p3jR")](n[1],d)){const e={};e.cx=S,e.cy=d,e.r=POWER_PELLET_RADIUS+1.5,e[o(574,"Ad*a")]="rgba(0,0,0,0.3)",x=_0x21adca(Circle,e),n[0]=S,n[1]=d,n[2]=x}else x=n[2];const u=d-POWER_PELLET_RADIUS;let s;t[o(596,"N7Qu")](n[3],S)||t[o(628,"U)Yq")](n[4],u)?(s=vec(S,u),n[3]=S,n[4]=u,n[5]=s):s=n[5];const i=t[o(640,_)](d,POWER_PELLET_RADIUS);let R,C,E,A,G,O;if(n[6]!==S||n[7]!==i?(R=vec(S,i),n[6]=S,n[7]=i,n[8]=R):R=n[8],n[9]===Symbol[o(540,"B9j3")](o(687,"p]zb"))?(C=[t[o(794,W)],o(508,"p]zb"),o(740,"0v*2")],n[9]=C):C=n[9],t[o(580,W)](n[10],s)||n[11]!==R){const e={};e.start=s,e[o(775,"xE8P")]=R,e.colors=C,E=_0x21adca(LinearGradient,e),n[10]=s,n[11]=R,n[12]=E}else if(t[o(534,"&x%U")]("WSMak",o(517,"G%!w")))E=n[12];else{const e={};e[o(498,"zBW8")]=[_0x45fb84,_0xd2fb3c,_0x2ea697,_0x53a34f],_0x1a6fff=_0x166d80(_0x4e1fdf,e),_0x3f3fd1[34]=_0x49057c,_0x43c199[35]=_0x389a39,_0x27dfdf[36]=_0x39722e,_0x3df9cc[37]=_0x4b0e4c,_0xb46218[38]=_0x32c947}if(t.pjzBA(n[13],S)||n[14]!==d||n[15]!==E){const e={};e.cx=S,e.cy=d,e.r=POWER_PELLET_RADIUS,e[o(472,"*l63")]=E,A=t.grVKn(_0x21adca,Circle,e),n[13]=S,n[14]=d,n[15]=E,n[16]=A}else A=n[16];if(n[17]!==S||t[o(621,"PIZ*")](n[18],d))if(t[o(797,"aCeN")](t[o(716,"k7b*")],o(539,"*l63"))){const e={};e.cx=S,e.cy=d,e.r=POWER_PELLET_CORE_RADIUS,e[o(473,"j*Yu")]=o(681,"%c]Z"),G=_0x21adca(Circle,e),n[17]=S,n[18]=d,n[19]=G}else _0x10cc7e=_0x20abf8[0];else G=n[19];if(t[o(485,"R$TS")](n[20],x)||t[o(721,"RS6r")](n[21],A)||n[22]!==G)if(o(798,"wsKC")===o(483,")!j(")){const e={};e[o(546,"mMlw")]=_0x36002c,e[o(762,"k7b*")]=_0x5111f0,e[o(622,"*l63")]=_0x30f85f,_0x3047bb=_0x5a51cc(_0x2b01e2,e),_0x102a79[6]=_0x4fa45b,_0x569b0d[7]=_0x43a497,_0x6a305f[8]=_0x161181}else{const e={};e[o(568,"N25Q")]=[x,A,G],O=_0x1df4cf(Group,e),n[20]=x,n[21]=A,n[22]=G,n[23]=O}else O=n[23];return O});PowerPellet[_0x405486(475,"PIZ*")]=_0x405486(726,"p3jR");const GhostDoor=_0x22c3d4[_0x405486(488,"&j%&")](e=>{const _=_0x405486,W={AVhsp:function(e,_){return e(_)},NhNPH:function(e,_){return e*_},oFYCf:function(e,_){return e!==_},EPjYe:function(e,_){return e+_},hrikW:_(629,"*l63"),zoazZ:_(700,"&j%&"),WlxLE:_(510,"U)Yq"),UFXcV:function(e,_,W){return e(_,W)},vwsJi:"vGvRP"},o=W[_(565,"p]zb")](_0x2f09c2,14),{x:t,y:n}=e,r=W[_(787,"xjw[")](t,CELL_SIZE),a=W[_(524,"RS6r")](n,CELL_SIZE)+.38*CELL_SIZE,S=.24*CELL_SIZE,d=r+2;let x;o[0]!==a||W[_(660,"R$TS")](o[1],r)?_(677,"5B%E")===_(482,"5B%E")?_0x3dfd10=_0x36ce21[5]:(x=vec(r,a),o[0]=a,o[1]=r,o[2]=x):x=o[2];const u=W[_(808,"N7Qu")](a,S);let s,i,R,C;if(W.oFYCf(o[3],r)||o[4]!==u?_(759,"($#c")!==W[_(783,"RS6r")]?(s=vec(r,u),o[3]=r,o[4]=u,o[5]=s):_0x4afe3b=_0x13bf9f[19]:s=o[5],o[6]===Symbol[_(637,"k7b*")](W[_(617,"]knH")])?(i=["#FFDDFF",W[_(659,"rwwN")],"#DD88DD"],o[6]=i):i=o[6],W.oFYCf(o[7],x)||o[8]!==s){const e={};e[_(644,"5B%E")]=x,e.end=s,e.colors=i,R=W[_(686,"mMlw")](_0x21adca,LinearGradient,e),o[7]=x,o[8]=s,o[9]=R}else R=o[9];if(o[10]!==a||o[11]!==d||o[12]!==R)if(_(572,"YOws")===W[_(761,"4I@u")])_0x42e28a=_0x34a0ae[2];else{const e="1|4|0|3|2"[_(555,"4OH)")]("|");let t=0;for(;;){switch(e[t++]){case"0":o[11]=d;continue;case"1":const e={};e.x=d,e.y=a,e.width=CELL_SIZE-4,e[_(702,"YOws")]=S,e.r=2,e[_(490,"hlGh")]=R,C=W[_(732,"m(Yp")](_0x21adca,RoundedRect,e);continue;case"2":o[13]=C;continue;case"3":o[12]=R;continue;case"4":o[10]=a;continue}break}}else C=o[13];return C});GhostDoor[_0x405486(627,"($#c")]="GhostDoor";const PacManCharacter=_0x22c3d4.memo(({direction:e,mouthOpen:_})=>{const W="%]ZO",o=_0x405486,t={bnZVE:function(e,_){return e(_)},oJrvQ:function(e){return e()},meWFO:function(e,_){return e(_)},aITnx:function(e,_,W){return e(_,W)},upsuz:o(690,"N25Q"),LRYms:o(556,"ul^Z"),qXXzc:o(708,"4OH)")},n=t[o(746,"rwwN")](useRef,t[o(698,"4OH)")](getPacManPosition))[o(667,"mMlw")],r=t[o(735,"Mk&c")](useSharedValue,n.x),a=t[o(804,"&j%&")](useSharedValue,n.y),S=t[o(591,"]knH")](useSharedValue,n[o(664,W)]);useEffect(()=>{const e={};return e.x=r,e.y=a,e.rotation=S,registerPacManSharedValues(e),()=>unregisterPacManSharedValues()},[r,a,S]);const d=t[o(511,"7JTd")](useDerivedValue,()=>[{translateX:gridToPixel(r.value)},{translateY:gridToPixel(a.value)}]),x=PACMAN_GEOMETRY[e],u={};u[o(553,"N7Qu")]=PACMAN_GRAD_START,u[o(775,"xE8P")]=PACMAN_GRAD_END,u[o(655,"YOws")]=PACMAN_GRAD;const s={};s[o(606,"RS6r")]=x[o(779,"hlGh")],s.color=o(666,"]knH");const i={};return i.cx=x[o(707,"Mk&c")],i.cy=x.eyeY,i.r=PACMAN_EYE_RADIUS,i.color=o(466,"Ad*a"),_0x1df4cf(Group,{transform:d,children:[t[o(537,W)](_0x21adca,Circle,{cx:0,cy:0,r:PACMAN_RADIUS+1.5,color:t.upsuz}),_0x21adca(Circle,{cx:0,cy:0,r:PACMAN_RADIUS,children:_0x21adca(LinearGradient,u)}),_&&_0x21adca(Path,s),_0x21adca(Circle,{cx:PACMAN_SHINE_X,cy:PACMAN_SHINE_Y,r:PACMAN_SHINE_RADIUS,color:t[o(632,"%c]Z")]}),_0x21adca(Circle,i),_0x21adca(Circle,{cx:x[o(557,"mMlw")],cy:x[o(747,"p]zb")],r:PACMAN_PUPIL_RADIUS,color:t.qXXzc})]})});PacManCharacter[_0x405486(627,"($#c")]="PacManCharacter";const GhostCharacter=_0x22c3d4[_0x405486(525,"%c]Z")](({name:e,mode:_,isFlashing:W})=>{const o="&x%U",t="B9j3",n="EEQk",r=_0x405486,a={ammvB:function(e,_,W){return e(_,W)},psvjy:function(e,_){return e*_},hDwNE:function(e,_){return e!==_},KWZKX:r(480,"7JTd"),kRBRj:function(e,_,W){return e(_,W)},CXcKg:function(e,_){return e(_)},YDWyQ:function(e,_){return e(_)},OUlEn:function(e,_){return e===_},FeVGQ:function(e,_){return e-_},OzNXW:r(742,")!j("),CaVmu:function(e,_,W){return e(_,W)},dyFtY:function(e,_,W){return e(_,W)}},S=useRef(a[r(684,"4I@u")](getGhostPosition,e))[r(514,"m(Yp")],d=useSharedValue(S?.x??0),x=useSharedValue(S?.y??0);useEffect(()=>{const _=r;if(a[_(478,"0v*2")](a[_(501,"aCeN")],"luPSB")){const W={};return W.x=d,W.y=x,a[_(583,"vgx#")](registerGhostSharedValues,e,W),()=>unregisterGhostSharedValues(e)}{const e=EhOGnh[_(767,"G%!w")](_0x5d88b0,_0x318bba.slice(1,3),16),W=EhOGnh[_(469,"p3jR")](_0x4bc85b,_0x320b35[_(489,"0v*2")](3,5),16),o=EhOGnh.behOv(_0x39ef23,_0x415cc5.slice(5,7),16);return _(722,"#Kae")+_0x145c0b[_(467,"m(Yp")](EhOGnh[_(584,n)](e,1-_0x5d8cfc))+","+_0x53ec90[_(730,n)](W*(1-_0x299b5f))+","+_0x2b9b25.round(o*(1-_0x3fc5c5))+")"}},[e,d,x]);const u=a[r(592,"&j%&")](useDerivedValue,()=>[{translateX:gridToPixel(d[r(600,"Mk&c")])},{translateY:gridToPixel(x[r(777,"m(Yp")])}]);let s,i=PACMAN_COLORS[r(736,o)],R=PACMAN_COLORS[r(768,"p3jR")];if(a[r(626,o)](_,GhostMode[r(502,"aCeN")]))s=W?FRIGHTENED_FLASH_3D:FRIGHTENED_3D,i=r(679,"rwwN"),R="#FF0000";else{if(_===GhostMode[r(506,"4I@u")]){const e={};e.cx=-GHOST_EYE_DX,e.cy=GHOST_EATEN_EYE_Y,e.r=GHOST_EATEN_EYE_RADIUS,e[r(694,"RS6r")]=i;const _={};_.cx=-GHOST_EYE_DX,_.cy=GHOST_EATEN_EYE_Y,_.r=GHOST_EATEN_PUPIL_RADIUS,_[r(642,"hlGh")]=R;const W={};W.cx=GHOST_EYE_DX,W.cy=GHOST_EATEN_EYE_Y,W.r=GHOST_EATEN_EYE_RADIUS,W[r(630,"4OH)")]=i;const o={};return o.cx=GHOST_EYE_DX,o.cy=GHOST_EATEN_EYE_Y,o.r=GHOST_EATEN_PUPIL_RADIUS,o[r(601,"wsKC")]=R,_0x1df4cf(Group,{transform:u,children:[_0x21adca(Circle,e),_0x21adca(Circle,_),a[r(605,"xjw[")](_0x21adca,Circle,W),a[r(612,"w)Qh")](_0x21adca,Circle,o)]})}s=GHOST_3D_COLORS[e]}const C={};C[r(530,"N25Q")]=GHOST_GRAD_START,C[r(780,t)]=GHOST_GRAD_END,C[r(542,t)]=s;const E={};E.cx=-GHOST_EYE_DX,E.cy=GHOST_EYE_Y,E.r=GHOST_EYE_RADIUS,E.color=i;const A={};A.cx=-GHOST_EYE_DX,A.cy=GHOST_PUPIL_Y,A.r=GHOST_PUPIL_RADIUS,A[r(620,"aCeN")]=R;const G={};G.cx=GHOST_EYE_DX,G.cy=GHOST_EYE_Y,G.r=GHOST_EYE_RADIUS,G.color=i;const O={};return O.cx=GHOST_EYE_DX,O.cy=GHOST_PUPIL_Y,O.r=GHOST_PUPIL_RADIUS,O[r(748,"&x%U")]=R,a.kRBRj(_0x1df4cf,Group,{transform:u,children:[_0x21adca(RoundedRect,{x:-GHOST_HALF_SIZE-1.5,y:a[r(535,"w)Qh")](GHOST_BODY_TOP,1.5),width:GHOST_SIZE+3,height:GHOST_BODY_H+3,r:GHOST_HALF_SIZE+1.5,color:a[r(727,"R$TS")]}),a.kRBRj(_0x21adca,RoundedRect,{x:-GHOST_HALF_SIZE,y:GHOST_BODY_TOP,width:GHOST_SIZE,height:GHOST_BODY_H,r:GHOST_HALF_SIZE,children:_0x21adca(LinearGradient,C)}),a.kRBRj(_0x21adca,Rect,{x:-GHOST_HALF_SIZE,y:0,width:GHOST_SIZE,height:GHOST_SKIRT_H,color:s[1]}),a[r(573,"aCeN")](_0x21adca,Circle,{cx:-GHOST_BUMP_DX,cy:GHOST_BUMP_Y,r:GHOST_BUMP_RADIUS,color:s[2]}),a[r(670,"ul^Z")](_0x21adca,Circle,{cx:0,cy:GHOST_BUMP_Y,r:GHOST_BUMP_RADIUS,color:s[2]}),_0x21adca(Circle,{cx:GHOST_BUMP_DX,cy:GHOST_BUMP_Y,r:GHOST_BUMP_RADIUS,color:s[2]}),_0x21adca(Circle,E),a[r(564,"w)Qh")](_0x21adca,Circle,A),_0x21adca(Circle,G),a[r(674,"w)Qh")](_0x21adca,Circle,O)]})});GhostCharacter[_0x405486(581,"0v*2")]=_0x405486(633,"5B%E");const FruitItem=_0x22c3d4[_0x405486(682,"k7b*")](e=>{const _="B9j3",W="QLLR",o=_0x405486,t={GZHXj:function(e,_){return e+_},XgHiE:function(e,_,W){return e(_,W)},jbcWQ:function(e,_){return e+_},SlwoI:function(e,_){return e===_},iuzxz:o(493,"N25Q"),HtphL:function(e,_){return e!==_},FbaKY:function(e,_){return e-_},FrMFs:function(e,_){return e!==_},TKLqd:function(e,_,W){return e(_,W)},GeGJa:function(e,_){return e+_},vVJHg:function(e,_){return e!==_},OdxdT:o(789,"#Kae"),sjhKc:function(e,_){return e*_},BuqEH:"#228B22",nQsLx:function(e,_){return e-_},FKjoy:function(e,_){return e*_}},n=_0x2f09c2(39),{x:r,y:a}=e,S=r*CELL_SIZE+HALF_CELL,d=a*CELL_SIZE+HALF_CELL,x=S-.45*FRUIT_SIZE,u=t[o(471,"m(Yp")](S,.45*FRUIT_SIZE),s=d+.2*FRUIT_SIZE,i=x-FRUIT_SIZE,R=s-FRUIT_SIZE;let C;if(n[0]!==i||n[1]!==R)C=t[o(566,"rwwN")](vec,i,R),n[0]=i,n[1]=R,n[2]=C;else{if(o(668,"aCeN")!==o(552,"j*Yu")){const e={};return e.x=_0x538456,e.y=_0x6111f3,_0x16de62(_0x4b7ade,e),()=>_0x293ec6(_0x1b91cc)}C=n[2]}const E=t[o(651,"XQZ&")](x,FRUIT_SIZE),A=s+FRUIT_SIZE;let G,O,f,I;if(n[3]!==E||n[4]!==A?(G=vec(E,A),n[3]=E,n[4]=A,n[5]=G):G=n[5],t[o(755,"%]ZO")](n[6],Symbol[o(540,_)](o(554,W)))?(O=[o(562,"&x%U"),o(570,W),t.iuzxz],n[6]=O):O=n[6],n[7]!==C||n[8]!==G){const e={};e[o(724,"p]zb")]=C,e[o(775,"xE8P")]=G,e[o(784,"PIZ*")]=O,f=_0x21adca(LinearGradient,e),n[7]=C,n[8]=G,n[9]=f}else f=n[9];if(t[o(803,"]knH")](n[10],s)||n[11]!==x||n[12]!==f){const e=o(661,"4OH)")[o(801,"0v*2")]("|");let _=0;for(;;){switch(e[_++]){case"0":n[10]=s;continue;case"1":n[12]=f;continue;case"2":const e={};e.cx=x,e.cy=s,e.r=FRUIT_SIZE,e.children=f,I=_0x21adca(Circle,e);continue;case"3":n[13]=I;continue;case"4":n[11]=x;continue}break}}else I=n[13];const l=t[o(509,_)](u,FRUIT_SIZE),P=s-FRUIT_SIZE;let T;n[14]!==l||t[o(766,"5B%E")](n[15],P)?(T=t[o(476,"R$TS")](vec,l,P),n[14]=l,n[15]=P,n[16]=T):T=n[16];const H=t[o(725,"B9j3")](u,FRUIT_SIZE),L=s+FRUIT_SIZE;let m,h,k,D;if(t[o(604,"p3jR")](n[17],H)||n[18]!==L?(m=t.TKLqd(vec,H,L),n[17]=H,n[18]=L,n[19]=m):m=n[19],n[20]===Symbol[o(468,"&x%U")]("react.memo_cache_sentinel")?(h=[o(519,"Mk&c"),o(773,"ul^Z"),o(649,"wSf9")],n[20]=h):h=n[20],t[o(597,"($#c")](n[21],T)||n[22]!==m){const e={};e[o(522,"Ad*a")]=T,e[o(713,"&j%&")]=m,e.colors=h,k=_0x21adca(LinearGradient,e),n[21]=T,n[22]=m,n[23]=k}else o(675,"R$TS")===t[o(671,"j*Yu")]?k=n[23]:(_0x5080f6=_0x4637a5(_0x2e4a69,_0x5583a7),_0x9ef26a[3]=_0x277d8d,_0xd525c2[4]=_0x34dc20,_0xa6efac[5]=_0x36b27a);if(n[24]!==s||n[25]!==u||n[26]!==k){const e=o(745,"XQZ&")[o(528,"RS6r")]("|");let _=0;for(;;){switch(e[_++]){case"0":n[24]=s;continue;case"1":n[27]=D;continue;case"2":n[26]=k;continue;case"3":n[25]=u;continue;case"4":const e={};e.cx=u,e.cy=s,e.r=FRUIT_SIZE,e.children=k,D=_0x21adca(Circle,e);continue}break}}else D=n[27];const N=S-1,M=t[o(643,"%]ZO")](d,t[o(641,"]knH")](FRUIT_SIZE,1.3));let U;if(t[o(650,"zBW8")](n[28],N)||n[29]!==M){const e={};e.x=N,e.y=M,e[o(603,"&j%&")]=2,e[o(706,"%c]Z")]=1.3*FRUIT_SIZE,e.r=1,e[o(494,"p3jR")]=t.BuqEH,U=_0x21adca(RoundedRect,e),n[28]=N,n[29]=M,n[30]=U}else U=n[30];const Z=S+.3*FRUIT_SIZE,F=t[o(608,"!7pc")](d,t[o(500,"QMYd")](FRUIT_SIZE,1.1));let Q,p;if(n[31]!==Z||n[32]!==F){const e={};e.cx=Z,e.cy=F,e.r=.3*FRUIT_SIZE,e[o(685,"p]zb")]=o(683,"xjw["),Q=_0x21adca(Circle,e),n[31]=Z,n[32]=F,n[33]=Q}else Q=n[33];if(t[o(538,"QLLR")](n[34],D)||t.FrMFs(n[35],U)||n[36]!==Q||n[37]!==I){const e={};e[o(512,"mMlw")]=[I,D,U,Q],p=t[o(547,"p3jR")](_0x1df4cf,Group,e),n[34]=D,n[35]=U,n[36]=Q,n[37]=I,n[38]=p}else p=n[38];return p});FruitItem[_0x405486(516,"]knH")]=_0x405486(635,"B9j3");const ReadyText=_0x22c3d4[_0x405486(791,"5B%E")](()=>{const e=_0x405486,_={aKDKe:function(e,_){return e(_)},yXwyc:function(e,_){return e/_},JpMvn:function(e,_){return e*_},Ywcun:function(e,_){return e===_},DfhRu:function(e,_){return e-_},amCds:function(e,_){return e/_},pVbPI:function(e,_,W){return e(_,W)}},W=_[e(728,"!7pc")](_0x2f09c2,1),o=CANVAS_WIDTH/2,t=_[e(548,"N25Q")](CANVAS_HEIGHT,2),n=_[e(696,"!7pc")](CELL_SIZE,4),r=1.6*CELL_SIZE;let a;return _[e(774,"XQZ&")](W[0],Symbol[e(588,"#Kae")](e(788,"($#c")))?(a=_0x1df4cf(Group,{children:[_0x21adca(RoundedRect,{x:_.DfhRu(o,n/2),y:t-_.amCds(r,2),width:n,height:r,r:10,color:e(492,"]knH")}),_0x21adca(RoundedRect,{x:o-n/2+2,y:t-r/2+2,width:_[e(712,"&x%U")](n,4),height:_[e(729,"MUc8")](r,4),r:8,style:"stroke",strokeWidth:2,color:"#FFFF00"}),_[e(616,"4OH)")](_0x21adca,Circle,{cx:o,cy:t,r:.12*CELL_SIZE,color:e(752,"p]zb")})]}),W[0]=a):a=W[0],a});ReadyText[_0x405486(663,"p]zb")]=_0x405486(703,"rwwN");const _0x43442d={};_0x43442d[_0x405486(647,"PIZ*")]=CANVAS_WIDTH,_0x43442d[_0x405486(521,"3HF^")]=CANVAS_HEIGHT;const CANVAS_STYLE=_0x43442d,_0x16a247={};_0x16a247[_0x405486(532,"aCeN")]=CANVAS_WIDTH,_0x16a247[_0x405486(689,"wsKC")]=CANVAS_HEIGHT;const _0x5d867e={};_0x5d867e[_0x405486(669,"wSf9")]=_0x405486(624,"0v*2"),_0x5d867e[_0x405486(582,"wSf9")]=_0x405486(536,"3HF^"),_0x5d867e[_0x405486(495,"%c]Z")]=_0x405486(599,"mMlw"),_0x5d867e[_0x405486(477,"R$TS")]=8;const CONTAINER_STYLE=[_0x16a247,_0x5d867e],GameCanvasComponent=()=>{const e=_0x405486,_={ogGLV:function(e,_){return e!==_},uLmOW:e(549,"G%!w"),mmKyg:function(e,_){return e<_},PbUDC:function(e,_){return e<_},FYkJV:function(e,_,W){return e(_,W)},FlLmm:function(e,_,W){return e(_,W)}},W=usePacManVisual(),o=useGhostVisuals(),t=useMaze(),n=useFruit(),r=useIsReady(),a=useRef(null);if(!a[e(763,"wsKC")]||a[e(754,"vgx#")][e(807,"vgx#")]!==t[e(646,"p]zb")]){if(!_[e(753,"0v*2")](_.uLmOW,e(800,"ul^Z")))return _0x863cc8*_0x2773e8+_0x24578c;{const W=[],o=[],n=[],r=[];for(let a=0;_.mmKyg(a,GRID_ROWS);a++)for(let S=0;_.PbUDC(S,GRID_COLS);S++){const _=t[e(504,"vgx#")][a]?.[S],d=S+"-"+a;switch(_){case CellType[e(544,"ul^Z")]:const _={};_.x=S,_.y=a,W.push(_0x21adca(WallCell,_,d));break;case CellType[e(609,"Ad*a")]:const t={};t.x=S,t.y=a,o.push(_0x21adca(Dot,t,d));break;case CellType[e(576,"U)Yq")]:const x={};x.x=S,x.y=a,n[e(802,"mMlw")](_0x21adca(PowerPellet,x,d));break;case CellType[e(680,"%]ZO")]:const u={};u.x=S,u.y=a,r[e(658,"&j%&")](_0x21adca(GhostDoor,u,d))}}const S={};S.dotsRemaining=t.dotsRemaining,S[e(567,"3HF^")]=W,S[e(705,"Mk&c")]=o,S[e(558,"U)Yq")]=n,S.ghostDoors=r,a[e(778,"4OH)")]=S}}const S=a[e(507,"I7hU")],d=_[e(760,"QLLR")](useMemo,()=>o[e(577,"Mk&c")](_=>_0x21adca(GhostCharacter,{..._},_[e(551,"w)Qh")])),[o]),x={};return x[e(587,"G%!w")]=W[e(731,"]knH")],x[e(809,"N7Qu")]=W[e(809,"N7Qu")],_[e(505,"wsKC")](_0x21adca,View,{style:CONTAINER_STYLE,children:_0x21adca(Canvas,{style:CANVAS_STYLE,children:_0x1df4cf(Group,{children:[_0x21adca(MazeBackground,{}),S[e(611,"PIZ*")],S[e(496,"QMYd")],S.dots,S.powerPellets,n&&n[e(665,"]knH")]&&_[e(737,"j*Yu")](_0x21adca,FruitItem,{x:n.x,y:n.y}),d,_0x21adca(PacManCharacter,x),r&&_[e(741,"wsKC")](_0x21adca,ReadyText,{})]})})})};export const GameCanvas=_0x22c3d4[_0x405486(676,")!j(")](GameCanvasComponent);function _0x1fd7(){const e=["uqDvWQJdRG","xGfxWQldImks","W7VcUCkaaCkm","sSkpW5OrWQ/cG1K","W4VdImkMF2S","WRvxWQxdHmkwWOxdJW","wrRcRCk7WOadWQxcLCkZymkgW6xcUwSUodNdJCo7vCkdl8kzAvW","lCopW5uHWQy","W5yCWRpcUmoBWPq","WRRdJCkckG7cQmoGW5D1","rHdcUSk9WQbc","W7BcN8oYoa","p24qnxZcGW","W7FcICoJeW","W5BdPCk2Abj7aSk9WRfOhLNcSSo6kmkekCoxW6JcHH0","WOxdLmoc","W6RdSeJdM8oNy3lcTSkqzCoE","WQpdGCk0E8k7omo6W5DajYKaChK","WO51kCoaWQa","tHhcQa","tXBcV8kOWPHmWRhcVSk/ySk8","omozW60GWOa","sCoEW4iLaa","eJWEtmoQW7ddRSoPba","W5RdG1ZdOmoj","WPVdOmo0W7vPWODk","WOSIaSoXA8kLgW","ytHrWOddVG","WRidWQXM","WPRdH8kwibm","WPrdWOZcJve","W6exW5eGWQm","xbDmW5yFfJX9W6KRAG","h8okbSouW6e","W5dcGSkjpmkh","W6uuWQdcSCkd","W7ZdTK7dHCoV","jvuqEeq1W7H8iq","WPtdVCoUEXq","rtzWW6O","W49XWPDPWRS","W7dcNSoChCoh","WO1BdSobWOepW5FcTXP3","zmoFW5tdTCo5","bSodW6ySWQC","hGHSWOesDa","WO4eWOPUygtcJG","q2unph8","W4RdHSoxW5uaW7mIWQBcPSokmCk9W73dH1aJ","a1ebW7pcQSopW5S+W7/dTmoWsMSx","ycquW6Dpma82vxXNFSo1","WPWyDmolhSkFB1CY","WORdHSk5gdi","WPDcWP3cLKLj","WQL8lCo9WQC","yrLvWQBdIW","AtpcHCkwWR90","W4VcMmotcdhcUSod","W4rXWQVcUwmGW4C","W4iMW70vdG","bHxcJSk5WPKdW5u","vsZcTcldPW","WQnswvRdL8o8W4i","W78rW5ajWQC","W5VdJSozW5TAWRa","W43dLszcha","e8keBSoNgG","WQtdQ8o3W7ZcOG","E8oYW5C","zNWZi3C7Aq","WQbwWOdcMMzXWPNdTq/dRq","W7hcMmoVj8oMC8kMWOe","ft4DWPP7","mCo0W6qLWQa","sZb0W6a5gqLeW5uhuSor","W5b1WRz/WOS","hmoLW6WdWP3dK8o4W5ZcOa","fGNcKG","WQmNjY3dN8kbWRC","sSkkW58yWQBcG1K","W7etj8ocqW","vmoNW6m","Ar9tW7a/","WRFdMSoABsC","W4FdT8kME18NqW","W5fYWOT+WRBdQWxcRmok","W4mCW7i","WOldT8oVxaC","W6hcH8obj8oZ","wHPqWQZdIW","mmo6zmoRWRiQ","W7FcQmk3fSkv","W4FdRCkN","W458uu7cRW","W5FdIdjWawVdU8kqW5ixmXZdHqmyW4HZfv7cGZrWWOmPlW","WQqlWQW7W4W","FXrsW5ai","pIK9WRm","nqhcImkJ","W7D9E2RcJW","W7KqW74pfG","W7ddVW8T","W6/cGYrMWQu4W6y","W41ZW4eGva","Auyze3K","tYhcHCojaG","b8kQW5HdW54","W54XW5yWla","W4KGWQpcRW","cuGsDwS","srhcLSkoWRe","W7ftW7P8WQS1A3lcPMHqkwq","j8kYCmodka","aq/cImk4WQ4iW4W2sSkgWPNdKfK","mZ1VWR8F","gWjWWPist1FdVCoH","WRvuWQxdH8kwW7lcUa","WRpdLmodDIy","WQX8mW","BH1tW7WB","WPlcJ8klnCoAAGy","WOBdOCo+qcG","W77dSGSUzSkqrSkh","qCoPW5pdKmoD","ksxcUSkF","n8o8E8o0WQW4W7qzW4/dTMy","bmo7bmo9W5i","mSoFoSoOW5mBW6GaWPrvxLS","W4ufW40xhq","W7NdGgZdSSoz","dCooBmo1W4S","W4ScW50zWPS","kY08WQHj","W4ldRCoXW5D6","ySo4W6SMWRG","pmoNaCo6W6q","mSkvqCoMba","nSkXASoEkq","rHRcOCk3","W54TW5m6pq","W591WPDMWRRdIqhcTG","WQFdHmoiW4BcVW","m1SaFa9XWR0Jy11yqaZcJMBdUq","W6/cHcmuWQ09W6q","BXDxW5WF","oh0CihlcM8k3WOG","pmoCmbH1W5DSBmkAWPG","iSoFpCoIW5i","WPKPl8oJdmo7WRu0","W5mxWQNcGmkcBI3dPW0DWRL3uSopWORdK8oiW6/dQe3cLx4yWP/dOW","hCo/nqr4","W5nfW6K5Aa","W55aW7O1EmorCxBdLtO","iSkeuSo0hG","bGxcKmkNWO8","q1aQg0q","WPFdNCoqW7pcHq","ngjsWQiFA00","W4rXWQVcVHuJW4C","W6aqW7CHWPS","WQldPNSzW4lcVCkQ","mSoKwmoFW4a","W5O9WRNcQ1GhmSob","DMaV","WQldJSoeAIFdRCoE","omkTtSoEfq","jvurBuSGW6HDlGar","cmoZW60UWQK","W63dTKG","WRhcTSoaFCk0n8o1","kCotpum","DW3cOSoLm8kA","W6urW7xcHmot","jgG1D3y","Fab3WPFdLa","oM4upq","WR7dNcqaoSoxeq","rIBcUSkjW4ryWPm","qrHvWQ7dQa","vsTdW5zkmbC","WR/cSqnwW6K","WO4hW7WBybldUa","W697W5Cgwa","WOvcWQySWOqMgW","WR16mmoDWQW","eWSbt8oK","Fa3cPCo2pSkC","zWNcLYpdLG","i8klt8oLkW","W6VdGJupAG","W4aDW6q","pfRdUSkWASkOWOS","W4uDW7OfWRat","WOjdW7ddKSooaWm","pSknW5vK","W5SilCousa","W4OHWRhcTuG","vb9ZW5OO","WRxcNrvDW74","hCowW7OTWPO","sdDSW70","oW86Bq","uSosW7ZdRmo6","brLKWPqo","j8k4zmoooa9abhpdG8kAW7NcNxhdUKtcUYJcTL1rEviCW74","W5FdSSk4ye4","g8kRW7TjWR7cGvWsfrdcUSoVbCooW4ThWOKRWRuCWRa","W4KGWQdcRLaT","W7hdJ0O+WOJcQ8kjpcacWQ8j","naK1WQ9V","W5VdJSog","fmo/h8oc","W6Lvb8kKW6nMWQq","jw4Dj3FcKG","fG8bzCoa","WQzHWOxcJfu","WRddJ8kRjZi","AaNcP8oUka","WQ/cRqTiW7L/WRhcNW","d8kJW6S","DSkBq8kDFbeD","WQ/cOLv6mCovf8kgxtVcHSkoaq","W5C9WQ/cHSoc","W7L/W54eCG","W7ukW7JcMCov","e8oLW6yB","W5hdR2OEWQJcPmk8fqaRWP4U","W7/cKCo2","omk0AW","wMdcKc4/WOVdGay7WQSrjCou","W50RW4aBgq","W4KOW4KPndxdH8kQoCoZW6W","ct7dJ3fNW7xcGHK+WRu","dJlcVSkzWPy","W4VdVeldG8oA","jmkTW7jn","W7hcHSoGcCoO","o8ojW5iQWQhdTmoyW6NcIW","WQylWRW","W6RdQmoYW7X8","W6/dGmozW5HRWQzIW7O","i1i4s2i","CJVcM8kHWQu","yNGMwwmhW5C","W5ZdQY0qAq","WPDeWPVcLvW","gJPmWPaO","W5pdUXLBeG","WPCKk8oG","W5e8WRtcO1KB","W6tcKCoQpSoN","zMyTpMa","DcyqW6fkpqe","xbBcQmkSWPW","sGP2W7uE","W6f5CMJcPq","qGLnWQ8","hmoVW4K3WPO","W5/cMmk+o8kA","W5iQW4a","cSo2tSoNWQu","jmo0zmoOWRm","nam6FSo3","wtzYW4el","W6DCw1xcRW","imo5yCoNWQu","W5tdLmk2wxm","o1mdz30","BSkWpCkPWRyZfSo+kuRcGh5EW7y","W7v3W54D","W7T9W58DqG","amoZsCoWWOW","W77dTq4TCmkr","tIVcM8kYWQu","W44KW5qTpsy","wmo1WQeCWQdcGvexyftdO8kjF8kF","WOvglCoxWRS","W4hdHcbJgstdR8k7W54vcq","W5tdGu8jWP4","W6/dGae7tG","W4FdRCk4zKG","y8o3W7ddRCoe","g1KGp2C","fcq/WQ98eqjiWP9rWQtcQvpdKG","gJxdHhCHWOZdMKX/W7zxDmk3W6FdTmoC","W6aaW6mdWRyPkCkgqG","o8oOFmoPW6nRvSkihN7cHa","EmoZW4e","qSoLW64KWOO","WPC2mCo4bG","W7n2FutcLW","mLykvKq","W59YWPjLWQW","qclcOGBdTW","idGXWQ58","mXdcJHNdMSkffG","WOnyWPNcJhD1WPRdOGFdSmkFWPBdLa","jmo8BmoWWQG","uLpdImo8W4LyWPC5rSkUWQJdLLK","sXpdPYy5WOZdHG","WOWxdmohdW","W4igj8oGFa","W7hcN8oQjmoW","W6Lvb8oxW6vJWQe","nSoDmq","W50wWRBcSmobWPm","W7pdH19Z","gYBdH2r9","wWRcV8kW","WR/dHmkBaJi","p8o2eCopW5a","WPBdVSoKDq41bSo0WQ4","ASk5o8kGWRW+q8kbfN3cPgy","WOnEWP7cJ0LXWO7dJq/dS8kt","Dc/cTYZdMSkjo8k6","if8wDfeK","yG0dlezZW7q","W5OGWQlcTvKBiW","W6HgW7aHzq","aIFdLwjGW5RcJZ88WQGpiCo3WQa","kSkTW49fW6m","BCoIW4FdM8o7","WRL6lW","nSo7Ba","mrCrFmoS","nmoFkSo5W6a","W5xdHmoyW5S","pY4hWRzz","WOu0W5aOW7OMgW","W4VdRSkLcdhcUSod","qqJcJb7dUSk/emkBBcC","De0/fflcSCkE","C8o5W54o","WQmNlv3cO8o3W4a","WPhdHmoNW73cRa","WOryWOhcKfC","W6WtWOJcPgO","WPvsWOZcNfe+WPRdPGpdSCkPWPVdKHVdKI5CWO/cKrNcNmoGvmkvwG","W4NdP8k5zG","BwWOnNOH","WR7cOGbfWRu9W7JdGCk4WOpcJCoOlmktWOy","CaTwlXz5WQHLoGicp2G","xmkCW5r8W6ldLIS","F8ogW4Kc"];return(_0x1fd7=function(){return e})()}GameCanvas[_0x405486(714,"&j%&")]=_0x405486(764,"p]zb");
@@ -1 +0,0 @@
1
- "use strict";const _0x300469=_0x3a76;function _0x4a26(){const e=["W4G4rSksASkVWRNcUWeVjCkg","WPHdtxzC","p1iUfh/dINz2aSk2WOrr","WR7dRSopWO8TWOdcVLxcUW","WOhdJKbtW4n0W5VdI8kPWOXMW4G","xCk8W4/cNtPyWQ4","W6FdHCozp8ovW5pdO8ohWOnRBta","aSk8mCo9WQSVl8onW47cP0dcGCkU","W5ZcLrRcGwfHf3FdNW","WOifWRpcSt4/DCkdeCkSvXm","WQjZW50eyKi","a8kXW6dcGW","ESonW4HvBef7vJVdQ8o4FW","WRztDmkAbSkQW5VcTCooW5Lbta","WOahWRNcUNPVrSkkcCk9","WOldI0LyW4uGW5tdRCkLWPP3","wGpcJCkJW7NcQqOyxa","WOjFWQNdIItdK8oQ","a8khW4ZcVb8","W7RcLN/dO8kFhXnarNVcPIxcLSk9","mZNdTmo9zMOSW7C","WOCHW4lcNd7dMmohWPSKWRm","fmktkghcHmkKA8k/W40","WPPkW69DWOG","W5lcLXddGCo0","WRNcJmkxWR3cMCkxW67dUCoooCkdWRO","omkCWPmjnrXD","z8ojiK0uW4hcUaWlW53dOa","pmkwqsjN","WRZdRSonW55mW53cHuVcVwCkxa","WOuGW4FcMhpcISo6WOyqWOjpWQq","W5BdQSoUm8oaWQVdLmo8WP0OiHq","orm/WPFdGW","bG4nW7S5sJldVI/cOtno","xCoFq8kLjtuiWRO","WRxdTSoCCSo/W43cVa","W5ZcV8kqWPWDWQ/cGelcH3O"];return(_0x4a26=function(){return e})()}!function(){const e=_0x3a76,o=_0x4a26();for(;;)try{if(140236==parseInt(e(215,"Rk23"))/1+-parseInt(e(211,"s[*]"))/2*(-parseInt(e(220,"7AaB"))/3)+-parseInt(e(203,"sq)O"))/4+parseInt(e(207,"f[Ac"))/5*(-parseInt(e(195,"OKlq"))/6)+-parseInt(e(194,"1@$d"))/7*(parseInt(e(219,"Rl5v"))/8)+-parseInt(e(208,"OKlq"))/9*(parseInt(e(200,"Onn9"))/10)+-parseInt(e(192,"q#Gz"))/11*(-parseInt(e(205,"e3zN"))/12))break;o.push(o.shift())}catch(e){o.push(o.shift())}}();import{c as _0x3c2803}from"react/compiler-runtime";import _0x385702 from"react";import{View}from"react-native";import{useScore,useLives,useTimeElapsed}from"../PacManStore.js";function _0x3a76(e,o){e-=191;const r=_0x4a26();let t=r[e];if(void 0===_0x3a76.wMgaxW){const e=function(e,o){let r,t,a=[],W=0,n="";for(e=function(e){let o="",r="";for(let r,t,a=0,W=0;t=e.charAt(W++);~t&&(r=a%4?64*r+t:t,a++%4)?o+=String.fromCharCode(255&r>>(-2*a&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++)a[t]=t;for(t=0;t<256;t++)W=(W+a[t]+o.charCodeAt(t%o.length))%256,r=a[t],a[t]=a[W],a[W]=r;t=0,W=0;for(let o=0;o<e.length;o++)t=(t+1)%256,W=(W+a[t])%256,r=a[t],a[t]=a[W],a[W]=r,n+=String.fromCharCode(e.charCodeAt(o)^a[(a[t]+a[W])%256]);return n};_0x3a76.aWktei=e,_0x3a76.AElJss={},_0x3a76.wMgaxW=!0}const a=r[0];_0x3a76.JzrllD!==a&&(_0x3a76.AElJss={},_0x3a76.JzrllD=a);const W=_0x3a76.AElJss[e];return void 0===W?(void 0===_0x3a76.CSFPSy&&(_0x3a76.CSFPSy=!0),t=_0x3a76.aWktei(t,o),_0x3a76.AElJss[e]=t):t=W,t}import{PACMAN_GAME_CONFIG}from"../PacManConstants.js";import{ScoreBoardContainer,ScoreValue,ScoreLives,ScoreTimer,scoreBoardStyles as _0x35d4b0}from"../../../helpers/index.js";import{jsx as _0x43b26e,jsxs as _0xc94650}from"react/jsx-runtime";const formatScoreValue=e=>e[_0x300469(197,"ry[c")]();export const ScoreBoard=_0x385702[_0x300469(226,"7AaB")](e=>{const o=_0x300469,r={ikZVE:function(e,o){return e!==o},mSAPV:function(e,o,r){return e(o,r)}},t=_0x3c2803(13),{offset:a}=e,W=void 0===a?0:a,n=useScore(),s=useLives(),i=useTimeElapsed();let x,d,m,S,f;if(t[0]!==n){const e={};e[o(216,"T4]N")]=n,e[o(223,"S[7Y")]=formatScoreValue,x=_0x43b26e(ScoreValue,e),t[0]=n,t[1]=x}else x=t[1];if(r[o(210,"zp1M")](t[2],s)){const e={};e[o(201,"n!vJ")]=s,e.maxLives=PACMAN_GAME_CONFIG[o(222,"Q^x0")],d=_0x43b26e(ScoreLives,e),t[2]=s,t[3]=d}else d=t[3];if(r[o(206,"e3zN")](t[4],i)){const e={};e[o(204,"Ly@F")]=i,e[o(191,"WFum")]=0,m=r[o(196,"7AaB")](_0x43b26e,ScoreTimer,e),t[4]=i,t[5]=m}else m=t[5];if(t[6]!==x||t[7]!==d||t[8]!==m){const e={};e[o(202,"iMUU")]=_0x35d4b0.row,e[o(198,"yYW%")]=[x,d,m],S=_0xc94650(View,e),t[6]=x,t[7]=d,t[8]=m,t[9]=S}else S=t[9];if(t[10]!==W||t[11]!==S){const e={};e[o(225,"]Bg&")]=W,e[o(212,"S*]%")]=S,f=_0x43b26e(ScoreBoardContainer,e),t[10]=W,t[11]=S,t[12]=f}else f=t[12];return f});ScoreBoard.displayName=_0x300469(214,"f[Ac");
@@ -1 +0,0 @@
1
- "use strict";const _0x414062=_0x18f6;function _0x18f6(t,W){t-=485;const o=_0x22e6();let n=o[t];if(void 0===_0x18f6.RAscJa){const t=function(t,W){let o,n,d=[],r=0,i="";for(t=function(t){let W="",o="";for(let o,n,d=0,r=0;n=t.charAt(r++);~n&&(o=d%4?64*o+n:n,d++%4)?W+=String.fromCharCode(255&o>>(-2*d&6)):0)n="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(n);for(let t=0,n=W.length;t<n;t++)o+="%"+("00"+W.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(o)}(t),n=0;n<256;n++)d[n]=n;for(n=0;n<256;n++)r=(r+d[n]+W.charCodeAt(n%W.length))%256,o=d[n],d[n]=d[r],d[r]=o;n=0,r=0;for(let W=0;W<t.length;W++)n=(n+1)%256,r=(r+d[n])%256,o=d[n],d[n]=d[r],d[r]=o,i+=String.fromCharCode(t.charCodeAt(W)^d[(d[n]+d[r])%256]);return i};_0x18f6.pWzoMo=t,_0x18f6.VBUCpR={},_0x18f6.RAscJa=!0}const d=o[0];_0x18f6.FMELhG!==d&&(_0x18f6.VBUCpR={},_0x18f6.FMELhG=d);const r=_0x18f6.VBUCpR[t];return void 0===r?(void 0===_0x18f6.XaAZsy&&(_0x18f6.XaAZsy=!0),n=_0x18f6.pWzoMo(n,W),_0x18f6.VBUCpR[t]=n):n=r,n}!function(){const t=_0x18f6,W=_0x22e6();for(;;)try{if(235177==parseInt(t(533,"HL75"))/1+-parseInt(t(701,"0(GX"))/2+-parseInt(t(534,"0(GX"))/3+-parseInt(t(564,"&CFZ"))/4*(-parseInt(t(794,"!A&Z"))/5)+-parseInt(t(587,"5VQv"))/6+-parseInt(t(541,"lRlF"))/7*(-parseInt(t(776,"Hbjg"))/8)+parseInt(t(814,"VjNt"))/9)break;W.push(W.shift())}catch(t){W.push(W.shift())}}();import{usePaperIoStore}from"./PaperIoStore.js";import{PAPER_CONFIG,DIRECTIONS}from"./PaperIoConstants.js";const C=PAPER_CONFIG,{COLS:COLS,ROWS:ROWS}=C,TOTAL=COLS*ROWS,cellIndex=(t,W)=>W*COLS+t,inBounds=(t,W)=>t>=0&&t<COLS&&W>=0&&W<ROWS,shuffle=t=>{const W=_0x18f6,o={aJgvM:function(t,W,o){return t(W,o)},yMshG:"eIsOr",HwgbE:function(t,W){return t*W}},n=t[W(493,"Hbjg")]();for(let t=n[W(800,"VjNt")]-1;t>0;t--)if(o[W(845,"$2Fp")]!==W(553,"b#IY"))_0x45c278(_0x12b54d,0),o[W(612,"NMBR")](_0x53ddd1,_0x578e82,_0x323f37-1);else{const d=Math[W(742,"V%#h")](o[W(565,"2G!w")](Math[W(593,"8YK1")](),t+1));[n[t],n[d]]=[n[d],n[t]]}return n};function _0x22e6(){const t=["BmoobCka","afmAW4m","WOrYeG","qq/dOrJdJINdPaS/","CgddU1FdSSkXW7vft8kswa","WOj0feKGz8o2oq","W7zAW6W","lq15W59j","Dum/WR8sWR1cW7ddMNTa","sdldTSkoWOy","WRdcG2O4W4K","yhxcSCkgW4q","rCkAW60Iyb0QquxcOCoUW6y","fmkEErJcUCkeWQHopmonW6hcHa","vmoSW7vcg8k/W6pdVG","W6XRW5lcSKa","tLy+","zSk7WOldHYpdGGFdVSomWPPYpmk/WPBcTG","CMZdRsJcMg5aW6y","W5KAFJuiWQy","amkBzW","W75xW5/cPeFdUMCdWQRdGYS","W7nAW47cMgK","W4jPW4Wydq","WOn0fxqGuSoNlMpdTaamW5xdMW","nsWq","WP3cOSoXWPdcGq","W6ZcRCoi","bCkJWPXdiq","xG3dGWddMY/dOG","W5VdIL7cKSoJW5RcMW","C1FcKmk5W7O","CgddU1FdSSk1W7ft","W5VdJ1ZcGmovW4NcJLNdTHDe","WQdcG2SfW5NdU8khca","WOlcHmoMWQ3cRatcS0qfwa","c8oOWQKw","EGtdOa","WRhcMh47W53dMmkFaHmT","hq3cUHaHWQ9SWOFcMJu","W4zYW44AmSkgFmkaWP3dLSoG","iYFdNfJdHc8LmuFdI8kDx8oXvq","W6ZcRCoqpHjkj8o7yG","oYie","W4qmFJqvWRG","FttdHd/dKq","hemhW4W7WQ0","daJcIIFdVHtcI8oUf8oq","pCkWW5NdQmku","W7PuW4tcMee","lHJdN8kBWPJcGmkf","d8oOWQKwWQBcS8onvmkjW47dIq","WQD9ohq8","WQ9KCSkJaXlcSCooWR9Gymo6WPFcJa","zgRcN8kkW6DNWPW","EWtdUmk5WPVcLSkTBXe","W7JdQSoFkmkq","CLeVCmkGW6BcH8kubG","WPb+dN49AmoLghJdRW","m2mLW6C","hG3cOdCPWQ1NWQhcKItdVSkD","WOn0da","dCoYW4S1uq","BmkjW4lcNuSbWQfxymoPESo5DSkZpmoM","btbdW4m","C23dVa","WR5QACkPgcS","Emosba","lCoiWO01WQe","W4ZcOceRW5C","o8onmMWc","B1adFmkzW7ZcTSkpeq","gSo5WROCWPVcTG","W7PEW6SL","WR4oFmkzW7tdMa","WRWdC8keW77dHZW","xNZdMLpdPq","WR5KCa","xCorW7pdMai3ms09sSk+omk1WQm","qSoXW6b4aW","FfVdOG","baBcSbeW","cslcUJSxeMK","xCohW74Px8o6FuTTimoADq","W4jPW4WydCkOBCklWRZdJCoH","BJVdRCkJWRW","pYJcQa8","W5vDW5/cVLu","fCoQW5xdL2qQWOKmWP3dN8obzHZdR8kRW4K","CSouaq","hSo8fmoNW4jH","W47dHSoRfmk2W5ydoWS","WP5cqmkfiW","B1JdVmo8WPu","nHLUW7zhWQjc","iCoFW7NdOe8IWRmXWQW","W4fNW5/cQuNdK8oOWPhcNSkkamkYWPVcVCoa","W6bsW7dcN3ldOq","WQHUzSkPgY/cUSoz","CqtdOCkiWQ3cI8kV","pmokmhiAECovsCkt","WQFcJcNdHZZcKSoSsW","WOfYW7PRWOBdICoRW6hcHa","W6/dQZRdUra","W7JcTruLW6uhDSo6W67dG8owCSo+WOyR","yLe0sCkCW7RcRCkyea","WPxcHmoXWPtcPadcIeiFE8oUr8odW7OwWQhdSti","W7lcP8ornc9m","fLhcGgGI","W6BdMtJdSrxcQ8ovxmoVDfFdPCkwWRa","C2pcISk8W7v7WOPfyG","F8ktW50","tvZdLxVcPu7cOCo8gSoiWQVcIq","efxcRgiKWRC","FwldU8ooWRe","BqldR8kg","C2hdPMNdP8kGW6XzBSk1sCkQ","fXxcKHpdVa","hqhcJtxdSG","DMBdVq","jZZdNLRdPXuMkepdI8kk","WQ/dT8khy2irw8oDwCkIgGfp","W6VcSrGPW6KnwmonW5FdNq","qCocigahWRLkW4xcGc/cQG","uCoMW7u","WQnElfy","eaZcLZFdHa7cICoAkSolWR7cJq","nHXSW6rXWRfxW6xdJh9H","W6/dOW3dGt0d","du3cTq","FZJdMbRdLG","W4/dJ00","W5jYW58","WO91j3S5y8onkNtdRW","cmkFWR0","W7tdKZ7dHa7cUmomEG","ESkvW53cGx0h","fmkCEqpcVq","cmktWQLWgmkIre55k8ovEG","t8oBW7xdRrKKkaS","dGlcKW","hK7cQ3eZ","W7TDW5/cP1/dVM4vWPFdHq","svaG","W4OvEtWgWR9jEc/cUmkZxq","nZOgcCkrW6C","D0a3WR8BW6ujW4/dGuvvv3u","kHr8W7TXWRvsW5pdOhLKvq","zSk1WPtdGtldSIVdV8oUWP9NkSkKWOe","smomW7hdNWmH","yMpdRN3dO8kMW7y","W69BW4tcHvy","WPLwe3it","WRhcMhaMW6hdTCkChq","zMRdVxBdR8kGW6PeECk3t8k4","W6NdPSoula","EJKAW6tcQhvYWQtdTJW","qmkDW7G","gIhcRIWgnh9TgrT/rCoTzW","a8kUWOfzaG","omomkKi8E8oAw8kz","iCo2W6uA","i8o5W7m","h8kAWQzYca","c8oYWOuiWRm","WQHIDq","rCo3W6bJg8kzW7BdTSoF","pCofWPWmWRq","WPBcMCowWP7cGW","W4JdGSoSa8kSW7aunXS","WOnvW6j2WOO","FqWvW47cKW","iYldNKRdRIGI","W4yAAa","W63dSaddNtq/sX1YW7FcVW","ACk7WPldMXxdGY3dNSo0WPLKkW","WPzVW7L6WONdMG","D8k/WPxdMJtdIa","cGqVjmk3","qGddKq3dRsNdTaKoxuPe","aq3cUHm8WQK","qMC8W7FdGG","C8oviSkDFwK","WRHOAmkyaa","x8kGWOVdOda","nSkmWQvEgW","cYVcQditf3rDbay","cCoyW4eGCb3cH8ofs8oSyCo3","pW3dNf7dIG","xGtdJb3dLZpdTJ0ZrG","W5ddIWZdMdq","zN3dTGVcOgbBW7m","qSkqW6C","DCk/WO/dIY/dIcNdICo1WOq","oSokW6S","mcifcCkXW7Sm","DatdUSkiWR7cImkICXddQW","mmo6W74zdmkNuW","qSkqW74Tysu7yeFcQCoTW6FcIsS","eZqnjmkI","lmoan1yoFmovBCkd","gI/cUcOxbfnSoX5Qu8o2Cmk8","nYNcSZFdRW","W7qZnmo0qtdcRSoKWQDMDG","D0q+WRSAW6mcW4pdUh1cwKu","aCoNg8o7W5vGWRS","W4JcGdCFW5q8A8omW6ZdVCo+x8oyWROv","wHpdGXddKG","W5D3W4qhba","WQ5YqSk3iW","fSoAfmoiW4G","huWFW7hdNmkGtq","WPBcHmoMWR/cRaRcQuyow8oftmoUW7WdWQZdNtpcN8o+mmoXlYLM","oCkNW5BdPCkrgmoxWPnKW5S","ALhdPSo+WOlcJ2VdUNW","WQGkyCkjW6NdMJy7W6a","bmozW4GU","qfdcMCkyW6S","C0OVBCkLW6FcRmkn","qCoUWRBcMHe","WQDAlv8lqSoxdLddIt0SW6NdVCkDWQq","CvyzCCkO","W7NdR3JcO8os","haFcQa0a","jCkbW5VdRmk5","W7ddLZldPHq","aKmAW5SUWRj6aqy","WPDYW6PYWOpdM8ohW4/cHbH/WQlcV8o0DbhdRCk/","zhNdKGRcTG","ieOaW70I","qCorW6/dMrKT","jbr7W6XkWOryW6pdOW","WOr+ax44B8oSoq","qmoqW5LEha","WPpcK8kQvCo3WOS9odRcRd/dPa","aCk1W5/dO8k9","fCovW5mTrHVcKq","F8ougG","ACotgCkjxG","FKhdPSoI","EaFdPCkBWOS","WPBcHmoMWQ3cRatcS0GzD8oIvmocW4KlWRddUZa","g8khzYzA","nHP/","kcejfCkgW6yi","imkZWOLf","WPrYW71iWPpdN8oXW4u","WQ0dE8klW74","W5RdHSo2bmkTW5CDgGBcSG","o8kTW5FdRmkXgmo0WR5/","AWtdUW","oYhdKLBdIdu9","W7RdRq0","FL3dTSoHWQpcGxtdULXsW5i","zLVdUmoVWRpcJ34","e0KCW4u7WPfXmGdcIfPdg1y","rmoSW7r/cW","rmogj2apW6buW5VcLs7cSd8","WO9os8kb","BvhdVmoM","cY/cTsyDdq","W6ZcRCokpt8","iSooW7BdTLiaWRSAWRxdUq","AWRdOSkjWOhcIq","sCkNW7SZFq","WR5UDmk9fJhcUSo9WRK","nt3cJHur","W5GEzbuoWRLfDdxcG8k5vq","ncVdI2ddVZSLiW","g0VcSa","pSokW6VdPMGlWR8nWRtdPmo/rW","cWhcUH07WQLmWQlcNIi","eeNcJfiD","hcdcVWalnhnYdG","F8ktW4tcM2WHWQvryCocB8oIz8kI","iCoFW7NdV0SSWRaXWR/dOa","W5NdL8o5dCk0W7SwmqZcQW","W4CAyYu0WQ5drcNcHCkHvq","zMFcKmky","tCkAW6uKyrK","duFcTNiKWQO","e8oGWRKjWQBcPSooqCkzW47dLHC","bmoZW5uIBG","D8osWOxcGcnqW6O","W4nXW6SgiG","WOtcM1KzW6m","W71wW4lcMLldQ34FWOVdPdPB","yLxdPSo+WQpcLhFdR0XsW41+","zSkDDX9zFCobDmkDzmkh","imkSW5hdTCkrf8oCWR53W4W","eshcTGBdLa","wthdGZFdRa","AmodWOBcHa","ACo7W5BdSa","EmoYW5VdKCk+pCoKWOm","W67cVbKSW5e","l8oHW7efg8kM","EmoEf8kmy256rq","AtarW6hcR25L","dGFcUa","xK0TW67dHSklFmkyWRnUWQC","rSoNWRtcSXrjW5bMW4y","wva+W7m","W4r0W5O","ASoni8kYFq","WQnTrmkIgq","msmmcCkB","W43cHciAW6K","aSoUdG","nqfGW79UWR9EW7a","aWvjW6HL","lSkNW4ZdKSkmf8oeWRi","EWtdUmk+WPRcGCkZEtRdRmkq","v8knW6qPrq","yMBdRg/dICkHW7fbyCkvsmkiDt4","W7FdNJK","W5pdOmojkSkq","bCo5g8oRW5XDWR/cJspdJmoO","r8kEWRFdNGC","BrNdRCkeWOi","C2VdQW","B1ahFmkeW63cJmkleCoe","zMRdVxBdR8kGW6PeECkKrmkTCIVdLWq","W4Guzt8tWP9fztpcG8kIvmkhWRO","z2pcISkNW6T4WOP7DmkBxW","yvWZ","bmoQmSoiW5G","jrPJ","WPrPaxm4","W75sW63cJ07dQCoFWOFcPmk3pSki","ld8jbCkp","aCoUfmoMW5L8WQ/cPY/dJa","d1FcSw8fWRa5W4RdIN8sWOflW5FcNdy","gSkhFHdcQSkd","CbJdU8kBWOm","jSozW7NdU1CHWQSWWRNdUCo7","gmo4omoTW4q","zfSMFmkCW6tcT8kUbmoxEcq","hai/iG","v0OxE8k+","CMRcKCkCW7a","dGlcIY7dNHtcQmodda","oCoamhiDASosqmk4FmklW5i7hW","tSk1W7BcVuW","euGaW4yUWRf9lXZcS0Tk","c8k3qrPJ","WOpcHmoHWPlcRbpcR0KVvSo1","W4NdJmo0","W65xW57cMvC","nSokkum9zmom","W5RdLSoRca","W7hcTCornILx","sa3dJrBdJa","W5yPvYPSmSoVmLBdSt02","WPFcJCo9WPlcSG","W7ddLstdSYNcQCozAmoG","b8kFzW","sGJdKa","W6VdPXldHdKhuJf4W7e","grRcTr0KWO58WQ3cLJxdPG","fe8B","nbP4","BZJdIqVdQq"];return(_0x22e6=function(){return t})()}export class PaperIoService{[_0x414062(545,"r!ZT")]=!1;[_0x414062(616,"V%#h")]=null;[_0x414062(611,"1Vw@")]=0;deadline=0;[_0x414062(505,"dMg&")]=-1;[_0x414062(838,"Up0U")]=new Uint8Array(TOTAL);[_0x414062(647,"MjLp")]=new Uint8Array(TOTAL);players=[];[_0x414062(710,"dMg&")]=!1;[_0x414062(728,"Pa)t")](t){this.cachedIsPlaying=t}[_0x414062(753,"cb0s")](t,W,o){const n=_0x414062;this[n(696,"qlv7")]=t,this.onTurn=W,this[n(651,"8tV&")]=o}[_0x414062(803,"Mf2(")](){return this.owners}[_0x414062(672,"D$2Z")](){return this.trailOwners}[_0x414062(835,"V%#h")](){return this[_0x414062(787,"0(GX")]}[_0x414062(731,"G(jA")](t,W,o){const n=_0x414062,d={vrojP:function(t,W,o){return t(W,o)},okNUK:function(t,W,o){return t(W,o)}},r=C[n(789,"z3Et")];for(let i=o-r;i<=o+r;i++)for(let o=W-r;o<=W+r;o++)d[n(643,"2@yY")](inBounds,o,i)&&(this[n(663,"SS0W")][d[n(602,"UK4(")](cellIndex,o,i)]=t.id);t.col=W,t[n(713,"5VQv")]=o,t[n(792,"8YK1")]=W,t[n(679,"D$2Z")]=o,t[n(649,"8YK1")]=[]}[_0x414062(490,"D$2Z")](t){const W=_0x414062,o={lCcmA:function(t,W){return t+W}};o[W(549,"CphW")]=function(t,W){return t*W},o[W(494,"1Vw@")]=function(t,W){return t<W},o[W(501,"Q4(f")]=function(t,W){return t*W},o.PliVm=function(t,W){return t-W};const n=o,d=n[W(719,"Pa)t")](C[W(536,"TcR4")],2);for(let o=0;o<60;o++){const o=n[W(554,"2G!w")](d,Math.floor(Math[W(767,"r!ZT")]()*(COLS-2*d))),r=d+Math[W(670,"Mf2(")](n[W(763,"D$2Z")](Math[W(790,"z3Et")](),ROWS-2*d));let i=!0;for(const s of t)if(Math[W(655,"8tV&")](s[W(804,"QDDZ")]-o)<2*d&&n[W(704,"Mf2(")](Math[W(487,"2@yY")](s.row-r),2*d)){i=!1;break}const s={};if(s[W(629,"cb0s")]=o,s[W(833,"X2Nl")]=r,i)return s}return{col:d+Math.floor(n[W(778,"8YK1")](Math.random(),n[W(559,"x!VW")](COLS,2*d))),row:n[W(518,"iJ5&")](d,Math[W(682,"qlv7")](Math[W(712,"MF4L")]()*(ROWS-n[W(621,"qlv7")](d,2))))}}[_0x414062(831,"Hbjg")](t){const W=_0x414062,o={};o[W(614,"7blM")]=function(t,W){return t===W};const n=o,d=C.START_TERRITORY+1,r=Math[W(503,"MF4L")](d,Math.round(250/C[W(779,"X2Nl")])),i=Math[W(684,"Pa)t")](COLS/2),s={};if(s[W(582,"H3RC")]=i,s[W(691,"0(GX")]=ROWS-1-r,0===t)return s;const e={};return e[W(754,"$2Fp")]=i,e[W(691,"0(GX")]=r,n.ujFwC(t,1)?e:this[W(685,"!A&Z")]([])}initialize(){const t="MjLp",W="2@yY",o="jA@b",n="8YK1",d="$2Fp",r=_0x414062,i={};i[r(769,"SO&F")]=function(t,W){return t+W},i.vvUZr=r(842,"ICID"),i[r(755,"NMBR")]=function(t,W){return t*W},i[r(572,"5VQv")]=function(t,W){return t/W},i[r(540,t)]=function(t,W){return t*W};const s=i;this[r(681,"VjNt")]=new Uint8Array(TOTAL),this.trailOwners=new Uint8Array(TOTAL),this[r(574,"Up0U")]=[];const e=s[r(596,"b#IY")](C.BOT_COUNT,1);for(let t=0;t<e;t++){const d=this[r(667,"8tV&")](t),i={};i.id=t+1,i[r(774,"cb0s")]=t,i.isBot=0!==t,i[r(538,"7blM")]=!0,i[r(836,"lRlF")]=d[r(522,W)],i.row=d[r(686,"SS0W")],i.dir=DIRECTIONS[r(552,"50Ow")],i[r(815,"TcR4")]=DIRECTIONS.RIGHT,i[r(660,"Up0U")]=[],i[r(584,"bDhZ")]=d[r(567,o)],i[r(525,"Up0U")]=d[r(720,"VjNt")],i[r(795,"JlYw")]=0,i[r(707,"$o]U")]=s[r(634,o)],i[r(642,"8YK1")]=0,i[r(798,"8tV&")]=!1;const e=i;this[r(605,"C6So")](e,d[r(730,n)],d[r(770,"HL75")]),this[r(775,"b#IY")][r(694,"x!VW")](e)}this[r(627,"jA@b")]=0,this[r(607,"MF4L")]=-1;const h=this[r(528,W)](1),S=this[r(717,d)](2),a=Math[r(586,"$o]U")](s.hKyar(h/TOTAL,1e3))/10,f=Math.round(1e3*s[r(664,n)](S,TOTAL))/10,u=usePaperIoStore[r(521,"MsfD")]();u[r(499,"&CFZ")](Math[r(591,"VjNt")](C[r(550,d)]/1e3)),u[r(561,"0(GX")]({score:s[r(724,"Mf2(")](h,10),territoryPct:a,aiPct:f,rank:1,alivePlayers:this[r(535,t)][r(829,"QDDZ")](t=>t.alive)[r(510,"cb0s")],territoryChanged:!1})}[_0x414062(496,"$o]U")](){const t=_0x414062;this[t(819,"X2Nl")]=0,this.deadline=Date.now()+C[t(781,"C6So")],this[t(600,"C6So")]=-1,this.startLoop()}[_0x414062(788,"C6So")](){const t=_0x414062;this.stopLoop();const W=t=>{const o=_0x18f6;this[o(784,"&CFZ")]||(this[o(729,"1Vw@")](t),this[o(674,"x!VW")]=requestAnimationFrame(W))};this.animationRef={uaHJh:function(t,W){return t(W)}}[t(656,"MjLp")](requestAnimationFrame,W)}[_0x414062(846,"G(jA")](){const t=_0x414062,W={EpFgG:function(t,W){return t===W}};if(null!==this[t(706,"SS0W")]){if(!W[t(640,"0(GX")]("Ibapn","Ibapn"))return this[t(527,"TLAG")];cancelAnimationFrame(this[t(809,"SO&F")]),this[t(837,"MF4L")]=null}}[_0x414062(597,"MF4L")](t){const W=_0x414062,o={ofCon:function(t,W){return t!==W}},n=this[W(566,"NMBR")][0];if(!n||!n[W(577,"r!ZT")])return;const d=DIRECTIONS[t];d.dx===-n[W(599,"UK4(")].dx&&d.dy===-n[W(760,"jA@b")].dy||(d.dx!==n[W(523,"dMg&")].dx||o[W(635,"HL75")](d.dy,n[W(815,"TcR4")].dy))&&(n[W(740,"X2Nl")]=d,this.onTurn?.())}[_0x414062(808,"8YK1")](t){const W=_0x414062,o={};o[W(500,"JlYw")]=function(t,W){return t>W},o[W(615,"G(jA")]=function(t,W){return t<=W},o.sVnDA=function(t,W){return t<W};const n=o;if(!this[W(531,"b#IY")])return;if(n.pBkmm(this[W(562,"$2Fp")],0)){const t=Math[W(718,"Up0U")](0,this.deadline-Date[W(782,"jA@b")]()),o=Math[W(589,"bDhZ")](t/1e3);if(o!==this[W(840,"0(GX")]&&(this[W(659,"z3Et")]=o,usePaperIoStore[W(576,"JlYw")]().setTimeLeft(o)),n[W(520,"!A&Z")](t,0)){if(W(708,"V%#h")!==W(558,"MsfD"))return void this.endByTime();this.owners[_0x7b5af2]=_0x2b900e,this[W(813,"iJ5&")][_0x1d1d96]=0}}if(0===this[W(617,"bDhZ")]&&(this[W(517,"NMBR")]=t),n[W(807,"bDhZ")](t-this[W(509,"qlv7")],C[W(613,"CphW")]))return;this.lastStepTime=t;let d=!1;for(const o of this[W(722,"qlv7")])!o[W(570,"8YK1")]&&o.isBot&&0!==o[W(556,"x!VW")]&&t>=o[W(530,"D$2Z")]&&(this[W(516,"b#IY")](o),d=!0);for(const t of this[W(502,"iJ5&")])t[W(786,"bDhZ")]&&t[W(801,"UK4(")]&&this[W(799,"Pa)t")](t);const r=this[W(542,"Pa)t")]();for(const t of this[W(722,"qlv7")])t[W(830,"SS0W")]&&(r[W(524,"C6So")](t.id)?t[W(695,"$2Fp")]=this.resolvedDir(t):this.movePlayer(t)&&(d=!0));const i=this[W(841,"dMg&")](1),s=this[W(604,"QDDZ")](2);this.pushStatsBatched(i,s,d)}resolvedDir(t){const W=_0x414062;return t[W(519,"qlv7")].dx!==-t[W(825,"7blM")].dx||t[W(592,"C6So")].dy!==-t[W(495,"HL75")].dy?t.pendingDir:t.dir}getBlockedByHeadCollision(){const t=_0x414062,W=new Map;for(const o of this[t(843,"SO&F")]){if(!o[t(834,"UK4(")])continue;const n=this[t(676,"Pa)t")](o),d=o.col+n.dx,r=o[t(686,"SS0W")]+n.dy;if(!inBounds(d,r))continue;const i=cellIndex(d,r),s=W[t(817,"$o]U")](i);s?s.push(o.id):W[t(638,"MjLp")](i,[o.id])}const o=new Set;for(const n of W[t(821,"H3RC")]())if(n.length>1)for(const W of n)o[t(650,"SO&F")](W);return o}[_0x414062(526,"8YK1")](t){const W=_0x414062,o={GJaRc:function(t,W){return t!==W},uSGNQ:function(t,W,o){return t(W,o)},yWpnj:function(t,W){return t===W}};(t.pendingDir.dx!==-t[W(690,"x!VW")].dx||o.GJaRc(t[W(486,"Q4(f")].dy,-t.dir.dy))&&(t[W(812,"SO&F")]=t[W(751,"$2Fp")]);const n=t.col+t[W(827,"Hbjg")].dx,d=t.row+t[W(699,"z3Et")].dy;if(!o.uSGNQ(inBounds,n,d))return!1;const r=cellIndex(n,d);t[W(677,"&CFZ")]=n,t[W(720,"VjNt")]=d;let i=!1;const s=this[W(504,"H3RC")][r]===t.id;return this.owners[r]===t.id||s?t.trail[W(739,"x!VW")]>0&&(this[W(802,"!A&Z")](t),i=!0,t[W(666,"MjLp")]||this[W(764,"8tV&")]?.()):o[W(796,"!A&Z")](this[W(665,"C6So")][r],0)&&(this.trailOwners[r]=t.id,t[W(772,"$o]U")][W(680,"&CFZ")](r)),i}[_0x414062(771,"ICID")](t){const W="0(GX",o=_0x414062,n={bzYrw:o(507,"dMg&"),VPTWi:function(t,W){return t+W},vSXOs:function(t,W){return t===W},SUfFo:"zxbgC",TVgki:function(t,W,o){return t(W,o)},KyeHA:function(t,W){return t/W},ZzjOv:function(t,W){return t-W},GnAEH:function(t,W){return t+W},KDWtx:o(551,"8tV&")},d=t.id;for(const W of t[o(741,"2G!w")])n.vSXOs("zxbgC",n[o(738,"qlv7")])?(this[o(783,"MjLp")][W]=d,this[o(630,"lRlF")][W]=0):_0x4b1527[o(727,"G(jA")]=n.bzYrw;t[o(716,"7blM")]=[];const r=new Uint8Array(TOTAL),i=[],s=(t,W)=>{const n=o;if(!inBounds(t,W))return;const s=cellIndex(t,W);r[s]||this[n(626,"TLAG")][s]===d||(r[s]=1,i.push(s))};for(let t=0;t<COLS;t++)s(t,0),s(t,ROWS-1);for(let t=0;t<ROWS;t++)n[o(547,"Mf2(")](s,0,t),s(COLS-1,t);for(;i[o(560,"ICID")]>0;){const t=i[o(573,W)](),d=t%COLS,r=n[o(529,"Up0U")](n[o(515,"Hbjg")](t,d),COLS);s(d-1,r),s(n[o(780,"z3Et")](d,1),r),s(d,n[o(514,"dMg&")](r,1)),s(d,r+1)}for(let t=0;t<TOTAL;t++)if(!r[t]&&this[o(806,"UK4(")][t]!==d){if(n[o(563,"$o]U")]("TEoPf",n[o(532,"X2Nl")])){const t=this[o(535,"MjLp")][0],d={x:0,y:0};return t?{x:t[o(677,"&CFZ")]*_0x5b066d.CELL+_0x479144[o(757,W)]/2,y:n[o(637,"TcR4")](t[o(580,"8YK1")]*_0x1ea824[o(818,"$2Fp")],_0x554a1a[o(485,"&CFZ")]/2)}:d}this.owners[t]=d}}[_0x414062(488,"b#IY")](t){const W=_0x414062;let o=0;for(let n=0;n<TOTAL;n++)this[W(737,"MF4L")][n]===t&&o++;return o}[_0x414062(688,"H3RC")](t){const W=_0x414062,o=this[W(705,"2@yY")](t[W(636,"Up0U")]);t[W(811,"X2Nl")]=!0,t[W(595,"HL75")]=0,t.dir=DIRECTIONS[W(673,"QDDZ")],t[W(486,"Q4(f")]=DIRECTIONS[W(749,"&CFZ")],t[W(832,"ICID")]=W(765,"1Vw@"),t.botStepsOut=0,t.botTurned=!1,this[W(606,"&CFZ")](t,o[W(736,"Up0U")],o[W(822,"UK4(")])}[_0x414062(557,"JlYw")](t){const W="Hbjg",o="!A&Z",n="Up0U",d="7blM",r=_0x414062,i={};i[r(568,"jA@b")]=r(506,"JlYw"),i.oXNHo=function(t,W){return t===W},i[r(646,"&CFZ")]=function(t,W){return t-W},i.GfXnh=function(t,W){return t>=W},i.iUSRL=function(t,W){return t!==W},i.BDVqA=function(t,W){return t>W},i[r(669,"8tV&")]=function(t,W){return t!==W};const s=i;if(0===t[r(537,"qlv7")].length)t.botState=s.uhoaQ,t[r(793,"D$2Z")]=!1,t.botStepsOut=12+Math[r(684,"Pa)t")](10*Math[r(590,"b#IY")]()),t[r(543,"2G!w")]=this[r(734,"iJ5&")](t)??t.dir;else if(s[r(489,W)](t.botState,s[r(625,"TcR4")]))if(t[r(714,"V%#h")]--,t[r(658,"$2Fp")][r(609,"2@yY")]>90)t[r(828,o)]="return";else if(t.botStepsOut<=0)if(t.botTurned)t[r(698,"$2Fp")]=r(610,"UK4(");else{const W=0!==t[r(709,"lRlF")].dx?[DIRECTIONS.UP,DIRECTIONS[r(491,"NMBR")]]:[DIRECTIONS[r(622,"CphW")],DIRECTIONS.RIGHT];W.sort((W,o)=>this[r(750,"8tV&")](t,o)-this[r(579,"2G!w")](t,W));const o=this[r(820,"0(GX")](t,W);o?(t[r(578,"&CFZ")]=o,t[r(748,"8YK1")]=!0,t[r(697,"SO&F")]=10+Math.floor(10*Math[r(759,"HL75")]())):t[r(725,"SO&F")]="return"}if("return"===t[r(698,"$2Fp")]){const d=s[r(675,"5VQv")](t[r(581,"iJ5&")],t[r(492,"TLAG")]),i=t.homeRow-t[r(773,"bDhZ")],e=[];s[r(745,"$2Fp")](Math[r(645,o)](d),Math[r(758,"SO&F")](i))?(s[r(721,W)](d,0)&&e.push(d>0?DIRECTIONS[r(761,"1Vw@")]:DIRECTIONS.LEFT),0!==i&&e.push(s[r(648,"dMg&")](i,0)?DIRECTIONS[r(546,"TLAG")]:DIRECTIONS.UP)):(s[r(762,"TcR4")](i,0)&&e[r(693,"jA@b")](s.BDVqA(i,0)?DIRECTIONS[r(668,n)]:DIRECTIONS.UP),s[r(555,"H3RC")](d,0)&&e[r(569,"bDhZ")](s[r(497,"1Vw@")](d,0)?DIRECTIONS[r(785,"HL75")]:DIRECTIONS.LEFT)),e.push(t.dir);const C=this[r(726,"50Ow")](t,e);C&&(t[r(523,"dMg&")]=C)}const e=t.col+t[r(661,"MjLp")].dx,C=t.row+t[r(815,"TcR4")].dy;if(!inBounds(e,C)||this[r(777,d)][cellIndex(e,C)]===t.id){const W=this[r(583,"bDhZ")](t,shuffle([DIRECTIONS.UP,DIRECTIONS.DOWN,DIRECTIONS[r(766,d)],DIRECTIONS[r(508,n)]]));W&&(t[r(732,"cb0s")]=W)}}[_0x414062(744,"1Vw@")](t,W){const o=_0x414062,n={tcoUw:function(t,W){return t+W},gxDcC:function(t,W,o){return t(W,o)},zzqTs:function(t,W){return t===W}};for(const d of W){if(d.dx===-t[o(687,"qlv7")].dx&&d.dy===-t[o(824,"50Ow")].dy)continue;const W=t[o(657,"0(GX")]+d.dx,r=n[o(513,"HL75")](t[o(833,"X2Nl")],d.dy);if(!n[o(498,"Pa)t")](inBounds,W,r))continue;const i=cellIndex(W,r);if(!n.zzqTs(this[o(689,"cb0s")][i],t.id))return d}return null}[_0x414062(671,"X2Nl")](t,W){const o=_0x414062,n={mLREC:function(t,W){return t+W},AYkrW:function(t,W,o){return t(W,o)}};let d=0,r=t[o(836,"lRlF")],i=t[o(633,"7blM")];for(;d<n[o(620,"X2Nl")](COLS,ROWS)&&(r+=W.dx,i+=W.dy,n[o(692,"qlv7")](inBounds,r,i));)d++;return d}[_0x414062(644,"SO&F")](t){const W=_0x414062,o={byEzT:function(t,W){return t(W)}}[W(539,"HL75")](shuffle,[DIRECTIONS.UP,DIRECTIONS[W(623,"ICID")],DIRECTIONS[W(575,"Hbjg")],DIRECTIONS[W(761,"1Vw@")]]);return o[W(632,"lRlF")]((o,n)=>this[W(735,"VjNt")](t,n)-this.roomInDir(t,o)),this[W(733,"7blM")](t,o)}[_0x414062(603,"b#IY")](){const t=_0x414062,W={};W[t(511,"lRlF")]=function(t,W){return t>W};const o=W,n=this[t(653,"MF4L")](1),d=this[t(585,"x!VW")](2);this[t(756,"QDDZ")](n,d,!0),usePaperIoStore[t(598,"iJ5&")]()[t(654,"Mf2(")](0),this.finishGame(o[t(594,"2@yY")](n,d))}[_0x414062(601,"cb0s")](t){const W=_0x414062;this[W(791,"HL75")]=0,this[W(548,"8tV&")](),usePaperIoStore[W(641,"2G!w")]().setWin(t),this[W(826,"$2Fp")]?.()}[_0x414062(662,"UK4(")](t,W,o){const n="V%#h",d="SO&F",r=_0x414062,i={};i[r(700,"0(GX")]=function(t,W){return t/W},i[r(823,"qlv7")]=function(t,W){return t>W};const s=i,e=s[r(810,"X2Nl")](Math[r(703,"G(jA")](t/TOTAL*1e3),10),C=Math[r(678,n)](W/TOTAL*1e3)/10;let h=1;for(const o of this[r(747,"Mf2(")]){if(1===o.id)continue;const n=2===o.id?W:this[r(746,"HL75")](o.id);s[r(702,"8YK1")](n,t)&&h++}let S=0;for(const t of this[r(768,"r!ZT")])t[r(786,"bDhZ")]&&S++;const a={};a[r(844,n)]=10*t,a[r(847,d)]=e,a[r(715,"z3Et")]=C,a[r(608,"Mf2(")]=h,a.alivePlayers=S,a[r(652,d)]=o,usePaperIoStore.getState()[r(631,"CphW")](a)}[_0x414062(571,"Pa)t")](){const t=_0x414062,W=this[t(723,"50Ow")][0];if(!W)return{x:0,y:0};const o={};return o.x=W.col*C.CELL+C.CELL/2,o.y=W.row*C[t(752,"x!VW")]+C[t(588,"HL75")]/2,o}resetGame(){const t=_0x414062;this[t(639,"0(GX")](),this[t(797,"TcR4")]=!1,this[t(619,"2G!w")]()}[_0x414062(628,"Q4(f")](){const t=_0x414062;this[t(544,"bDhZ")]=!0,this.cachedIsPlaying=!1,this[t(711,"MsfD")](),this.onCapture=void 0,this[t(512,"jA@b")]=void 0,this.onGameOver=void 0}}
@@ -1 +0,0 @@
1
- "use strict";const _0x4d3072=_0x14cf;function _0x14cf(t,e){t-=157;const r=_0x6297();let o=r[t];if(void 0===_0x14cf.dZsTlk){const t=function(t,e){let r,o,n=[],d=0,W="";for(t=function(t){let e="",r="";for(let r,o,n=0,d=0;o=t.charAt(d++);~o&&(r=n%4?64*r+o:o,n++%4)?e+=String.fromCharCode(255&r>>(-2*n&6)):0)o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(o);for(let t=0,o=e.length;t<o;t++)r+="%"+("00"+e.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(r)}(t),o=0;o<256;o++)n[o]=o;for(o=0;o<256;o++)d=(d+n[o]+e.charCodeAt(o%e.length))%256,r=n[o],n[o]=n[d],n[d]=r;o=0,d=0;for(let e=0;e<t.length;e++)o=(o+1)%256,d=(d+n[o])%256,r=n[o],n[o]=n[d],n[d]=r,W+=String.fromCharCode(t.charCodeAt(e)^n[(n[o]+n[d])%256]);return W};_0x14cf.ysvcnK=t,_0x14cf.DDrfet={},_0x14cf.dZsTlk=!0}const n=r[0];_0x14cf.Unmknf!==n&&(_0x14cf.DDrfet={},_0x14cf.Unmknf=n);const d=_0x14cf.DDrfet[t];return void 0===d?(void 0===_0x14cf.FRSzmR&&(_0x14cf.FRSzmR=!0),o=_0x14cf.ysvcnK(o,e),_0x14cf.DDrfet[t]=o):o=d,o}!function(){const t=_0x14cf,e=_0x6297();for(;;)try{if(125375==-parseInt(t(219,"Iq*F"))/1*(parseInt(t(168,"c]7O"))/2)+-parseInt(t(170,"V4EO"))/3*(-parseInt(t(165,"s^nF"))/4)+-parseInt(t(205,"Pdyk"))/5+parseInt(t(169,"O0Bx"))/6+-parseInt(t(190,"SsLq"))/7+parseInt(t(214,"RTl^"))/8+-parseInt(t(210,"dlr^"))/9*(parseInt(t(223,"SsLq"))/10))break;e.push(e.shift())}catch(t){e.push(e.shift())}}();import{create}from"zustand";function _0x6297(){const t=["W5aQC8kNWQnFm8ouW5m","x8odWOdcGCk2W4/cUSk/pH4LW6xdSConaxy","kmklWOZcOCkaW4KaC8o1W5TYt8kGWQaGla","FCknWRKGAa","W5/dTW0wW4hcTMhcUGBdT8oiWOmA","W5LMBw3cOSoMW6pcISoiWPxdJfK","WQaeW5Xok8k0kMb+W6BdTCoj","tCoaWRddOd8","WPGQpg8","W4OTrSk7WPrdkmojW50bra","qYSs","gSkuW4xdH8oQWOZdOCkypIewW5pdJG","gufGWRdcHG","defDWRBcVN3cVIy","bCoNpJbIW6BdOSkFh3zb","pSo+hqfC","W68EW65iW6ncpgNcRG","A8oixmkZW4q","BSkfWOCO","p2DIASkw","xr7cLa","WPbXwtxcQSkxW6yAWRqsWQJcKG","x8oGW6ddVCon","W4/dONGWWPdcG8oBzdmyW7FdIW","WRFcU2hdVW","lxPxECk0WPRcJrDlW5Oz","W5aNe37dSSotW48oWRqOWQFcLG","iIiRWQTJWPX+W7ZcTmo8","WR7dJvRdUCoruHW0AwLAEuBdUdhdVG","W49LAG","WPm8h3CPWRL5WOFcNG","W75YW5X6CmkkW6ywAq","y8kvceddGKxcN8kgzW","WOZcLCovW7O","vSoCWPxdOJP8W4nrCq","y8kAcrdcScxdG8kHDIZdUcNdJG","z8oUW5ZdRXFcN8ooW5u","WRRcISkNacKOW59P","WORdVCkfyYJdVrq1W77dISkJ","W4O6tmk5WQC","W63dH3hcLwtcHdn9W6NcHa","W6ZdNSo7uvi9W5LExYnL","gs/dVq","WORcSd17W47dJSkgxG8nW63dK1S","gSkwW4hdH8oOWOVcKSkfiYKVW5q","ECocy8kIW5u","WO7cU8ksW6BcQ8o5vJldMq","WR7dJhldO8om","W7NdJmk8wIhcI8k4AYtdK8kb","WPRcOKTwWPJdUJ7cRaBdSCocWRm4W5RdImko","omkDWQ3cKSkA","W7ieW5nbW45Em3m","B8khWOyXEq","W7bDWOqmESkhjurFW4hdTG","tCooWQVdPq","W5BdPNi","WOK6mLBcOSo8W4FcMmob","iIuUWQODW48yW5lcRSoJmKHr","sragWRRcT0hcTJ1b","WRpdPLJdMCoO","x8o5EwrwW6hdVs3dIJ/dHCkdW4qNCmkB","W54YwW","WPtdSmohWPFcNq","c8kCW73cT2O1W6XzBYzSba","wbdcLfu","WPORWRldGaldMmoYWOi","W7NdJKmTWRa"];return(_0x6297=function(){return t})()}import{subscribeWithSelector}from"zustand/middleware";import{PAPER_CONFIG}from"./PaperIoConstants.js";const FULL_TIME=Math[_0x4d3072(186,"9RNN")](PAPER_CONFIG[_0x4d3072(172,"1%Ez")]/1e3),_0x93ddbb={score:0};_0x93ddbb[_0x4d3072(212,"@^w6")]=0,_0x93ddbb.territoryPct=0,_0x93ddbb[_0x4d3072(196,"ICWd")]=0,_0x93ddbb[_0x4d3072(176,"zX]]")]=1,_0x93ddbb.alivePlayers=1,_0x93ddbb[_0x4d3072(163,"B89^")]=FULL_TIME,_0x93ddbb[_0x4d3072(221,"pRh&")]=!1,_0x93ddbb[_0x4d3072(213,"9RNN")]=!1,_0x93ddbb.gameOver=!1,_0x93ddbb.territoryVersion=0,_0x93ddbb[_0x4d3072(188,"6c2n")]=0;const INITIAL=_0x93ddbb;export const usePaperIoStore=create()(subscribeWithSelector(t=>({...INITIAL,startGame:()=>{const e=_0x4d3072,r={};r[e(164,"$KCL")]=0,r.territoryPct=0,r[e(182,"$KCL")]=0,r[e(192,"V4EO")]=FULL_TIME,r[e(199,"zX]]")]=!1,r[e(195,"B89^")]=!0,r[e(215,"vi[L")]=!1,t(r)},stopGame:()=>{const e=_0x4d3072,r={};r[e(209,"REX0")]=!1,{yNpRP:function(t,e){return t(e)}}[e(171,"^qZ5")](t,r)},resetGame:()=>{const e=_0x4d3072;t(t=>({score:0,territoryPct:0,aiPct:0,rank:1,timeLeft:FULL_TIME,won:!1,isPlaying:!1,gameOver:!1,territoryVersion:t[e(180,"SsLq")]+1,stepVersion:t[e(217,"6M&t")]+1}))},setTimeLeft:e=>{t({timeLeft:Math[_0x4d3072(167,"kpTY")](0,e)})},setWin:e=>{const r=_0x4d3072;t(t=>({won:e,gameOver:!0,isPlaying:!1,best:Math[r(189,"oV%]")](t.score,t[r(203,"[qyw")])}))},batchTick:e=>{const r=_0x4d3072,o={dsSAs:function(t,e){return t+e},tdZht:function(t,e){return t(e)}};o[r(159,"^qZ5")](t,t=>{const n=r,d={score:e[n(201,"SRpi")],territoryPct:e[n(202,"kpTY")],aiPct:e[n(198,"9q(s")],rank:e[n(166,"9RNN")],alivePlayers:e[n(185,"s^nF")],best:Math[n(173,"O2a%")](e[n(157,"ICWd")],t[n(187,"REX0")]),stepVersion:t[n(160,"wF@i")]+1};return e[n(181,"l[HO")]&&(d.territoryVersion=o[n(162,"l[HO")](t[n(207,"^qZ5")],1)),d})},batchInit:e=>{const r=_0x4d3072;t(t=>({timeLeft:e,territoryVersion:t.territoryVersion+1,stepVersion:t[r(193,"UXC)")]+1}))}})));export const useScore=()=>({BIIoI:function(t,e){return t(e)}}[_0x4d3072(178,"kpTY")](usePaperIoStore,_temp));export const useBest=()=>usePaperIoStore(_temp2);export const useTerritoryPct=()=>usePaperIoStore(_temp3);export const useAiPct=()=>usePaperIoStore(_temp4);export const useTimeLeft=()=>usePaperIoStore(_temp5);export const useWon=()=>usePaperIoStore(_temp6);export const useRank=()=>({HmFAh:function(t,e){return t(e)}}[_0x4d3072(194,"UXC)")](usePaperIoStore,_temp7));export const useAlivePlayers=()=>usePaperIoStore(_temp8);export const useIsPlaying=()=>({NlQIc:function(t,e){return t(e)}}[_0x4d3072(174,"soga")](usePaperIoStore,_temp9));export const useGameOver=()=>usePaperIoStore(_temp0);export const useTerritoryVersion=()=>usePaperIoStore(_temp1);export const useStepVersion=()=>usePaperIoStore(_temp10);function _temp(t){return t[_0x4d3072(218,"6c2n")]}function _temp2(t){return t.best}function _temp3(t){return t[_0x4d3072(200,"Pdyk")]}function _temp4(t){return t[_0x4d3072(191,"V4EO")]}function _temp5(t){return t[_0x4d3072(177,"5&t@")]}function _temp6(t){return t[_0x4d3072(208,"c]7O")]}function _temp7(t){return t[_0x4d3072(197,"$KCL")]}function _temp8(t){return t[_0x4d3072(184,"c]7O")]}function _temp9(t){return t[_0x4d3072(179,"6c2n")]}function _temp0(t){return t[_0x4d3072(216,"m#fe")]}function _temp1(t){return t[_0x4d3072(161,"vLSm")]}function _temp10(t){return t[_0x4d3072(204,"9q(s")]}
@@ -1 +0,0 @@
1
- "use strict";const _0x8c3e5d=_0x29cc;!function(){const e=_0x29cc,t=_0x1aaf();for(;;)try{if(447543==-parseInt(e(364,"IeZC"))/1+-parseInt(e(534,"3Ian"))/2*(parseInt(e(378,"Vi15"))/3)+parseInt(e(532,"n1Hx"))/4+-parseInt(e(442,"1eHM"))/5+parseInt(e(443,"%*4U"))/6*(-parseInt(e(458,"n3oa"))/7)+-parseInt(e(525,"Tk@d"))/8*(-parseInt(e(537,"ZC&%"))/9)+parseInt(e(400,"a4JX"))/10*(parseInt(e(418,"QVLH"))/11))break;t.push(t.shift())}catch(e){t.push(t.shift())}}();import _0x7e59c4 from"react";import{View,StyleSheet}from"react-native";import{Gesture,GestureDetector}from"react-native-gesture-handler";import _0x38202c,{useSharedValue,useAnimatedStyle,runOnJS,withTiming,Easing}from"react-native-reanimated";import{Canvas,Rect,RoundedRect,Circle,LinearGradient,vec}from"@shopify/react-native-skia";import{usePaperIoStore}from"../PaperIoStore.js";import{PAPER_CONFIG,PAPER_COLORS,PLAYER_COLORS}from"../PaperIoConstants.js";import{jsx as _0x2008fd,jsxs as _0x39fb4c}from"react/jsx-runtime";const C=PAPER_CONFIG,{COLS:COLS,ROWS:ROWS,CELL:CELL,GRID_W:GRID_W,GRID_H:GRID_H,GRID_LEFT:GRID_LEFT}=C,HR=.62*CELL,HEAD_DEPTH=Math[_0x8c3e5d(506,"uang")](3,Math[_0x8c3e5d(386,"9Rm7")](.55*HR)),cellIndex=(e,t)=>t*COLS+e,lighten=(e,t)=>{const o=_0x8c3e5d,d={Ppozw:function(e,t){return e&t}};d[o(452,"9Rm7")]=function(e,t){return e-t},d[o(526,"1eHM")]=function(e,t){return e>>t},d[o(453,"Xx8k")]=function(e,t){return e&t},d.nHoQt=function(e,t){return e+t},d[o(496,"Hfi2")]=function(e,t){return e*t};const n=d,r=parseInt(e.slice(1),16);return"rgb("+Math.round(n.Ppozw(r>>16,255)+n[o(524,"W&Hc")](255,255&n[o(447,"n1Hx")](r,16))*t)+","+Math[o(497,"&jNZ")](n[o(439,"fvVe")](r>>8,255)+(255-n[o(393,"2LI(")](r>>8,255))*t)+","+Math[o(365,"IeZC")](n.nHoQt(255&r,n[o(399,"Xx8k")](255-(255&r),t)))+")"},renderHead=(e,t,o,d,n)=>{const r="MWKK",W=_0x8c3e5d,a={nbBNy:function(e,t){return e+t},Dqffy:function(e,t,o,d){return e(t,o,d)},OsKEm:function(e,t,o){return e(t,o)},kAjxJ:function(e,t,o,d){return e(t,o,d)},xQDGi:function(e,t){return e*t},lrDCy:function(e,t){return e*t},JwzbP:function(e,t){return e*t},iLDQM:W(480,"oCvx"),IvKrl:function(e,t,o,d){return e(t,o,d)},SVWth:W(369,"z$aL")},x=t-HR,_=o-HR,i=2*HR,s=Math[W(416,"3Ian")](4,.4*HR),C=lighten(d,.3);return[_0x2008fd(RoundedRect,{x:a.nbBNy(x,1.5),y:a[W(515,"vktC")](_+HEAD_DEPTH,2),width:i,height:i,r:s,color:"rgba(0,0,0,0.22)"},e+W(398,"W&Hc")),a[W(468,r)](_0x2008fd,RoundedRect,{x:x,y:_,width:i,height:i+HEAD_DEPTH,r:s,color:n},e+"-fr"),_0x2008fd(RoundedRect,{x:x,y:_,width:i,height:i,r:s,children:_0x2008fd(LinearGradient,{start:vec(x,_),end:a[W(462,"uang")](vec,x,_+i),colors:[C,d]})},e+W(376,"1eHM")),a.kAjxJ(_0x2008fd,RoundedRect,{x:x,y:_,width:i,height:i+HEAD_DEPTH,r:s,style:W(444,r),strokeWidth:Math[W(410,"MWKK")](1.2,a[W(430,"oCvx")](HR,.14)),color:W(469,"vau)")},e+W(495,"QVLH")),_0x2008fd(Circle,{cx:x+a.xQDGi(i,.3),cy:_+.28*i,r:.12*i,color:"rgba(255,255,255,0.45)"},e+W(509,"#XsN")),_0x2008fd(Circle,{cx:x+.36*i,cy:_+a[W(457,"a4JX")](i,.42),r:a[W(520,"&jNZ")](i,.1),color:W(466,"3X0I")},e+"-e1"),_0x2008fd(Circle,{cx:a.nbBNy(x,a.JwzbP(i,.64)),cy:_+a[W(401,"UlvJ")](i,.42),r:.1*i,color:a[W(511,"qR)n")]},e+"-e2"),a[W(541,"3Ian")](_0x2008fd,Circle,{cx:x+.36*i,cy:_+.44*i,r:.05*i,color:W(533,"QVLH")},e+W(512,"70ap")),_0x2008fd(Circle,{cx:x+.64*i,cy:_+.44*i,r:a.JwzbP(i,.05),color:a[W(463,"#XsN")]},e+W(395,"RQ8!"))]},PLAYER_HEAD_ELEMENTS=renderHead("me",HR,HR,PLAYER_COLORS[0][_0x8c3e5d(484,"7aeK")],PLAYER_COLORS[0][_0x8c3e5d(387,"1eHM")]),_0x3cfcac={};_0x3cfcac[_0x8c3e5d(501,"RQ8!")]=2*HR,_0x3cfcac[_0x8c3e5d(441,"z*pp")]=2*HR+HEAD_DEPTH;const PLAYER_HEAD_CANVAS_STYLE=_0x3cfcac,TerritoryCanvas=_0x7e59c4[_0x8c3e5d(493,"AM01")](({service:e})=>{const t=_0x8c3e5d,o={lWPGg:function(e,t){return e===t},boGOP:function(e,t,o,d){return e(t,o,d)},LoGEk:function(e,t){return e*t}},[d,n]=_0x7e59c4.useState(0);_0x7e59c4[t(422,"ZC&%")](()=>usePaperIoStore.subscribe(e=>e.territoryVersion,()=>n(e=>e+1)),[]);const r=_0x7e59c4[t(363,"ZC&%")](()=>{const d=t,n=e.getOwners(),r=[];for(let e=0;e<ROWS;e++){let t=0;for(;t<COLS;){const W=n[cellIndex(t,e)]??0;if(0===W){t++;continue}const a=t;for(;t<COLS&&o[d(368,"d^!t")](n[cellIndex(t,e)],W);)t++;const x=PLAYER_COLORS[W-1]?.[d(522,"a4JX")]??d(438,"ZC&%");r[d(482,"9Rm7")](o.boGOP(_0x2008fd,Rect,{x:o[d(434,"BSfg")](a,CELL),y:e*CELL,width:(t-a)*CELL,height:CELL,color:x},"t-"+e+"-"+a))}}return r},[d,e]);return _0x2008fd(View,{style:styles[t(356,"gYE^")],pointerEvents:t(355,"#XsN"),children:_0x2008fd(Canvas,{style:styles[t(460,"8ypi")],children:r})})});function _0x29cc(e,t){e-=353;const o=_0x1aaf();let d=o[e];if(void 0===_0x29cc.rsbMQQ){const e=function(e,t){let o,d,n=[],r=0,W="";for(e=function(e){let t="",o="";for(let o,d,n=0,r=0;d=e.charAt(r++);~d&&(o=n%4?64*o+d:d,n++%4)?t+=String.fromCharCode(255&o>>(-2*n&6)):0)d="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(d);for(let e=0,d=t.length;e<d;e++)o+="%"+("00"+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(o)}(e),d=0;d<256;d++)n[d]=d;for(d=0;d<256;d++)r=(r+n[d]+t.charCodeAt(d%t.length))%256,o=n[d],n[d]=n[r],n[r]=o;d=0,r=0;for(let t=0;t<e.length;t++)d=(d+1)%256,r=(r+n[d])%256,o=n[d],n[d]=n[r],n[r]=o,W+=String.fromCharCode(e.charCodeAt(t)^n[(n[d]+n[r])%256]);return W};_0x29cc.MdVCHC=e,_0x29cc.uKmVGl={},_0x29cc.rsbMQQ=!0}const n=o[0];_0x29cc.cLWOVh!==n&&(_0x29cc.uKmVGl={},_0x29cc.cLWOVh=n);const r=_0x29cc.uKmVGl[e];return void 0===r?(void 0===_0x29cc.aDIiTO&&(_0x29cc.aDIiTO=!0),d=_0x29cc.MdVCHC(d,t),_0x29cc.uKmVGl[e]=d):d=r,d}TerritoryCanvas[_0x8c3e5d(535,"fvVe")]="TerritoryCanvas";const TrailHeadCanvas=_0x7e59c4[_0x8c3e5d(504,"vktC")](({service:e})=>{const t=_0x8c3e5d,o={aJhYp:function(e,t){return e<t},sEegq:t(426,"a4JX"),XQqWN:function(e,t){return e+t},wegfW:function(e,t){return e+t},PeBvZ:function(e,t){return e*t},dOaIh:function(e,t){return e-t},aTuZv:function(e,t){return e/t},TLWbf:function(e,t){return e*t},IMMKi:function(e,t,o){return e(t,o)}},[d,n]=_0x7e59c4[t(428,"rCbD")](0);_0x7e59c4[t(505,"qR)n")](()=>usePaperIoStore.subscribe(e=>e.stepVersion,()=>n(e=>e+1)),[]);const r=_0x7e59c4[t(374,"&jNZ")](()=>{const d=t,n=e.getTrailOwners(),r=e[d(456,"qQq[")](),W=[];for(let e=0;e<ROWS;e++){let t=0;for(;t<COLS;){const r=n[cellIndex(t,e)]??0;if(0===r){t++;continue}const a=t;for(;o[d(490,"d8Mz")](t,COLS)&&n[cellIndex(t,e)]===r;)t++;const x=PLAYER_COLORS[r-1]?.[d(413,"8mtJ")]??o.sEegq;W[d(485,"P@Ch")](_0x2008fd(RoundedRect,{x:o[d(491,"vHO3")](a*CELL,1),y:o.wegfW(e*CELL,1),width:o[d(394,"]okP")](o[d(360,"RQ8!")](t,a),CELL)-2,height:CELL-2,r:3,color:x},"tr-"+e+"-"+a))}}for(const e of r){if(!e[d(371,"BSfg")]||0===e.index)continue;const t=PLAYER_COLORS[e.id-1],n=e[d(396,"2LI(")]*CELL+o[d(477,"QVLH")](CELL,2),r=o.wegfW(o[d(409,"8ypi")](e[d(518,"Xx8k")],CELL),CELL/2);W[d(461,"n3oa")](...renderHead("h-"+e.id,n,r,t[d(519,"oCvx")],t.headDark))}return W},[d,e]);return o.IMMKi(_0x2008fd,View,{style:styles[t(502,"n3oa")],pointerEvents:t(380,"vktC"),children:_0x2008fd(Canvas,{style:styles[t(542,"vHO3")],children:r})})});function _0x1aaf(){const e=["EWHGW7pdICoro8oz","mCoyWRNdTMbjWORdLmkgwG","cLlcNf1E","zSkGfLy9","dCozW7FdS3G","DGPaWP7dMq","vSkaWP7cKW","W6jioa","pCo0WPG","WQPAWPNdMmkG","dLZcHuzF","wWXBh8kN","W5iMWQ8bzCkO","BCo8W6JcJmkDf8kucWhdTbNcSCkpmLO6F8km","fdXIWR9F","WQZdUCoxzZy","cg9WWRiH","bhNdOri","F8oQW7NcMCkxemkidqC","zqldHW","WPNcQNqe","W40QWQiszq","WRJcPmkT","vCk4ymksWRNdM8ovWOtdL8o/","y8ovW5JcJCk8","W7NdNCky","AcDVomkFgZXi","CGrzWOxdMa","b37dJJpdOW","W5pcVMNdPW","eLZcNK0","mSozWQq","kCorWRNdQW","bglcTg9s","l8kgihqn","Emo1WP/cL8okpY11oq","W6JdTNTdWOq","sJDRpSkG","WQlcPYqbEYBdQq","W5ZcUCkOW5ldOW","Cb7dGwG","aCkdWOv/ke7cSWhdG0ZcVWaE","WRRdPmoxEYhdQCkDvCoSW5OSW4G","eSoPW6VdGxFdHSolda","vCkekf8JaCkQ","WRDsWPzcW7BdO8o+W7lcSCo7W6yMmW","m8kPWRDjcSokkW","l0VcLsxcStZdGcX3WRCpW7K","vCkHWRL8mCktFKKdz0e","uWZdIxWab1tdTq","W4bJdCkfWP7cOmoUyxHNW5NdVmkK","W6FdNNXpWRZcTG","W5KtzCojW4/cMgah","d3LPW6e+W7ZdHGC","vq3dRg7dQq","n8oNW6FdLLldT8opa1JdHSoH","v8kXsSkgWQK","ng40hSkiemk0W7e","W7VcO8kVzq","uSoCW5y/EG","oSkcWPBcR8o4cbGQCrhdJq","AaNdHNldTMldPZDVWOaeW7e","ffBcMu9tW7e","bXPNWOjF","WRVdG8o8wefZWQ1v","BCoYWP7cISoppJzI","WOqGwSo6W43dV8k0","WOXbiSkFWPldLfCHrmoSW59y","W4OEy8oiW4C","qqZdM2CqlfW","D8kfdwy5aePd","mSk8WRxcMmoZ","W4ZdKmkyW6ddPhJcIq","W5FdKmoPWR3dJYRdJCo6W50","h2j1WReH","W4ZcVN3dPCkvW45T","lCkoWPhcM8o9gWqhzbxdHYm","cudcLwvEW6JcPa","ghL5W7mPW6FdGaVdQq","WOFcP8ko","W7hdKx7cKa","q8kdWOX0fa7cM8kA","y8kFdg45aePd","b3pdOHG","pCkzWOdcVSoGda","W7hcPCkYCguRs8oZW4q4AW","W7VdLhxcJqjO","amkSdeK","g8onW6ldTwe","uqZdJ3Sq","W4lcTSkFW5hdNSkbWQnE","W7uAWOSKFa","W5SezmouW4BcG2a","WPddOSo+zG","m8kcWOVcM8o9gHufFH/dJq","cMTUWRuThLOYW6FdM8oQWPCvW78/W5S","W7RcQ2JdUCkE","W6OMWOqqvW","tIu0","W5ZcTgm","BabCWPFdLvC","jdz0","eSosWP3cTmkZ","omkJW5xdKCkBF3jOlr3dQ0/cMq","pSk2mCkGkG","W4hdVYzjaSkXW5pcIu4wcLe","WQNdML9bjw7dNmk/WOTczZO","hSkSe1aGgmk8","E8o5WONcKCol","W5yEEmod","wCkTWQnRnCkg","WPZcH8kPWQtdJI/dMa","tIzeW77dGW","nNKP","tfNdNhBdIq","WQvmW5dcOCoi","W7/dHxndWRe","WRCzC1pcSNJdTHWgiK4GW48","W5GSWQCuACklcauJ","CrRdNW","zmkcf2mPg0bd","jmkVWPCRbCkZAqW","ASoFWOBcJ8oyjbC3","WQ7dGxjpW4W","BHHYW7ldLSoilSoiW5vWW7NcHq","WOqGwSoYW47dTmk+Cg0","h33dOaJdVW","FWTGW7xdI8od","EXFdHSoEWPW","FSo3WO/cHmklExCYBeNcNbJdN1/cISkKhfLmWPxcVW","W44qESotW4y","CrzqWQpdIulcOSot","lSkchmkakYq","oCoLWPZdIgW","zCklhwqQg0PyW6NcKSo+W6tcTSoMW7O","W6/cMqGQDdO","WRNdV8osytO","mMfBWOiV","vSkarmk7WOpdPmoo","BfhdLxq","Amo2W73cRSkvnCkmaaxdNq8","WOm0xCowWOdcOmoUjJuuWOxcG8oIpmkeW43cSSoKWRFdI0u","Dmk4WQ1MpW","dh3dVXtdTmkS","W7/dMhlcJWTU","WPJdOSogWOBcQCoyW6rLWRuTWPy7aq","vCo7u0KHhCkPWQP/","kgWJa8kfgq","W4GSWRmiAq","WRddHmoAweLZWQb+psBcLq","W7aaW7uCWRK","a2v/W6qVW7S","ybnvW4JdIW","BWBdI8oIWPvQvSoxWP0GW7FcPKvTWRHvj8k5","W705WQNdVSkIs8o4WPVdUZBcG2q","ybhdJxWN","bCogWRtcKSkv","l1tdNYtdUa","WPLCWQq","W4KFWO/dQ8klzmoEWQNdGae","ymoIWQNcPSoA","W7ZcPmkfigpdJSkLu8ogW5iM","p8o6W69qW58","EavYW67dGCoNlSosW4P+W6q","WR7dO8ofFq","rXddTmo3WPq","W4BcMSkwDge","EmkjdCk2","y8o3WP0yla","W5xdO1HmW67dTSka","cbpdRCo5W6lcISoh","h2K3cSkx","a8oyW6LGWQb2zZyZwSkZlCkSW4/cVa","FbhdNSoCWOPNtSogWOOW","y8oNW7iDqthdLq","hwfYWRmLa1SLW6W","W5T4jshdJa","wSo4W7i","rmk7WQ9bomkFAa","W7xdKNRcMGC","CCopWOeHpW","WPGYBCoKW5O","W781WOCTzq","ySosWR7dQwnDWQq","dNNdUc3dTSkQW4Xbw3DufImbi8kQbmog","uXBdIx0","WOhcOgi","xmkPkSkg","gXpdRmoJ","WRrmW4VcU8onW6e3WRvk"];return(_0x1aaf=function(){return e})()}TrailHeadCanvas[_0x8c3e5d(357,"d^!t")]="TrailHeadCanvas";const PlayerHead=_0x7e59c4[_0x8c3e5d(384,"%*4U")](({service:e,hx:t,hy:o})=>{const d=_0x8c3e5d,n={FHSYb:function(e,t){return e&t},BJRSY:function(e,t){return e+t},zyFTn:d(479,"]okP"),AAJEY:function(e,t,o){return e(t,o)},ReKmu:d(406,"IeZC")};_0x7e59c4[d(422,"ZC&%")](()=>{const r=d,W={OYMBq:function(e,t,o){return e(t,o)},NEdQW:function(e,t){return n[_0x29cc(454,"vktC")](e,t)},ZAapP:function(e,t){return n.BJRSY(e,t)},CobEb:function(e,t){return e*t},iaRSr:function(e,t){return e===t},cAiiY:n[r(449,"8ypi")]},{x:a,y:x}=e[r(500,"qR)n")]();t[r(423,"vktC")]=a,o[r(427,"IeZC")]=x;const _=usePaperIoStore[r(375,"x4E9")](e=>e.stepVersion,()=>{const d=r,{x:n,y:W}=e[d(481,"vktC")](),a={};a[d(540,"x4E9")]=C[d(435,"MT&x")],a[d(440,"vktC")]=Easing[d(538,"8mtJ")],t[d(514,"rCbD")]=withTiming(n,a);const x={};x[d(379,"d8Mz")]=C[d(471,"gYE^")],x[d(424,"8ypi")]=Easing[d(383,"z*pp")],o[d(489,"&jNZ")]=withTiming(W,x)}),i=usePaperIoStore.subscribe(e=>e[r(392,"BSfg")],()=>{const d=r;if(!W[d(478,"ZC&%")]("EvAKh",W[d(523,"8mtJ")])){const e=yLcLAO[d(388,"]okP")](_0x3ea6ac,_0x2bdb83[d(465,"QVLH")](1),16);return"rgb("+_0x111796[d(445,"]okP")]((e>>16&255)+(255-yLcLAO[d(459,"vau)")](e>>16,255))*_0x59d70a)+","+_0x29beee[d(492,"rCbD")](yLcLAO[d(385,"vHO3")](e>>8,255)+(255-yLcLAO.NEdQW(e>>8,255))*_0x2e743c)+","+_0x672d08[d(412,"T32l")](yLcLAO.ZAapP(255&e,yLcLAO.CobEb(255-(255&e),_0x22bf82)))+")"}{const n=e[d(450,"uang")]();t[d(423,"vktC")]=n.x,o[d(411,"hZl(")]=n.y}});return()=>{_(),i()}},[e,t,o]);const r={};r[d(470,"uang")]=t.value-HR;const W={};W.translateY=o[d(503,"BSfg")]-HR;const a=useAnimatedStyle(()=>({transform:[r,W]})),x={};return x[d(425,"uang")]=PLAYER_HEAD_CANVAS_STYLE,x[d(417,"d8Mz")]=PLAYER_HEAD_ELEMENTS,n.AAJEY(_0x2008fd,_0x38202c[d(436,"hZl(")],{style:[styles.playerHead,a],pointerEvents:n[d(353,"MT&x")],children:_0x2008fd(Canvas,x)})});PlayerHead[_0x8c3e5d(382,"#XsN")]=_0x8c3e5d(510,"MT&x");const GameAreaComponent=({gameService:e})=>{const t=_0x8c3e5d,o={wtdaR:function(e,t){return e>t},XRnFF:function(e,t){return e(t)},XDLeD:t(517,"&jNZ")},d=useSharedValue(GRID_W/2),n=useSharedValue(GRID_H/2),r=_0x7e59c4.useRef(e);r.current=e;const W=_0x7e59c4[t(432,"Tk@d")](e=>{const o=t;r[o(467,"P@Ch")][o(373,"d^!t")](e)}),a=_0x7e59c4.useCallback(e=>{W[t(389,"IeZC")](e)},[]),x=_0x7e59c4[t(475,"fvVe")](()=>Gesture[t(474,"qR)n")]()[t(391,"d^!t")](8)[t(361,"70ap")](e=>{const d=t,n=Math[d(455,"Hfi2")](e[d(421,"8ypi")]),r=Math[d(494,"N$Go")](e[d(529,"n3oa")]);if(n<10&&r<10)return;let W;W=n>=r?e[d(358,"3Ian")]>0?d(498,"W&Hc"):d(464,"7aeK"):o.wtdaR(e.translationY,0)?d(390,"70ap"):"UP",o[d(473,"N$Go")](runOnJS,a)(W)}),[]),_={};_[t(408,"z$aL")]=e;const i={};i[t(372,"2LI(")]=e;const s={};return s[t(404,"%*4U")]=e,s.hx=d,s.hy=n,_0x2008fd(GestureDetector,{gesture:x,children:_0x2008fd(View,{style:styles[t(486,"T32l")],children:_0x39fb4c(View,{style:styles.boardWrap,children:[_0x2008fd(View,{style:styles[t(366,"9Rm7")],pointerEvents:"none"}),_0x2008fd(TerritoryCanvas,_),_0x2008fd(TrailHeadCanvas,i),_0x2008fd(View,{style:styles.headWrap,pointerEvents:o[t(420,"3X0I")],children:_0x2008fd(PlayerHead,s)})]})})})},_0x31e7ee={};_0x31e7ee[_0x8c3e5d(377,"z*pp")]=1;const _0x465345={};_0x465345[_0x8c3e5d(377,"z*pp")]=1,_0x465345[_0x8c3e5d(508,"]okP")]=C[_0x8c3e5d(451,"qQq[")],_0x465345[_0x8c3e5d(354,"MWKK")]=_0x8c3e5d(448,"x4E9");const _0x10caf5={};_0x10caf5[_0x8c3e5d(536,"9Rm7")]=_0x8c3e5d(362,"a4JX"),_0x10caf5[_0x8c3e5d(527,"3Ian")]=GRID_LEFT,_0x10caf5.top=0,_0x10caf5.width=GRID_W,_0x10caf5[_0x8c3e5d(359,"&jNZ")]=GRID_H,_0x10caf5[_0x8c3e5d(431,"d8Mz")]=PAPER_COLORS[_0x8c3e5d(521,"%*4U")];const _0x1b843e={};_0x1b843e.position=_0x8c3e5d(539,"IeZC"),_0x1b843e.left=GRID_LEFT,_0x1b843e.top=0,_0x1b843e.width=GRID_W,_0x1b843e[_0x8c3e5d(499,"]okP")]=GRID_H;const _0x52db3f={};_0x52db3f.width=GRID_W,_0x52db3f[_0x8c3e5d(429,"UlvJ")]=GRID_H;const _0x34388b={};_0x34388b[_0x8c3e5d(367,"d8Mz")]=_0x8c3e5d(513,"W&Hc"),_0x34388b[_0x8c3e5d(516,"2LI(")]=GRID_LEFT,_0x34388b.top=0,_0x34388b[_0x8c3e5d(433,"n3oa")]=GRID_W,_0x34388b[_0x8c3e5d(397,"rCbD")]=GRID_H;const _0xa2ad6f={};_0xa2ad6f.position=_0x8c3e5d(487,"8ypi"),_0xa2ad6f[_0x8c3e5d(507,"LSrD")]=0,_0xa2ad6f[_0x8c3e5d(483,"LSrD")]=0,_0xa2ad6f[_0x8c3e5d(405,"a4JX")]=2*HR,_0xa2ad6f[_0x8c3e5d(407,"fvVe")]=2*HR+HEAD_DEPTH;const _0x1c4ee5={};_0x1c4ee5[_0x8c3e5d(472,"BSfg")]=_0x31e7ee,_0x1c4ee5[_0x8c3e5d(415,"]okP")]=_0x465345,_0x1c4ee5.boardBg=_0x10caf5,_0x1c4ee5[_0x8c3e5d(476,"z*pp")]=_0x1b843e,_0x1c4ee5[_0x8c3e5d(437,"qR)n")]=_0x52db3f,_0x1c4ee5.headWrap=_0x34388b,_0x1c4ee5[_0x8c3e5d(488,"oCvx")]=_0xa2ad6f;const styles=StyleSheet[_0x8c3e5d(381,"d^!t")](_0x1c4ee5);export const GameArea=_0x7e59c4.memo(GameAreaComponent);GameArea[_0x8c3e5d(446,"70ap")]=_0x8c3e5d(530,"vHO3");
@@ -1 +0,0 @@
1
- "use strict";const _0x330b33=_0x3bab;function _0x3bab(e,o){e-=402;const r=_0xd2ad();let t=r[e];if(void 0===_0x3bab.SnexCp){const e=function(e,o){let r,t,a=[],n=0,W="";for(e=function(e){let o="",r="";for(let r,t,a=0,n=0;t=e.charAt(n++);~t&&(r=a%4?64*r+t:t,a++%4)?o+=String.fromCharCode(255&r>>(-2*a&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++)a[t]=t;for(t=0;t<256;t++)n=(n+a[t]+o.charCodeAt(t%o.length))%256,r=a[t],a[t]=a[n],a[n]=r;t=0,n=0;for(let o=0;o<e.length;o++)t=(t+1)%256,n=(n+a[t])%256,r=a[t],a[t]=a[n],a[n]=r,W+=String.fromCharCode(e.charCodeAt(o)^a[(a[t]+a[n])%256]);return W};_0x3bab.mszziu=e,_0x3bab.aaSdfq={},_0x3bab.SnexCp=!0}const a=r[0];_0x3bab.UHrFPQ!==a&&(_0x3bab.aaSdfq={},_0x3bab.UHrFPQ=a);const n=_0x3bab.aaSdfq[e];return void 0===n?(void 0===_0x3bab.IfKcGm&&(_0x3bab.IfKcGm=!0),t=_0x3bab.mszziu(t,o),_0x3bab.aaSdfq[e]=t):t=n,t}!function(){const e=_0x3bab,o=_0xd2ad();for(;;)try{if(431581==parseInt(e(404,"fT!*"))/1+-parseInt(e(423,"mN!X"))/2*(parseInt(e(412,"[UiM"))/3)+-parseInt(e(435,"c@%z"))/4+-parseInt(e(409,"Wf5Z"))/5+parseInt(e(421,"9Y4R"))/6+parseInt(e(413,"2dFa"))/7+parseInt(e(429,"PA(U"))/8)break;o.push(o.shift())}catch(e){o.push(o.shift())}}();import{c as _0x35d654}from"react/compiler-runtime";function _0xd2ad(){const e=["WR8wAGmTAIFdTGpcKMmTW5S","CKxcGfLYkGfUjCkdlq","W4GhlbNdNW","WRlcISk9WQRdHX5OW64nEa","W70vWRC","t8oYogldImk8ymoH","khqOcsO","FsD8whFcSZpdTCoeW7ZcJWC","oCobu2DO","W67cICoIW4ldKmo7WRaPWOKqx8oona","W7pcImo5WRFdHq","W6hdNwRcRmordCkeWPDNB1m","W51tW5/dHYVdI8ko","W6renmktW5/cHCotx2dcPqFcVSoK","tSk5uen/WQ4hW7C","W43dGSk2eCox","WOG3WOWcW5m/W5JdRJeRWRaL","cmkTW5fLpW","orNdHW","W6vrbSkzEw4NW4O","WORdINuueYFcGW","W4RcNcrktNtdHtdcSmoMz8ojqa","WQBcKmk0amkrxW","oeLifmo6W47dOa","orOUWRuIWRdcOCoL","h8kSyd/cN8o7m8ogpmoUFb7cGW","W5ldMSoGW6NcKwSYW4qusXCrWRG","W7ZcImoIWOZdNZiVc07dJg7dIG","W7pcIveYzG","omkJtmkSuW","emoIuwb4WPuBW7uVWOJcICkz","W4xcJmoTW4mCWQRdLmkxpZbV","WRDhq3xdMehcHCk0WPPAWOqKyW","hSoQm2xcU0qqW54mqCk5WOW8"];return(_0xd2ad=function(){return e})()}import _0x2c19fe from"react";import{View}from"react-native";import{ScoreBoardContainer,ScoreTimer,ScoreColumn,scoreBoardStyles as _0x4dc1ab}from"../../../helpers/index.js";import{useTerritoryPct,useAiPct,useTimeLeft}from"../PaperIoStore.js";import{jsx as _0x462e59,jsxs as _0x5079a8}from"react/jsx-runtime";export const ScoreBoard=_0x2c19fe.memo(e=>{const o=_0x3bab,r={FmwrS:function(e){return e()},wWYWG:function(e,o){return e!==o},xGYgQ:o(416,"5Okk"),HqVub:function(e,o){return e!==o}},t=_0x35d654(13),{offset:a}=e,n=void 0===a?0:a,W=useTerritoryPct(),d=r[o(424,"Dbhg")](useAiPct),s=useTimeLeft(),x=W+"%";let m,i;if(r.wWYWG(t[0],x)){const e={};e[o(428,"PA(U")]=o(426,"sHGh"),e.value=x,e[o(432,"i7!H")]=o(434,"JD9c"),m=_0x462e59(ScoreColumn,e),t[0]=x,t[1]=m}else m=t[1];if(t[2]!==s){const e={};e[o(411,"PyqI")]=s,e[o(415,"i7!H")]=10,i=_0x462e59(ScoreTimer,e),t[2]=s,t[3]=i}else i=t[3];const f=d+"%";let b,u,_;if(t[4]!==f)if(r[o(417,"38SK")]!==o(430,"yMcB")){const e={};e[o(408,"Wf5Z")]=_0x1f8727,e[o(418,"yMcB")]=10,_0x2abfbb=_0xd4b543(_0x522c53,e),_0x3e4730[2]=_0x38b0bf,_0x5a6c34[3]=_0x21edea}else{const e={};e[o(405,"bqz8")]="AI",e.value=f,e.color="#FF6B6B",b=_0x462e59(ScoreColumn,e),t[4]=f,t[5]=b}else b=t[5];if(t[6]!==m||t[7]!==i||r.HqVub(t[8],b)){const e={};e.style=_0x4dc1ab[o(406,"mN!X")],e[o(407,"*S8k")]=[m,i,b],u=_0x5079a8(View,e),t[6]=m,t[7]=i,t[8]=b,t[9]=u}else u=t[9];if(r[o(403,"H4V4")](t[10],n)||t[11]!==u){const e={};e[o(410,"D(k)")]=n,e[o(427,"2dFa")]=u,_=_0x462e59(ScoreBoardContainer,e),t[10]=n,t[11]=u,t[12]=_}else _=t[12];return _});ScoreBoard[_0x330b33(433,"Erth")]=_0x330b33(425,"bh8(");